o
    2hC                     @   sv   d dl Z d dlZd dlZd dlZddlmZmZ G dd deZede j	j
vdG dd	 d	eZG d
d dZdS )    N   )utTestCasec                   @   s   e Zd Zdd ZdS )TestWriteDirectChunkc           	      C   s   |    }t|d:}|jdddddd}td}td	D ]}tj	d
d

d}|jj|ddf| dd |||< q W d    n1 sIw   Y  t|d}td	D ]}|d | }tj|| | qYW d    d S 1 svw   Y  d S )Nwdata)d   r   r   )Nr   r   )r   r   r   float32)maxshapechunksdtype)
   r   r   r   r   r   r   filter_maskr)mktempencodeh5pyFilecreate_datasetnumpyzerosrangerandomrandastypeidwrite_direct_chunktobytestestingassert_array_equal)	selffilename
filehandledatasetarrayindexai	read_data r*   [/var/www/html/chatgem/venv/lib/python3.10/site-packages/h5py/tests/test_h5d_direct_chunk.pytest_write_direct_chunk
   s(   

"z,TestWriteDirectChunk.test_write_direct_chunkN)__name__
__module____qualname__r,   r*   r*   r*   r+   r   	   s    r   gzipDEFLATE is not installedc                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestReadDirectChunkc           
      C   s   |    }t|dZ}tddd}|jd|ddd}|jd|||gddd	|j d
}|j	
d\}}| |d t|jd D ]}|j	
|ddf\}}	| ||	 | |d qDW d    d S 1 siw   Y  d S )Nr         framer0   	   r   compressioncompression_optscompressed_chunkedr   )r   r8   r9   r   r   r   r   )r   r   r   r   r   arangereshaper   shaper   read_direct_chunkassertEqualr   )
r!   r"   r#   r5   frame_datasetr$   r   compressed_framer(   r   r*   r*   r+   test_read_compressed_offsets%   s,   "z0TestReadDirectChunk.test_read_compressed_offsetsc                 C   s   |    }tddd}t|d%}|jdd|j d|j ddd}d	}|j	j
d
| |d W d    n1 s=w   Y  t|d}|d }|j	d
\}}W d    n1 s_w   Y  | |d | ||  d S )Nr3   r4   r   r5   r;   r0   r6   )r
   r?   r8   r9   l    )r   r   r   r   r   r   )r   r   r   r=   r>   r   r   r   r?   r   r   r   r@   assertNotEqualrA   )r!   r"   r5   r#   r$   DISABLE_ALL_FILTERSr   rC   r*   r*   r+   test_read_uncompressed_offsets>   s$   z2TestReadDirectChunk.test_read_uncompressed_offsetsc              
   C   s   |    }t|d;}tddd}|jd|ddd}|j	d\}}|jd	|j
|j
|j|jddd
}|jjd||d W d    n1 sJw   Y  t|d}|d	 d }tj|| W d    d S 1 snw   Y  d S )Nr   r3   r4   sourcer0   r6   r7   r<   created)r?   r
   r   r   r8   r9   r   r   .)r   r   r   r   r   r=   r>   r   r   r@   r?   r   r   r   r   r    )r!   r"   r#   r5   rB   r   rC   r$   r*   r*   r+   test_read_write_chunkW   s.   	"z)TestReadDirectChunk.test_read_write_chunkN)r-   r.   r/   rD   rG   rJ   r*   r*   r*   r+   r2   #   s    r2   c                   @   sL   e Zd Zdd Zejjdejj	vdddd Z
dd	 Zd
d Zdd ZdS )TestReadDirectChunkToOutc                 C   s   t ddd}|jd||jd}t|j}|jjd|d\}}t 	t j
||jd|j|s3J |dks9J t||jksBJ d S )	Nr3   r4   uncompressedr   r   r<   outr   r   )r   r=   r>   r   r?   	bytearraynbytesr   r@   array_equal
frombufferr   len)r!   writable_fileref_datar$   rO   r   chunkr*   r*   r+   test_uncompressed_dataw   s   
z/TestReadDirectChunkToOut.test_uncompressed_datar0   r1   )reasonc                 C   s   t ddd}|jd||jddd}|jd}t|j}|jj	|j
|d\}}||jks1J t||jks:J ||j	|j
d ksGJ d S )	Nr3   r4   r0   r6   )r   r   r8   r9   r   rN   r   )r   r=   r>   r   r?   r   get_chunk_inforQ   sizer@   chunk_offsetr   rU   )r!   rV   rW   r$   
chunk_inforO   r   rX   r*   r*   r+   test_compressed_data   s"   

z-TestReadDirectChunkToOut.test_compressed_datac                 C   sr   t ddd}|jd||jd}t|jd }tt	 |j
jd|d W d    d S 1 s2w   Y  d S )Nr3   r4   rL   rM      r<   rN   )r   r=   r>   r   r?   rQ   rR   pytestraises
ValueErrorr   r@   r!   rV   rW   r$   rO   r*   r*   r+   test_fail_buffer_too_small   s   "z3TestReadDirectChunkToOut.test_fail_buffer_too_smallc                 C   sn   t ddd}|jd||jd}t|j}tt	 |j
jd|d W d    d S 1 s0w   Y  d S )Nr3   r4   rL   rM   r<   rN   )r   r=   r>   r   r?   bytesrR   ra   rb   BufferErrorr   r@   rd   r*   r*   r+   test_fail_buffer_readonly   s   
"z2TestReadDirectChunkToOut.test_fail_buffer_readonlyc                 C   s   t ddd}|jd||jd}t j|jd |jd}|d d d d d d df }tt	 |j
jd|d	 W d    d S 1 sDw   Y  d S )
Nr3   r4   rL   rM   )r`   rP   r`   r<   rN   )r   r=   r>   r   r?   emptyr   ra   rb   rc   r   r@   )r!   rV   rW   r$   r%   rO   r*   r*   r+   test_fail_buffer_not_contiguous   s   "z8TestReadDirectChunkToOut.test_fail_buffer_not_contiguousN)r-   r.   r/   rY   ra   markskipifr   filtersr   r_   re   rh   rj   r*   r*   r*   r+   rK   u   s    

		rK   )r   r   numpy.testingra   commonr   r   r   skipIfrm   r   r2   rK   r*   r*   r*   r+   <module>   s    Q