
    gh$                     T
   d dl Z d dlZd dlmZ d dlZ	 d dlZ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"                  j+                  d ej,                         df ej.                         df ej0                         d	fg      ej"                  j+                  d
 ej2                         df ej4                         df ej6                         d	f ej8                         dfg      ej"                  j+                  d ej:                         ddf ej<                         d	df ej>                         ddfg      ej"                  j+                  dg d      ej"                  j+                  dg d      ej"                  j+                  dddg      d                                                  Z d Z!d Z"ej"                  j+                  dddg      d        Z#ej"                  j+                  dddg      d        Z$ej"                  j+                  dddg      ej"                  j+                  ddgg d      d               Z%ej"                  j+                  dddg      ej"                  j+                  ddgg d      d                Z&ej"                  jN                  ej"                  j+                  d! ej,                          ej.                          ej0                         g      ej"                  j+                  d" ej2                          ej4                          ej6                          ej8                         g      ej"                  j+                  d# ej:                         df ej<                         df ej>                         dfg      ej"                  j+                  dddg      d$                                    Z(ej"                  j+                  d" ej2                          ej4                          ej6                          ej8                         g      ej"                  j+                  dddg      d%               Z)ej"                  j+                  d& ej2                         dd'f ej4                         dd(f ej6                         d	d)f ej8                         dd*fg      d+        Z*y# e	$ r dZY w xY w),    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     d/var/www/openai/venv/lib/python3.12/site-packages/pyarrow/tests/interchange/test_interchange_spec.py<lambda>r       sU    !!##	$	 		 			
 		r      sizec                 Z   t        j                  | gdg      }|j                         }|j                  d      j                  }|| j                  k(  sJ t        |t              sJ |j                  d      j                         dk(  sJ |j                  d      j                  dk(  sJ y )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
                    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|j                         d   }|j                         }ddddddd}|j                         D ]a  \  }}|j                  |      }|j                  dk(  sJ |j                         dk(  sJ |j                  dk(  sJ |j
                  d   |k(  raJ  |j                  d      j
                  d   |k(  sJ |j                  d      j
                  d   |k(  sJ |j                  d      j
                  d   |k(  sJ y )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q"or$24B@FHH#D)#C("((3bhh|.DEER$&r||DR'@A	
	E   "1%				B AABRbAG##F+~~"""xxzQzzQyy|t### (   %++A.'999  %++A.&888  %++A.(:::r   c                      t        j                  dg di      } | j                         }|j                  d      }|j                  dk(  sJ t        |j                  t              sJ y )Nr   )g      ?Ng       @r4   )r   r   r   rK   r   r   r   r   r    rW   s      r   test_na_floatr[   z   sZ    HHc+,-E				B



$C>>Qcnnc***r   c                      t        j                  dg di      } | j                         }|j                  d      }t	        j
                  t        d      5  |j                   d d d        y # 1 sw Y   y xY w)Nr   r3   z.*categorical.*)match)r   r   r   rK   pytestraises	TypeErrordescribe_categoricalrZ   s      r   test_noncategoricalrb      sW    HHc9%&E				B



$C	y(9	:   
;	:	:s   A,,A5c                 L   dd l }g d} |j                  d |j                  |      j                         i      }| r|j	                         d   }|j                         j                  d      }|j                  }t        |d   t              sJ t        |d   t              sJ y )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    
HCBHH	HBHHSM3356E   "1%




2
29
=C**Kk,/666k/2D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!|j                         j	                         d   }|j                         }|j                         d	k(  sJ |j                         d
k(  sJ | r|j                         dk(  sJ |j                         d	k(  sJ t        |j                               ddgk(  sJ t        |j                  d      j                               t        |j                  d      j                               k(  sJ y )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      s6   
)[12A
7@B 	CAHHaVHi#89E$$&113A6				B>>q   ;;=A}}!###}}!###!"x&;;;;!!$'44674
!!,/<<><   r   r   n_chunks))
   r   )   r   )r   rt   c                 "   t        j                  dt        t        |            i      }| r|j	                         d   }|j                         }t        |j                  |            }t        |      |k(  sJ t        d |D              |k(  sJ y )Nxr   c              3   <   K   | ]  }|j                           y wr   )r   .0chunks     r   	<genexpr>z%test_df_get_chunks.<locals>.<genexpr>   s     4VEu~~V   )	r   r   r   rangerI   r   
get_chunkslensumr0   r   r   r   r    chunkss         r   test_df_get_chunksr      s     HHc4d,-.E  "1%				B"--)*Fv;("""4V44<<<r   c                 @   t        j                  dt        t        |            i      }| r|j	                         d   }|j                         }t        |j                  d      j                  |            }t        |      |k(  sJ t        d |D              |k(  sJ y )Nr   r   c              3   <   K   | ]  }|j                           y wr   r   r   s     r   r   z)test_column_get_chunks.<locals>.<genexpr>   s     0uzz|r   )
r   r   r   r   rI   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   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!|j                         j                         d   }|j                         }|j                         D ],  }	|	j                         dk(  sJ |	j                         d	k(  r,J  |j                  d      j                  d   d	k(  sJ |j                  d	      j                  d   dk(  sJ |j                  d
      j                  d   d
k(  sJ y )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;     q!f
C0FGIHH!!#D1!!#C0)%0	
E $$&113A6				B~~xxzQ~~1$$$   ==!!!$)))==!!!$)))==!!!$)))r   c                    g d}t        j                  dt        j                  ||       i      }|r|j                         d   }|j	                         }|j                  d      }|j                         }|d   \  }}|j                  dkD  sJ |j                  dk7  sJ |j                         \  }	}
|d   dk(  sJ |	dk(  r|d   }t        j                  t        j                  t        j                  t        j                  d|   }t        |      D ]C  \  }}|j!                  |j                  ||dz  z  z         j"                  }||k(  r:J d	| d
        y y )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      sV   
 CHHc288Cc234E  "1%				B
--
C
//
CVGY??Q;;!))+IFA Q<1{Q<}}	

  $C.JC$$W[[3(a-3H%HIOOC%<B#3C5	!BB< ) r   z indices_type, bitwidth, f_stringr>   r*   ilc                 l   t        j                  | t        j                               }t        j                  g d|      }t        j                  d|i      }|j                         }|j                  d      }|j                  d   dk(  sJ |j                  d   |k(  sJ |j                  d   |k(  sJ y )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     ==ryy{3D
((($
/CHHc3Z E				B
--
C99Q<299Q<8###99Q<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  $   "   ' ' BKK		 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 
XRXXZibiik2 	GBGGIxrxxz8288:xrxxz: 	y!	y!	y! udm4* 5 *0 	GBGGIxrxxz8288:xrxxz: udm4C 5CB &	As	R	R	R	)	$	$G  	Bs   T T'&T'