
    jR                        d Z 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e          Z
 G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zd Z G d de          Zd Zej                            d ej        d           ej        d dD             e          g          d              Z G d! d"e          ZdS )#a  
    Tests the h5py.Dataset.__getitem__ method.

    This module does not specifically test type conversion.  The "type" axis
    therefore only tests objects which interact with the slicing system in
    unreliable ways; for example, compound and array types.

    See test_dataset_getitem_types for type-conversion tests.

    Tests are organized into TestCases by dataset shape and type.  Test
    methods vary by slicing arg type.

    1. Dataset shape:
        Empty
        Scalar
        1D
        3D

    2. Type:
        Float
        Compound
        Array

    3. Slicing arg types:
        Ellipsis
        Empty tuple
        Regular slice
        MultiBlockSlice
        Indexing
        Index list
        Boolean mask
        Field names
    N   )utTestCase	make_namec                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )	TestEmptyc                    t          j        |            t          j                            t          j        j                  }t          j        j                                        }|	                    d           t          j
                            | j        j        d||          }t          j        |          | _        t          j        t!          j        d                    | _        d S )N
      xS10)r   setUph5pyh5screateNULLh5tC_S1copyset_sizeh5dfidDatasetdsetEmptynpdtype	empty_obj)selfsidtiddsids       b/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/h5py/tests/test_dataset_getitem.pyr   zTestEmpty.setUp7   s    thoodhm,,hm  ""Rxtvy$S99L&&	BHUOO44    c                 F    |                      | j        j        d           dS  Verify number of dimensions r   NassertEqualr   ndimr   s    r#   	test_ndimzTestEmpty.test_ndim@   "    +++++r$   c                 F    |                      | j        j        d           dS  Verify shape Nr)   r   shaper+   s    r#   
test_shapezTestEmpty.test_shapeD   "    $/////r$   c                 F    |                      | j        j        d           dS r/   r)   r   sizer+   s    r#   	test_sizezTestEmpty.test_sizeH   s"    .....r$   c                 F    |                      | j        j        d           dS ) Verify nbytes r   N)r)   r   nbytesr+   s    r#   test_nbyteszTestEmpty.test_nbytesL   s#    )1-----r$   c                 R    |                      | j        d         | j                   d S N.r)   r   r   r+   s    r#   test_ellipsiszTestEmpty.test_ellipsisP   s&    388888r$   c                 R    |                      | j        d         | j                   d S N r?   r+   s    r#   
test_tuplezTestEmpty.test_tupleS   s&    277777r$   c                     |                      t                    5  | j        dd          ddd           dS # 1 swxY w Y   dS z slice -> ValueError r      NassertRaises
ValueErrorr   r+   s    r#   
test_slicezTestEmpty.test_sliceV       z** 	 	IacNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   8<<c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS z MultiBlockSlice -> ValueError NrI   rJ   r   r   MultiBlockSlicer+   s    r#   test_multi_block_slicez TestEmpty.test_multi_block_slice[       z** 	. 	.Id*,,--	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.   AAAc                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS z index -> ValueError r   NrH   r+   s    r#   
test_indexzTestEmpty.test_index`       z** 	 	IaLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   6::c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS  index list -> ValueError r         NrH   r+   s    r#   test_indexlistzTestEmpty.test_indexliste       z** 	 	Iggg	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rM   c                     t          j        dd          }|                     t                    5  | j        |          ddd           dS # 1 swxY w Y   dS z mask -> ValueError Tboolr   Nr   arrayrI   rJ   r   r   masks     r#   	test_maskzTestEmpty.test_maskj       xF+++z** 	 	IdOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS )z field name -> ValueError fieldNrH   r+   s    r#   test_fieldnameszTestEmpty.test_fieldnamesp       z** 	 	Ig	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rY   N__name__
__module____qualname__r   r,   r3   r8   r<   r@   rD   rK   rR   rW   r`   rj   ro   rC   r$   r#   r   r   5   s        5 5 5, , ,0 0 0/ / /. . .9 9 98 8 8  
. . .
  
  
      r$   r   c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestScalarFloatc                     t          j        |            t          j        dt          j                  | _        | j                            d| j                  | _        d S )N     @E@re   xdata)	r   r   r   rg   doubler{   r   create_datasetr   r+   s    r#   r   zTestScalarFloat.setUpx   sL    tHT333	F))#DI)>>			r$   c                 F    |                      | j        j        d           dS r&   r(   r+   s    r#   r,   zTestScalarFloat.test_ndim}   r-   r$   c                 F    |                      | j        j        d           dS  Verify size r   Nr6   r+   s    r#   r8   zTestScalarFloat.test_size   r-   r$   c                 d    |                      | j        j        | j        j        j                   dS r:   Nr)   r   r;   r{   r   itemsizer+   s    r#   r<   zTestScalarFloat.test_nbytes   *    )49?+CDDDDDr$   c                 ^    |                      | j        j        t                                 dS r/   r)   r   r2   tupler+   s    r#   r3   zTestScalarFloat.test_shape   &    %''22222r$   c                 V    | j         d         }|                     || j                   dS z Ellipsis -> scalar ndarray .Nr   assertArrayEqualr{   r   outs     r#   r@   zTestScalarFloat.test_ellipsis   +    inc49-----r$   c                 z    | j         d         }|                     || j                                                   dS )z () -> bare item rC   N)r   r   r{   itemr   s     r#   rD   zTestScalarFloat.test_tuple   s5    imc49>>#3#344444r$   c                     |                      t                    5  | j        dd          ddd           dS # 1 swxY w Y   dS rF   rH   r+   s    r#   rK   zTestScalarFloat.test_slice   rL   rM   c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS rO   rP   r+   s    r#   rR   z&TestScalarFloat.test_multi_block_slice   rS   rT   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS rV   rH   r+   s    r#   rW   zTestScalarFloat.test_index   rX   rY   c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS r[   rH   r+   s    r#   r`   zTestScalarFloat.test_indexlist   ra   rM   c                     t          j        dd          }|                     t                    5  | j        |          ddd           dS # 1 swxY w Y   dS rc   rf   rh   s     r#   rj   zTestScalarFloat.test_mask   rk   rl   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS z& field name -> ValueError (no fields) rn   NrH   r+   s    r#   ro   zTestScalarFloat.test_fieldnames   rp   rY   Nrr   rs   rt   r   r,   r8   r<   r3   r@   rD   rK   rR   rW   r`   rj   ro   rC   r$   r#   rv   rv   v   s        ? ? ?
, , ,, , ,E E E3 3 3. . .
5 5 5
  
. . .
          r$   rv   c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestScalarCompoundc                     t          j        |            t          j        dg d          | _        | j                            d| j                  | _        d S )N)rx   iHello))ar   )bi)cz|S10re   ry   rz   )r   r   r   rg   r{   r   r}   r   r+   s    r#   r   zTestScalarCompound.setUp   sR    tH2:a:a:abbb	F))#DI)>>			r$   c                 F    |                      | j        j        d           dS r&   r(   r+   s    r#   r,   zTestScalarCompound.test_ndim   r-   r$   c                 ^    |                      | j        j        t                                 dS r/   r   r+   s    r#   r3   zTestScalarCompound.test_shape   r   r$   c                 F    |                      | j        j        d           dS r   r6   r+   s    r#   r8   zTestScalarCompound.test_size   r-   r$   c                 d    |                      | j        j        | j        j        j                   dS r   r   r+   s    r#   r<   zTestScalarCompound.test_nbytes   r   r$   c                     | j         d         }|                     |t          j                   |                     |j        | j        j                   |                     |j        | j        j                   dS r   )r   assertIsInstancer   ndarrayr)   r2   r{   r   r   s     r#   r@   z TestScalarCompound.test_ellipsis   sc    inc2:...DIO444DIO44444r$   c                     | j         d         }|                     |t          j                   |                     |j        | j        j                   dS )z () -> np.void instance rC   N)r   r   r   voidr)   r   r{   r   s     r#   rD   zTestScalarCompound.test_tuple   sG    imc27+++DIO44444r$   c                     |                      t                    5  | j        dd          ddd           dS # 1 swxY w Y   dS rF   rH   r+   s    r#   rK   zTestScalarCompound.test_slice   rL   rM   c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS rO   rP   r+   s    r#   rR   z)TestScalarCompound.test_multi_block_slice   rS   rT   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS rV   rH   r+   s    r#   rW   zTestScalarCompound.test_index   rX   rY   c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS r[   rH   r+   s    r#   r`   z!TestScalarCompound.test_indexlist   ra   rM   c                     t          j        dd          }|                     t                    5  | j        |          ddd           dS # 1 swxY w Y   dS )z mask -> ValueError  Trd   re   Nrf   rh   s     r#   rj   zTestScalarCompound.test_mask   rk   rl   c                     | j         d         }|                     |t          j                   |                     || j         d                    dS )z field name -> bare value r   N)r   r   r   float32r)   r   s     r#   ro   z"TestScalarCompound.test_fieldnames   sG    inc2:...din-----r$   Nrq   rC   r$   r#   r   r      s        ? ? ?
, , ,3 3 3, , ,E E E5 5 55 5 5  
. . .
      . . . . .r$   r   c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestScalarArrayc                    t          j        |            t          j        d          | _        t          j        g dd          | _        | j                            dd| j                  | _	        | j        | j	        d<   d S )Nz(3,2)f))g	@i)*   g33333X@)gQ	@r   r   re   ry   rC   .)
r   r   r   r   dtrg   r{   r   r}   r   r+   s    r#   r   zTestScalarArray.setUp  sq    t(8$$HAAAMMM	F))#r)AA		#r$   c                     |                      | j        j        d           |                      | j        j        d           dS )r'   r^   r   N)r)   r{   r*   r   r+   s    r#   r,   zTestScalarArray.test_ndim  s<    ++++++++r$   c                 F    |                      | j        j        d           dS r   r6   r+   s    r#   r8   zTestScalarArray.test_size  r-   r$   c                 d    |                      | j        j        | j        j        j                   dS r   )r)   r   r;   r   r   r+   s    r#   r<   zTestScalarArray.test_nbytes  r   r$   c                     |                      | j        j        d           |                      | j        j        t	                                 dS )r0   )   r^   N)r)   r{   r2   r   r   r+   s    r#   r3   zTestScalarArray.test_shape  s@    &111%''22222r$   c                 V    | j         d         }|                     || j                   dS )z2 Ellipsis -> ndarray promoted to underlying shape .Nr   r   s     r#   r@   zTestScalarArray.test_ellipsis  r   r$   c                 V    | j         d         }|                     || j                   dS ) () -> same as ellipsis .Nr   r   s     r#   rD   zTestScalarArray.test_tuple"  r   r$   c                     |                      t                    5  | j        dd          ddd           dS # 1 swxY w Y   dS rF   rH   r+   s    r#   rK   zTestScalarArray.test_slice'  rL   rM   c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS rO   rP   r+   s    r#   rR   z&TestScalarArray.test_multi_block_slice,  rS   rT   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS rV   rH   r+   s    r#   rW   zTestScalarArray.test_index1  rX   rY   c                     |                      t                    5  | j        g           ddd           dS # 1 swxY w Y   dS )r\   NrH   r+   s    r#   r`   zTestScalarArray.test_indexlist6  s    z** 	 	IbMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rY   c                     t          j        dd          }|                     t                    5  | j        |          ddd           dS # 1 swxY w Y   dS rc   rf   rh   s     r#   rj   zTestScalarArray.test_mask;  rk   rl   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS r   rH   r+   s    r#   ro   zTestScalarArray.test_fieldnamesA  rp   rY   Nr   rC   r$   r#   r   r     s        # # #, , ,
, , ,E E E3 3 3
. . .
. . .
  
. . .
  
  
      r$   r   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )Test1DZeroFloatc                     t          j        |            t          j        dd          | _        | j                            d| j                  | _        d S )Nr   r   re   ry   rz   r   r   r   onesr{   r   r}   r   r+   s    r#   r   zTest1DZeroFloat.setUpI  sJ    tGD,,,	F))#DI)>>			r$   c                 F    |                      | j        j        d           dS r'   r   Nr(   r+   s    r#   r,   zTest1DZeroFloat.test_ndimN  r-   r$   c                 F    |                      | j        j        d           dS )r0   r   Nr1   r+   s    r#   r3   zTest1DZeroFloat.test_shapeR  r4   r$   c                 h    |                      | j        | j        t          j        d                    dS )z' Ellipsis -> ndarray of matching shape .NassertNumpyBehaviorr   r{   r   s_r+   s    r#   r@   zTest1DZeroFloat.test_ellipsisV  s*      DIruSzBBBBBr$   c                 h    |                      | j        | j        t          j        d                    dS )r   rC   Nr   r+   s    r#   rD   zTest1DZeroFloat.test_tupleZ  *      DIruRyAAAAAr$   c                 l    |                      | j        | j        t          j        dd                    dS )z  slice -> ndarray of shape (0,) r   rG   Nr   r+   s    r#   rK   zTest1DZeroFloat.test_slice^  s.      DIruQqSzBBBBBr$   c                 l    |                      | j        | j        t          j        dd                    d S N   r_   r   r+   s    r#   test_slice_stop_less_than_startz/Test1DZeroFloat.test_slice_stop_less_than_startb  .      DIruQqSzBBBBBr$   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS )z index -> out of range r   NrI   
IndexErrorr   r+   s    r#   rW   zTest1DZeroFloat.test_indexe  rX   rY   c                 h    |                      | j        | j        t          j        g                     dS )z index list Nr   r+   s    r#   r`   zTest1DZeroFloat.test_indexlistj  r   r$   c                     t          j        dd          }|                     | j        | j        t           j        |         d           dS )z# mask -> ndarray of matching shape r   rd   re   Tskip_fast_readerN)r   r   r   r   r{   r   rh   s     r#   rj   zTest1DZeroFloat.test_maskn  sS    wt6***  IIE$K! 	! 	
 	
 	
 	
 	
r$   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS r   rH   r+   s    r#   ro   zTest1DZeroFloat.test_fieldnamesy  rp   rY   N)rr   rs   rt   r   r,   r3   r@   rD   rK   r   rW   r`   rj   ro   rC   r$   r#   r   r   G  s        ? ? ?
, , ,0 0 0C C CB B BC C CC C C  
B B B	
 	
 	
    r$   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$S )%Test1DFloatc                     t          j        |            t          j        d                              d          | _        | j                            d| j                  | _        d S )N2   r   ry   rz   )	r   r   r   arangeastyper{   r   r}   r   r+   s    r#   r   zTest1DFloat.setUp  sQ    tIbMM((--	F))#DI)>>			r$   c                 F    |                      | j        j        d           dS r   r(   r+   s    r#   r,   zTest1DFloat.test_ndim  r-   r$   c                 F    |                      | j        j        d           dS )r0   )r   Nr1   r+   s    r#   r3   zTest1DFloat.test_shape  s"    %00000r$   c                 h    |                      | j        | j        t          j        d                    d S r>   r   r+   s    r#   r@   zTest1DFloat.test_ellipsis  s*      DIruSzBBBBBr$   c                 h    |                      | j        | j        t          j        d                    d S rB   r   r+   s    r#   rD   zTest1DFloat.test_tuple  *      DIruRyAAAAAr$   c                 l    |                      | j        | j        t          j        dd                    d S )Nr   rG   r   r+   s    r#   test_slice_simplezTest1DFloat.test_slice_simple  r   r$   c                 l    |                      | j        | j        t          j        dd                    d S )NrG   r   r+   s    r#   test_slice_zerosizezTest1DFloat.test_slice_zerosize  r   r$   c                 n    |                      | j        | j        t          j        ddd                    d S )Nr   r   r   r   r+   s    r#   test_slice_strideszTest1DFloat.test_slice_strides  s0      DIruQqU|DDDDDr$   c                 n    |                      | j        | j        t          j        ddd                    d S )Nir   r   r+   s    r#   test_slice_negindexesz!Test1DFloat.test_slice_negindexes  s0      DIruR1W~FFFFFr$   c                 l    |                      | j        | j        t          j        dd                    d S r   r   r+   s    r#   r   z+Test1DFloat.test_slice_stop_less_than_start  r   r$   c                 n    |                      | j        | j        t          j        ddd                    d S )Nd   i  r   r   r+   s    r#   test_slice_outofrangez!Test1DFloat.test_slice_outofrange  s1      DIruSQY7GHHHHHr$   c                     |                      t                    5  | j        ddd          ddd           dS # 1 swxY w Y   dS )z we disallow negative steps NrH   r+   s    r#   test_slice_backwardsz Test1DFloat.test_slice_backwards  s    z** 	 	IdddOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   9= =c                 n    |                      | j        | j        t          j        d d d                    d S )Nr   r   r+   s    r#   test_slice_zerostridez!Test1DFloat.test_slice_zerostride  s0      DIruSSqSzBBBBBr$   c                 h    |                      | j        | j        t          j        d                    d S )Nr   r   r+   s    r#   test_index_simplezTest1DFloat.test_index_simple  s*      DIruQx@@@@@r$   c                 h    |                      | j        | j        t          j        d                    d S )Nr   r+   s    r#   test_index_negzTest1DFloat.test_index_neg  r   r$   c                     |                      t                    5  | j        d           d d d            d S # 1 swxY w Y   d S NrI   	TypeErrorr   r+   s    r#   test_index_nonezTest1DFloat.test_index_none  s    y)) 	 	IdOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rY   c                     |                      t                    5  | j        i           ddd           dS # 1 swxY w Y   dS )z Illegal slicing argument Nr  r+   s    r#   test_index_illegalzTest1DFloat.test_index_illegal  s    y)) 	 	IbMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rY   c                     |                      t                    5  | j        d          d d d            d S # 1 swxY w Y   d S Nr   r   r+   s    r#   test_index_outofrangez!Test1DFloat.test_index_outofrange  s    z** 	 	IcNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rY   c                 l    |                      | j        | j        t          j        g d                    d S Nr]   r   r+   s    r#   test_indexlist_simplez!Test1DFloat.test_indexlist_simple  s.      DIruWWW~FFFFFr$   c           	          |                      | j        | j        t          j        t          j        g d                              d S r  r   r   r{   r   r   rg   r+   s    r#   test_indexlist_numpyarrayz%Test1DFloat.test_indexlist_numpyarray  s9      DIruRXiii=P=P7QRRRRRr$   c           
          |                      | j        | j        t          j        t          ddd                              d S )Nr   r   r^   r   r   r{   r   r   ranger+   s    r#   test_indexlist_longzTest1DFloat.test_indexlist_long  s5      DIruU1b!__7MNNNNNr$   c                 n    |                      | j        | j        t          j        dgdf                    d S Nr   .r   r+   s    r#   $test_indexlist_single_index_ellipsisz0Test1DFloat.test_indexlist_single_index_ellipsis  s0      DIruaS#XGGGGGr$   c                     |                      | j        | j        t          j        t          j        dg          df                    d S r  r  r+   s    r#   /test_indexlist_numpyarray_single_index_ellipsisz;Test1DFloat.test_indexlist_numpyarray_single_index_ellipsis  s:      DIruRXqc]]C=O7PQQQQQr$   c           
          |                      | j        | j        t          j        t          ddd          df                    d S )Nr   r   r^   .r  r+   s    r#   test_indexlist_long_ellipsisz(Test1DFloat.test_indexlist_long_ellipsis  s:      DIruU1b!__c=Q7RSSSSSr$   c           	          |                      | j        | j        t          j        t          j        g d          df                    d S )Nr]   .r  r+   s    r#   "test_indexlist_numpyarray_ellipsisz.Test1DFloat.test_indexlist_numpyarray_ellipsis  s?      DIruRXiii=P=PRU=U7VWWWWWr$   c                 h    |                      | j        | j        t          j        g                     d S r  r   r+   s    r#   test_indexlist_emptyz Test1DFloat.test_indexlist_empty  r   r$   c                     |                      t                    5  | j        dg          d d d            d S # 1 swxY w Y   d S r  r   r+   s    r#   test_indexlist_outofrangez%Test1DFloat.test_indexlist_outofrange  s    z** 	 	Ise	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7;;c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS )z8 we require index list values to be strictly increasing )r   r   r^   Nr  r+   s    r#   test_indexlist_nonmonotonicz'Test1DFloat.test_indexlist_nonmonotonic      y)) 	 	Iggg	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rM   c                     |                      | j        | j        t          j        g d                    |                     t                    5  | j        ddg          d d d            d S # 1 swxY w Y   d S )N)r   r^   r   r   )r   r   r{   r   r   rI   r	  r+   s    r#   !test_indexlist_monotonic_negativez-Test1DFloat.test_indexlist_monotonic_negative  s      DIjjj8IJJJy)) 	  	 Ir2h	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   A++A/2A/c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS )z! we forbid repeated index values )r   r   r^   Nr  r+   s    r#   test_indexlist_repeatedz#Test1DFloat.test_indexlist_repeated  r)  rM   c                 ~    |                      | j        | j        t          j        | j        dk             d           d S )NiTr   r   r+   s    r#   test_mask_truezTest1DFloat.test_mask_true  sG      IIE$)d"#! 	! 	
 	
 	
 	
 	
r$   c                 ~    |                      | j        | j        t          j        | j        dk             d           d S )Nr   Tr   r   r+   s    r#   test_mask_falsezTest1DFloat.test_mask_false  sF      IIE$)c/"! 	! 	
 	
 	
 	
 	
r$   c                 ~    |                      | j        | j        t          j        | j        dk             d           d S )Nr_   Tr   r   r+   s    r#   test_mask_partialzTest1DFloat.test_mask_partial  sF      IIE$)a- ! 	! 	
 	
 	
 	
 	
r$   c                     |                      t                    5  | j        t          j        dd                    ddd           dS # 1 swxY w Y   dS )z4 we require the boolean mask shape to match exactly )r^   rd   re   N)rI   r	  r   r   r   r+   s    r#   test_mask_wrongsizezTest1DFloat.test_mask_wrongsize  s    y)) 	3 	3Ibgd&11122	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   "A

AAc                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS r   rH   r+   s    r#   ro   zTest1DFloat.test_fieldnames  rp   rY   N)&rr   rs   rt   r   r,   r3   r@   rD   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r  r  r  r   r"  r$  r&  r(  r,  r.  r0  r2  r4  r6  ro   rC   r$   r#   r   r     sZ       ? ? ?
, , ,1 1 1C C CB B BC C CC C CE E EG G GC C CI I I  
C C CA A AB B B    
  G G GS S SO O OH H HR R RT T TX X XB B B    
       

 
 

 
 

 
 
3 3 3
    r$   r   c                   &    e Zd Zd Zd Zd Zd ZdS )Test2DZeroFloatc                     t          j        |            t          j        dd          | _        | j                            d| j                  | _        d S )Nr   r   r   re   ry   rz   r   r+   s    r#   r   zTest2DZeroFloat.setUp  J    tGE---	F))#DI)>>			r$   c                 F    |                      | j        j        d           dS r'   r^   Nr(   r+   s    r#   r,   zTest2DZeroFloat.test_ndim  r-   r$   c                 F    |                      | j        j        d           dS )r0   r;  Nr1   r+   s    r#   r3   zTest2DZeroFloat.test_shape"  "    &11111r$   c                 t    |                      | j        | j        t          j        ddg df                    dS z see issue #473 N)r   r   r^   r   r+   s    r#   r`   zTest2DZeroFloat.test_indexlist&  7      DIruQQQwwwY7GHHHHHr$   N)rr   rs   rt   r   r,   r3   r`   rC   r$   r#   r9  r9    sU        ? ? ?
, , ,2 2 2I I I I Ir$   r9  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	Test2DFloatc                     t          j        |            t          j        dd          | _        | j                            d| j                  | _        d S )Nr_   r   r   re   ry   rz   r   r+   s    r#   r   zTest2DFloat.setUp-  r<  r$   c                 F    |                      | j        j        d           dS r>  r(   r+   s    r#   r,   zTest2DFloat.test_ndim2  r-   r$   c                 F    |                      | j        j        d           dS )r      Nr6   r+   s    r#   r8   zTest2DFloat.test_size6  s"    ,,,,,r$   c                 j    |                      | j        j        d| j        j        j        z             dS )r:   rJ  Nr   r+   s    r#   r<   zTest2DFloat.test_nbytes:  s/    )2dio.F+FGGGGGr$   c                 F    |                      | j        j        d           dS )r0   rG  Nr1   r+   s    r#   r3   zTest2DFloat.test_shape>  r@  r$   c                 t    |                      | j        | j        t          j        ddg df                    dS rB  r   r+   s    r#   r`   zTest2DFloat.test_indexlistB  rC  r$   c                     |                      | j        | j        t          j        d d g f                    |                      | j        | j        t          j        g                     d S r  r   r+   s    r#   test_index_emptylistz Test2DFloat.test_index_emptylistF  sT      DIruQQQU|DDD  DIruRyAAAAAr$   N)
rr   rs   rt   r   r,   r8   r<   r3   r`   rO  rC   r$   r#   rE  rE  +  s        ? ? ?
, , ,- - -H H H2 2 2I I IB B B B Br$   rE  c                   Z    e Zd Zd Z ej        ej        dk     d          d             ZdS )TestVeryLargeArrayc                 r    t          j        |            | j                            ddd          | _        d S )Nry   )i   i   f4)r2   r   )r   r   r   r}   r   r+   s    r#   r   zTestVeryLargeArray.setUpM  s4    tF))#^4)PP			r$           z&Maximum integer size >= 2**31 requiredc                 F    |                      | j        j        d           d S )NrT  r6   r+   s    r#   r8   zTestVeryLargeArray.test_sizeQ  s"    /////r$   N)	rr   rs   rt   r   r   skipIfsysmaxsizer8   rC   r$   r#   rQ  rQ  K  sY        Q Q Q RYs{U"$LMM0 0 NM0 0 0r$   rQ  c           
      h   t           j                            t           j        j                  }|                    d           |                    t           j        j                   t          j        t           j                            | j	        t                                          d          t           j        j        t           j                            d          |                    }t           j                            |d d         t!          j        dt           j                             d S )Nr   zutf-8)r_   r   )r   h5pr   DATASET_CREATE	set_chunkset_fill_timer   FILL_TIME_NEVERr   r   r   encoder   
IEEE_F64LEr   create_simpler   testingassert_array_equalzerosfloat64)writable_filedcpldss      r#   test_read_no_fill_valuerj  V  s     8??48233DNN4tx/000	dhoo7##t$$  
 
B J!!"RaR&"(1bj*A*ABBBBBr$   c                   .     e Zd ZdZ fdZd Zd Z xZS )TestBoolIndexz0
    Tests for indexing with Boolean arrays
    c                     t                                                       t          j        d                              dd          | _        | j                            d| j                  | _        d S )N	   r   r   ry   rz   )	superr   r   r   reshapearrr   r}   r   r   	__class__s    r#   r   zTestBoolIndex.setUpk  sU    9Q<<''"--F))#DH)==			r$   c                 x    t           j        g dd d f         }|                     | j        | j        |           d S )N)FTF)r   r   r   r   rq  r   sels     r#   test_select_first_axisz$TestBoolIndex.test_select_first_axisp  s@    e(((*+  DHc:::::r$   c                     t           j        g dd d f         }|                     t                    5  | j        |          d d d            d S # 1 swxY w Y   d S )N)FTFF)r   r   rI   r	  r   ru  s     r#   test_wrong_sizezTestBoolIndex.test_wrong_sizet  s    e///12y)) 	 	IcNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAA)rr   rs   rt   __doc__r   rw  ry  __classcell__rs  s   @r#   rl  rl  g  s`         > > > > >
; ; ;      r$   rl  c                    |                      t                      t          j        d                    }t	          j        t          d          5  |t          j        d d f          d d d            d S # 1 swxY w Y   d S )Nr_   rz   newaxis)match)r}   r   r   r   pytestraisesr	  r~  )rg  ri  s     r#   test_error_newaxisr  z  s    		%	%ikk	!	%	E	EB	y		2	2	2  
2:qqq=                 s   A55A9<A9rq  rn  c                 6    g | ]}|                                 S rC   )r`  ).0ss     r#   
<listcomp>r    s     222!((**222r$   	abcdefghire   c                 T   |                     dd          }t                      }|| |<   | |         }t          j        g d          }t          j                            ||         ||                    t          j                            ||ddf         ||ddf                    dS )z(https://github.com/h5py/h5py/issues/2674r   )TFTN)rp  r   r   rg   rc  rd  )rg  rq  namer   rv  s        r#   test_bool_selection_1dr    s     ++a

C;;DM$D
(&&&
'
'CJ!!$s)SX666J!!$sAAAv,CF<<<<<r$   c                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )%TestZeroSizeSelectionResizableDatasetzh
    Tests for indexing of zero Resizable Datasets
    see https://github.com/h5py/h5py/issues/2549
    c                     t                                                       | j                            dddd          | _        | j                            dddd          | _        d S )Nry   r   rS  r  )maxshapeyrZ  )ro  r   r   r}   dset0dset1rr  s    r#   r   z+TestZeroSizeSelectionResizableDataset.setUp  sX    V**3dW*MM
V**3dW*MM


r$   c                     t           j        d d          }d| j        |<   t          j        g t           j                  | _        |                     | j        | j        |           d S )Nr   re   )r   r   r  rg   r   rq  r   ru  s     r#   test_set_with_scalarz:TestZeroSizeSelectionResizableDataset.test_set_with_scalar  sV    eAAAh
38Bbj111  TXs;;;;;r$   c                     t           j        d d          }|                     t          d          5  t          j        d          | j        |<   d d d            d S # 1 swxY w Y   d S )NCan't broadcast (4,) -> (0,)msgrG   )r   r   rI   r	  r   r  ru  s     r#   test_set_with_arrayz9TestZeroSizeSelectionResizableDataset.test_set_with_array  s    eAAAhy.LMM 	+ 	+ illDJsO	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+   AA"Ac                     t           j        dd         }d| j        |<   t          j        g t           j                  | _        |                     | j        | j        |           d S )Nr   r   re   )r   r   r  rg   r   rq  r   ru  s     r#   test_set_zerosel_with_scalarzBTestZeroSizeSelectionResizableDataset.test_set_zerosel_with_scalar  sV    eAaCj
38Bbj111  TXs;;;;;r$   c                     t           j        dd         }|                     t          d          5  t          j        d          | j        |<   d d d            d S # 1 swxY w Y   d S )Nr   r  r  rG   )r   r   rI   r	  r   r  ru  s     r#   test_set_zerosel_with_arrayzATestZeroSizeSelectionResizableDataset.test_set_zerosel_with_array  s    eAaCjy.LMM 	+ 	+ illDJsO	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+r  )
rr   rs   rt   rz  r   r  r  r  r  r{  r|  s   @r#   r  r    s         N N N N N
< < <+ + +
< < <+ + + + + + +r$   r  )rz  rW  numpyr   r  r   commonr   r   r   r   rv   r   r   r   r   r9  rE  rQ  rj  rl  r  markparametrizer   rg   objectr  r  rC   r$   r#   <module>r     s     D 


       + + + + + + + + + +> > > > > > > >B@ @ @ @ @h @ @ @FF. F. F. F. F. F. F. F.RB B B B Bh B B BJ5 5 5 5 5h 5 5 5pU U U U U( U U UpI I I I Ih I I I(B B B B B( B B B@0 0 0 0 0 0 0 0C C C"    H   &   		!22k222&AAA = = =+ + + + +H + + + + +r$   