
    I ja                        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        ڃ/root/GenerationalWealth/GenerationalWealth/venv/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)	using_nan_is_nar   r   arrr/   r   r	   valsr1   s	            r   test_arrow_array_missingrA   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columnrK   )	rB   r   r   r?   dfrM   r/   table2r1   s	            r   test_arrow_table_roundtriprY   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   rI   )r
   r   r   r:   r#   rL   rM   replace_schema_metadatarK   metadatarN   r&   rO   rP   rQ   rR   )rB   r   r?   rW   rM   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   )rO   )r
   r   r%   r#   rP   r=   rO   __from_arrow__r   r:   rQ   assert_extension_array_equalrU   )r   r?   rO   r/   r1   s        r   %test_from_arrow_from_raw_struct_arrayrb      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_testingrQ   pandas.core.arraysr   r   r2   rA   markfilterwarningsparametrize
date_rangerY   r]   rb    r   r   <module>rm      s        ,  J:+: C 2==EF	"#  
118 C 2==EF	"#  
&&"6r   