
    &Vf                         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e          Z ej        de j	        j
        vd           G d d	e                      Z G d
 d          ZdS )    N   )utTestCasec                       e Zd Zd ZdS )TestWriteDirectChunkc                    |                                                                  }t          j        |d          5 }|                    ddddd          }t          j        d          }t          d	          D ]l}t
          j        	                    d
d
          
                    d          }|j                            |ddf|                                d           |||<   m	 d d d            n# 1 swxY w Y   t          j        |d          5 }t          d	          D ]6}|d         |         }t
          j                            ||         |           7	 d d d            d S # 1 swxY w 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_datas	            ]/var/www/html/software/conda/lib/python3.11/site-packages/h5py/tests/test_h5d_direct_chunk.pytest_write_direct_chunkz,TestWriteDirectChunk.test_write_direct_chunk
   s   ;;==''))Yx%% 	! //9I7D6? 0 A AG K//Er ! !L%%c3//66yAA
--uamQYY[[VW-XXX e!	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  Yx%% 	F2YY F F&v.q1	00q9EEEEF	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs%   B+C44C8;C8AE))E-0E-N)__name__
__module____qualname__r.        r-   r   r   	   s(        F F F F Fr3   r   gzipDEFLATE is not installedc                        e Zd Zd Zd Zd ZdS )TestReadDirectChunkc           	         |                                                                  }t          j        |d          5 }t	          j        d                              dd          }|                    d|dd          }|                    d|||gddd	|j        z   
          }|j	        
                    d          \  }}|                     |d           t          |j        d                   D ]N}|j	        
                    |ddf          \  }}	|                     ||	           |                     |d           O	 d d d            d S # 1 swxY w Y   d S )Nr	         framer4   	   r
   compressioncompression_optscompressed_chunkedr   )r
   r>   r?   r   r   r   r   )r   r   r   r   r   arangereshaper   shaper   read_direct_chunkassertEqualr   )
r$   r%   r&   r;   frame_datasetr'   r   compressed_framer+   r
   s
             r-   test_read_compressed_offsetsz0TestReadDirectChunk.test_read_compressed_offsets%   s   ;;==''))Yx%% 	1L$$,,Q22E&55g;@BHGH 6 J JM !//0D6;UE5J<BAB7<u{7J	 0 L LG
 -:,<,N,Nv,V,V)K)[!,,,7=+,, 1 1$+J$@$@!Q$K$K!T  !14888  a0000	1!	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   DEEEc                    |                                                                  }t          j        d                              dd          }t          j        |d          5 }|                    dd|j        z   d|j        z   dd          }d	}|j	        
                    d
|                                |           d d d            n# 1 swxY w Y   t          j        |d          5 }|d         }|j	                            d
          \  }}d d d            n# 1 swxY w Y   |                     |d           |                     ||                                           d S )Nr9   r:   r	   r;   rA   r4   r<   )r   rE   r>   r?   l    )r   r   r   r   r   r   )r   r   r   rC   rD   r   r   r   rE   r   r    r!   rF   assertNotEqualrG   )r$   r%   r;   r&   r'   DISABLE_ALL_FILTERSr   rI   s           r-   test_read_uncompressed_offsetsz2TestReadDirectChunk.test_read_uncompressed_offsets>   s   ;;==''))R  ((A..Yx%% 	g //9=9K6:U[6H<BAB	 0 D DG #-J)))U]]__Re)fff	g 	g 	g 	g 	g 	g 	g 	g 	g 	g 	g 	g 	g 	g 	g Yx%% 	T )G,3J,H,H,S,S)K)	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T
 	K+++)5==??;;;;;s%   $ACCC,&DD"%D"c           
         |                                                                  }t          j        |d          5 }t	          j        d                              dd          }|                    d|dd          }|j        	                    d          \  }}|                    d	|j
        |j
        |j        |j        dd
          }|j                            d||           d d d            n# 1 swxY w Y   t          j        |d          5 }|d	         d         }t          j                            ||           d d d            d S # 1 swxY w Y   d S )Nr	   r9   r:   sourcer4   r<   r=   rB   created)rE   r   r   r   r>   r?   r   r   .)r   r   r   r   r   rC   rD   r   r   rF   rE   r   r   r    r"   r#   )r$   r%   r&   r;   rH   r   rI   r'   s           r-   test_read_write_chunkz)TestReadDirectChunk.test_read_write_chunkW   s   ;;==''))Yx%% 	] L$$,,Q22E&55h;@BHGH 6 J JM
 -:,<,N,Nv,V,V)K) //	6C6I9F9L7D7K6C6I<BAB 0 D DG J))&2BP[)\\\'	] 	] 	] 	] 	] 	] 	] 	] 	] 	] 	] 	] 	] 	] 	], Yx%% 	= +C0GM,,We<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s$   B,C44C8;C8/EEEN)r/   r0   r1   rJ   rN   rR   r2   r3   r-   r7   r7   #   sA        1 1 12< < <2= = = = =r3   r7   c                       e Zd Zd Zej                            ej        j	        dk     d          ej                            dej
        j        vd          d                         Zd Zd	 Zd
 ZdS )TestReadDirectChunkToOutc                    t          j        d                              dd          }|                    d||j                  }t          |j                  }|j                            d|          \  }}t          j	        t          j
        ||j                                      |j                  |          sJ |dk    sJ t          |          |j        k    sJ d S )	Nr9   r:   uncompressedr
   r   rB   outr   r   )r   rC   rD   r   rE   	bytearraynbytesr   rF   array_equal
frombufferr   len)r$   writable_fileref_datar'   rY   r   chunks          r-   test_uncompressed_dataz/TestReadDirectChunkToOut.test_uncompressed_dataw   s    <##++Aq11..(. / B B (($Z99&c9JJU S777??OO
 
 	
 	
 	
 a5zzX_,,,,,,r3   )r   r      z"chunk info requires HDF5 >= 1.10.5)reasonr4   r5   c                    t          j        d                              dd          }|                    d||j        dd          }|j                            d          }t          |j                  }|j        	                    |j
        |          \  }}||j        k    sJ t          |          |j        k    sJ ||j        	                    |j
                  d         k    sJ d S )	Nr9   r:   r4   r<   )r
   r   r>   r?   r   rX   r   )r   rC   rD   r   rE   r   get_chunk_infor[   sizerF   chunk_offsetr   r_   )r$   r`   ra   r'   
chunk_inforY   r   rb   s           r-   test_compressed_dataz-TestReadDirectChunkToOut.test_compressed_data   s     <##++Aq11..> / 
 
 Z..q11

(($Z99# : 
 
U j444445zzZ_,,,,gj22:3JKKANNNNNNNr3   c                 Z   t          j        d                              dd          }|                    d||j                  }t          |j        dz            }t          j        t                    5  |j
                            d|           d d d            d S # 1 swxY w Y   d S )Nr9   r:   rV   rW      rB   rX   )r   rC   rD   r   rE   r[   r\   pytestraises
ValueErrorr   rF   r$   r`   ra   r'   rY   s        r-   test_fail_buffer_too_smallz3TestReadDirectChunkToOut.test_fail_buffer_too_small   s    <##++Aq11..(. / B B 1,--]:&& 	: 	:J((S(999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   6B  B$'B$c                 T   t          j        d                              dd          }|                    d||j                  }t          |j                  }t          j        t                    5  |j
                            d|           d d d            d S # 1 swxY w Y   d S )Nr9   r:   rV   rW   rB   rX   )r   rC   rD   r   rE   bytesr\   rn   ro   BufferErrorr   rF   rq   s        r-   test_fail_buffer_readonlyz2TestReadDirectChunkToOut.test_fail_buffer_readonly   s    <##++Aq11..(. / B B HO$$];'' 	: 	:J((S(999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   3BB!$B!c                    t          j        d                              dd          }|                    d||j                  }t          j        |j        dz   |j                  }|d d d d d d df         }t          j        t                    5  |j
                            d|	           d d d            d S # 1 swxY w Y   d S )
Nr9   r:   rV   rW   )rm   rZ   rm   rB   rX   )r   rC   rD   r   rE   emptyr   rn   ro   rp   r   rF   )r$   r`   ra   r'   r(   rY   s         r-   test_fail_buffer_not_contiguousz8TestReadDirectChunkToOut.test_fail_buffer_not_contiguous   s   <##++Aq11..(. / B B HNT1HHHAAAqqq##A#I]:&& 	: 	:J((S(999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   B>>CCN)r/   r0   r1   rc   rn   markskipifr   versionhdf5_version_tuplefiltersr   rk   rr   rv   ry   r2   r3   r-   rT   rT   u   s        - - - ['*43    [dl)))   O O	 	 O(: : :: : :: : : : :r3   rT   )r   r   numpy.testingrn   commonr   r   r   skipIfr~   r   r7   rT   r2   r3   r-   <module>r      s                         F F F F F8 F F F4 6,,.HIIN= N= N= N= N=( N= N= JIN=bG: G: G: G: G: G: G: G: G: G:r3   