U
    >vf.                     @   s   d dl mZ d dlZd dlZd dlZd dlmZ	 e
dZejdejddd egdd	 Zejdd
d Zejddd Zejddd Zdd Zdd Zdd ZdS )    )PathN
pyreadstatz,ignore::pandas.errors.ChainedAssignmentError
path_klassc                 C   s   | S )N )pr   r   =/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/io/test_spss.py<lambda>       r   c                 C   s   | |dddd}t j|dd}t jddid	gd
}t |d |d< t|| t j|dd}t jddid	gd
}t|| 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expectedr   r   r   test_spss_labelled_num   s    r   c                 C   s~   | dddd}t j|dd}t ddd gi}t |d |d< t|| t j|d	d}t dd
tjgi}t|| 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   r   r   r   test_spss_labelled_num_na   s    r#   c                 C   s|   | dddd}t j|dd}t ddd	gi}t |d |d< t|| t j|d
d}t dddgi}t|| d S )Nr
   r   r   zlabelled-str.savTr   ZgenderZMaleZFemaleFMFr   r"   r   r   r   test_spss_labelled_str-   s    r&   c                 C   s   | dddd}t j|dd}t ddd	dd
gi}t |d |d< t|| t j|dd}t dddddgi}t|| d S )Nr
   r   r   umlauts.savTr   var1u   the ä umlautu   the ü umlautu   the ö umlautFr          @      @r   r"   r   r   r   test_spss_umlauts<   s    r+   c              	   C   s:   | dddd}t jtdd tj|dd W 5 Q R X d S )	Nr
   r   r   r   zusecols must be list-like.matchr   )Zusecols)pytestraises	TypeErrorr   r   )r   r   r   r   r   test_spss_usecolsM   s    r1   c                    s   | dddd}t j|d|d}t jddd	dd
gidd|dkrttdddlm  t  fddjD t	| d S )Nr
   r   r   r'   F)r   dtype_backendr(   r   r)   r*   ZInt64)ZdtypeZpyarrowr   )ArrowExtensionArrayc                    s$   i | ]}| j | d dqS )T)Zfrom_pandas)array).0colr3   r   par   r   
<dictcomp>b   s    z3test_spss_umlauts_dtype_backend.<locals>.<dictcomp>)
r   r   r   r.   importorskipZpandas.arraysr3   columnsr   r   )r   r2   r   r   r   r7   r   test_spss_umlauts_dtype_backendU   s    
r<   c               	   C   s0   d} t jt| d tjddd W 5 Q R X d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r,   testnumpy)r2   )r.   r/   
ValueErrorr   r   )msgr   r   r   test_invalid_dtype_backendk   s    rA   )pathlibr   r>   r    r.   Zpandasr   Zpandas._testingZ_testingr   r:   r   markfilterwarningsZparametrizer   r#   r&   r+   r1   r<   rA   r   r   r   r   <module>   s"   







