B
    ¬»dī  ć               @   s   d dl Z d dlZd dlZddlmZmZ e e jjdkd”G dd deZ	e e jjdkd	”e 
d
e jjkd”G dd deZdS )é    Né   )ŚutŚTestCase)r   é   é   z,Direct Chunk Writing requires HDF5 >= 1.8.11c               @   s   e Zd Zdd ZdS )ŚTestWriteDirectChunkc       	   	   C   sŲ   |   ”  ” }t |d”n}|jdddddd}t d”}xHtd	D ]<}tj 	d
d
” 
d”}|jj|ddf| ” dd |||< qBW W d Q R X t |d”6}x.td	D ]"}|d | }tj || |” q¤W W d Q R X d S )NŚwŚdata)éd   r
   r
   )Nr
   r
   )r   r
   r
   Zfloat32)ŚmaxshapeŚchunksŚdtype)é
   r
   r
   r   r
   r   r   )Śfilter_maskŚr)ŚmktempŚencodeŚh5pyŚFileŚcreate_datasetŚnumpyZzerosŚrangeŚrandomZrandZastypeŚidŚwrite_direct_chunkŚtobytesŚtestingŚassert_array_equal)	ŚselfŚfilenameŚ
filehandleŚdatasetŚarrayŚindexŚaŚiŚ	read_data© r'   śR/var/www/html/venv/lib/python3.7/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   )r   r   é   z,Direct Chunk Reading requires HDF5 >= 1.10.2Śgzipz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”¬}t d” dd”}|jd|ddd}|jd|||gddd	|j d
}|j	 
d”\}}|  |d” xDt|jd D ]2}|j	 
|ddf”\}}	|  ||	” |  |d” qW W d Q R X d S )Nr   é   é   Śframer.   é	   )r	   ŚcompressionŚcompression_optsZcompressed_chunked)r   )r	   r4   r5   r   )r   r   r   )r   r   r   r   r   ŚarangeŚreshaper   Śshaper   Śread_direct_chunkŚassertEqualr   )
r   r   r    r2   Ś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 Q R X t |d”}|d }|j	 d
”\}}W d Q R X |  |d” |  || ” ” d S )Nr0   r1   r   r2   )r   r.   r3   )r   r8   r4   r5   l   ’’ )r   r   r   )r   r   r   )r   r   r   r6   r7   r   r   r   r8   r   r   r   r9   ZassertNotEqualr:   )r   r   r2   r    r!   ZDISABLE_ALL_FILTERSr   r<   r'   r'   r(   Śtest_read_uncompressed_offsets?   s     z2TestReadDirectChunk.test_read_uncompressed_offsetsc          
   C   sĄ   |   ”  ” }t |d”l}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 Q R X t |d” }|d	 d }tj ||” W d Q R X d S )Nr   r0   r1   Śsourcer.   r3   )r	   r4   r5   )r   r   Ścreated)r8   r   r   r   r4   r5   )r   r   .)r   r   r   r   r   r6   r7   r   r   r9   r8   r   r   r   r   r   )r   r   r    r2   r;   r   r<   r!   r'   r'   r(   Śtest_read_write_chunkX   s&    z)TestReadDirectChunk.test_read_write_chunkN)r*   r+   r,   r=   r>   rA   r'   r'   r'   r(   r/   #   s   r/   )r   r   Znumpy.testingŚcommonr   r   Z
skipUnlessŚversionZhdf5_version_tupler   ZskipIfŚfiltersr   r/   r'   r'   r'   r(   Ś<module>   s   