U
    âÇ-e~  ã                   @   s  d dl Z d dlZd dlZd dlZd dlZd dlZde ¡ fde 	¡ fde 
¡ fde ¡ fde ¡ fde ¡ fde ¡ fd	e ¡ fd
e ¡ fde ¡ fde ¡ fgZdd„ Zdd„ Zej de¡dd„ ƒZdd„ Zejjdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Z d"d#„ Z!dS )$é    NÚi1Úi2Úi4Úi8Úu1Úu2Zu4Úu8Úf2Zf4Zf8c                  C   s"  t j dd¡} tj | ¡}|jdks(t‚|jg ks6t‚|j	dksDt‚|j
| j
ksTt‚|j| jksdt‚|jsnt‚|jsxt‚|  ¡ }d|j_tj |¡}|jržt‚tjj| dd}|jdks¼t‚|jdd	gksÎt‚| d
¡dksàt‚| d¡d	ksòt‚t |¡}|ƒ d k	st‚~|ƒ d kst‚d S )Né
   é   é   é(   F)ÚxÚy)Ú	dim_namesr   r   r   é   )ÚnpÚrandomÚrandnÚpaÚTensorÚ
from_numpyÚndimÚAssertionErrorr   ÚsizeÚshapeÚstridesZis_contiguousZ
is_mutableÚcopyÚflagsZ	writeableZdim_nameÚweakrefÚref)ÚdataÚtensorÚdata2Úwr© r%   úZ/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pyarrow/tests/test_tensor.pyÚtest_tensor_attrs*   s,    



r'   c                  C   sB   t j tj dd¡¡} t | ¡}|  ¡ }t | ¡|d ks>t	‚d S )Nr
   r   r   )
r   r   r   r   r   r   ÚsysÚgetrefcountÚto_numpyr   )r"   ÚnÚarrayr%   r%   r&   Útest_tensor_base_objectK   s    
r-   zdtype_str,arrow_typec                 C   s`   t  | ¡}dt j dd¡  |¡}tj |¡}|j|ks<t	‚t
|ƒ | ¡ }||k ¡ s\t	‚d S )Néd   r
   r   )r   Údtyper   r   Zastyper   r   r   Útyper   Úreprr*   Úall)Z	dtype_strZ
arrow_typer/   r!   r"   Úresultr%   r%   r&   Útest_tensor_numpy_roundtripR   s    
r4   c                 C   sn   t j dd¡}tj |¡}tj t	| ƒd¡}t 
|d¡}tj ||¡ | d¡ tj |¡}| |¡sjt‚d S )Nr
   r   zpyarrow-tensor-ipc-roundtripi   r   )r   r   r   r   r   r   ÚosÚpathÚjoinÚstrÚcreate_memory_mapÚipcÚwrite_tensorÚseekÚread_tensorÚequalsr   )Útmpdirr!   r"   r6   Úmmapr3   r%   r%   r&   Útest_tensor_ipc_roundtrip`   s    
rA   c                 C   sn   t j dd¡}tj |¡}| d }tj|dd}tj ||¡ | 	¡  tj 
tj|dd¡}| |¡sjt‚d S )Nr
   r   ztensor-compressed-fileÚgzip)Úcompression)r   r   r   r   r   r   Zoutput_streamr:   r;   Úcloser=   Zinput_streamr>   r   )Útempdirr!   r"   r6   Z
out_streamr3   r%   r%   r&   Ú$test_tensor_ipc_read_from_compressedo   s    rF   c           	      C   sÄ   t j dd¡}tj |d d d… ¡}t j ddd¡}tj |d d …d d d…d d …f ¡}tj t	| ƒd¡}t 
|d¡}||fD ]@}| d¡ tj ||¡ | d¡ tj |¡}| |¡s~t‚q~d S )Nr
   r   r   é   zpyarrow-tensor-ipc-stridedi   r   )r   r   r   r   r   r   r5   r6   r7   r8   r9   r<   r:   r;   r=   r>   r   )	r?   Zdata1Útensor1r#   Útensor2r6   r@   r"   r3   r%   r%   r&   Útest_tensor_ipc_strided   s    $

rJ   c                  C   s   dd„ } dd„ }t j ddd¡d d …d d d…d d …f }tj |¡}tj t  |¡¡}| ||ƒ | ¡ }d	|d
< tj t  |¡¡}|||ƒ d S )Nc                 S   s*   |   |¡st‚| |kst‚| |kr&t‚d S ©N©r>   r   ©ÚaÚbr%   r%   r&   Úeq”   s    ztest_tensor_equals.<locals>.eqc                 S   s*   |   |¡rt‚| |krt‚| |ks&t‚d S rK   rL   rM   r%   r%   r&   Úne™   s    ztest_tensor_equals.<locals>.ner
   rG   r   r   g      ð?)é	   r   r   )r   r   r   r   r   r   Zascontiguousarrayr   )rP   rQ   r!   rH   rI   r%   r%   r&   Útest_tensor_equals“   s    (
rS   c                	   C   s4   t jtdd ttj t d¡¡ƒ W 5 Q R X d S )NZ
unhashable)Úmatchr
   )	ÚpytestZraisesÚ	TypeErrorÚhashr   r   r   r   Úaranger%   r%   r%   r&   Útest_tensor_hashing¨   s    rY   c                  C   s8   t j dd¡} tj | ¡}tj |¡| jd ks4t	‚d S )Nr
   r   é   )
r   r   r   r   r   r   r:   Úget_tensor_sizer   r   )r!   r"   r%   r%   r&   Útest_tensor_size®   s    r\   c                 C   s‚   t j dd¡}tj |¡}tj |¡}tj	 
t| ƒd¡}t ||¡}tj ||¡ tj|dd}tj |¡ ¡ }t j ||¡ d S )Nr
   r   zpyarrow-tensor-ipc-read-tensorÚr)Úmode)r   r   r   r   r   r   r:   r[   r5   r6   r7   r8   r9   r;   Z
memory_mapr=   r*   ÚtestingZassert_equal)r?   r!   r"   Ú	data_sizer6   Z
write_mmapZ	read_mmapr,   r%   r%   r&   Útest_read_tensor´   s    ra   c                  C   s  t jdft jdft jdft jdft jdffD ]Þ\} }t jd| d}|j} | ¡ }t	j
 |¡}t|ƒ}|j|ksrt‚|j|jks‚t‚|j|jks’t‚|jdks t‚|j|jks°t‚|j|jksÀt‚|jd	 |jjksÖt‚t  || ¡ ¡ |ksît‚~~t  || ¡ ¡ |ks,t‚q,d S )
Nz=bz=qz=QÚeÚdr
   )r/   r   rZ   )r   Úint8Úint64Úuint64Úfloat16Úfloat64rX   r/   Útolistr   r   r   Ú
memoryviewÚformatr   r   r   r   ÚnbytesÚitemsizer0   Z	bit_widthZ
frombuffer)r/   Zexpected_formatr!   Úlstr"   Úmr%   r%   r&   Útest_tensor_memoryviewÂ   s*    ürp   )"r5   r(   rU   r   Únumpyr   Zpyarrowr   rd   Zint16Zint32re   Zuint8Zuint16Zuint32rf   rg   Zfloat32rh   Ztensor_type_pairsr'   r-   ÚmarkZparametrizer4   rA   rB   rF   rJ   rS   rY   r\   ra   rp   r%   r%   r%   r&   Ú<module>   s<   










õ!

