o
    5ct                  	   @   s   d dl 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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)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r%J t|t|ks/J t|t|kr9J d S )Nr   ArrowPeriodTypeDM)(pandas.core.arrays.arrow.extension_typesr   freqhash)r   p1p2p3 r   b/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/arrays/period/test_arrow_compat.pytest_arrow_extension_type   s   r   z
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   r	   r   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   

r3   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-   r	   r   r.   aT)ignore_index)r   r   r   r0   r1   	DataFramer   tabler!   fieldr   	to_pandasdtyper   tmassert_frame_equalconcat_tablesconcat)r   r2   dfr7   r)   table2r*   r   r   r   test_arrow_table_roundtripH   s   

rA   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   r	   r   r4   r   )schema)r   r   r   r0   r6   r   r7   r!   r8   r   chunked_arraycolumnrB   r9   r:   r   r;   r<   )r   r2   r?   r7   r)   r   r   r    test_arrow_load_from_zero_chunks[   s   
rE   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-   Hr   r.   r4   )r   r0   r1   r6   r   r7   replace_schema_metadatarB   metadatar9   r!   r:   r   r;   r<   )r2   r?   r7   r)   r   r   r   +test_arrow_table_roundtrip_without_metadatam   s   

rI   )r%   pandas.core.dtypes.dtypesr   pandasr0   pandas._testing_testingr;   pandas.core.arraysr   r   importorskipr   r   markparametrize
date_ranger,   r3   rA   rE   rI   r   r   r   r   <module>   s$    
