
    Pi$                     F
   d dl Z d dlZd dlmZ d dlZ	 d dlZn# e	$ r dZY nw xY wd dl
Zd dlmc mZ  ej        d           Zej        j         ej        ej        j        f           ej         ej        ed                    d                                     Zej        j        ej                            d ej                    df ej                    d	f ej                    d
fg          ej                            d ej                    df ej                    d	f ej                    d
f ej                    dfg          ej                            d ej                     d	df ej!                    d
df ej"                    ddfg          ej                            dg d          ej                            dg d          ej                            dddg          d                                                                                     Z#d Z$d Z%ej                            dddg          d             Z&ej                            dddg          d             Z'ej                            dddg          ej                            ddgg d          d                          Z(ej                            dddg          ej                            ddgg d          d!                         Z)ej        j*        ej                            d" ej                     ej                     ej                    g          ej                            d# ej                     ej                     ej                     ej                    g          ej                            d$ ej                     df ej!                    df ej"                    dfg          ej                            dddg          d%                                                             Z+ej                            d# ej                     ej                     ej                     ej                    g          ej                            dddg          d&                         Z,ej                            d' ej                    dd(f ej                    d	d)f ej                    d
d*f ej                    dd+fg          d,             Z-dS )-    Nc                      t           j        t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  S N)pastsigned_integer_typesunsigned_integer_typesfloating_types	bool_typestring_typelarge_string_type     /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pyarrow/tests/interchange/test_interchange_spec.py<lambda>r       sI    !#	$	 		 			
 		 r   )suppress_health_check   sizec                 t   t          j        | gdg          }|                                }|                    d          j        }|| j        k    sJ t          |t                    sJ |                    d                                          dk    sJ |                    d          j        dk    sJ d S )Nanamesr   r   )	patable__dataframe__
get_column
null_count
isinstanceintr   offset)arrr   dfr   s       r   test_dtypesr"   -   s     HcU3%(((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
                    ddl m }
 g d} |
ddd           |
ddd           |
ddd          g}t          j        t          j        || 	          t          j        ||	          t          j        t	          j        |t	          j        |          
          |	          g dg dt          j        |t          j        ||          	          d          }|	r|                                d         }|                                }ddddddd}|	                                D ]a\  }}|
                    |          }|j        dk    sJ |                                dk    sJ |j        dk    sJ |j        d         |k    sJ b|
                    d          j        d         |k    sJ |
                    d          j        d         |k    sJ |
                    d          j        d         |k    sJ d S )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bq"oorr$24B@FH#D)))#C((("(3bh|.D.DEEEERRR$$$&r|DR'@'@'@AAA	
 	
	 	E  &  ""1%					B AABRbAAG $ $##F++~""""xxzzQzQy|t#####  %%+A.'9999  %%+A.&8888  %%+A.(::::::r   c                      t          j        dg di          } |                                 }|                    d          }|j        dk    sJ t          |j        t                    sJ d S )Nr   )g      ?Ng       @r5   )r   r   r   rL   r   r   r   r   r!   rX   s      r   test_na_floatr\   {   sr    Hc+++,--E					B



$
$C>Qcnc*******r   c                      t          j        dg di          } |                                 }|                    d          }t	          j        t          d          5  |j         d d d            d S # 1 swxY w Y   d S )Nr   r4   z.*categorical.*)match)r   r   r   rL   pytestraises	TypeErrordescribe_categoricalr[   s      r   test_noncategoricalrc      s    Hc999%&&E					B



$
$C	y(9	:	:	: ! !  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   A22A69A6c                    dd l }g d} |j        d |j        |                                          i          }| r|                                d         }|                                                    d          }|j        }t          |d         t                    sJ t          |d         t                    sJ d S )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    
H
H
HCBH	HBHSMM33556 E  &  ""1%





2
29
=
=C*Kk,/66666k/2D9999999r   c                 &   t          j        g dg dg          }t          j        g dg dg          }t          j        ||gddg          }| r,|                                                                d         }|                                }|                                d	k    sJ |                                d
k    sJ | r|                                dk    sJ n|                                d	k    sJ t          |
                                          ddgk    sJ t          |                    d          
                                          t          |                    d          
                                          k    sJ d S )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      s   
)))[[[122A
777@@@B 	C 	CAHaVHi#8999E 7$$&&1133A6					B>>q    ;;==A $}}!#####}}!####!!""x&;;;;;!!$''4466774
!!,//<<>>< <      r   r   n_chunks))
   r   )   r   )r   ru   c                 r   t          j        dt          t          |                    i          }| r|                                d         }|                                }t          |                    |                    }t          |          |k    sJ t          d |D                       |k    sJ d S )Nxr   c              3   >   K   | ]}|                                 V  d S r   )r   .0chunks     r   	<genexpr>z%test_df_get_chunks.<locals>.<genexpr>   s,      44Eu~~444444r   )	r   r   r   rangerJ   r   
get_chunkslensumr1   r   r   r   r!   chunkss         r   test_df_get_chunksr      s     Hc4d,,-..E &  ""1%					B"--))**Fv;;(""""44V44444<<<<<<r   c                    t          j        dt          t          |                    i          }| r|                                d         }|                                }t          |                    d                              |                    }t          |          |k    sJ t          d |D                       |k    sJ d S )Nr   r   c              3   >   K   | ]}|                                 V  d S r   r   r   s     r   r   z)test_column_get_chunks.<locals>.<genexpr>   s*      00uzz||000000r   )
r   r   r   r   rJ   r   r   r   r   r   r   s         r   test_column_get_chunksr      s     Hc4d,,-..E &  ""1%					B"--""--h7788Fv;;(""""0000000D888888r   rM   r   zfloat, np_float_strc                    g dddgg}t          j        g dt          j        |                    }t          j        t          j        ||           t          j        ||          t          j        ||          d          }|r,|                                                                d         }|                                }|	                                D ]6}	|	
                                dk    sJ |	                                d	k    sJ 7|                    d          j        d         d	k    sJ |                    d	          j        d         dk    sJ |                    d
          j        d         d
k    sJ d S )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      s     99q!f
C0F0FGGGIH!#D111!#C000)%000	
 	
 E  7$$&&1133A6					B~~ % %xxzzQ~~1$$$$$ ==!!$))))==!!$))))==!!$))))))r   c                    g d}t          j        dt          j        ||           i          }|r|                                d         }|                                }|                    d          }|                                }|d         \  }}|j        dk    sJ |j        dk    sJ |	                                \  }	}
|d         dk    sJ |	dk    r|d         }t          j        t          j        t          j        t          j        d|         }t          |          D ]C\  }}|                    |j        ||dz  z  z             j        }||k    sJ d	| d
            Bd S d S )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      s   
 **CHc28Cc222344E &  ""1%					B
--

C
//

CVGY?Q;!))++IFA Q<1{{Q<}	
 

  $C.. 	C 	CJC$$W[3(a-3H%HIIOC%<<<!BC!B!B!B<<<< {	C 	Cr   z indices_type, bitwidth, f_stringr?   r+   ilc                 p   t          j        | t          j                              }t          j        g d|          }t          j        d|i          }|                                }|                    d          }|j        d         dk    sJ |j        d         |k    sJ |j        d         |k    sJ d S )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     =ry{{33D
(((($
/
/CHc3Z  E					B
--

C9Q<29Q<8####9Q<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      sC  $      " " " " " "    	BBB     ' ' ' ' ' ' ' ' ' BK 	 		 1=#9";<<<YQ	'	'	'((( ( )( =< ( 	Q	b	b  	A	R	R	R	  #	r9%	r9%	r9%&  !8!8!899KKKLLudm44"; "; 54 ML :9    6";J+ + +! ! ! udm44: : 54: udm44  54* udm44&*-/J/J/JKK= = LK 54= udm44&*-/J/J/JKK9 9 LK 549 
XRXZZibikk2  	GBGIIxrxzz828::xrxzz:  	y!	y!	y!  udm44* * 54    *0 	GBGIIxrxzz828::xrxzz:  udm44C C 54 CB &	As	R	R	R	) 	$ 	$ 	$ 	$ 	$s    ##