U
    âÇ-e§!  ã                   @   sÖ  d dl Z d dlZd dlmZ d dlZd dlZ	d dl
m  mZ d dlZe dd„ ¡Ze ejedd¡dd„ ƒZ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
ejfe	 ¡ dejfe	 ¡ dejfg¡ej dddddg¡ej dddddg¡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d(d)d*g¡d+d,„ ƒƒZ$ej dddg¡ej d&d'gd(d)d*g¡d-d.„ ƒƒZ%ejj&ej d/e	 ¡ e	 ¡ e	 ¡ g¡ej d0e	 ¡ e	 ¡ e	 ¡ e	 ¡ g¡ej d1e	 ¡ ejfe	 ¡ ejfe	 ¡ ejfg¡ej dddg¡d2d3„ ƒƒƒƒƒZ'ej d0e	 ¡ e	 ¡ e	 ¡ e	 ¡ g¡ej dddg¡d4d5„ ƒƒZ(dS )6é    Nc                   C   s$   t jt jB t jB t jB t jB t jB S ©N)ÚpastZsigned_integer_typesZunsigned_integer_typesZfloating_typesZ	bool_typeZstring_typeZlarge_string_type© r   r   úp/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pyarrow/tests/interchange/test_interchange_spec.pyÚ<lambda>   s    ÿþýüûr   é   ©Úsizec                 C   sp   t j| gdgd}| ¡ }| d¡j}|| jks4t‚t|tƒsBt‚| d¡ ¡ dksXt‚| d¡j	dkslt‚d S )NÚa©Únamesr   r   )
ÚpaÚtableÚ__dataframe__Ú
get_columnÚ
null_countÚAssertionErrorÚ
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ÚunitÚsÚmsÚusÚnsÚtzÚ zAmerica/New_Yorkz+07:30z-04:30Ú	use_batchFTc
                 C   sp  ddl m }
 dddg}|
dddƒ|
ddd	ƒ|
ddd
ƒg}t tj|| dtj||dtjtj||d|ddddgdddgtj|tj||dddœ¡}|	r¨| ¡ d }| ¡ }dddddddœ}| ¡ D ]R\}}| 	|¡}|j
dksêt‚| ¡ dksút‚|jdks
t‚|jd |ksÊt‚qÊ| 	d¡jd |ks8t‚| 	d¡jd |ksRt‚| 	d¡jd |kslt‚d S )Nr   )Údatetimeé   é   r   i×  é   é   é   é   ©Útype©ÚdtypeTFr
   r#   Úc)r"   )r
   Úbr0   ÚdÚeÚfé   é   é   r1   )r%   r   r   ÚarrayÚnpÚ	timestampÚ
to_batchesr   ÚitemsÚget_column_by_namer   r   r	   r   r/   )ÚuintZuint_bwr   Zint_bwÚfloatZfloat_bwÚnp_floatr   r"   r$   Údtr   Zdt_arrr   r   ÚcolumnsÚcolumnÚkindÚcolr   r   r   Útest_mixed_dtypes6   s2    
"úÿ

rF   c                  C   sH   t  ddd dgi¡} |  ¡ }| d¡}|jdks4t‚t|jtƒsDt‚d S )Nr
   g      ð?g       @r&   )r   r   r   r=   r   r   r   r   ©r   r   rE   r   r   r   Útest_na_floatu   s
    
rH   c               	   C   sJ   t  ddddgi¡} |  ¡ }| d¡}tjtdd |j W 5 Q R X d S )Nr
   r&   r'   r   z.*categorical.*)Úmatch)r   r   r   r=   ÚpytestZraisesÚ	TypeErrorÚdescribe_categoricalrG   r   r   r   Útest_noncategorical}   s
    
rM   c              	   C   s‚   dd l }ddddddddd g	}| d| |¡ ¡ i¡}| rF| ¡ d }| ¡  d¡}|j}t|d	 t	ƒslt
‚t|d
 t	ƒs~t
‚d S )Nr   ÚMonÚTueÚWedÚThuÚFriÚSatÚweekdayZ
is_orderedZis_dictionary)Úpyarrowr   r8   Zdictionary_encoder;   r   r=   rL   r   Úboolr   )r$   r   r   r   rE   Zcategoricalr   r   r   Útest_categorical…   s    ÿrW   c                 C   sð   t  dddgdddgg¡}t  dddgdd	d
gg¡}t j||gddgd}| r^| ¡  ¡ d }| ¡ }| ¡ dksvt‚| ¡ dks†t‚| rœ| 	¡ dks¬t‚n| 	¡ dks¬t‚t
| ¡ ƒddgksÄt‚t
| d¡ ¡ ƒt
| d¡ ¡ ƒksìt‚d S )Nr'   é   é   éd   ZFlamingoZParrotZCowZHorsezBrittle starsZ	CentipedeZn_legsÚanimalsr   r   é   r&   )r&   )r[   )r   Úchunked_arrayr   Úcombine_chunksr;   r   Znum_columnsr   Únum_rowsÚ
num_chunksÚlistZcolumn_namesZselect_columnsZselect_columns_by_name)r$   Únr
   r   r   r   r   r   Útest_dataframe•   s"    ÿÿrc   r	   Ún_chunks)é
   r   )é   r   )rf   rY   c                 C   sj   t  dtt|ƒƒi¡}| r&| ¡ d }| ¡ }t| |¡ƒ}t|ƒ|ksLt‚t	dd„ |D ƒƒ|ksft‚d S )NÚxr   c                 s   s   | ]}|  ¡ V  qd S r   )r_   ©Ú.0Úchunkr   r   r   Ú	<genexpr>´   s     z%test_df_get_chunks.<locals>.<genexpr>)
r   r   ra   Úranger;   r   Ú
get_chunksÚlenr   Úsum©r$   r	   rd   r   r   Úchunksr   r   r   Útest_df_get_chunks«   s    rr   c                 C   sp   t  dtt|ƒƒi¡}| r&| ¡ d }| ¡ }t| d¡ |¡ƒ}t|ƒ|ksRt	‚t
dd„ |D ƒƒ|kslt	‚d S )Nrg   r   c                 s   s   | ]}|  ¡ V  qd S r   r   rh   r   r   r   rk   À   s     z)test_column_get_chunks.<locals>.<genexpr>)r   r   ra   rl   r;   r   r   rm   rn   r   ro   rp   r   r   r   Útest_column_get_chunks·   s    rs   r>   r   zfloat, np_floatc           
      C   sð   dddgddgg}t jdddddg|d}t tj|| dtj||dtj||ddœ¡}|rn| ¡  ¡ d	 }| ¡ }| ¡ D ]$}	|	 	¡ dks’t
‚|	 ¡ dks~t
‚q~| d	¡jd	 dks¼t
‚| d¡jd	 d	ksÔt
‚| d¡jd	 dksìt
‚d S )
Nr&   r'   r   rX   rY   r.   r,   )r
   r1   r0   r   )r9   r8   r   r   r]   r^   r;   r   Zget_columnsr	   r   r`   r   r/   )
r>   r   r?   r@   r$   r   Z	arr_floatr   r   rE   r   r   r   Útest_get_columnsÃ   s"    ýÿrt   c                 C   s  dddg}t  dt j|| di¡}|r2| ¡ d }| ¡ }| d¡}| ¡ }|d \}}|jdksft‚|j	dkstt‚| 
¡ \}	}
|d dkst‚|	dkrþ|d }tjtjtjtjdœ| }t|ƒD ]:\}}| |j	||d   ¡j}||ksÂtd	|› d
ƒ‚qÂd S )Nr   r&   éÿÿÿÿr
   r,   Údata)r   r   r   r   r   zBuffer at index z	 mismatch)r   r   r8   r;   r   r   Zget_buffersÚbufsizer   ZptrZ__dlpack_device__ÚctypesZc_int8Zc_int16Zc_int32Zc_int64Ú	enumerateZfrom_addressÚvalue)r   r$   r   r   r   rE   ÚbufZdataBufZ	dataDtypeZdeviceÚ_ZbitwidthÚctypeÚidxÚtruthÚvalr   r   r   Útest_bufferê   s0    

üûr   ))rx   Z
hypothesisÚhZhypothesis.strategiesÚ
strategiesÚstÚnumpyr9   rU   r   Zpyarrow.tests.strategiesÚtestsr   rJ   ÚdeferredZ	all_typesÚgivenZarraysr   ÚmarkZparametrizeZuint8Zuint16Zuint32Zint8Zint16Zint32Zint64Zfloat16Zfloat32Zfloat64rF   rH   rM   rW   rc   rr   rs   Zpandasrt   r   r   r   r   r   Ú<module>   s’   ÿ



ýþ



üÿýÿ%



 ÿ ÿýÿ ÿ