o
    'i$                     @   sB  d dl Z d dlZd dlmZ d dlZzd dlZW n e	y#   dZY nw d dl
Zd dlm  mZ edd Zejjejejjfdeejedddd Zejjejd	e d
fe dfe dfgejde d
fe dfe dfe dfgejde  ddfe! ddfe" ddfgejdg dejdg dejdddgdd Z#dd Z$dd Z%ejdddgd d! Z&ejdddgd"d# Z'ejdddgejd$d%gg d&d'd( Z(ejdddgejd$d%gg d&d)d* Z)ejj*ejd+e e e gejd,e e e e gejd-e  dfe! dfe" dfgejdddgd.d/ Z+ejd,e e e e gejdddgd0d1 Z,ejd2e d
d3fe dd4fe dd5fe dd6fgd7d8 Z-dS )9    Nc                   C   s$   t jt jB t jB t jB t jB t jB S N)pastsigned_integer_typesunsigned_integer_typesfloating_types	bool_typestring_typelarge_string_type r
   r
   m/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/pyarrow/tests/interchange/test_interchange_spec.py<lambda>    s   r   )suppress_health_check   sizec                 C   sp   t j| gdgd}| }|dj}|| jksJ t|ts!J |d dks,J |djdks6J d S )Nanamesr   r   )	patable__dataframe__
get_column
null_count
isinstanceintr   offset)arrr   dfr   r
   r
   r   test_dtypes-   s   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
                 C   sh  ddl m }
 g d}|
ddd|
ddd|
dddg}ttj|| d	tj||d	tjtj|t|d
|d	g dg dtj|tj||dd	d}|	rT| d }| }ddddddd}|	 D ](\}}|
|}|jdksuJ | dks}J |jdksJ |jd |ksJ qe|
djd |ksJ |
djd |ksJ |
djd |ksJ d S )Nr   )datetime      r   i              typedtype)TFT)r   r,   c)r+   )r   br:   defr0   r1            r   r   r;   r:   )r.   r   r   arraynpr9   	timestamp
to_batchesr   itemsget_column_by_namer   r   r   )uintuint_bwr   int_bwfloatfloat_bwnp_float_strr&   r+   r-   dtr   dt_arrr   r   columnscolumnkindcolr
   r
   r   test_mixed_dtypes;   s2   "

rT   c                  C   sF   t dg di} |  }|d}|jdksJ t|jts!J d S )Nr   )g      ?Ng       @r0   )r   r   r   rG   r   r   r   r   r   rS   r
   r
   r   test_na_float{   s
   
rV   c                  C   s^   t dg di} |  }|d}tjtdd |j W d    d S 1 s(w   Y  d S )Nr   r/   z.*categorical.*)match)r   r   r   rG   pytestraises	TypeErrordescribe_categoricalrU   r
   r
   r   test_noncategorical   s   
"r\   c                 C   st   dd l }g d}|d|| i}| r| d }| d}|j}t|d t	s/J t|d t	s8J d S )Nr   )	MonTuer]   Wedr]   ThuFriSatNweekday
is_orderedis_dictionary)
pyarrowr   rB   dictionary_encoderE   r   rG   r[   r   bool)r-   r   r   r   rS   categoricalr
   r
   r   test_categorical   s   rj   c                 C   s   t g dg dg}t g dg dg}t j||gddgd}| r+|  d }| }| d	ks7J | d
ks?J | rJ| dksIJ n| d	ksRJ t	|
 ddgks^J t	|d
 t	|d
 ksrJ d S )N)r1   r1      )rk      d   )FlamingoParrotCow)HorsezBrittle stars	Centipeden_legsanimalsr   r   r1      r0   )r0   )rt   )r   chunked_arrayr   combine_chunksrE   r   num_columnsnum_rows
num_chunkslistcolumn_namesselect_columnsselect_columns_by_name)r-   nr   r   r   r
   r
   r   test_dataframe   s"   
r   r   n_chunks))
   r   )   r   )r   rl   c                 C   sj   t dtt|i}| r| d }| }t||}t||ks&J tdd |D |ks3J d S )Nxr   c                 s       | ]}|  V  qd S r   )ry   .0chunkr
   r
   r   	<genexpr>       z%test_df_get_chunks.<locals>.<genexpr>)	r   r   r{   rangerE   r   
get_chunkslensumr-   r   r   r   r   chunksr
   r
   r   test_df_get_chunks   s   r   c                 C   sp   t dtt|i}| r| d }| }t|d|}t||ks)J t	dd |D |ks6J d S )Nr   r   c                 s   r   r   r   r   r
   r
   r   r      r   z)test_column_get_chunks.<locals>.<genexpr>)
r   r   r{   r   rE   r   r   r   r   r   r   r
   r
   r   test_column_get_chunks   s   r   rH   r   zfloat, np_float_strc           
      C   s   g dddgg}t jg dt |d}ttj|| dtj||dtj||dd}|r6|  d }| }|	 D ]}	|	
 dksHJ |	 d	ksPJ q>|djd d	ks]J |d	jd dksiJ |d
jd d
ksuJ d S )Nr/   rk   rl   )r0   r1   r   rk   rl   r8   r6   )r   r;   r:   r   r0   r1   )rC   rB   r9   r   r   rv   rw   rE   r   get_columnsr   rz   r   )
rH   r   rK   rM   r-   r   	arr_floatr   r   rS   r
   r
   r   test_get_columns   s"   r   c                 C   s  g d}t dt j|| di}|r| d }| }|d}| }|d \}}|jdks2J |jdks9J |	 \}	}
|d dksGJ |	dkr~|d }t
jt
jt
jt
jd| }t|D ]\}}||j||d   j}||ks}J d	| d
q`d S d S )N)r   r0   r   r6   r   datar0   )r   r    r!   r"   r   zBuffer at index z	 mismatch)r   r   rB   rE   r   r   get_buffersbufsizeptr__dlpack_device__ctypesc_int8c_int16c_int32c_int64	enumeratefrom_addressvalue)r   r-   r   r   r   rS   bufdataBuf	dataDtypedevice_bitwidthctypeidxtruthvalr
   r
   r   test_buffer   s4   
	r   z indices_type, bitwidth, f_stringr:   r'   ilc                 C   sz   t | t  }t g d|}t d|i}| }|d}|jd dks)J |jd |ks2J |jd |ks;J d S )N)r   r;   Nr<   r   r      r0   r1   )r   
dictionarystringrB   r   r   r   r9   )indices_typer   f_stringr7   r   r   r   rS   r
   r
   r   test_categorical_dtype  s   	
r   ).r   
hypothesishhypothesis.strategies
strategiesstrX   numpyrC   ImportErrorrf   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%   rT   rV   r\   rj   r   r   r   pandasr   r   r   r
   r
   r
   r   <module>   s   






%






!