o
    d.                     @   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   M/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/io/test_spss.py<lambda>   s    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g di}t |d |d< t|| t j|d	d}t dg d
i}t|| d S )Nr	   r
   r   umlauts.savTr   var1)   the ä umlautu   the ü umlautr(   u   the ö umlautFr   g       @r   g      @r   r!   r   r   r   test_spss_umlauts<   s   
r*   c                 C   sP   | dddd}t jtdd tj|dd W d    d S 1 s!w   Y  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   "r0   c                    s   | dddd}t j|d|d}t jdg did	d
|dkr8tdddlm  t  fddjD t	| d S )Nr	   r
   r   r&   F)r   dtype_backendr'   r)   ZInt64)ZdtypeZpyarrowr   )ArrowExtensionArrayc                    s$   i | ]}| j | d dqS )T)Zfrom_pandas)array).0colr2   r   par   r   
<dictcomp>b   s    z3test_spss_umlauts_dtype_backend.<locals>.<dictcomp>)
r   r   r   r-   importorskipZpandas.arraysr2   columnsr   r   )r   r1   r   r   r   r6   r   test_spss_umlauts_dtype_backendU   s   
r;   c                  C   sF   d} t jt| d tjddd W d    d S 1 sw   Y  d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r+   testnumpy)r1   )r-   r.   
ValueErrorr   r   )msgr   r   r   test_invalid_dtype_backendk   s
   "r@   )pathlibr   r=   r   r-   Zpandasr   Zpandas._testingZ_testingr   r9   r   markfilterwarningsZparametrizer   r"   r%   r*   r0   r;   r@   r   r   r   r   <module>   s$    







