B
    dI                 @   s   d Z ddlZddlZddlZddlmZmZ G dd deZG dd deZ	G d	d
 d
eZ
G dd deZeejjdkdG dd deZG dd deZeejjdkdG dd deZG dd deZG dd deZdd ZG d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               @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )	TestEmptyc             C   sh   t |  tjtjj}tjj }|	d tj
| jjd||}t|| _ttd| _d S )N
      xZS10)r   setUph5pyh5screateZNULLh5tZC_S1copyZset_sizeh5dfidDatasetdsetEmptynpdtype	empty_obj)selfZsidtidZdsid r   Q/var/www/html/venv/lib/python3.7/site-packages/h5py/tests/test_dataset_getitem.pyr   6   s    

zTestEmpty.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r   N)assertEqualr   ndim)r   r   r   r   	test_ndim?   s    zTestEmpty.test_ndimc             C   s   |  | jjd dS )z Verify shape N)r   r   shape)r   r   r   r   
test_shapeC   s    zTestEmpty.test_shapec             C   s   |  | jjd dS )z Verify shape N)r   r   size)r   r   r   r   	test_sizeG   s    zTestEmpty.test_sizec             C   s   |  | jjd dS )z Verify nbytes r   N)r   r   nbytes)r   r   r   r   test_nbytesK   s    zTestEmpty.test_nbytesc             C   s   |  | jd | j d S )N.)r   r   r   )r   r   r   r   test_ellipsisO   s    zTestEmpty.test_ellipsisc             C   s   |  | jd | j d S )Nr   )r   r   r   )r   r   r   r   
test_tupleR   s    zTestEmpty.test_tuplec          	   C   s(   |  t | jdd  W dQ R X dS )z slice -> ValueError r      N)assertRaises
ValueErrorr   )r   r   r   r   
test_sliceU   s    zTestEmpty.test_slicec          	   C   s(   |  t | jt   W dQ R X dS )z MultiBlockSlice -> ValueError N)r'   r(   r   r	   MultiBlockSlice)r   r   r   r   test_multi_block_sliceZ   s    z TestEmpty.test_multi_block_slicec          	   C   s$   |  t | jd  W dQ R X dS )z index -> ValueError r   N)r'   r(   r   )r   r   r   r   
test_index_   s    zTestEmpty.test_indexc          	   C   s*   |  t | jdddg  W dQ R X dS )z index list -> ValueError r         N)r'   r(   r   )r   r   r   r   test_indexlistd   s    zTestEmpty.test_indexlistc          	   C   s2   t jddd}| t | j|  W dQ R X dS )z mask -> ValueError Tbool)r   N)r   arrayr'   r(   r   )r   maskr   r   r   	test_maski   s    zTestEmpty.test_maskc          	   C   s$   |  t | jd  W dQ R X dS )z field name -> ValueError fieldN)r'   r(   r   )r   r   r   r   test_fieldnameso   s    zTestEmpty.test_fieldnamesN)__name__
__module____qualname__r   r   r   r!   r#   r$   r%   r)   r+   r,   r/   r3   r5   r   r   r   r   r   4   s   	r   c               @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )TestScalarFloatc             C   s2   t |  tjddd| _| jjd| jd| _d S )Ng     @E@r   )r   x)data)r   r   r   r1   r;   r   create_datasetr   )r   r   r   r   r   w   s    
zTestScalarFloat.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r   N)r   r   r   )r   r   r   r   r   |   s    zTestScalarFloat.test_ndimc             C   s   |  | jjd dS )z Verify size r   N)r   r   r    )r   r   r   r   r!      s    zTestScalarFloat.test_sizec             C   s   |  | jj| jjj dS )z Verify nbytes N)r   r   r"   r;   r   itemsize)r   r   r   r   r#      s    zTestScalarFloat.test_nbytesc             C   s   |  | jjt  dS )z Verify shape N)r   r   r   tuple)r   r   r   r   r      s    zTestScalarFloat.test_shapec             C   s   | j d }| || j dS )z Ellipsis -> scalar ndarray .N)r   assertArrayEqualr;   )r   outr   r   r   r$      s    
zTestScalarFloat.test_ellipsisc             C   s    | j d }| || j  dS )z () -> bare item r   N)r   r?   r;   item)r   r@   r   r   r   r%      s    
zTestScalarFloat.test_tuplec          	   C   s(   |  t | jdd  W dQ R X dS )z slice -> ValueError r   r&   N)r'   r(   r   )r   r   r   r   r)      s    zTestScalarFloat.test_slicec          	   C   s(   |  t | jt   W dQ R X dS )z MultiBlockSlice -> ValueError N)r'   r(   r   r	   r*   )r   r   r   r   r+      s    z&TestScalarFloat.test_multi_block_slicec          	   C   s$   |  t | jd  W dQ R X dS )z index -> ValueError r   N)r'   r(   r   )r   r   r   r   r,      s    zTestScalarFloat.test_indexc          	   C   s*   |  t | jdddg  W dQ R X dS )z index list -> ValueError r   r-   r.   N)r'   r(   r   )r   r   r   r   r/      s    zTestScalarFloat.test_indexlistc          	   C   s2   t jddd}| t | j|  W dQ R X dS )z mask -> ValueError Tr0   )r   N)r   r1   r'   r(   r   )r   r2   r   r   r   r3      s    zTestScalarFloat.test_maskc          	   C   s$   |  t | jd  W dQ R X dS )z& field name -> ValueError (no fields) r4   N)r'   r(   r   )r   r   r   r   r5      s    zTestScalarFloat.test_fieldnamesN)r6   r7   r8   r   r   r!   r#   r   r$   r%   r)   r+   r,   r/   r3   r5   r   r   r   r   r9   u   s   r9   c               @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )TestScalarCompoundc             C   s8   t |  tjddddgd| _| jjd| jd| _d S )N)g     @E@iZHello)ar   )bi)cz|S10)r   r:   )r;   )r   r   r   r1   r;   r   r<   r   )r   r   r   r   r      s    
zTestScalarCompound.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r   N)r   r   r   )r   r   r   r   r      s    zTestScalarCompound.test_ndimc             C   s   |  | jjt  dS )z Verify shape N)r   r   r   r>   )r   r   r   r   r      s    zTestScalarCompound.test_shapec             C   s   |  | jjd dS )z Verify size r   N)r   r   r    )r   r   r   r   r!      s    zTestScalarCompound.test_sizec             C   s   |  | jj| jjj dS )z Verify nbytes N)r   r   r"   r;   r   r=   )r   r   r   r   r#      s    zTestScalarCompound.test_nbytesc             C   s@   | j d }| |tj | |j| jj | |j| jj dS )z Ellipsis -> scalar ndarray .N)r   assertIsInstancer   Zndarrayr   r   r;   r   )r   r@   r   r   r   r$      s    
z TestScalarCompound.test_ellipsisc             C   s.   | j d }| |tj | |j| jj dS )z () -> np.void instance r   N)r   rG   r   voidr   r   r;   )r   r@   r   r   r   r%      s    
zTestScalarCompound.test_tuplec          	   C   s(   |  t | jdd  W dQ R X dS )z slice -> ValueError r   r&   N)r'   r(   r   )r   r   r   r   r)      s    zTestScalarCompound.test_slicec          	   C   s(   |  t | jt   W dQ R X dS )z MultiBlockSlice -> ValueError N)r'   r(   r   r	   r*   )r   r   r   r   r+      s    z)TestScalarCompound.test_multi_block_slicec          	   C   s$   |  t | jd  W dQ R X dS )z index -> ValueError r   N)r'   r(   r   )r   r   r   r   r,      s    zTestScalarCompound.test_indexc          	   C   s*   |  t | jdddg  W dQ R X dS )z index list -> ValueError r   r-   r.   N)r'   r(   r   )r   r   r   r   r/      s    z!TestScalarCompound.test_indexlistc          	   C   s2   t jddd}| t | j|  W dQ R X dS )z mask -> ValueError  Tr0   )r   N)r   r1   r'   r(   r   )r   r2   r   r   r   r3      s    zTestScalarCompound.test_maskc             C   s.   | j d }| |tj | || j d  dS )z field name -> bare value rC   N)r   rG   r   Zfloat32r   )r   r@   r   r   r   r5      s    
z"TestScalarCompound.test_fieldnamesN)r6   r7   r8   r   r   r   r!   r#   r$   r%   r)   r+   r,   r/   r3   r5   r   r   r   r   rB      s   rB   c               @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )TestScalarArrayc             C   sR   t |  td| _tjdddgdd| _| jjdd| jd| _	| j| j	d	< d S )
Nz(3,2)f)g	@i)*   g33333X@)gQ	@r   r   )r   r:   r   .)
r   r   r   r   dtr1   r;   r   r<   r   )r   r   r   r   r     s
    
zTestScalarArray.setUpc             C   s$   |  | jjd |  | jjd dS )z Verify number of dimensions r-   r   N)r   r;   r   r   )r   r   r   r   r   
  s    zTestScalarArray.test_ndimc             C   s   |  | jjd dS )z Verify size r   N)r   r   r    )r   r   r   r   r!     s    zTestScalarArray.test_sizec             C   s   |  | jj| jjj dS )z Verify nbytes N)r   r   r"   r   r=   )r   r   r   r   r#     s    zTestScalarArray.test_nbytesc             C   s&   |  | jjd |  | jjt  dS )z Verify shape )   r-   N)r   r;   r   r   r>   )r   r   r   r   r     s    zTestScalarArray.test_shapec             C   s   | j d }| || j dS )z2 Ellipsis -> ndarray promoted to underlying shape .N)r   r?   r;   )r   r@   r   r   r   r$     s    
zTestScalarArray.test_ellipsisc             C   s   | j d }| || j dS )z () -> same as ellipsis .N)r   r?   r;   )r   r@   r   r   r   r%   !  s    
zTestScalarArray.test_tuplec          	   C   s(   |  t | jdd  W dQ R X dS )z slice -> ValueError r   r&   N)r'   r(   r   )r   r   r   r   r)   &  s    zTestScalarArray.test_slicec          	   C   s(   |  t | jt   W dQ R X dS )z MultiBlockSlice -> ValueError N)r'   r(   r   r	   r*   )r   r   r   r   r+   +  s    z&TestScalarArray.test_multi_block_slicec          	   C   s$   |  t | jd  W dQ R X dS )z index -> ValueError r   N)r'   r(   r   )r   r   r   r   r,   0  s    zTestScalarArray.test_indexc          	   C   s$   |  t | jg   W dQ R X dS )z index list -> ValueError N)r'   r(   r   )r   r   r   r   r/   5  s    zTestScalarArray.test_indexlistc          	   C   s2   t jddd}| t | j|  W dQ R X dS )z mask -> ValueError Tr0   )r   N)r   r1   r'   r(   r   )r   r2   r   r   r   r3   :  s    zTestScalarArray.test_maskc          	   C   s$   |  t | jd  W dQ R X dS )z& field name -> ValueError (no fields) r4   N)r'   r(   r   )r   r   r   r   r5   @  s    zTestScalarArray.test_fieldnamesN)r6   r7   r8   r   r   r!   r#   r   r$   r%   r)   r+   r,   r/   r3   r5   r   r   r   r   rI     s   rI   )r         zHDF5 1.8.7+ requiredc               @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )Test1DZeroFloatc             C   s2   t |  tjddd| _| jjd| jd| _d S )N)r   r   )r   r:   )r;   )r   r   r   onesr;   r   r<   r   )r   r   r   r   r   I  s    
zTest1DZeroFloat.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r   N)r   r   r   )r   r   r   r   r   N  s    zTest1DZeroFloat.test_ndimc             C   s   |  | jjd dS )z Verify shape )r   N)r   r   r   )r   r   r   r   r   R  s    zTest1DZeroFloat.test_shapec             C   s   |  | j| jtjd  dS )z' Ellipsis -> ndarray of matching shape .N)assertNumpyBehaviorr   r;   r   s_)r   r   r   r   r$   V  s    zTest1DZeroFloat.test_ellipsisc             C   s   |  | j| jtjd  dS )z () -> same as ellipsis r   N)rQ   r   r;   r   rR   )r   r   r   r   r%   Z  s    zTest1DZeroFloat.test_tuplec             C   s    |  | j| jtjdd  dS )z  slice -> ndarray of shape (0,) r   r&   N)rQ   r   r;   r   rR   )r   r   r   r   r)   ^  s    zTest1DZeroFloat.test_slicec             C   s    |  | j| jtjdd  d S )NrN   r.   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_stop_less_than_startb  s    z/Test1DZeroFloat.test_slice_stop_less_than_startc          	   C   s$   |  t | jd  W dQ R X dS )z index -> out of range r   N)r'   
IndexErrorr   )r   r   r   r   r,   e  s    zTest1DZeroFloat.test_indexc             C   s   |  | j| jtjg   dS )z index list N)rQ   r   r;   r   rR   )r   r   r   r   r/   j  s    zTest1DZeroFloat.test_indexlistc             C   s.   t jddd}| j| j| jt j| dd dS )z# mask -> ndarray of matching shape )r   r0   )r   T)skip_fast_readerN)r   rP   rQ   r   r;   rR   )r   r2   r   r   r   r3   n  s    zTest1DZeroFloat.test_maskc          	   C   s$   |  t | jd  W dQ R X dS )z& field name -> ValueError (no fields) r4   N)r'   r(   r   )r   r   r   r   r5   y  s    zTest1DZeroFloat.test_fieldnamesN)r6   r7   r8   r   r   r   r$   r%   r)   rS   r,   r/   r3   r5   r   r   r   r   rO   F  s   rO   c               @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCS )DTest1DFloatc             C   s4   t |  tdd| _| jjd| jd| _d S )N   r   r:   )r;   )	r   r   r   arangeZastyper;   r   r<   r   )r   r   r   r   r     s    
zTest1DFloat.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r   N)r   r   r   )r   r   r   r   r     s    zTest1DFloat.test_ndimc             C   s   |  | jjd dS )z Verify shape )rW   N)r   r   r   )r   r   r   r   r     s    zTest1DFloat.test_shapec             C   s   |  | j| jtjd  d S )N.)rQ   r   r;   r   rR   )r   r   r   r   r$     s    zTest1DFloat.test_ellipsisc             C   s   |  | j| jtjd  d S )Nr   )rQ   r   r;   r   rR   )r   r   r   r   r%     s    zTest1DFloat.test_tuplec             C   s    |  | j| jtjdd  d S )Nr   r&   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_simple  s    zTest1DFloat.test_slice_simplec             C   s    |  | j| jtjdd  d S )Nr&   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_zerosize  s    zTest1DFloat.test_slice_zerosizec             C   s"   |  | j| jtjddd  d S )Nr   rN   rL   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_strides  s    zTest1DFloat.test_slice_stridesc             C   s"   |  | j| jtjddd  d S )NirL   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_negindexes  s    z!Test1DFloat.test_slice_negindexesc             C   s    |  | j| jtjdd  d S )NrN   r.   )rQ   r   r;   r   rR   )r   r   r   r   rS     s    z+Test1DFloat.test_slice_stop_less_than_startc             C   s"   |  | j| jtjddd  d S )Nd   i  rL   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_outofrange  s    z!Test1DFloat.test_slice_outofrangec          	   C   s*   |  t | jddd  W dQ R X dS )z we disallow negative steps N)r'   r(   r   )r   r   r   r   test_slice_backwards  s    z Test1DFloat.test_slice_backwardsc             C   s"   |  | j| jtjd d d  d S )Nr   )rQ   r   r;   r   rR   )r   r   r   r   test_slice_zerostride  s    z!Test1DFloat.test_slice_zerostridec             C   s   |  | j| jtjd  d S )NrL   )rQ   r   r;   r   rR   )r   r   r   r   test_index_simple  s    zTest1DFloat.test_index_simplec             C   s   |  | j| jtjd  d S )N)rQ   r   r;   r   rR   )r   r   r   r   test_index_neg  s    zTest1DFloat.test_index_negc          	   C   s$   |  t | jd   W d Q R X d S )N)r'   	TypeErrorr   )r   r   r   r   test_index_none  s    zTest1DFloat.test_index_nonec          	   C   s$   |  t | ji   W dQ R X dS )z Illegal slicing argument N)r'   rf   r   )r   r   r   r   test_index_illegal  s    zTest1DFloat.test_index_illegalc          	   C   s$   |  t | jd  W d Q R X d S )Nr^   )r'   rT   r   )r   r   r   r   test_index_outofrange  s    z!Test1DFloat.test_index_outofrangec             C   s"   |  | j| jtjdddg  d S )Nr   r-   r.   )rQ   r   r;   r   rR   )r   r   r   r   test_indexlist_simple  s    z!Test1DFloat.test_indexlist_simplec          
   C   s(   |  | j| jtjtdddg  d S )Nr   r-   r.   )rQ   r   r;   r   rR   r1   )r   r   r   r   test_indexlist_numpyarray  s    z%Test1DFloat.test_indexlist_numpyarrayc             C   s"   |  | j| jtjdgdf  d S )Nr   .)rQ   r   r;   r   rR   )r   r   r   r   $test_indexlist_single_index_ellipsis  s    z0Test1DFloat.test_indexlist_single_index_ellipsisc             C   s(   |  | j| jtjtdgdf  d S )Nr   .)rQ   r   r;   r   rR   r1   )r   r   r   r   /test_indexlist_numpyarray_single_index_ellipsis  s    z;Test1DFloat.test_indexlist_numpyarray_single_index_ellipsisc          
   C   s,   |  | j| jtjtdddgdf  d S )Nr   r-   r.   .)rQ   r   r;   r   rR   r1   )r   r   r   r   "test_indexlist_numpyarray_ellipsis  s    z.Test1DFloat.test_indexlist_numpyarray_ellipsisc             C   s   |  | j| jtjg   d S )N)rQ   r   r;   r   rR   )r   r   r   r   test_indexlist_empty  s    z Test1DFloat.test_indexlist_emptyc          	   C   s&   |  t | jdg  W d Q R X d S )Nr^   )r'   rT   r   )r   r   r   r   test_indexlist_outofrange  s    z%Test1DFloat.test_indexlist_outofrangec          	   C   s*   |  t | jdddg  W dQ R X dS )z8 we require index list values to be strictly increasing r   rL   r-   N)r'   rf   r   )r   r   r   r   test_indexlist_nonmonotonic  s    z'Test1DFloat.test_indexlist_nonmonotonicc          	   C   sF   |  | j| jtjdddg  | t | jddg  W d Q R X d S )Nr   r-   r\   )rQ   r   r;   r   rR   r'   rf   )r   r   r   r   !test_indexlist_monotonic_negative  s    z-Test1DFloat.test_indexlist_monotonic_negativec          	   C   s*   |  t | jdddg  W dQ R X dS )z! we forbid repeated index values r   r-   N)r'   rf   r   )r   r   r   r   test_indexlist_repeated  s    z#Test1DFloat.test_indexlist_repeatedc             C   s&   | j | j| jtj| jdk dd d S )NiT)rU   )rQ   r   r;   r   rR   )r   r   r   r   test_mask_true  s
    zTest1DFloat.test_mask_truec             C   s&   | j | j| jtj| jdk dd d S )Nr^   T)rU   )rQ   r   r;   r   rR   )r   r   r   r   test_mask_false  s
    zTest1DFloat.test_mask_falsec             C   s&   | j | j| jtj| jdk dd d S )Nr.   T)rU   )rQ   r   r;   r   rR   )r   r   r   r   test_mask_partial  s
    zTest1DFloat.test_mask_partialc          	   C   s.   |  t | jtjddd  W dQ R X dS )z4 we require the boolean mask shape to match exactly )r-   r0   )r   N)r'   rf   r   r   rP   )r   r   r   r   test_mask_wrongsize  s    zTest1DFloat.test_mask_wrongsizec          	   C   s$   |  t | jd  W dQ R X dS )z& field name -> ValueError (no fields) r4   N)r'   r(   r   )r   r   r   r   r5   	  s    zTest1DFloat.test_fieldnamesN)$r6   r7   r8   r   r   r   r$   r%   rY   rZ   r[   r]   rS   r_   ra   rb   rc   re   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rs   rt   ru   rv   rw   rx   r5   r   r   r   r   rV     sB   			rV   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Test2DZeroFloatc             C   s2   t |  tjddd| _| jjd| jd| _d S )N)r   rL   r   )r   r:   )r;   )r   r   r   rP   r;   r   r<   r   )r   r   r   r   r     s    
zTest2DZeroFloat.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r-   N)r   r   r   )r   r   r   r   r     s    zTest2DZeroFloat.test_ndimc             C   s   |  | jjd dS )z Verify shape )r   rL   N)r   r   r   )r   r   r   r   r     s    zTest2DZeroFloat.test_shapec          	   C   s*   |  | j| jtjdddddgf  dS )z see issue #473 Nr   r   r-   )rQ   r   r;   r   rR   )r   r   r   r   r/     s    zTest2DZeroFloat.test_indexlistN)r6   r7   r8   r   r   r   r/   r   r   r   r   ry     s   ry   c               @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )Test2DFloatc             C   s2   t |  tjddd| _| jjd| jd| _d S )N)r.   rL   r   )r   r:   )r;   )r   r   r   rP   r;   r   r<   r   )r   r   r   r   r   &  s    
zTest2DFloat.setUpc             C   s   |  | jjd dS )z Verify number of dimensions r-   N)r   r   r   )r   r   r   r   r   +  s    zTest2DFloat.test_ndimc             C   s   |  | jjd dS )z Verify size    N)r   r   r    )r   r   r   r   r!   /  s    zTest2DFloat.test_sizec             C   s   |  | jjd| jjj  dS )z Verify nbytes r{   N)r   r   r"   r;   r   r=   )r   r   r   r   r#   3  s    zTest2DFloat.test_nbytesc             C   s   |  | jjd dS )z Verify shape )r.   rL   N)r   r   r   )r   r   r   r   r   7  s    zTest2DFloat.test_shapec          	   C   s*   |  | j| jtjdddddgf  dS )z see issue #473 Nr   r   r-   )rQ   r   r;   r   rR   )r   r   r   r   r/   ;  s    zTest2DFloat.test_indexlistc             C   s<   |  | j| jtjd d g f  |  | j| jtjg   d S )N)rQ   r   r;   r   rR   )r   r   r   r   test_index_emptylist?  s     z Test2DFloat.test_index_emptylistN)
r6   r7   r8   r   r   r!   r#   r   r/   r|   r   r   r   r   rz   $  s   rz   c               @   s.   e Zd Zdd Zeejdk ddd ZdS )TestVeryLargeArrayc             C   s    t |  | jjddd| _d S )Nr:   )i   i   )r   )r   r   r   r<   r   )r   r   r   r   r   F  s    
zTestVeryLargeArray.setUpl        z&Maximum integer size >= 2**31 requiredc             C   s   |  | jjd d S )Nl        )r   r   r    )r   r   r   r   r!   J  s    zTestVeryLargeArray.test_sizeN)	r6   r7   r8   r   r   ZskipIfsysmaxsizer!   r   r   r   r   r}   D  s   r}   c          
   C   st   t jt jj}|d |t jj t t j| j	dt j
jt jd|}tj|d d tdtj d S )N)r      a)r.   rL   )r	   Zh5pr   ZDATASET_CREATEZ	set_chunkZset_fill_timer   ZFILL_TIME_NEVERr   r   r   Z
IEEE_F64LEr
   Zcreate_simpler   testingZassert_array_equalZzerosZfloat64)Zwritable_fileZdcplZdsr   r   r   test_read_no_fill_valueO  s    

r   c                   s0   e Zd ZdZ fddZdd Zdd Z  ZS )TestBoolIndexz0
    Tests for indexing with Boolean arrays
    c                s6   t    tddd| _| jjd| jd| _d S )N	   rL   r`   r:   )r;   )	superr   r   rX   Zreshapearrr   r<   r   )r   )	__class__r   r   r   `  s    
zTestBoolIndex.setUpc             C   s.   t jdddgd d f }| | j| j| d S )NFT)r   rR   rQ   r   r   )r   selr   r   r   test_select_first_axise  s    z$TestBoolIndex.test_select_first_axisc          	   C   s>   t jddddgd d f }| t | j|  W d Q R X d S )NFT)r   rR   r'   rf   r   )r   r   r   r   r   test_wrong_sizei  s    zTestBoolIndex.test_wrong_size)r6   r7   r8   __doc__r   r   r   __classcell__r   r   )r   r   r   \  s   r   )r   r~   numpyr   r	   commonr   r   r   r9   rB   rI   Z
skipUnlessversionZhdf5_version_tuplerO   rV   ry   rz   r}   r   r   r   r   r   r   <module>*   s$   ACIE8  