
    d.                        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                            d          ej                            dd eg          d                         Zej                            d          d             Zej                            d          d	             Zej                            d          d
             Zd Zd Zd ZdS )    )PathN
pyreadstatz,ignore::pandas.errors.ChainedAssignmentError
path_klassc                     | S )N )ps    U/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/io/test_spss.py<lambda>r
      s    !     c                 ~    |  |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        ||           d S )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     Jxxff6HIIJJE	e$	7	7	7B|Z7sCCCH>(:*>??HZ"h'''	e%	8	8	8B|Z-aS99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        ||           d S )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     HT66+@AAE	e$	7	7	7B|Z-)>?@@H>(:*>??HZ"h'''	e%	8	8	8B|Z#rv78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        ||           d S )Nr   r   r   zlabelled-str.savTr   genderMaleFemaleFMFr   r&   s       r	   test_spss_labelled_strr.   -   s     HT66+=>>E	e$	7	7	7B|X'9:;;H(:;;HX"h'''	e%	8	8	8B|XSz233H"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        ||           d S )Nr   r   r   umlauts.savTr   var1)   the ä umlautu   the ü umlautr2   u   the ö umlautFr   g       @r   g      @r   r&   s       r	   test_spss_umlautsr4   <   s     HT66=99E	e$	7	7	7B|	UUUV H ~hv&677HV"h'''	e%	8	8	8B|V%9%9%9:;;H"h'''''r   c                      | dddd          }t          j        t          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   zusecols must be list-like.matchr   )usecols)pytestraises	TypeErrorr   r   )r   r   s     r	   test_spss_usecolsr<   M   s    HT66+=>>E	y(D	E	E	E 0 0
UJ////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   AAAc                 B    | dddd          }t          j        |d|          }t          j        dg did	
          |dk    rAt          j        d          ddlm t          j        fdj        D                       t          j	        |           d S )Nr   r   r   r0   F)r   dtype_backendr1   r3   Int64)dtypepyarrowr   )ArrowExtensionArrayc           	      ^    i | ])}|                      |         d                     *S )T)from_pandas)array).0colrB   r!   pas     r	   
<dictcomp>z3test_spss_umlauts_dtype_backend.<locals>.<dictcomp>b   sK        (((3-T)R)RSS  r   )
r   r   r   r9   importorskippandas.arraysrB   columnsr   r   )r   r>   r   r    rB   r!   rH   s       @@@r	   test_spss_umlauts_dtype_backendrM   U   s    HT66=99E	e%}	U	U	UB|V%9%9%9:'JJJH	!! ++555555<     #+  
 
 "h'''''r   c                      d} t          j        t          |           5  t          j        dd           d d d            d S # 1 swxY w Y   d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r6   testnumpy)r>   )r9   r:   
ValueErrorr   r   )msgs    r	   test_invalid_dtype_backendrS   k   s    	!  
z	-	-	- 4 4
V733334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   AA	A)pathlibr   rP   r$   r9   pandasr   pandas._testing_testingr   rJ   r   markfilterwarningsparametrizer"   r'   r.   r4   r<   rM   rS   r   r   r	   <module>r[      so                        V ..

 JKKT':;;( ( <; LK( JKK( ( LK( JKK( ( LK( JKK( ( LK( 0 0 0( ( (,4 4 4 4 4r   