
    <>i$                     
   S SK r S SKrS SKJr  S SKr S SKrS SK
rS SKJs  Jr  \R                  " S 5      r\R"                  R                  \R$                  " \R&                  R(                  4S9\R*                  " \R,                  " \SS95      S 5       5       5       r\R"                  R                  \R"                  R1                  S\R2                  " 5       S4\R4                  " 5       S	4\R6                  " 5       S
4/5      \R"                  R1                  S\R8                  " 5       S4\R:                  " 5       S	4\R<                  " 5       S
4\R>                  " 5       S4/5      \R"                  R1                  S\R@                  " 5       S	S4\RB                  " 5       S
S4\RD                  " 5       SS4/5      \R"                  R1                  S/ SQ5      \R"                  R1                  S/ SQ5      \R"                  R1                  SSS/5      S 5       5       5       5       5       5       5       r#S r$S r%\R"                  R1                  SSS/5      S 5       r&\R"                  R1                  SSS/5      S 5       r'\R"                  R1                  SSS/5      \R"                  R1                  SS// SQ5      S  5       5       r(\R"                  R1                  SSS/5      \R"                  R1                  SS// SQ5      S! 5       5       r)\R"                  RT                  \R"                  R1                  S"\R2                  " 5       \R4                  " 5       \R6                  " 5       /5      \R"                  R1                  S#\R8                  " 5       \R:                  " 5       \R<                  " 5       \R>                  " 5       /5      \R"                  R1                  S$\R@                  " 5       S4\RB                  " 5       S4\RD                  " 5       S4/5      \R"                  R1                  SSS/5      S% 5       5       5       5       5       r+\R"                  R1                  S#\R8                  " 5       \R:                  " 5       \R<                  " 5       \R>                  " 5       /5      \R"                  R1                  SSS/5      S& 5       5       r,\R"                  R1                  S'\R8                  " 5       SS(4\R:                  " 5       S	S)4\R<                  " 5       S
S*4\R>                  " 5       SS+4/5      S, 5       r-g! \	 a    Sr GN4f = f)-    Nc                      [         R                  [         R                  -  [         R                  -  [         R                  -  [         R
                  -  [         R                  -  $ N)pastsigned_integer_typesunsigned_integer_typesfloating_types	bool_typestring_typelarge_string_type     n/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/interchange/test_interchange_spec.py<lambda>r       sU    !!##	$	 		 			
 		r   )suppress_health_check   sizec                 d   [         R                  " U /S/S9nUR                  5       nUR                  S5      R                  nX0R                  :X  d   e[        U[        5      (       d   eUR                  S5      R                  5       S:X  d   eUR                  S5      R                  S:X  d   eg )Nanamesr   r   )	patable__dataframe__
get_column
null_count
isinstanceintr   offset)arrr   dfr   s       r   test_dtypesr"   -   s     HHcU3%(E				Bq!,,J'''j#&&&&==  "a'''==""a'''r   zuint, uint_bw          zint, int_bw@   zfloat, float_bw, np_float_strfloat16float32float64unit)smsusnstz) zAmerica/New_Yorkz+07:30z-04:30	use_batchFTc
                    SSK J n
  / SQnU
" SSS5      U
" SSS5      U
" SSS5      /n[        R                  " [        R                  " XS	9[        R                  " XS	9[        R                  " [        R                  " U[        R
                  " U5      S
9US	9/ SQ/ SQ[        R                  " U[        R                  " XxS9S	9S.5      nU	(       a  UR                  5       S   nUR                  5       nSSSSSSS.nUR                  5        Hf  u  nnUR                  U5      nUR                  S:X  d   eUR                  5       S:X  d   eUR                  S:X  d   eUR
                  S   U:X  a  Mf   e   UR                  S5      R
                  S   U:X  d   eUR                  S5      R
                  S   U:X  d   eUR                  S5      R
                  S   U:X  d   eg )Nr   )datetime      r   i              typedtype)TFT)r   r0   c)r/   )r   br?   defr5   r6            r   r   r@   r?   )r3   r   r   arraynpr>   	timestamp
to_batchesr   itemsget_column_by_namer   r   r   )uintuint_bwr   int_bwfloatfloat_bwnp_float_strr*   r/   r1   dtr    dt_arrr   r!   columnscolumnkindcols                      r   test_mixed_dtypesrY   ;   s   < (
Cq"or$24B@FHH#)#("((3bhh|.DEER$&r||D'@A	
	E   "1%				B AABRbAG##F+~~"""xxzQzzQyy|t### (   %++A.'999  %++A.&888  %++A.(:::r   c                      [         R                  " S/ SQ05      n U R                  5       nUR                  S5      nUR                  S:X  d   e[        UR                  [        5      (       d   eg )Nr   )g      ?Ng       @r5   )r   r   r   rL   r   r   r   r   r!   rX   s      r   test_na_floatr\   {   s]    HHc+,-E				B



$C>>Qcnnc****r   c                      [         R                  " S/ SQ05      n U R                  5       nUR                  S5      n[        R
                  " [        SS9   UR                    S S S 5        g ! , (       d  f       g = f)Nr   r4   z.*categorical.*)match)r   r   r   rL   pytestraises	TypeErrordescribe_categoricalr[   s      r   test_noncategoricalrc      sW    HHc9%&E				B



$C	y(9	:   
;	:	:s   A++
A9c                 j   SS K n/ SQnUR                  " SUR                  " U5      R                  5       05      nU (       a  UR	                  5       S   nUR                  5       R                  S5      nUR                  n[        US   [        5      (       d   e[        US   [        5      (       d   eg )Nr   )	MonTuere   Wedre   ThuFriSatNweekday
is_orderedis_dictionary)
pyarrowr   rG   dictionary_encoderJ   r   rL   rb   r   bool)r1   r   r    r   rX   categoricals         r   test_categoricalrr      s    
HCHH	BHHSM3356E   "1%




2
29
=C**Kk,/6666k/2D9999r   c                    [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[         R                  " X/SS/S9nU (       a!  UR                  5       R	                  5       S   nUR                  5       nUR                  5       S	:X  d   eUR                  5       S
:X  d   eU (       a  UR                  5       S:X  d   eOUR                  5       S	:X  d   e[        UR                  5       5      SS/:X  d   e[        UR                  S5      R                  5       5      [        UR                  S5      R                  5       5      :X  d   eg )N)r6   r6      )rt      d   )FlamingoParrotCow)HorsezBrittle stars	Centipeden_legsanimalsr   r   r6      r5   )r5   )r}   )r   chunked_arrayr   combine_chunksrJ   r   num_columnsnum_rows
num_chunkslistcolumn_namesselect_columnsselect_columns_by_name)r1   nr   r   r!   s        r   test_dataframer      s4   
)[12A
7@B 	CAHHaVHi#89E$$&113A6				B>>q   ;;=A}}!###}}!###!"x&;;;;!!$'44674
!!,/<<><   r   r   n_chunks))
   r   )   r   )r   ru   c                 2   [         R                  " S[        [        U5      5      05      nU (       a  UR	                  5       S   nUR                  5       n[        UR                  U5      5      n[        U5      U:X  d   e[        S U 5       5      U:X  d   eg )Nxr   c              3   @   #    U  H  oR                  5       v   M     g 7fr   )r   .0chunks     r   	<genexpr>%test_df_get_chunks.<locals>.<genexpr>   s     4VE~~V   )	r   r   r   rangerJ   r   
get_chunkslensumr1   r   r   r   r!   chunkss         r   test_df_get_chunksr      s     HHc4d,-.E  "1%				B"--)*Fv;("""4V44<<<r   c                 P   [         R                  " S[        [        U5      5      05      nU (       a  UR	                  5       S   nUR                  5       n[        UR                  S5      R                  U5      5      n[        U5      U:X  d   e[        S U 5       5      U:X  d   eg )Nr   r   c              3   @   #    U  H  oR                  5       v   M     g 7fr   r   r   s     r   r   )test_column_get_chunks.<locals>.<genexpr>   s     0zz||r   )
r   r   r   r   rJ   r   r   r   r   r   r   s         r   test_column_get_chunksr      s     HHc4d,-.E  "1%				B"--"--h78Fv;("""000D888r   rM   r   zfloat, np_float_strc           	         / SQSS//n[         R                  " / SQ[         R                  " U5      S9n[        R                  " [        R
                  " XPS9[        R
                  " XQS9[        R                  " XbS9S.5      nU(       a!  UR                  5       R                  5       S   nUR                  5       nUR                  5        H/  n	U	R                  5       S:X  d   eU	R                  5       S	:X  a  M/   e   UR                  S5      R                  S   S	:X  d   eUR                  S	5      R                  S   S:X  d   eUR                  S
5      R                  S   S
:X  d   eg )Nr4   rt   ru   )r5   r6   r   rt   ru   r=   r;   )r   r@   r?   r   r5   r6   )rH   rG   r>   r   r   r   r   rJ   r   get_columnsr   r   r   )
rM   r   rP   rR   r1   r    	arr_floatr   r!   rX   s
             r   test_get_columnsr      s5     q!f
C0FGIHH!!#1!!#0)0	
E $$&113A6				B~~xxzQ~~1$$$   ==!!!$)))==!!!$)))==!!!$)))r   c                    / SQn[         R                  " S[         R                  " X S905      nU(       a  UR                  5       S   nUR	                  5       nUR                  S5      nUR                  5       nUS   u  pxUR                  S:  d   eUR                  S:w  d   eUR                  5       u  pUS   S:X  d   eU	S:X  a  US   n[        R                  [        R                  [        R                  [        R                  S.U   n[        U5       HB  u  pUR!                  UR                  XS-  -  -   5      R"                  nX:X  a  M9   S	U S
35       e   g g )N)r   r5   r   r;   r   datar5   )r#   r$   r%   r&   r#   zBuffer at index z	 mismatch)r   r   rG   rJ   r   r   get_buffersbufsizeptr__dlpack_device__ctypesc_int8c_int16c_int32c_int64	enumeratefrom_addressvalue)r   r1   r    r   r!   rX   bufdataBuf	dataDtypedevice_bitwidthctypeidxtruthvals                   r   test_bufferr      sJ   
 CHHc288C234E  "1%				B
--
C
//
CVG??Q;;!))+IF Q<1{Q<}}	

  $C.JC$$W[[3a-3H%HIOOC<B#3C5	!BB< ) r   z indices_type, bitwidth, f_stringr?   r+   ilc                 z   [         R                  " U [         R                  " 5       5      n[         R                  " / SQU5      n[         R                  " SU05      nUR                  5       nUR                  S5      nUR                  S   S:X  d   eUR                  S   U:X  d   eUR                  S   U:X  d   eg )N)r   r@   NrA   r   r      r5   r6   )r   
dictionarystringrG   r   r   r   r>   )indices_typer   f_stringr<   r    r   r!   rX   s           r   test_categorical_dtyper     s     ==ryy{3D
((($
/CHHc3Z E				B
--
C99Q<299Q<8###99Q<8###r   ).r   
hypothesishhypothesis.strategies
strategiesstr_   numpyrH   ImportErrorrn   r   pyarrow.tests.strategiestestsr   deferred	all_typesmarksettingsHealthChecktoo_slowgivenarraysr"   parametrizeuint8uint16uint32int8int16int32int64r'   r(   r)   rY   r\   rc   rr   r   r   r   pandasr   r   r   r   r   r   <module>r      s  $   "   ' ' KK		 1==#9#9";<YQ	'(( ) = ( 	Q	b	b 	A	R	R	R	 #	r9%	r9%	r9%& !89KLudm4"; 5 M : 6";J+! udm4: 5: udm4 5* udm4&*-/JK= L 5= udm4&*-/JK9 L 59 
RXXZbiik2 	BGGIrxxz288:rxxz: 	y!	y!	y! udm4* 5 *0 	BGGIrxxz288:rxxz: udm4C 5CB &	As	R	R	R	)	$	$I  	Bs   U UU