
    &Vf!I                     P   d 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 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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TestCasec                   \    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       \/var/www/html/software/conda/lib/python3.11/site-packages/h5py/tests/test_dataset_getitem.pyr   zTestEmpty.setUp6   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_shapeC   "    $/////r#   c                 F    |                      | j        j        d           dS r.   r(   r   sizer*   s    r"   	test_sizezTestEmpty.test_sizeG   s"    .....r#   c                 F    |                      | j        j        d           dS ) Verify nbytes r   N)r(   r   nbytesr*   s    r"   test_nbyteszTestEmpty.test_nbytesK   s#    )1-----r#   c                 R    |                      | j        d         | j                   d S N.r(   r   r   r*   s    r"   test_ellipsiszTestEmpty.test_ellipsisO   s&    388888r#   c                 R    |                      | j        d         | j                   d S N r>   r*   s    r"   
test_tuplezTestEmpty.test_tupleR   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_sliceU       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rH   rI   r   r   MultiBlockSlicer*   s    r"   test_multi_block_slicez TestEmpty.test_multi_block_sliceZ       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   NrG   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         NrG   r*   s    r"   test_indexlistzTestEmpty.test_indexlistd       z** 	 	Iggg	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rL   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   arrayrH   rI   r   r   masks     r"   	test_maskzTestEmpty.test_maski       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 fieldNrG   r*   s    r"   test_fieldnameszTestEmpty.test_fieldnameso       z** 	 	Ig	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rX   N__name__
__module____qualname__r   r+   r2   r7   r;   r?   rC   rJ   rQ   rV   r_   ri   rn   rB   r#   r"   r   r   4   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@rd   xdata)	r   r   r   rf   doublerz   r   create_datasetr   r*   s    r"   r   zTestScalarFloat.setUpw   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   Nr5   r*   s    r"   r7   zTestScalarFloat.test_size   r,   r#   c                 d    |                      | j        j        | j        j        j                   dS r9   Nr(   r   r:   rz   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   r1   tupler*   s    r"   r2   zTestScalarFloat.test_shape   &    %''22222r#   c                 V    | j         d         }|                     || j                   dS z Ellipsis -> scalar ndarray .Nr   assertArrayEqualrz   r   outs     r"   r?   zTestScalarFloat.test_ellipsis   +    inc49-----r#   c                 z    | j         d         }|                     || j                                                   dS )z () -> bare item rB   N)r   r   rz   itemr   s     r"   rC   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 rE   rG   r*   s    r"   rJ   zTestScalarFloat.test_slice   rK   rL   c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS rN   rO   r*   s    r"   rQ   z&TestScalarFloat.test_multi_block_slice   rR   rS   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS rU   rG   r*   s    r"   rV   zTestScalarFloat.test_index   rW   rX   c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS rZ   rG   r*   s    r"   r_   zTestScalarFloat.test_indexlist   r`   rL   c                     t          j        dd          }|                     t                    5  | j        |          ddd           dS # 1 swxY w Y   dS rb   re   rg   s     r"   ri   zTestScalarFloat.test_mask   rj   rk   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) rm   NrG   r*   s    r"   rn   zTestScalarFloat.test_fieldnames   ro   rX   Nrq   rr   rs   r   r+   r7   r;   r2   r?   rC   rJ   rQ   rV   r_   ri   rn   rB   r#   r"   ru   ru   u   s        ? ? ?
, , ,, , ,E E E3 3 3. . .
5 5 5
  
. . .
          r#   ru   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)rw   iHello))ar   )bi)cz|S10rd   rx   ry   )r   r   r   rf   rz   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"   r2   zTestScalarCompound.test_shape   r   r#   c                 F    |                      | j        j        d           dS r   r5   r*   s    r"   r7   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(   r1   rz   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 rB   N)r   r   r   voidr(   r   rz   r   s     r"   rC   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 rE   rG   r*   s    r"   rJ   zTestScalarCompound.test_slice   rK   rL   c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS rN   rO   r*   s    r"   rQ   z)TestScalarCompound.test_multi_block_slice   rR   rS   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS rU   rG   r*   s    r"   rV   zTestScalarCompound.test_index   rW   rX   c                     |                      t                    5  | j        g d          ddd           dS # 1 swxY w Y   dS rZ   rG   r*   s    r"   r_   z!TestScalarCompound.test_indexlist   r`   rL   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  Trc   rd   Nre   rg   s     r"   ri   zTestScalarCompound.test_mask   rj   rk   c                     | j         d         }|                     |t          j                   |                     || j         d                    dS )z field name -> bare value r   N)r   r   r   float32r(   r   s     r"   rn   z"TestScalarCompound.test_fieldnames   sG    inc2:...din-----r#   Nrp   rB   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   rd   rx   rB   .)
r   r   r   r   dtrf   rz   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(   rz   r)   r   r*   s    r"   r+   zTestScalarArray.test_ndim
  s<    ++++++++r#   c                 F    |                      | j        j        d           dS r   r5   r*   s    r"   r7   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 )r/   )   r]   N)r(   rz   r1   r   r   r*   s    r"   r2   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"   rC   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 rE   rG   r*   s    r"   rJ   zTestScalarArray.test_slice&  rK   rL   c                     |                      t                    5  | j        t          j                              ddd           dS # 1 swxY w Y   dS rN   rO   r*   s    r"   rQ   z&TestScalarArray.test_multi_block_slice+  rR   rS   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS rU   rG   r*   s    r"   rV   zTestScalarArray.test_index0  rW   rX   c                     |                      t                    5  | j        g           ddd           dS # 1 swxY w Y   dS )r[   NrG   r*   s    r"   r_   zTestScalarArray.test_indexlist5  s    z** 	 	IbMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rX   c                     t          j        dd          }|                     t                    5  | j        |          ddd           dS # 1 swxY w Y   dS rb   re   rg   s     r"   ri   zTestScalarArray.test_mask:  rj   rk   c                     |                      t                    5  | j        d          ddd           dS # 1 swxY w Y   dS r   rG   r*   s    r"   rn   zTestScalarArray.test_fieldnames@  ro   rX   Nr   rB   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   rd   rx   ry   r   r   r   onesrz   r   r|   r   r*   s    r"   r   zTest1DZeroFloat.setUpH  sJ    tGD,,,	F))#DI)>>			r#   c                 F    |                      | j        j        d           dS r&   r   Nr'   r*   s    r"   r+   zTest1DZeroFloat.test_ndimM  r,   r#   c                 F    |                      | j        j        d           dS )r/   r   Nr0   r*   s    r"   r2   zTest1DZeroFloat.test_shapeQ  r3   r#   c                 h    |                      | j        | j        t          j        d                    dS )z' Ellipsis -> ndarray of matching shape .NassertNumpyBehaviorr   rz   r   s_r*   s    r"   r?   zTest1DZeroFloat.test_ellipsisU  s*      DIruSzBBBBBr#   c                 h    |                      | j        | j        t          j        d                    dS )r   rB   Nr   r*   s    r"   rC   zTest1DZeroFloat.test_tupleY  *      DIruRyAAAAAr#   c                 l    |                      | j        | j        t          j        dd                    dS )z  slice -> ndarray of shape (0,) r   rF   Nr   r*   s    r"   rJ   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_starta  .      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rH   
IndexErrorr   r*   s    r"   rV   zTest1DZeroFloat.test_indexd  rW   rX   c                 h    |                      | j        | j        t          j        g                     dS )z index list Nr   r*   s    r"   r_   zTest1DZeroFloat.test_indexlisti  r   r#   c                     t          j        dd          }|                     | j        | j        t           j        |         d           dS )z# mask -> ndarray of matching shape r   rc   rd   Tskip_fast_readerN)r   r   r   r   rz   r   rg   s     r"   ri   zTest1DZeroFloat.test_maskm  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   rG   r*   s    r"   rn   zTest1DZeroFloat.test_fieldnamesx  ro   rX   N)rq   rr   rs   r   r+   r2   r?   rC   rJ   r   rV   r_   ri   rn   rB   r#   r"   r   r   F  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"S )#Test1DFloatc                     t          j        |            t          j        d                              d          | _        | j                            d| j                  | _        d S )N   r   rx   ry   )	r   r   r   arangeastyperz   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 )r/   )r   Nr0   r*   s    r"   r2   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 rA   r   r*   s    r"   rC   zTest1DFloat.test_tuple  *      DIruRyAAAAAr#   c                 l    |                      | j        | j        t          j        dd                    d S )Nr   rF   r   r*   s    r"   test_slice_simplezTest1DFloat.test_slice_simple  r   r#   c                 l    |                      | j        | j        t          j        dd                    d S )NrF   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 NrG   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rH   	TypeErrorr   r*   s    r"   test_index_nonezTest1DFloat.test_index_none  s    y)) 	 	IdOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rX   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rX   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rX   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   rz   r   r   rf   r*   s    r"   test_indexlist_numpyarrayz%Test1DFloat.test_indexlist_numpyarray  s9      DIruRXiii=P=P7QRRRRRr#   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          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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rL   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   rz   r   r   rH   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"  rL   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]   rc   rd   N)rH   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   rG   r*   s    r"   rn   zTest1DFloat.test_fieldnames  ro   rX   N)$rq   rr   rs   r   r+   r2   r?   rC   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+  r-  r/  rn   rB   r#   r"   r   r   ~  s6       ? ? ?
, , ,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H H HR R R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   rd   rx   ry   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 )r/   r4  Nr0   r*   s    r"   r2   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)rq   rr   rs   r   r+   r2   r_   rB   r#   r"   r2  r2    sU        ? ? ?
, , ,2 2 2I I I I Ir#   r2  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   rd   rx   ry   r   r*   s    r"   r   zTest2DFloat.setUp$  r5  r#   c                 F    |                      | j        j        d           dS r7  r'   r*   s    r"   r+   zTest2DFloat.test_ndim)  r,   r#   c                 F    |                      | j        j        d           dS )r      Nr5   r*   s    r"   r7   zTest2DFloat.test_size-  s"    ,,,,,r#   c                 j    |                      | j        j        d| j        j        j        z             dS )r9   rC  Nr   r*   s    r"   r;   zTest2DFloat.test_nbytes1  s/    )2dio.F+FGGGGGr#   c                 F    |                      | j        j        d           dS )r/   r@  Nr0   r*   s    r"   r2   zTest2DFloat.test_shape5  r9  r#   c                 t    |                      | j        | j        t          j        ddg df                    dS r;  r   r*   s    r"   r_   zTest2DFloat.test_indexlist9  r<  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_emptylist=  sT      DIruQQQU|DDD  DIruRyAAAAAr#   N)
rq   rr   rs   r   r+   r7   r;   r2   r_   rH  rB   r#   r"   r>  r>  "  s        ? ? ?
, , ,- - -H H H2 2 2I I IB B B B Br#   r>  c                   Z    e Zd Zd Z ej        ej        dk     d          d             ZdS )TestVeryLargeArrayc                 p    t          j        |            | j                            dd          | _        d S )Nrx   )i   i   )r1   )r   r   r   r|   r   r*   s    r"   r   zTestVeryLargeArray.setUpD  s2    tF))#^)DD			r#           z&Maximum integer size >= 2**31 requiredc                 F    |                      | j        j        d           d S )NrL  r5   r*   s    r"   r7   zTestVeryLargeArray.test_sizeH  s"    /////r#   N)	rq   rr   rs   r   r   skipIfsysmaxsizer7   rB   r#   r"   rJ  rJ  B  sY        E E E RYs{U"$LMM0 0 NM0 0 0r#   rJ  c           
      *   t           j                            t           j        j                  }|                    d           |                    t           j        j                   t          j        t           j                            | j	        dt           j
        j        t           j                            d          |                    }t          j                            |d d         t          j        dt          j                             d S )N)r      a)r^   r   )r   h5pr   DATASET_CREATE	set_chunkset_fill_timer   FILL_TIME_NEVERr   r   r   
IEEE_F64LEr   create_simpler   testingassert_array_equalzerosfloat64)writable_filedcpldss      r"   test_read_no_fill_valuera  M  s     8??48233DNN4tx/000	dhoo$ 3TX5K5KD5Q5QSW  
 
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   rx   ry   )	superr   r   r   reshapearrr   r|   r   )r   	__class__s    r"   r   zTestBoolIndex.setUp^  sU    9Q<<''"--F))#DH)==			r#   c                 x    t           j        g dd d f         }|                     | j        | j        |           d S )N)FTF)r   r   r   r   rh  r   sels     r"   test_select_first_axisz$TestBoolIndex.test_select_first_axisc  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   rH   r  r   rk  s     r"   test_wrong_sizezTestBoolIndex.test_wrong_sizeg  s    e///12y)) 	 	IcNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAA)rq   rr   rs   __doc__r   rm  ro  __classcell__)ri  s   @r"   rc  rc  Z  s`         > > > > >
; ; ;      r#   rc  )rp  rO  numpyr   r   commonr   r   r   ru   r   r   r   r   r2  r>  rJ  ra  rc  rB   r#   r"   <module>rt     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M M M M M( M M M`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     r#   