
    .i0                     B   d dl Z d dlmZ d dlZd dlZd dlZd dlm	Z
  ej                  d      Zej                  j                  d      ej                  j                  dd eg      d               Zej                  j                  d      d        Zej                  j                  d      d	        Zej                  j                  d      d
        Zej                  j                  d      d        Zd Zd Zd Zej                  j                  d      d        Zy)    N)Path
pyreadstatz,ignore::pandas.errors.ChainedAssignmentError
path_klassc                     | S )N )ps    W/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/io/test_spss.py<lambda>r
      s    !     c                 x    |  |dddd            }t        j                  |d      }t        j                  ddid	g
      }t        j                  |d         |d<   t	        j
                  ||       t        j                  |d      }t        j                  ddid	g
      }t	        j
                  ||       y )Niodataspsslabelled-num.savTconvert_categoricalsVAR00002This is oner   )indexF      ?pd	read_spss	DataFrameCategoricaltmassert_frame_equal)r   datapathfnamedfexpecteds        r	   test_spss_labelled_numr"      s    
 xff6HIJE	e$	7B||Z7sCH>>(:*>?HZ"h'	e%	8B||Z-aS9H"h'r   c                     | dddd      }t        j                  |d      }t        j                  ddd gi      }t        j                  |d         |d<   t	        j
                  ||       t        j                  |d	      }t        j                  dd
t        j                  gi      }t	        j
                  ||       y )Nr   r   r   zlabelled-num-na.savTr   r   r   Fr   )r   r   r   r   r   r   npnanr   r   r    r!   s       r	   test_spss_labelled_num_nar'       s     T66+@AE	e$	7B||Z-)>?@H>>(:*>?HZ"h'	e%	8B||Z#rvv78H"h'r   c                 h    | dddd      }t        j                  |d      }t        j                  ddd	gi      }t        j                  |d         |d<   t	        j
                  ||       t        j                  |d
      }t        j                  dddgi      }t	        j
                  ||       y )Nr   r   r   labelled-str.savTr   genderMaleFemaleFMFr   r&   s       r	   test_spss_labelled_strr/   0   s     T66+=>E	e$	7B||X'9:;H(:;HX"h'	e%	8B||XSz23H"h'r   c                 6    | dddd      }t        j                  |dd      }t        j                  dd	gid
      }t        j                  ||       t        j                  |dd      }t        j                  ddgi      }t        j                  ||       y )Nr   r   r   r)   T   )r   	row_limitr*   r+   categorydtypeF)r   
row_offsetr.   )r   r   r   r   r   r&   s       r	   test_spss_kwargsr7   @   s     T66+=>E	e$!	DB||Xx0
CH"h'	e%A	FB||Xu-.H"h'r   c                 h    | dddd      }t        j                  |d      }t        j                  dg di      }t        j                  |d         |d<   t	        j
                  ||       t        j                  |d	      }t        j                  dg d
i      }t	        j
                  ||       y )Nr   r   r   umlauts.savTr   var1)   the ä umlautu   the ü umlautr;   u   the ö umlautFr   g       @r   g      @r   r&   s       r	   test_spss_umlautsr=   O   s     T66=9E	e$	7B||	UVH ~~hv&67HV"h'	e%	8B||V%9:;H"h'r   c                      | dddd      }t        j                  t        d      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)	Nr   r   r   r   zusecols must be list-like.matchr   )usecols)pytestraises	TypeErrorr   r   )r   r   s     r	   test_spss_usecolsrE   a   sE    T66+=>E	y(D	E 0
UJ/0 0 0s   AAc                     | dddd      }t        j                  |d|      }t        j                  dg did	
      }|dk(  rct        j                  d      }ddlm} t        j                  |j                  D ci c]  }| ||j                  ||   d            ! c}      }t        j                  ||       y c c}w )Nr   r   r   r9   F)r   dtype_backendr:   r<   Int64r4   pyarrowr   )ArrowExtensionArrayT)from_pandas)r   r   r   rB   importorskippandas.arraysrJ   columnsarrayr   r   )r   rG   r   r    r!   parJ   cols           r	   test_spss_umlauts_dtype_backendrR   i   s     T66=9E	e%}	UB||V%9:'JH	!  +5<< $++ ((3-T)RSS
 "h's   <$B>c                      d} t        j                  t        |       5  t        j                  dd       d d d        y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r?   testnumpy)rG   )rB   rC   
ValueErrorr   r   )msgs    r	   test_invalid_dtype_backendrX      s?    	!  
z	- 4
V734 4 4s	   ?Ac                     | dddd      }t        j                  |      }i ddgdd gddd id	d
ddddddddiiddddiidddidg dddidddidd di di dddidddiddiddid d t        j                  d!d"d#d$d%d&      t        j                  d!d"d#d$d%d&      i d'}t        j                  |j
                  |       y )(Nr   r   r   r   column_namesr   column_labelscolumn_names_to_labelsfile_encodingzUTF-8number_columnsr1   number_rowsvariable_value_labelsr   r   value_labelslabels0variable_to_labelnotesoriginal_variable_typeszF8.0readstat_variable_typesdouble
table_namemissing_rangesmissing_user_valuesvariable_storage_width   variable_display_widthunknownzsav/zsavi           !   $   )variable_alignmentvariable_measure
file_labelfile_formatcreation_timemodification_timemr_sets)r   r   datetimer   assert_dict_equalattrs)r   r   r    metadatas       r	   test_spss_metadatar      s    T66+=>E	e	B$ 	!:t"4 		
 	! 	q 	 *sM.B!C 	S-$89 	j)4 	 	"J#7 	"J#9 	d 	" 	r  	!:q/!" 	!:q/#$  *95'3!!**4Ar2rB%..tQ2r2F1H4 8,r   )r{   pathlibr   rU   r$   rB   pandasr   pandas._testing_testingr   rL   r   markfilterwarningsparametrizer"   r'   r/   r7   r=   rE   rR   rX   r   r   r   r	   <module>r      s4         V  .

 JKT':;( < L( JK( L( JK( L( JK( L( JK( L("0(.4 JK- L-r   