
    EgR              
          d dl Zd dlZd dlZd dlmZ d dlm	Z	 d Z
d Zd Zej                            d          ej                            dg d ej        d	d
d          gddg          d                         Zej                            d          ej                            dg d ej        d	d
d          gddg          d                         Zd ZdS )    N)IntervalArrayc                     t          j        d          } 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    sJ d S )Npyarrowr   ArrowIntervalTypeleftright)pytestimportorskip(pandas.core.arrays.arrow.extension_typesr   int64closedhash)par   p1p2p3s        g/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.pytest_arrow_extension_typer   	   s    		Y	'	'BJJJJJJ		288::v	.	.B		288::v	.	.B		288::w	/	/B98888888888tBxx88tBxx    c                     t          j        d          } ddlm} t	          j        ddd          j        }|                     |          }t          |j        |          sJ |j        j	        |j	        k    sJ |j        j
        |                                 k    sJ |j                            d                              |                     g dd	
                    sJ |j                            d                              |                     g dd	
                    sJ |                     d t          dd          D                       }|j                            |          sJ |                     ||j        
          }|                    |          sJ t          j        t"          d          5  |                     |d
           d d d            n# 1 swxY w Y   t          j        t"          d          5  |                     | ||                                 d          
           d d d            d S # 1 swxY w Y   d S )Nr   r   r         )freqr   )r            r   typer	   )r   r   r   r   c                     g | ]
}||d z   dS )r   r   r	    ).0is     r   
<listcomp>z$test_arrow_array.<locals>.<listcomp>'   s$    JJJ!a!e44JJJr   z&Not supported to convert IntervalArray)matchfloat64)r
   r   r   r   pdinterval_rangearray
isinstancer   r   subtyper   storagefieldequalsrangeraises	TypeErrorr'   )r   r   	intervalsresultexpecteds        r   test_arrow_arrayr6      s   		Y	'	'BJJJJJJ!!QQ///5IXXi  Ffk#455555;!11111;"((**,,,,>''..rxx7x/S/STTTTT>((//G0T0TUUUUUxxJJeAqkkJJJKKH>  ***** XXihmX44F==""""" 
y(P	Q	Q	Q , ,
+++, , , , , , , , , , , , , , , 
y(P	Q	Q	Q J J
!2!22::<<!H!HIIIJ J J J J J J J J J J J J J J J J Js$   G%%G),G)4IIIc                     t          j        d          } ddlm} t	          j        g d          }d |d<   |                     |          }t          |j        |          sJ |j        j	        |j	        k    sJ |j        j
        |                                 k    sJ |                     g dd          }|                     g d	d          }|j                            d
                              |          sJ |j                            d                              |          sJ dddd d ddddg}| j                            |t#          j        g d                    }|j                            |          sJ d S )Nr   r   r                 ?       @      @r   )r9   Nr;   r'   r   )r:   Nr<   r   r	   r9   r:   r!   r;   r<   )FTF)mask)r
   r   r   r   r   from_breaksr*   r+   r   r   r,   r'   r-   r.   r/   StructArrayfrom_pandasnp)r   r   arrr4   r   r	   valsr5   s           r   test_arrow_array_missingrD   6   s   		Y	'	'BJJJJJJ

#$8$8$8
9
9CCFXXc]]Ffk#455555;++++;"**,,.... 88$$$9855DHH%%%IH66E>''..t44444>((//66666 s##%%s##D
 ~))$RX>R>R>R5S5S)TTH>  *******r   z=ignore:Passing a BlockManager to DataFrame:DeprecationWarningbreaksr8   2017r   D)periodsr   floatzdatetime64[ns])idsc                 \   t          j        d          }ddlm} t	          j        |           }d |d<   t          j        d|i          }|                    |          }t          |
                    d          j        |          sJ |                                }t          |d         j        t          j                  sJ t          j        ||           |                    ||g          }|                                }t          j        ||gd          }t          j        ||           |                    |                    g |                    d          j                  g|j        	          }|                                }t          j        ||dd                    d S )
Nr   r   r   r   aT)ignore_indexr   )schema)r
   r   r   r   r   r>   r(   	DataFrametabler+   r.   r   	to_pandasdtypeIntervalDtypetmassert_frame_equalconcat_tablesconcatchunked_arraycolumnrN   )	rE   r   r   rB   dfrP   r4   table2r5   s	            r   test_arrow_table_roundtripr\   S   s    
	Y	'	'BJJJJJJ

#F
+
+CCF	sCj	!	!BHHRLLEekk#&&+->?????__FfSk')9:::::&"%%%uen--FFy"b555H&(+++ HH			"5<<??#7		8	89%,   E __F&(1Q3-00000r   c                    t          j        d          }t          j        |           }d |d<   t	          j        d|i          }|                    |          }|                                }|j        j	        J |
                                }t          |d         j        t          j                  sJ t          j        ||           d S )Nr   r   rL   )r
   r   r   r>   r(   rO   rP   replace_schema_metadatarN   metadatarQ   r+   rR   rS   rT   rU   )rE   r   rB   rZ   rP   r4   s         r   +test_arrow_table_roundtrip_without_metadatar`   w   s     
	Y	'	'B

#F
+
+CCF	sCj	!	!BHHRLLE))++E< (((__FfSk')9:::::&"%%%%%r   c                     t          j        d          } |                     ddddddg          }t          j        t          j        d          d          }|                    |          }t          j	        t          j        g d	d
          d          }t          j        ||           |                    |                     |g                    }t          j        ||           d S )Nr   r   r   r!   r   r   neither)r   )r   r   r   )rR   )r
   r   r*   r(   rS   rA   rR   __from_arrow__r   r>   rT   assert_extension_array_equalrX   )r   rB   rR   r4   r5   s        r   %test_from_arrow_from_raw_struct_arrayre      s     
	Y	'	'B
((Q++a!-D-DE
F
FCRXg..yAAAE!!#&&F(
'***9  H #FH555!!""2"2C5"9"9::F#FH55555r   )numpyrA   r
   pandasr(   pandas._testing_testingrT   pandas.core.arraysr   r   r6   rD   markfilterwarningsparametrize
date_ranger\   r`   re   r"   r   r   <module>ro      s                  , , , , , ,      J J J:+ + +: C  =2=EEEF	"#   
1 1  18 C  =2=EEEF	"#   
& &  &"6 6 6 6 6r   