o
    ҷh                  
   @   s   d dl Z d dlmZ d dlmZ d dlZd dlmZ	 d dl
mZmZ e jdddZdd	 Ze jje d
de jdejddddfejdddddfgdd Zdd Zdd Zdd Zdd ZdS )    N)pa_version_under10p0)PeriodDtype)PeriodArrayperiod_arraypyarrowz1.0.1)
minversionc                  C   sv   ddl m}  | d}| d}| d}|jdksJ ||ksJ ||ks%J t|t|ks/J t|t|ks9J d S )Nr   ArrowPeriodTypeDM)(pandas.core.arrays.arrow.extension_typesr	   freqhash)r	   p1p2p3 r   _/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/arrays/period/test_arrow_compat.pytest_arrow_extension_type   s   r   zWrong behavior with pyarrow 10)reasonz
data, freq2017   )periodsr
   A)r   r   zA-DECc                 C   s  ddl m} t| |d}t|}t|j|sJ |jj|ks!J tj|jdd}|j	
|s1J tj|t d}|
|sAJ d}tjt|d tj|dd W d    n1 s\w   Y  tjtd	d tj||d
d W d    d S 1 s}w   Y  d S )Nr   r   )r   int64typez5Not supported to convert PeriodArray to 'double' type)matchfloat64zdifferent 'freq'T)r   r	   r   paarray
isinstancer   r   asi8storageequalsr   pytestraises	TypeError)datar   r	   r   resultexpectedmsgr   r   r   test_arrow_array   s    	
"r-   c                  C   sv   ddl m}  tg ddd}tj|d< t|}t|j| s J |jj	dks(J tjg dd	d
}|j
|s9J d S )Nr   r         r   	period[D]dtyper/   r
   )r/   Nr   r   r   )r   r	   r   pdNaTr    r!   r"   r   r   r$   r%   )r	   arrr*   r+   r   r   r   test_arrow_array_missing>   s   

r7   c                  C   s   ddl m}  tg ddd}tj|d< td|i}t|}t|	dj
| s*J | }t|d jts8J t|| t||g}| }tj||gdd	}t|| d S )
Nr   r   r.   r1   r2   r/   aT)ignore_index)r   r	   r   r4   r5   	DataFramer    tabler"   fieldr   	to_pandasr3   r   tmassert_frame_equalconcat_tablesconcat)r	   r6   dfr;   r*   table2r+   r   r   r   test_arrow_table_roundtripK   s   

rD   c                  C   s   ddl m}  tg dd}td|i}t|}t|dj	| s#J tjtj
g |dj	dg|jd}| }t|d jtsCJ t|| d S )Nr   r   r1   r2   r8   r   )schema)r   r	   r   r4   r:   r    r;   r"   r<   r   chunked_arraycolumnrE   r=   r3   r   r>   r?   )r	   r6   rB   r;   r*   r   r   r    test_arrow_load_from_zero_chunks^   s   
rH   c                  C   sv   t g ddd} tj| d< td| i}t|}| }|jjd u s%J |	 }t
|d jts3J t|| d S )Nr.   z	period[H]r2   r/   r8   )r   r4   r5   r:   r    r;   replace_schema_metadatarE   metadatar=   r"   r3   r   r>   r?   )r6   rB   r;   r*   r   r   r   +test_arrow_table_roundtrip_without_metadatap   s   

rK   )r&   pandas.compat.pyarrowr   pandas.core.dtypes.dtypesr   pandasr4   pandas._testing_testingr>   pandas.core.arraysr   r   importorskipr    r   markxfailparametrize
date_ranger-   r7   rD   rH   rK   r   r   r   r   <module>   s(    