
    1Vh!I                        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y)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                   Z    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y)	TestEmptyc                    t        j                  |        t        j                  j	                  t        j                  j
                        }t        j                  j                  j                         }|j                  d       t        j                  j	                  | j                  j                  d||      }t        j                  |      | _        t        j                  t!        j"                  d            | _        y )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       O/home/dcms/DCMS/lib/python3.12/site-packages/h5py/tests/test_dataset_getitem.pyr   zTestEmpty.setUp6   s    thhoodhhmm,hhmm  "Rxxtvvyy$S9LL&	BHHUO4    c                 P    | j                  | j                  j                  d       y Verify number of dimensions r   NassertEqualr   ndimr   s    r"   	test_ndimzTestEmpty.test_ndim?       +r#   c                 P    | j                  | j                  j                  d       y Verify shape Nr(   r   shaper*   s    r"   
test_shapezTestEmpty.test_shapeC       $/r#   c                 P    | j                  | j                  j                  d       yr.   r(   r   sizer*   s    r"   	test_sizezTestEmpty.test_sizeG   s    .r#   c                 P    | j                  | j                  j                  d       y) Verify nbytes r   N)r(   r   nbytesr*   s    r"   test_nbyteszTestEmpty.test_nbytesK   s    ))1-r#   c                 V    | j                  | j                  d   | j                         y N.r(   r   r   r*   s    r"   test_ellipsiszTestEmpty.test_ellipsisO   s    38r#   c                 V    | j                  | j                  d   | j                         y N r>   r*   s    r"   
test_tuplezTestEmpty.test_tupleR   s    27r#   c                 v    | j                  t              5  | j                  dd  ddd       y# 1 sw Y   yxY wz slice -> ValueError r      NassertRaises
ValueErrorr   r*   s    r"   
test_slicezTestEmpty.test_sliceU   2    z* 	IIaN	 	 	   /8c                     | j                  t              5  | j                  t        j                             ddd       y# 1 sw Y   yxY wz MultiBlockSlice -> ValueError NrH   rI   r   r   MultiBlockSlicer*   s    r"   test_multi_block_slicez TestEmpty.test_multi_block_sliceZ   :    z* 	.IId**,-	. 	. 	.   "AA
c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wz index -> ValueError r   NrG   r*   s    r"   
test_indexzTestEmpty.test_index_   0    z* 	IIaL	 	 	rL   c                 z    | j                  t              5  | j                  g d    ddd       y# 1 sw Y   yxY w index list -> ValueError r         NrG   r*   s    r"   test_indexlistzTestEmpty.test_indexlistd   1    z* 	IIg	 	 	   1:c                     t        j                  dd      }| j                  t              5  | j                  |    ddd       y# 1 sw Y   yxY wz mask -> ValueError Tboolr   Nr   arrayrH   rI   r   r   masks     r"   	test_maskzTestEmpty.test_maski   @    xxF+z* 	IIdO	 	 	   AAc                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY w)z field name -> ValueError fieldNrG   r*   s    r"   test_fieldnameszTestEmpty.test_fieldnameso   1    z* 	IIg	 	 	rL   N__name__
__module____qualname__r   r+   r2   r7   r;   r?   rC   rJ   rQ   rV   r^   ri   rn   rB   r#   r"   r   r   4   sC    5,0/.98
.


r#   r   c                   Z    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y)TestScalarFloatc                     t        j                  |        t        j                  dt        j                        | _        | j                  j                  d| j
                        | _        y )N     @E@rd   xdata)	r   r   r   rf   doublerz   r   create_datasetr   r*   s    r"   r   zTestScalarFloat.setUpw   sC    tHHT3	FF))#DII)>	r#   c                 P    | j                  | j                  j                  d       yr%   r'   r*   s    r"   r+   zTestScalarFloat.test_ndim|   r,   r#   c                 P    | j                  | j                  j                  d       y Verify size r   Nr5   r*   s    r"   r7   zTestScalarFloat.test_size   r,   r#   c                     | j                  | j                  j                  | j                  j                  j
                         yr9   Nr(   r   r:   rz   r   itemsizer*   s    r"   r;   zTestScalarFloat.test_nbytes   *    ))499??+C+CDr#   c                 `    | j                  | j                  j                  t                      yr.   r(   r   r1   tupler*   s    r"   r2   zTestScalarFloat.test_shape       %'2r#   c                 Z    | j                   d   }| j                  || j                         yz Ellipsis -> scalar ndarray .Nr   assertArrayEqualrz   r   outs     r"   r?   zTestScalarFloat.test_ellipsis   #    iinc499-r#   c                 v    | j                   d   }| j                  || j                  j                                y)z () -> bare item rB   N)r   r   rz   itemr   s     r"   rC   zTestScalarFloat.test_tuple   s*    iimc499>>#34r#   c                 v    | j                  t              5  | j                  dd  ddd       y# 1 sw Y   yxY wrE   rG   r*   s    r"   rJ   zTestScalarFloat.test_slice   rK   rL   c                     | j                  t              5  | j                  t        j                             ddd       y# 1 sw Y   yxY wrN   rO   r*   s    r"   rQ   z&TestScalarFloat.test_multi_block_slice   rR   rS   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wrU   rG   r*   s    r"   rV   zTestScalarFloat.test_index   rW   rL   c                 z    | j                  t              5  | j                  g d    ddd       y# 1 sw Y   yxY wrY   rG   r*   s    r"   r^   zTestScalarFloat.test_indexlist   r_   r`   c                     t        j                  dd      }| j                  t              5  | j                  |    ddd       y# 1 sw Y   yxY wrb   re   rg   s     r"   ri   zTestScalarFloat.test_mask   rj   rk   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wz& field name -> ValueError (no fields) rm   NrG   r*   s    r"   rn   zTestScalarFloat.test_fieldnames   ro   rL   Nrq   rr   rs   r   r+   r7   r;   r2   r?   rC   rJ   rQ   rV   r^   ri   rn   rB   r#   r"   ru   ru   u   sD    ?
,,E3.
5

.
r#   ru   c                   Z    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y)TestScalarCompoundc                     t        j                  |        t        j                  dg d      | _        | j
                  j                  d| j                        | _        y )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   sA    tHH2:ab	FF))#DII)>	r#   c                 P    | j                  | j                  j                  d       yr%   r'   r*   s    r"   r+   zTestScalarCompound.test_ndim   r,   r#   c                 `    | j                  | j                  j                  t                      yr.   r   r*   s    r"   r2   zTestScalarCompound.test_shape   r   r#   c                 P    | j                  | j                  j                  d       yr   r5   r*   s    r"   r7   zTestScalarCompound.test_size   r,   r#   c                     | j                  | j                  j                  | j                  j                  j
                         yr   r   r*   s    r"   r;   zTestScalarCompound.test_nbytes   r   r#   c                 "   | j                   d   }| j                  |t        j                         | j	                  |j
                  | j                  j
                         | j	                  |j                  | j                  j                         yr   )r   assertIsInstancer   ndarrayr(   r1   rz   r   r   s     r"   r?   z TestScalarCompound.test_ellipsis   s[    iinc2::.DIIOO4DIIOO4r#   c                     | j                   d   }| j                  |t        j                         | j	                  |j
                  | j                  j
                         y)z () -> np.void instance rB   N)r   r   r   voidr(   r   rz   r   s     r"   rC   zTestScalarCompound.test_tuple   s?    iimc277+DIIOO4r#   c                 v    | j                  t              5  | j                  dd  ddd       y# 1 sw Y   yxY wrE   rG   r*   s    r"   rJ   zTestScalarCompound.test_slice   rK   rL   c                     | j                  t              5  | j                  t        j                             ddd       y# 1 sw Y   yxY wrN   rO   r*   s    r"   rQ   z)TestScalarCompound.test_multi_block_slice   rR   rS   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wrU   rG   r*   s    r"   rV   zTestScalarCompound.test_index   rW   rL   c                 z    | j                  t              5  | j                  g d    ddd       y# 1 sw Y   yxY wrY   rG   r*   s    r"   r^   z!TestScalarCompound.test_indexlist   r_   r`   c                     t        j                  dd      }| j                  t              5  | j                  |    ddd       y# 1 sw Y   yxY w)z mask -> ValueError  Trc   rd   Nre   rg   s     r"   ri   zTestScalarCompound.test_mask   rj   rk   c                     | j                   d   }| j                  |t        j                         | j	                  || j                   d          y)z field name -> bare value r   N)r   r   r   float32r(   r   s     r"   rn   z"TestScalarCompound.test_fieldnames   s;    iinc2::.diin-r#   Nrp   rB   r#   r"   r   r      sD    ?
,3,E55
.
.r#   r   c                   Z    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y)TestScalarArrayc                 *   t        j                  |        t        j                  d      | _        t        j
                  g dd      | _        | j                  j                  dd| j                        | _	        | j                  | j                  d<   y )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  sc    t((8$HHAM	FF))#r)A			#r#   c                     | j                  | j                  j                  d       | j                  | j                  j                  d       y)r&   r\   r   N)r(   rz   r)   r   r*   s    r"   r+   zTestScalarArray.test_ndim
  s2    ++r#   c                 P    | j                  | j                  j                  d       yr   r5   r*   s    r"   r7   zTestScalarArray.test_size  r,   r#   c                     | j                  | j                  j                  | j                  j                  j                         yr   )r(   r   r:   r   r   r*   s    r"   r;   zTestScalarArray.test_nbytes  r   r#   c                     | j                  | j                  j                  d       | j                  | j                  j                  t	                      y)r/   )   r\   N)r(   rz   r1   r   r   r*   s    r"   r2   zTestScalarArray.test_shape  s4    &1%'2r#   c                 Z    | j                   d   }| j                  || j                         y)z2 Ellipsis -> ndarray promoted to underlying shape .Nr   r   s     r"   r?   zTestScalarArray.test_ellipsis  r   r#   c                 Z    | j                   d   }| j                  || j                         y) () -> same as ellipsis .Nr   r   s     r"   rC   zTestScalarArray.test_tuple!  r   r#   c                 v    | j                  t              5  | j                  dd  ddd       y# 1 sw Y   yxY wrE   rG   r*   s    r"   rJ   zTestScalarArray.test_slice&  rK   rL   c                     | j                  t              5  | j                  t        j                             ddd       y# 1 sw Y   yxY wrN   rO   r*   s    r"   rQ   z&TestScalarArray.test_multi_block_slice+  rR   rS   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wrU   rG   r*   s    r"   rV   zTestScalarArray.test_index0  rW   rL   c                 v    | j                  t              5  | j                  g     ddd       y# 1 sw Y   yxY w)rZ   NrG   r*   s    r"   r^   zTestScalarArray.test_indexlist5  s0    z* 	IIbM	 	 	rL   c                     t        j                  dd      }| j                  t              5  | j                  |    ddd       y# 1 sw Y   yxY wrb   re   rg   s     r"   ri   zTestScalarArray.test_mask:  rj   rk   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wr   rG   r*   s    r"   rn   zTestScalarArray.test_fieldnames@  ro   rL   Nr   rB   r#   r"   r   r     sD    #,
,E3
.
.

.


r#   r   c                   N    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y)Test1DZeroFloatc                     t        j                  |        t        j                  dd      | _        | j
                  j                  d| j                        | _        y )Nr   r   rd   rx   ry   r   r   r   onesrz   r   r|   r   r*   s    r"   r   zTest1DZeroFloat.setUpH  s?    tGGD,	FF))#DII)>	r#   c                 P    | j                  | j                  j                  d       yr&   r   Nr'   r*   s    r"   r+   zTest1DZeroFloat.test_ndimM  r,   r#   c                 P    | j                  | j                  j                  d       y)r/   r   Nr0   r*   s    r"   r2   zTest1DZeroFloat.test_shapeQ  r3   r#   c                 t    | j                  | j                  | j                  t        j                  d          y)z' Ellipsis -> ndarray of matching shape .NassertNumpyBehaviorr   rz   r   s_r*   s    r"   r?   zTest1DZeroFloat.test_ellipsisU  s$      DIIruuSzBr#   c                 t    | j                  | j                  | j                  t        j                  d          y)r   rB   Nr   r*   s    r"   rC   zTest1DZeroFloat.test_tupleY  $      DIIruuRyAr#   c                 t    | j                  | j                  | j                  t        j                  dd        y)z  slice -> ndarray of shape (0,) r   rF   Nr   r*   s    r"   rJ   zTest1DZeroFloat.test_slice]  s&      DIIruuQqzBr#   c                 t    | j                  | j                  | j                  t        j                  dd        y N   r]   r   r*   s    r"   test_slice_stop_less_than_startz/Test1DZeroFloat.test_slice_stop_less_than_starta  &      DIIruuQqzBr#   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY w)z index -> out of range r   NrH   
IndexErrorr   r*   s    r"   rV   zTest1DZeroFloat.test_indexd  rW   rL   c                 t    | j                  | j                  | j                  t        j                  g           y)z index list Nr   r*   s    r"   r^   zTest1DZeroFloat.test_indexlisti  r   r#   c                     t        j                  dd      }| j                  | j                  | j                  t         j
                  |   d       y)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  sA    wwt6*  IIIIEE$K! 	! 	
r#   c                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wr   rG   r*   s    r"   rn   zTest1DZeroFloat.test_fieldnamesx  ro   rL   N)rq   rr   rs   r   r+   r2   r?   rC   rJ   r   rV   r^   ri   rn   rB   r#   r"   r   r   F  s>    ?
,0CBCC
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#y")#Test1DFloatc                     t        j                  |        t        j                  d      j	                  d      | _        | j                  j                  d| j
                        | _        y )N   r   rx   ry   )	r   r   r   arangeastyperz   r   r|   r   r*   s    r"   r   zTest1DFloat.setUp  sG    tIIbM((-	FF))#DII)>	r#   c                 P    | j                  | j                  j                  d       yr   r'   r*   s    r"   r+   zTest1DFloat.test_ndim  r,   r#   c                 P    | j                  | j                  j                  d       y)r/   )r   Nr0   r*   s    r"   r2   zTest1DFloat.test_shape  s    %0r#   c                 t    | j                  | j                  | j                  t        j                  d          y r=   r   r*   s    r"   r?   zTest1DFloat.test_ellipsis  s$      DIIruuSzBr#   c                 t    | j                  | j                  | j                  t        j                  d          y rA   r   r*   s    r"   rC   zTest1DFloat.test_tuple  $      DIIruuRyAr#   c                 t    | j                  | j                  | j                  t        j                  dd        y )Nr   rF   r   r*   s    r"   test_slice_simplezTest1DFloat.test_slice_simple  r   r#   c                 t    | j                  | j                  | j                  t        j                  dd        y )NrF   r   r*   s    r"   test_slice_zerosizezTest1DFloat.test_slice_zerosize  r   r#   c                 z    | j                  | j                  | j                  t        j                  ddd          y )Nr   r   r   r   r*   s    r"   test_slice_strideszTest1DFloat.test_slice_strides  s*      DIIruuQqU|Dr#   c                 z    | j                  | j                  | j                  t        j                  ddd          y )Nir   r   r*   s    r"   test_slice_negindexesz!Test1DFloat.test_slice_negindexes  s*      DIIruuR1W~Fr#   c                 t    | j                  | j                  | j                  t        j                  dd        y r   r   r*   s    r"   r   z+Test1DFloat.test_slice_stop_less_than_start  r   r#   c                 z    | j                  | j                  | j                  t        j                  ddd          y )Nd   i  r   r   r*   s    r"   test_slice_outofrangez!Test1DFloat.test_slice_outofrange  s+      DIIruuSQY7GHr#   c                 |    | j                  t              5  | j                  ddd    ddd       y# 1 sw Y   yxY w)z we disallow negative steps NrG   r*   s    r"   test_slice_backwardsz Test1DFloat.test_slice_backwards  s4    z* 	IIddO	 	 	s   2;c                 z    | j                  | j                  | j                  t        j                  d d d          y )Nr   r   r*   s    r"   test_slice_zerostridez!Test1DFloat.test_slice_zerostride  s(      DIIruuSqSzBr#   c                 t    | j                  | j                  | j                  t        j                  d          y )Nr   r   r*   s    r"   test_index_simplezTest1DFloat.test_index_simple  s$      DIIruuQx@r#   c                 t    | j                  | j                  | j                  t        j                  d          y )Nr   r*   s    r"   test_index_negzTest1DFloat.test_index_neg  r   r#   c                 v    | j                  t              5  | j                  d     d d d        y # 1 sw Y   y xY wNrH   	TypeErrorr   r*   s    r"   test_index_nonezTest1DFloat.test_index_none  s0    y) 	IIdO	 	 	rL   c                 v    | j                  t              5  | j                  i     ddd       y# 1 sw Y   yxY w)z Illegal slicing argument Nr  r*   s    r"   test_index_illegalzTest1DFloat.test_index_illegal  s0    y) 	IIbM	 	 	rL   c                 v    | j                  t              5  | j                  d    d d d        y # 1 sw Y   y xY wNr   r   r*   s    r"   test_index_outofrangez!Test1DFloat.test_index_outofrange  s0    z* 	IIcN	 	 	rL   c                 x    | j                  | j                  | j                  t        j                  g d          y Nr[   r   r*   s    r"   test_indexlist_simplez!Test1DFloat.test_indexlist_simple  s$      DIIruuW~Fr#   c           	          | j                  | j                  | j                  t        j                  t        j
                  g d                y r  r   r   rz   r   r   rf   r*   s    r"   test_indexlist_numpyarrayz%Test1DFloat.test_indexlist_numpyarray  s.      DIIruuRXXi=P7QRr#   c                 z    | j                  | j                  | j                  t        j                  dgdf          y Nr   .r   r*   s    r"   $test_indexlist_single_index_ellipsisz0Test1DFloat.test_indexlist_single_index_ellipsis  s*      DIIruuaS#XGr#   c                     | j                  | j                  | j                  t        j                  t        j
                  dg      df          y r  r  r*   s    r"   /test_indexlist_numpyarray_single_index_ellipsisz;Test1DFloat.test_indexlist_numpyarray_single_index_ellipsis  s4      DIIruuRXXqc]C=O7PQr#   c           	          | j                  | j                  | j                  t        j                  t        j
                  g d      df          y )Nr[   .r  r*   s    r"   "test_indexlist_numpyarray_ellipsisz.Test1DFloat.test_indexlist_numpyarray_ellipsis  s4      DIIruuRXXi=PRU=U7VWr#   c                 t    | j                  | j                  | j                  t        j                  g           y r  r   r*   s    r"   test_indexlist_emptyz Test1DFloat.test_indexlist_empty  r   r#   c                 x    | j                  t              5  | j                  dg    d d d        y # 1 sw Y   y xY wr  r   r*   s    r"   test_indexlist_outofrangez%Test1DFloat.test_indexlist_outofrange  s3    z* 	IIse	 	 	s   09c                 z    | j                  t              5  | j                  g d    ddd       y# 1 sw Y   yxY w)z8 we require index list values to be strictly increasing )r   r   r\   Nr  r*   s    r"   test_indexlist_nonmonotonicz'Test1DFloat.test_indexlist_nonmonotonic  1    y) 	IIg	 	 	r`   c                     | j                  | j                  | j                  t        j                  g d          | j                  t              5  | j                  ddg    d d d        y # 1 sw Y   y xY w)N)r   r\   r   r   )r   r   rz   r   r   rH   r  r*   s    r"   !test_indexlist_monotonic_negativez-Test1DFloat.test_indexlist_monotonic_negative  sX      DIIj8IJy) 	 IIr2h	  	  	 s   A++A4c                 z    | j                  t              5  | j                  g d    ddd       y# 1 sw Y   yxY w)z! we forbid repeated index values )r   r   r\   Nr  r*   s    r"   test_indexlist_repeatedz#Test1DFloat.test_indexlist_repeated  r"  r`   c                     | j                  | j                  | j                  t        j                  | j                  dkD     d       y )NiTr   r   r*   s    r"   test_mask_truezTest1DFloat.test_mask_true  s;      IIIIEE$))d"#! 	! 	
r#   c                     | j                  | j                  | j                  t        j                  | j                  dkD     d       y )Nr   Tr   r   r*   s    r"   test_mask_falsezTest1DFloat.test_mask_false  s:      IIIIEE$))c/"! 	! 	
r#   c                     | j                  | j                  | j                  t        j                  | j                  dkD     d       y )Nr]   Tr   r   r*   s    r"   test_mask_partialzTest1DFloat.test_mask_partial  s:      IIIIEE$))a- ! 	! 	
r#   c                     | j                  t              5  | j                  t        j                  dd          ddd       y# 1 sw Y   yxY w)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IIbggd&12	3 	3 	3s   %AAc                 v    | j                  t              5  | j                  d    ddd       y# 1 sw Y   yxY wr   rG   r*   s    r"   rn   zTest1DFloat.test_fieldnames  ro   rL   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   ~  s    ?
,1CBCCEGCI
CAB
GSHRXB
 



3
r#   r   c                   $    e Zd Zd Zd Zd Zd Zy)Test2DZeroFloatc                     t        j                  |        t        j                  dd      | _        | j
                  j                  d| j                        | _        y )Nr   r   r   rd   rx   ry   r   r*   s    r"   r   zTest2DZeroFloat.setUp  ?    tGGE-	FF))#DII)>	r#   c                 P    | j                  | j                  j                  d       yr&   r\   Nr'   r*   s    r"   r+   zTest2DZeroFloat.test_ndim  r,   r#   c                 P    | j                  | j                  j                  d       y)r/   r4  Nr0   r*   s    r"   r2   zTest2DZeroFloat.test_shape      &1r#   c                     | j                  | j                  | j                  t        j                  ddg df          yz see issue #473 N)r   r   r\   r   r*   s    r"   r^   zTest2DZeroFloat.test_indexlist  )      DIIruuQwY7GHr#   N)rq   rr   rs   r   r+   r2   r^   rB   r#   r"   r2  r2    s    ?
,2Ir#   r2  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	Test2DFloatc                     t        j                  |        t        j                  dd      | _        | j
                  j                  d| j                        | _        y )Nr]   r   r   rd   rx   ry   r   r*   s    r"   r   zTest2DFloat.setUp$  r5  r#   c                 P    | j                  | j                  j                  d       yr7  r'   r*   s    r"   r+   zTest2DFloat.test_ndim)  r,   r#   c                 P    | j                  | j                  j                  d       y)r      Nr5   r*   s    r"   r7   zTest2DFloat.test_size-  s    ,r#   c                     | j                  | j                  j                  d| j                  j                  j
                  z         y)r9   rC  Nr   r*   s    r"   r;   zTest2DFloat.test_nbytes1  s/    ))2diioo.F.F+FGr#   c                 P    | j                  | j                  j                  d       y)r/   r@  Nr0   r*   s    r"   r2   zTest2DFloat.test_shape5  r9  r#   c                     | j                  | j                  | j                  t        j                  ddg df          yr;  r   r*   s    r"   r^   zTest2DFloat.test_indexlist9  r<  r#   c                     | j                  | j                  | j                  t        j                  d d g f          | j                  | j                  | j                  t        j                  g           y r  r   r*   s    r"   test_index_emptylistz Test2DFloat.test_index_emptylist=  sJ      DIIruuQU|D  DIIruuRyAr#   N)
rq   rr   rs   r   r+   r7   r;   r2   r^   rH  rB   r#   r"   r>  r>  "  s(    ?
,-H2IBr#   r>  c                   ^    e Zd Zd Z ej
                  ej                  dk  d      d        Zy)TestVeryLargeArrayc                 r    t        j                  |        | j                  j                  dd      | _        y )Nrx   )i   i   )r1   )r   r   r   r|   r   r*   s    r"   r   zTestVeryLargeArray.setUpD  s)    tFF))#^)D	r#           z&Maximum integer size >= 2**31 requiredc                 P    | j                  | j                  j                  d       y )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  s4    E RYYs{{U"$LM0 N0r#   rJ  c           
      Z   t         j                  j                  t         j                  j                        }|j	                  d       |j                  t         j                  j                         t        j                  t         j                  j                  | j                  dt         j                  j                  t         j                  j                  d      |            }t        j                  j!                  |d d t        j"                  dt        j$                               y )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     88??488223DNN4txx//0	dhhoo$ 3 3TXX5K5KD5QSW 
B JJ!!"Ra&"((1bjj*A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      j	                  dd      | _        | j                  j                  d| j
                        | _        y )N	   r   r   rx   ry   )	superr   r   r   reshapearrr   r|   r   )r   	__class__s    r"   r   zTestBoolIndex.setUp^  sG    99Q<''"-FF))#DHH)=	r#   c                     t         j                  g dd d f   }| j                  | j                  | j                  |       y )N)FTF)r   r   r   r   rh  r   sels     r"   test_select_first_axisz$TestBoolIndex.test_select_first_axisc  s0    ee(*+  DHHc:r#   c                     t         j                  g dd d f   }| j                  t              5  | j                  |    d d d        y # 1 sw Y   y xY w)N)FTFF)r   r   rH   r  r   rk  s     r"   test_wrong_sizezTestBoolIndex.test_wrong_sizeg  sD    ee/12y) 	IIcN	 	 	s   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.RBh BJ5h 5pM( M`Ih I(B( B@0 0
CH r#   