o
    ò©Zh"  ã                   @   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 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J ‚|jg ksJ ‚|jdks"J ‚|j	| j	ks*J ‚|j
| j
ks2J ‚|js7J ‚|js<J ‚|  ¡ }d|j_tj |¡}|jrOJ ‚tjj| dd}|jdks^J ‚|jdd	gksgJ ‚| d
¡dkspJ ‚| d¡d	ksyJ ‚t |¡}|ƒ d us…J ‚~|ƒ d u sJ ‚d S )Né
   é   é   é(   F)ÚxÚy)Ú	dim_namesr   r   r   é   )ÚnpÚrandomÚrandnÚpaÚTensorÚ
from_numpyÚndimr   ÚsizeÚshapeÚstridesZis_contiguousZ
is_mutableÚcopyÚflagsZ	writeableZdim_nameÚweakrefÚref)ÚdataÚtensorÚdata2Úwr© r$   úP/var/www/html/lang_env/lib/python3.10/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J ‚d S )Nr
   r   r   )	r   r   r   r   r   r   ÚsysÚgetrefcountÚto_numpy)r!   ÚnÚarrayr$   r$   r%   Útest_tensor_base_objectL   s   
r,   zdtype_str,arrow_typec                 C   s’   t  | ¡}t ¡  t d¡ dt j dd¡  |¡}W d   ƒ n1 s%w   Y  tj	 
|¡}|j|ks7J ‚t|ƒ | ¡ }||k ¡ sGJ ‚d S )NÚignoreéd   r
   r   )r   ÚdtypeÚwarningsÚcatch_warningsÚsimplefilterr   r   Zastyper   r   r   ÚtypeÚreprr)   Úall)Z	dtype_strZ
arrow_typer/   r    r!   Úresultr$   r$   r%   Útest_tensor_numpy_roundtripS   s   


þr7   c                 C   sn   t j dd¡}tj |¡}tj t	| ƒd¡}t 
|d¡}tj ||¡ | d¡ tj |¡}| |¡s5J ‚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Úequals)Útmpdirr    r!   r9   Úmmapr6   r$   r$   r%   Útest_tensor_ipc_roundtripc   s   
rD   c                 C   sn   t j dd¡}tj |¡}| d }tj|dd}tj ||¡ | 	¡  tj 
tj|dd¡}| |¡s5J ‚d S )Nr
   r   ztensor-compressed-fileÚgzip)Úcompression)r   r   r   r   r   r   Zoutput_streamr=   r>   Úcloser@   Zinput_streamrA   )Útempdirr    r!   r9   Z
out_streamr6   r$   r$   r%   Ú$test_tensor_ipc_read_from_compressedr   s   rI   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_J ‚q?d S )Nr
   r   r   é   zpyarrow-tensor-ipc-stridedi   r   )r   r   r   r   r   r   r8   r9   r:   r;   r<   r?   r=   r>   r@   rA   )	rB   Zdata1Útensor1r"   Útensor2r9   rC   r!   r6   r$   r$   r%   Útest_tensor_ipc_strided‚   s   $

ùrM   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J ‚| |ksJ ‚| |krJ ‚d S ©N©rA   ©ÚaÚbr$   r$   r%   Úeq—   ó   ztest_tensor_equals.<locals>.eqc                 S   s*   |   |¡rJ ‚| |krJ ‚| |ksJ ‚d S rN   rO   rP   r$   r$   r%   Úneœ   rT   ztest_tensor_equals.<locals>.ner
   rJ   r   r   g      ð?)é	   r   r   )r   r   r   r   r   r   Zascontiguousarrayr   )rS   rU   r    rK   rL   r$   r$   r%   Útest_tensor_equals–   s   (
rW   c                   C   sJ   t jtdd ttj t d¡¡ƒ W d   ƒ d S 1 sw   Y  d S )NZ
unhashable)Úmatchr
   )	ÚpytestZraisesÚ	TypeErrorÚhashr   r   r   r   Úaranger$   r$   r$   r%   Útest_tensor_hashing«   s   "ÿr]   c                  C   s8   t j dd¡} tj | ¡}tj |¡| jd ksJ ‚d S )Nr
   r   é   )	r   r   r   r   r   r   r=   Úget_tensor_sizer   )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_   r8   r9   r:   r;   r<   r>   Z
memory_mapr@   r)   ZtestingZassert_equal)rB   r    r!   Ú	data_sizer9   Z
write_mmapZ	read_mmapr+   r$   r$   r%   Útest_read_tensor·   s   rd   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 ]o\} }t jd| d}|j} | ¡ }t	j
 |¡}t|ƒ}|j|ks9J ‚|j|jksAJ ‚|j|jksIJ ‚|jdksPJ ‚|j|jksXJ ‚|j|jks`J ‚|jd	 |jjkskJ ‚t  || ¡ ¡ |kswJ ‚~~t  || ¡ ¡ |ks…J ‚qd S )
Nz=bz=qz=QÚeÚdr
   )r/   r   r^   )r   Úint8Úint64Úuint64Úfloat16Úfloat64r\   r/   Útolistr   r   r   Ú
memoryviewÚformatr   r   r   ÚnbytesÚitemsizer3   Z	bit_widthZ
frombuffer)r/   Zexpected_formatr    Úlstr!   Úmr$   r$   r%   Útest_tensor_memoryviewÅ   s,   üìrs   )#r8   r'   rY   r0   r   Únumpyr   Zpyarrowr   rg   Zint16Zint32rh   Zuint8Zuint16Zuint32ri   rj   Zfloat32rk   Ztensor_type_pairsr&   r,   ÚmarkZparametrizer7   rD   rE   rI   rM   rW   r]   r`   rd   rs   r$   r$   r$   r%   Ú<module>   s@   










õ!

