o
    gi                     @   sz   d dl Z d dlZd dlZd dlZddlmZ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TestCase	make_namec                   @   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+   ^/home/ubuntu/SoloSpeech/.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         framer1   	   r   compressioncompression_optscompressed_chunkedr   )r   r9   r:   r   r   r   r   )r   r   r   r   r   arangereshaper   shaper   read_direct_chunkassertEqualr   )
r"   r#   r$   r6   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	}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 )Nr4   r5   r   r6   r<   f4r1   r7   )r   r@   r   r9   r:   l    )r   r   r   r   r   r   )r   r   r   r>   r?   r   r   r   r@   r   r   r   rA   assertNotEqualrB   )r"   r#   r6   r$   r%   DISABLE_ALL_FILTERSr   rD   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   r4   r5   sourcer1   r7   r8   r=   created)r@   r   r   r   r9   r:   r   r   .)r   r   r   r   r   r>   r?   r   r   rA   r@   r   r   r   r    r!   )r"   r#   r$   r6   rC   r   rD   r%   r+   r+   r,   test_read_write_chunkX   s.   	"z)TestReadDirectChunk.test_read_write_chunkN)r.   r/   r0   rE   rI   rL   r+   r+   r+   r,   r3   #   s    r3   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t ||jd}t|j}|jj	d|d\}}t 
t j||jd|j|s4J |dks:J t||jksCJ d S )Nr4   r5   r   r   r=   outr   r   )r   r>   r?   r   r   r@   	bytearraynbytesr   rA   array_equal
frombufferr   len)r"   writable_fileref_datar%   rP   r   chunkr+   r+   r,   test_uncompressed_datax   s   

z/TestReadDirectChunkToOut.test_uncompressed_datar1   r2   )reasonc                 C   s   t ddd}|jt ||jddd}|jd}t|j	}|jj
|j|d\}}||jks2J t||j	ks;J ||j
|jd ksHJ d S )	Nr4   r5   r1   r7   )r   r   r9   r:   r   rO   r   )r   r>   r?   r   r   r@   r   get_chunk_inforR   sizerA   chunk_offsetr   rV   )r"   rW   rX   r%   
chunk_inforP   r   rY   r+   r+   r,   test_compressed_data   s"   

z-TestReadDirectChunkToOut.test_compressed_datac                 C   st   t ddd}|jt ||jd}t|jd }t	t
 |jjd|d W d    d S 1 s3w   Y  d S )Nr4   r5   rN      r=   rO   )r   r>   r?   r   r   r@   rR   rS   pytestraises
ValueErrorr   rA   r"   rW   rX   r%   rP   r+   r+   r,   test_fail_buffer_too_small   s   
"z3TestReadDirectChunkToOut.test_fail_buffer_too_smallc                 C   sp   t ddd}|jt ||jd}t|j}t	t
 |jjd|d W d    d S 1 s1w   Y  d S )Nr4   r5   rN   r=   rO   )r   r>   r?   r   r   r@   bytesrS   rb   rc   BufferErrorr   rA   re   r+   r+   r,   test_fail_buffer_readonly   s   

"z2TestReadDirectChunkToOut.test_fail_buffer_readonlyc                 C   s   t ddd}|jt ||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 sEw   Y  d S )	Nr4   r5   rN   )ra   rQ   ra   r=   rO   )r   r>   r?   r   r   r@   emptyr   rb   rc   rd   r   rA   )r"   rW   rX   r%   r&   rP   r+   r+   r,   test_fail_buffer_not_contiguous   s   
"z8TestReadDirectChunkToOut.test_fail_buffer_not_contiguousN)r.   r/   r0   rZ   rb   markskipifr   filtersr   r`   rf   ri   rk   r+   r+   r+   r,   rM   v   s    

		rM   )r   r   numpy.testingrb   commonr   r   r   r   skipIfrn   r   r3   rM   r+   r+   r+   r,   <module>   s    R