
    MhR                        S SK rS SKrS SKrS SKJr  S SKJ	r	  S r
S rS r\R                  R                  S5      \R                  R                  S/ SQ\R                   " S	S
SS9/SS/S9S 5       5       r\R                  R                  S5      \R                  R                  S/ SQ\R                   " S	S
SS9/SS/S9S 5       5       rS rg)    N)IntervalArrayc                  n   [         R                  " S5      n SSKJn  U" U R	                  5       S5      nU" U R	                  5       S5      nU" U R	                  5       S5      nUR
                  S:X  d   eX#:X  d   eX$:w  d   e[        U5      [        U5      :X  d   e[        U5      [        U5      :w  d   eg )Npyarrowr   ArrowIntervalTypeleftright)pytestimportorskip(pandas.core.arrays.arrow.extension_typesr   int64closedhash)par   p1p2p3s        d/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.pytest_arrow_extension_typer   	   s    			Y	'BJ	288:v	.B	288:v	.B	288:w	/B998O88O88tBx8tBx    c                     [         R                  " S5      n SSKJn  [        R
                  " SSSS9R                  nU R                  U5      n[        UR                  U5      (       d   eUR                  R                  UR                  :X  d   eUR                  R                  U R                  5       :X  d   eUR                  R                  S5      R                  U R                  / SQS	S
95      (       d   eUR                  R                  S5      R                  U R                  / SQS	S
95      (       d   eU R                  [        SS5       Vs/ s H
  oDUS-   S.PM     sn5      nUR                  R                  U5      (       d   eU R                  X%R                  S
9nUR                  U5      (       d   e[         R                   " ["        SS9   U R                  USS
9  S S S 5        [         R                   " ["        SS9   U R                  X!" U R%                  5       S5      S
9  S S S 5        g s  snf ! , (       d  f       NZ= f! , (       d  f       g = f)Nr   r   r         )freqr   )r            r   typer	   )r   r   r   r   r   r	   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iexpecteds         r   test_arrow_arrayr2      s   			Y	'BJ!!!QQ/55IXXi Ffkk#45555;;!1!1111;;"((*,,,>>'..rxx7x/STTTT>>(//G0TUUUUxxeAqkJka!e4kJKH>>  **** XXimmX4F=="""" 
y(P	Q
+ 
R 
y(P	Q
!22::<!HI 
R	Q K 
R	Q 
R	Qs   H:H?%I?
I
Ic                  >   [         R                  " S5      n SSKJn  [        R
                  " / SQ5      nS US'   U R                  U5      n[        UR                  U5      (       d   eUR                  R                  UR                  :X  d   eUR                  R                  U R                  5       :X  d   eU R                  / SQSS9nU R                  / S	QSS9nUR                  R                  S
5      R                  U5      (       d   eUR                  R                  S5      R                  U5      (       d   eSSS.S S S.SSS./nU R                  R!                  U["        R                  " / SQ5      S9nUR                  R                  U5      (       d   eg )Nr   r   r                 ?       @      @r   )r5   Nr7   r"   r   )r6   Nr8   r   r	   r5   r6   r    r7   r8   )FTF)mask)r
   r   r   r   r   from_breaksr%   r&   r   r   r'   r"   r(   r)   r*   StructArrayfrom_pandasnp)r   r   arrr/   r   r	   valsr1   s           r   test_arrow_array_missingr@   6   sc   			Y	'BJ

#
#$8
9CCFXXc]Ffkk#45555;;+++;;"**,... 88$985DHH%IH6E>>'..t4444>>(//6666 s#%s#D
 ~~))$RXX>R5S)TH>>  ****r   z=ignore:Passing a BlockManager to DataFrame:DeprecationWarningbreaksr4   2017r   D)periodsr   floatzdatetime64[ns])idsc                 6   [         R                  " S5      nSSKJn  [        R
                  " U 5      nS US'   [        R                  " SU05      nUR                  U5      n[        UR                  S5      R                  U5      (       d   eUR                  5       n[        US   R                  [        R                  5      (       d   e[        R                   " Xd5        UR#                  XU/5      nUR                  5       n[        R$                  " XD/SS9n[        R                   " Xh5        UR                  UR'                  / UR)                  S5      R                  S9/UR*                  S	9nUR                  5       n[        R                   " XhSS 5        g )
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columnrJ   )	rA   r   r   r>   dfrL   r/   table2r1   s	            r   test_arrow_table_roundtriprX   S   sP    
		Y	'BJ

#
#F
+CCF	sCj	!BHHRLEekk#&++->????__FfSk'')9)9::::&%un-FFyy"5H&+ HH			"5<<?#7#7		89%,,  E __F&1Q-0r   c                    [         R                  " S5      n[        R                  " U 5      nS US'   [        R
                  " SU05      nUR                  U5      nUR                  5       nUR                  R                  b   eUR                  5       n[        US   R                  [        R                  5      (       d   e[        R                  " XS5        g )Nr   r   rH   )r
   r   r   r:   r#   rK   rL   replace_schema_metadatarJ   metadatarM   r&   rN   rO   rP   rQ   )rA   r   r>   rV   rL   r/   s         r   +test_arrow_table_roundtrip_without_metadatar\   w   s     
		Y	'B

#
#F
+CCF	sCj	!BHHRLE))+E<<  (((__FfSk'')9)9::::&%r   c                     [         R                  " S5      n U R                  SSS.SSS./5      n[        R                  " [
        R                  " S5      SS9nUR                  U5      n[        R                  " [
        R                  " / S	QSS
9SS9n[        R                  " X45        UR                  U R                  U/5      5      n[        R                  " X45        g )Nr   r   r   r    r   r   neither)r   )r   r   r   )rN   )r
   r   r%   r#   rO   r=   rN   __from_arrow__r   r:   rP   assert_extension_array_equalrT   )r   r>   rN   r/   r1   s        r   %test_from_arrow_from_raw_struct_arrayra      s     
		Y	'B
((Q+a!-DE
FCRXXg.yAE!!#&F((
'*9H ##F5!!""2"2C5"9:F##F5r   )numpyr=   r
   pandasr#   pandas._testing_testingrP   pandas.core.arraysr   r   r2   r@   markfilterwarningsparametrize
date_rangerX   r\   ra    r   r   <module>rl      s        ,  J:+: C 2==EF	"#  
118 C 2==EF	"#  
&&"6r   