
    z-Phh$                     
   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        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     o/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/interchange/test_interchange_spec.py<lambda>r       sI    !#	$	 		 			
 		 r      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   r/   c)r.   )r   br>   defr4   r5            r   r   r?   r>   )r2   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.   r0   dtr   dt_arrr   r    columnscolumnkindcols                      r   test_mixed_dtypesrX   :   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       @r4   )r   r   r   rK   r   r   r   r   r    rW   s      r   test_na_floatr[   z   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   r3   z.*categorical.*)match)r   r   r   rK   pytestraises	TypeErrordescribe_categoricalrZ   s      r   test_noncategoricalrb      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Tuerd   Wedrd   ThuFriSatNweekday
is_orderedis_dictionary)
pyarrowr   rF   dictionary_encoderI   r   rK   ra   r   bool)r0   r   r   r   rW   categoricals         r   test_categoricalrq      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)r5   r5      )rs      d   )FlamingoParrotCow)HorsezBrittle stars	Centipeden_legsanimalsr   r   r5      r4   )r4   )r|   )r   chunked_arrayr   combine_chunksrI   r   num_columnsnum_rows
num_chunkslistcolumn_namesselect_columnsselect_columns_by_name)r0   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   rt   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   rangerI   r   
get_chunkslensumr0   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   rI   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   rL   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 )Nr3   rs   rt   )r4   r5   r   rs   rt   r<   r:   )r   r?   r>   r   r4   r5   )rG   rF   r=   r   r   r~   r   rI   r   get_columnsr   r   r   )
rL   r   rO   rQ   r0   r   	arr_floatr   r    rW   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   r4   r   r:   r   datar4   )r"   r#   r$   r%   r"   zBuffer at index z	 mismatch)r   r   rF   rI   r   r   get_buffersbufsizeptr__dlpack_device__ctypesc_int8c_int16c_int32c_int64	enumeratefrom_addressvalue)r   r0   r   r   r    rW   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?   Nr@   r   r      r4   r5   )r   
dictionarystringrF   r   r   r   r=   )indices_typer   f_stringr;   r   r   r    rW   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^   numpyrG   ImportErrorrm   r   pyarrow.tests.strategiestestsr   deferred	all_typesmarkgivenarraysr!   parametrizeuint8uint16uint32int8int16int32int64r&   r'   r(   rX   r[   rb   rq   r   r   r   pandasr   r   r   r   r   r   <module>r      s!  $      " " " " " "    	BBB     ' ' ' ' ' ' ' ' ' BK 	 		 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    ##