
    1VhC                         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y)    N   )utTestCasec                       e Zd Zd Zy)TestWriteDirectChunkc                    | j                         j                         }t        j                  |d      5 }|j	                  ddddd      }t        j                  d      }t        d	      D ]e  }t
        j                  j                  d
d
      j                  d      }|j                  j                  |ddf|j                         d       |||<   g 	 d d d        t        j                  |d      5 }t        d	      D ]-  }|d   |   }t
        j                  j                  |   |       / 	 d d d        y # 1 sw Y   exY w# 1 sw Y   y xY w)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	            P/home/dcms/DCMS/lib/python3.12/site-packages/h5py/tests/test_h5d_direct_chunk.pytest_write_direct_chunkz,TestWriteDirectChunk.test_write_direct_chunk
   s>   ;;='')YYx% 	! //9I7D6? 0 AG KK/Er !LL%%c3/66yA

--uamQYY[VW-X e!	!  YYx% 	F2Y F&v.q1	00q9EF	F 	F!	! 	! 	F 	Fs   BD93<E9EEN)__name__
__module____qualname__r.        r-   r   r   	   s    Fr3   r   gzipDEFLATE is not installedc                       e Zd Zd Zd Zd Zy)TestReadDirectChunkc           	      |   | j                         j                         }t        j                  |d      5 }t	        j
                  d      j                  dd      }|j                  d|dd      }|j                  d|||gddd	|j                  z   
      }|j                  j                  d      \  }}| j                  |d       t        |j                  d         D ]G  }|j                  j                  |ddf      \  }}	| j                  ||	       | j                  |d       I 	 d d d        y # 1 sw Y   y xY w)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%   s9   ;;='')YYx% 	1LL$,,Q2E&55g;@BHGH 6 JM !//0D6;UE5J<BAB7<u{{7J	 0 LG
 -:,<,<,N,Nv,V)K)[!,7==+, 1$+JJ$@$@!Q$K!T  !148  a0	1!	1 	1 	1s   C3D22D;c                    | j                         j                         }t        j                  d      j	                  dd      }t        j                  |d      5 }|j                  dd|j                  z   d|j                  z   dd      }d	}|j                  j                  d
|j                         |       d d d        t        j                  |d      5 }|d   }|j                  j                  d
      \  }}d d d        | j                  d       | j                  |j                                y # 1 sw Y   ~xY w# 1 sw Y   HxY w)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>   s0   ;;='')R ((A.YYx% 	g //9=9K6:U[[6H<BAB	 0 DG #-JJ)))U]]_Re)f	g YYx% 	T )G,3JJ,H,H,S)K)	T
 	K+)5==?;'	g 	g	T 	Ts   AD6$E6D?Ec           
         | j                         j                         }t        j                  |d      5 }t	        j
                  d      j                  dd      }|j                  d|dd      }|j                  j                  d      \  }}|j                  d	|j                  |j                  |j                  |j                  dd
      }|j                  j                  d||       d d d        t        j                  |d      5 }|d	   d   }t        j                  j                  |       d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)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   sI   ;;='')YYx% 	] LL$,,Q2E&55h;@BHGH 6 JM
 -:,<,<,N,Nv,V)K) //	6C6I6I9F9L9L7D7K7K6C6I6I<BAB 0 DG JJ))&2BP[)\'	], YYx% 	= +C0GMM,,We<	= 	=-	] 	],	= 	=s   B7D<
)E<EEN)r/   r0   r1   rJ   rN   rR   r2   r3   r-   r7   r7   #   s    12<2=r3   r7   c                       e Zd Zd Zej
                  j                  dej                  j                  vd      d        Z
d Zd Zd Zy	)
TestReadDirectChunkToOutc                    t        j                  d      j                  dd      }|j                  d||j                        }t        |j                        }|j                  j                  d|      \  }}t        j                  t        j                  ||j                        j                  |j                        |      sJ |dk(  sJ t        |      |j                  k(  sJ y )	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..(.. / B ($ZZ99&c9JU  S7??O
 	
 
 a5zX__,,,r3   r4   r5   )reasonc                    t        j                  d      j                  dd      }|j                  d||j                  dd      }|j
                  j                  d      }t        |j                        }|j
                  j                  |j                  |      \  }}||j                  k(  sJ t        |      |j                  k(  sJ ||j
                  j                  |j                        d   k(  sJ y )	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..>> / 
 ZZ..q1

($ZZ99## : 
U j444445zZ__,,,gjj22:3J3JKANNNNr3   c                 P   t        j                  d      j                  dd      }|j                  d||j                        }t        |j                  dz        }t        j                  t              5  |j                  j                  d|       d d d        y # 1 sw Y   y xY w)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..(.. / B 1,-]]:& 	:JJ((S(9	: 	: 	:s   5BB%c                 J   t        j                  d      j                  dd      }|j                  d||j                        }t        |j                        }t        j                  t              5  |j                  j                  d|       d d d        y # 1 sw Y   y xY w)Nr9   r:   rV   rW   rB   rX   )r   rC   rD   r   rE   bytesr\   rm   rn   BufferErrorr   rF   rp   s        r-   test_fail_buffer_readonlyz2TestReadDirectChunkToOut.test_fail_buffer_readonly   s    <<#++Aq1..(.. / B HOO$]];' 	:JJ((S(9	: 	: 	:s   2BB"c                    t        j                  d      j                  dd      }|j                  d||j                        }t        j
                  |j                  dz   |j                        }|d d d d d d df   }t        j                  t              5  |j                  j                  d|	       d d d        y # 1 sw Y   y xY w)
Nr9   r:   rV   rW   )rl   rZ   rl   rB   rX   )r   rC   rD   r   rE   emptyr   rm   rn   ro   r   rF   )r$   r`   ra   r'   r(   rY   s         r-   test_fail_buffer_not_contiguousz8TestReadDirectChunkToOut.test_fail_buffer_not_contiguous   s    <<#++Aq1..(.. / B HNNT1HAq#A#I]]:& 	:JJ((S(9	: 	: 	:s   CC
N)r/   r0   r1   rc   rm   markskipifr   filtersr   rj   rq   ru   rx   r2   r3   r-   rT   rT   u   sU    - [[dll))))  O	O(:::r3   rT   )r   r   numpy.testingrm   commonr   r   r   skipIfr{   r   r7   rT   r2   r3   r-   <module>r      sk         F8 F4 6,,,.HIN=( N= JN=bC: C:r3   