o
    $jR                  	   @   s   d dl Zd dlZd dlZd dlmZ d dlm	Z	 dd Z
dd Zdd Zejd	ejjd
g dejddddgddgddd Zejd	ejjd
g dejddddgddgddd Zdd ZdS )    N)IntervalArrayc                  C   s   t d} ddlm} ||  d}||  d}||  d}|jdks'J ||ks-J ||ks3J t|t|ks=J t|t|ksGJ d S )Npyarrowr   ArrowIntervalTypeleftright)pytestimportorskip(pandas.core.arrays.arrow.extension_typesr   int64closedhash)par   p1Zp2Zp3 r   s/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.pytest_arrow_extension_type	   s   
r   c                  C   s  t d} ddlm} tjddddj}| |}t|j|s!J |jj	|j	ks*J |jj
|  ks4J |jd| jg dd	d
sFJ |jd| jg dd	d
sXJ | dd tddD }|j|smJ | j||jd
}||s|J t jtdd | j|dd
 W d    n1 sw   Y  t jtdd | j|||  dd
 W d    d S 1 sw   Y  d S )Nr   r   r         )freqr   )r            r   typer   )r   r   r   r   c                 S   s   g | ]	}||d  dqS )r   r   r   r   ).0ir   r   r   
<listcomp>'   s    z$test_arrow_array.<locals>.<listcomp>z&Not supported to convert IntervalArray)matchfloat64)r   r	   r
   r   pdZinterval_rangearray
isinstancer   r   subtyper   storagefieldequalsrangeZraises	TypeErrorr    )r   r   Z	intervalsresultexpectedr   r   r   test_arrow_array   s&   

$$"r,   c                  C   s  t d} ddlm} tg d}d |d< | |}t|j|s#J |jj	|j	ks,J |jj
|  ks6J | jg ddd}| jg d	dd}|jd
|sSJ |jd|s^J dddd d ddddg}| jj|tg dd}|j|sJ d S )Nr   r   r                 ?       @      @r   )r.   Nr0   r    r   )r/   Nr1   r   r   r.   r/   r   r0   r1   )FTF)mask)r   r	   r
   r   r   from_breaksr"   r#   r   r   r$   r    r%   r&   r'   ZStructArrayZfrom_pandasnp)r   r   arrr*   r   r   valsr+   r   r   r   test_arrow_array_missing6   s$   

r7   z=ignore:Passing a BlockManager to DataFrame:DeprecationWarningbreaksr-   Z2017r   D)Zperiodsr   floatzdatetime64[ns])Zidsc           	      C   s   t d}ddlm} t| }d |d< td|i}||}t	|
dj|s+J | }t	|d jtjs:J t|| |||g}| }tj||gdd}t|| |j|jg |djdg|jd	}| }t||dd  d S )
Nr   r   r   r   aT)Zignore_indexr   )schema)r   r	   r
   r   r   r3   r!   	DataFrametabler#   r&   r   	to_pandasdtypeIntervalDtypetmassert_frame_equalZconcat_tablesconcatchunked_arraycolumnr<   )	r8   r   r   r5   dfr>   r*   Ztable2r+   r   r   r   test_arrow_table_roundtripS   s&   
	

rH   c                 C   sz   t d}t| }d |d< td|i}||}| }|jj	d u s&J |
 }t|d jtjs5J t|| d S )Nr   r   r;   )r   r	   r   r3   r!   r=   r>   Zreplace_schema_metadatar<   metadatar?   r#   r@   rA   rB   rC   )r8   r   r5   rG   r>   r*   r   r   r   +test_arrow_table_roundtrip_without_metadataw   s   
	

rJ   c                  C   s   t d} | ddddddg}tjtddd}||}tj	tjg d	dd
dd}t
|| || |g}t
|| d S )Nr   r   r   r   r   r   Zneither)r   )r   r   r   )r@   )r   r	   r"   r!   rA   r4   r@   Z__from_arrow__r   r3   rB   Zassert_extension_array_equalrE   )r   r5   r@   r*   r+   r   r   r   %test_from_arrow_from_raw_struct_array   s   

rK   )numpyr4   r   Zpandasr!   Zpandas._testingZ_testingrB   Zpandas.core.arraysr   r   r,   r7   markfilterwarningsZparametrizeZ
date_rangerH   rJ   rK   r   r   r   r   <module>   s6    