
    JEfR              
          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                  j                  d      ej                  j                  dg d ej                   d	d
d      gddg      d               Zej                  j                  d      ej                  j                  dg d ej                   d	d
d      gddg      d               Zd Zy)    N)IntervalArrayc                  f   t        j                  d      } ddlm}  || j	                         d      } || j	                         d      } || j	                         d      }|j
                  dk(  sJ ||k(  sJ ||k7  sJ t        |      t        |      k(  sJ t        |      t        |      k7  sJ y )Npyarrowr   ArrowIntervalTypeleftright)pytestimportorskip(pandas.core.arrays.arrow.extension_typesr   int64closedhash)par   p1p2p3s        k/var/www/VTS_Report/venv/lib/python3.12/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                     t        j                  d      } ddlm} t	        j
                  ddd      j                  }| j                  |      }t        |j                  |      sJ |j                  j                  |j                  k(  sJ |j                  j                  | j                         k(  sJ |j                  j                  d      j                  | j                  g dd	
            sJ |j                  j                  d      j                  | j                  g dd	
            sJ | j                  t        dd      D cg c]
  }||dz   d c}      }|j                  j                  |      sJ | j                  ||j                  
      }|j                  |      sJ t        j                   t"        d      5  | j                  |d
       d d d        t        j                   t"        d      5  | j                  | || j%                         d      
       d d d        y c c}w # 1 sw Y   [xY w# 1 sw Y   y xY w)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;;!1!1111;;"((*,,,>>'..rxx7x/STTT>>(//G0TUUUxxeAqkJ!a!e4JKH>>  *** XXihmmX4F==""" 
y(P	Q ,
+, 
y(P	Q J
!22::<!HIJ J K, ,J Js   H3
H8)I8IIc                     t        j                  d      } ddlm} t	        j
                  g d      }d |d<   | j                  |      }t        |j                  |      sJ |j                  j                  |j                  k(  sJ |j                  j                  | j                         k(  sJ | j                  g dd      }| j                  g d	d      }|j                  j                  d
      j                  |      sJ |j                  j                  d      j                  |      sJ dddd d ddddg}| j                  j!                  |t#        j                  g d            }|j                  j                  |      sJ y )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   sW   			Y	'BJ

#
#$8
9CCFXXc]Ffkk#4555;;+++;;"**,... 88$985DHH%IH6E>>'..t444>>(//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                 0   t        j                  d      }ddlm} t	        j
                  |       }d |d<   t        j                  d|i      }|j                  |      }t        |j                  d      j                  |      sJ |j                         }t        |d   j                  t        j                        sJ t        j                   ||       |j#                  ||g      }|j                         }t        j$                  ||gd      }t        j                   ||       |j                  |j'                  g |j)                  d      j                        g|j*                  	      }|j                         }t        j                   ||dd        y )
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   sT    
		Y	'BJ

#
#F
+CCF	sCj	!BHHRLEekk#&++->???__FfSk'')9)9:::&"%uen-FFyy"b5H&(+ HH			"5<<?#7#7		89%,,  E __F&(1Q-0r   c                    t        j                  d      }t        j                  |       }d |d<   t	        j
                  d|i      }|j                  |      }|j                         }|j                  j                  J |j                         }t        |d   j                  t        j                        sJ t        j                  ||       y )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                     t        j                  d      } | j                  ddddddg      }t        j                  t        j                  d      d      }|j                  |      }t        j                  t        j                  g d	d
      d      }t        j                  ||       |j                  | j                  |g            }t        j                  ||       y )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 ##FH5!!""2"2C5"9:F##FH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   