U
    ½mœdÅI  ã                   @   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   úX/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/h5py/tests/test_dataset_getitem.pyr   6   s    

zTestEmpty.setUpc                 C   s   |   | jjd¡ dS ©ú 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 ©ú Verify shape N©r   r   Úshaper    r   r   r   Ú
test_shapeC   s    zTestEmpty.test_shapec                 C   s   |   | jjd¡ dS r"   ©r   r   Úsizer    r   r   r   Ú	test_sizeG   s    zTestEmpty.test_sizec                 C   s   |   | jjd¡ dS )ú Verify nbytes r   N)r   r   Únbytesr    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   Ú
test_tupleR   s    zTestEmpty.test_tuplec              	   C   s(   |   t¡� | jdd…  W 5 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 5 Q R X dS ©z MultiBlockSlice -> ValueError N©r5   r6   r   r	   ZMultiBlockSlicer    r   r   r   Útest_multi_block_sliceZ   s    z TestEmpty.test_multi_block_slicec              	   C   s$   |   t¡� | jd  W 5 Q R X dS ©z index -> ValueError r   Nr4   r    r   r   r   Ú
test_index_   s    zTestEmpty.test_indexc              	   C   s*   |   t¡� | jdddg  W 5 Q R X dS ©ú index list -> ValueError r   é   é   Nr4   r    r   r   r   Útest_indexlistd   s    zTestEmpty.test_indexlistc              	   C   s2   t jddd�}|  t¡� | j|  W 5 Q R X dS ©z mask -> ValueError TÚbool©r   N©r   Úarrayr5   r6   r   ©r   Úmaskr   r   r   Ú	test_maski   s    zTestEmpty.test_maskc              	   C   s$   |   t¡� | jd  W 5 Q R X dS )z field name -> ValueError ÚfieldNr4   r    r   r   r   Útest_fieldnameso   s    zTestEmpty.test_fieldnamesN©Ú__name__Ú
__module__Ú__qualname__r   r!   r&   r)   r,   r/   r1   r7   r:   r<   rA   rI   rK   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 )Nç     @E@r   rD   Úx©Údata©r   r   r   rF   rT   r   Úcreate_datasetr   r    r   r   r   r   w   s    
zTestScalarFloat.setUpc                 C   s   |   | jjd¡ dS r   r   r    r   r   r   r!   |   s    zTestScalarFloat.test_ndimc                 C   s   |   | jjd¡ dS ©ú Verify size r   Nr'   r    r   r   r   r)   €   s    zTestScalarFloat.test_sizec                 C   s   |   | jj| jjj¡ dS ©r*   N©r   r   r+   rT   r   Úitemsizer    r   r   r   r,   „   s    zTestScalarFloat.test_nbytesc                 C   s   |   | jjtƒ ¡ dS r"   ©r   r   r%   Útupler    r   r   r   r&   ˆ   s    zTestScalarFloat.test_shapec                 C   s   | j d }|  || j¡ dS ©z Ellipsis -> scalar ndarray .N©r   ÚassertArrayEqualrT   ©r   Úoutr   r   r   r/   Œ   s    
zTestScalarFloat.test_ellipsisc                 C   s    | j d }|  || j ¡ ¡ dS )z () -> bare item r   N)r   r`   rT   Úitemra   r   r   r   r1   ‘   s    
zTestScalarFloat.test_tuplec              	   C   s(   |   t¡� | jdd…  W 5 Q R X dS r2   r4   r    r   r   r   r7   –   s    zTestScalarFloat.test_slicec              	   C   s(   |   t¡� | jt ¡   W 5 Q R X dS r8   r9   r    r   r   r   r:   ›   s    z&TestScalarFloat.test_multi_block_slicec              	   C   s$   |   t¡� | jd  W 5 Q R X dS r;   r4   r    r   r   r   r<       s    zTestScalarFloat.test_indexc              	   C   s*   |   t¡� | jdddg  W 5 Q R X dS r=   r4   r    r   r   r   rA   ¦   s    zTestScalarFloat.test_indexlistc              	   C   s2   t jddd�}|  t¡� | j|  W 5 Q R X dS rB   rE   rG   r   r   r   rI   ¬   s    zTestScalarFloat.test_maskc              	   C   s$   |   t¡� | jd  W 5 Q R X dS ©z& field name -> ValueError (no fields) rJ   Nr4   r    r   r   r   rK   ²   s    zTestScalarFloat.test_fieldnamesN©rM   rN   rO   r   r!   r)   r,   r&   r/   r1   r7   r:   r<   rA   rI   rK   r   r   r   r   rP   u   s   rP   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)rQ   iŠÿÿÿZHello)Úar   )ÚbÚi)Úcz|S10rD   rR   rS   rU   r    r   r   r   r   º   s    
zTestScalarCompound.setUpc                 C   s   |   | jjd¡ dS r   r   r    r   r   r   r!   ¿   s    zTestScalarCompound.test_ndimc                 C   s   |   | jjtƒ ¡ dS r"   r\   r    r   r   r   r&   Ã   s    zTestScalarCompound.test_shapec                 C   s   |   | jjd¡ dS rW   r'   r    r   r   r   r)   Ç   s    zTestScalarCompound.test_sizec                 C   s   |   | jj| jjj¡ dS rY   rZ   r    r   r   r   r,   Ë   s    zTestScalarCompound.test_nbytesc                 C   s@   | j d }|  |tj¡ |  |j| jj¡ |  |j| jj¡ dS r^   )r   ÚassertIsInstancer   Zndarrayr   r%   rT   r   ra   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   rk   r   Úvoidr   r   rT   ra   r   r   r   r1   ×   s    
zTestScalarCompound.test_tuplec              	   C   s(   |   t¡� | jdd…  W 5 Q R X dS r2   r4   r    r   r   r   r7   Ý   s    zTestScalarCompound.test_slicec              	   C   s(   |   t¡� | jt ¡   W 5 Q R X dS r8   r9   r    r   r   r   r:   â   s    z)TestScalarCompound.test_multi_block_slicec              	   C   s$   |   t¡� | jd  W 5 Q R X dS r;   r4   r    r   r   r   r<   ç   s    zTestScalarCompound.test_indexc              	   C   s*   |   t¡� | jdddg  W 5 Q R X dS r=   r4   r    r   r   r   rA   í   s    z!TestScalarCompound.test_indexlistc              	   C   s2   t jddd�}|  t¡� | j|  W 5 Q R X dS )z mask -> ValueError  TrC   rD   NrE   rG   r   r   r   rI   ó   s    zTestScalarCompound.test_maskc                 C   s.   | j d }|  |tj¡ |  || j d ¡ dS )z field name -> bare value rg   N)r   rk   r   Zfloat32r   ra   r   r   r   rK   ú   s    
z"TestScalarCompound.test_fieldnamesNrL   r   r   r   r   rf   ¸   s   rf   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‰ÿÿÿ)é*   g33333óX@)g…ëQ¸	@r   r   rD   rR   r   .)
r   r   r   r   ÚdtrF   rT   r   rV   r   r    r   r   r   r     s
    
zTestScalarArray.setUpc                 C   s$   |   | jjd¡ |   | jjd¡ dS )r   r?   r   N)r   rT   r   r   r    r   r   r   r!   
  s    zTestScalarArray.test_ndimc                 C   s   |   | jjd¡ dS rW   r'   r    r   r   r   r)     s    zTestScalarArray.test_sizec                 C   s   |   | jj| jjj¡ dS rY   )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 )r#   )é   r?   N)r   rT   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 .Nr_   ra   r   r   r   r/     s    
zTestScalarArray.test_ellipsisc                 C   s   | j d }|  || j¡ dS )ú () -> same as ellipsis .Nr_   ra   r   r   r   r1   !  s    
zTestScalarArray.test_tuplec              	   C   s(   |   t¡� | jdd…  W 5 Q R X dS r2   r4   r    r   r   r   r7   &  s    zTestScalarArray.test_slicec              	   C   s(   |   t¡� | jt ¡   W 5 Q R X dS r8   r9   r    r   r   r   r:   +  s    z&TestScalarArray.test_multi_block_slicec              	   C   s$   |   t¡� | jd  W 5 Q R X dS r;   r4   r    r   r   r   r<   0  s    zTestScalarArray.test_indexc              	   C   s$   |   t¡� | jg   W 5 Q R X dS )r>   Nr4   r    r   r   r   rA   5  s    zTestScalarArray.test_indexlistc              	   C   s2   t jddd�}|  t¡� | j|  W 5 Q R X dS rB   rE   rG   r   r   r   rI   :  s    zTestScalarArray.test_maskc              	   C   s$   |   t¡� | jd  W 5 Q R X dS rd   r4   r    r   r   r   rK   @  s    zTestScalarArray.test_fieldnamesNre   r   r   r   r   rm     s   rm   )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   rD   rR   rS   ©r   r   r   ÚonesrT   r   rV   r   r    r   r   r   r   I  s    
zTest1DZeroFloat.setUpc                 C   s   |   | jjd¡ dS ©r   r   Nr   r    r   r   r   r!   N  s    zTest1DZeroFloat.test_ndimc                 C   s   |   | jjd¡ dS )r#   ru   Nr$   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   rT   r   Ús_r    r   r   r   r/   V  s    zTest1DZeroFloat.test_ellipsisc                 C   s   |   | j| jtjd ¡ dS )rq   r   Nry   r    r   r   r   r1   Z  s    zTest1DZeroFloat.test_tuplec                 C   s    |   | j| jtjdd… ¡ dS )z  slice -> ndarray of shape (0,) r   r3   Nry   r    r   r   r   r7   ^  s    zTest1DZeroFloat.test_slicec                 C   s    |   | j| jtjdd… ¡ d S ©Nrs   r@   ry   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 5 Q R X dS )z index -> out of range r   N©r5   Ú
IndexErrorr   r    r   r   r   r<   e  s    zTest1DZeroFloat.test_indexc                 C   s   |   | j| jtjg  ¡ dS )z index list Nry   r    r   r   r   rA   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 ru   rC   rD   T©Zskip_fast_readerN)r   rw   rz   r   rT   r{   rG   r   r   r   rI   n  s    ûzTest1DZeroFloat.test_maskc              	   C   s$   |   t¡� | jd  W 5 Q R X dS rd   r4   r    r   r   r   rK   y  s    zTest1DZeroFloat.test_fieldnamesN)rM   rN   rO   r   r!   r&   r/   r1   r7   r}   r<   rA   rI   rK   r   r   r   r   rt   F  s   rt   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   rR   rS   )	r   r   r   ÚarangeZastyperT   r   rV   r   r    r   r   r   r   �  s    
zTest1DFloat.setUpc                 C   s   |   | jjd¡ dS rx   r   r    r   r   r   r!   †  s    zTest1DFloat.test_ndimc                 C   s   |   | jjd¡ dS )r#   )r‚   Nr$   r    r   r   r   r&   Š  s    zTest1DFloat.test_shapec                 C   s   |   | j| jtjd ¡ d S r-   ry   r    r   r   r   r/   Ž  s    zTest1DFloat.test_ellipsisc                 C   s   |   | j| jtjd ¡ d S r0   ry   r    r   r   r   r1   ‘  s    zTest1DFloat.test_tuplec                 C   s    |   | j| jtjdd… ¡ d S )Nr   r3   ry   r    r   r   r   Útest_slice_simple”  s    zTest1DFloat.test_slice_simplec                 C   s    |   | j| jtjdd… ¡ d S )Nr3   ry   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   rs   rp   ry   r    r   r   r   Útest_slice_stridesš  s    zTest1DFloat.test_slice_stridesc                 C   s"   |   | j| jtjddd… ¡ d S )Niøÿÿÿéþÿÿÿrp   ry   r    r   r   r   Útest_slice_negindexes�  s    z!Test1DFloat.test_slice_negindexesc                 C   s    |   | j| jtjdd… ¡ d S r|   ry   r    r   r   r   r}      s    z+Test1DFloat.test_slice_stop_less_than_startc                 C   s"   |   | j| jtjddd… ¡ d S )Néd   i�  rp   ry   r    r   r   r   Útest_slice_outofrange£  s    z!Test1DFloat.test_slice_outofrangec              	   C   s*   |   t¡� | jddd…  W 5 Q R X dS )z we disallow negative steps Néÿÿÿÿr4   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   ry   r    r   r   r   Útest_slice_zerostride«  s    z!Test1DFloat.test_slice_zerostridec                 C   s   |   | j| jtjd ¡ d S )Nrp   ry   r    r   r   r   Útest_index_simple®  s    zTest1DFloat.test_index_simplec                 C   s   |   | j| jtjd ¡ d S )Néüÿÿÿry   r    r   r   r   Útest_index_neg±  s    zTest1DFloat.test_index_negc              	   C   s$   |   t¡� | jd   W 5 Q R X d S ©N©r5   Ú	TypeErrorr   r    r   r   r   Útest_index_noneµ  s    zTest1DFloat.test_index_nonec              	   C   s$   |   t¡� | ji   W 5 Q R X dS )z Illegal slicing argument Nr’   r    r   r   r   Útest_index_illegal¹  s    zTest1DFloat.test_index_illegalc              	   C   s$   |   t¡� | jd  W 5 Q R X d S ©Nr‰   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@   ry   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 r˜   ©rz   r   rT   r   r{   rF   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   .ry   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 rœ   rš   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@   .rš   r    r   r   r   Ú"test_indexlist_numpyarray_ellipsisÎ  s    z.Test1DFloat.test_indexlist_numpyarray_ellipsisc                 C   s   |   | j| jtjg  ¡ d S r‘   ry   r    r   r   r   Útest_indexlist_emptyÑ  s    z Test1DFloat.test_indexlist_emptyc              	   C   s&   |   t¡� | jdg  W 5 Q R X d S r–   r~   r    r   r   r   Útest_indexlist_outofrangeÔ  s    z%Test1DFloat.test_indexlist_outofrangec              	   C   s*   |   t¡� | jdddg  W 5 Q R X dS )z8 we require index list values to be strictly increasing r   rp   r?   Nr’   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 5 Q R X d S )Nr   r?   r‡   éýÿÿÿ)rz   r   rT   r   r{   r5   r“   r    r   r   r   Ú!test_indexlist_monotonic_negativeÝ  s    z-Test1DFloat.test_indexlist_monotonic_negativec              	   C   s*   |   t¡� | jdddg  W 5 Q R X dS )z! we forbid repeated index values r   r?   Nr’   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 )NiœÿÿÿTr€   ry   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‰   Tr€   ry   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@   Tr€   ry   r    r   r   r   Útest_mask_partialû  s    ûzTest1DFloat.test_mask_partialc              	   C   s.   |   t¡� | jtjddd�  W 5 Q R X dS )z4 we require the boolean mask shape to match exactly )r?   rC   rD   N)r5   r“   r   r   rw   r    r   r   r   Útest_mask_wrongsize  s    zTest1DFloat.test_mask_wrongsizec              	   C   s$   |   t¡� | jd  W 5 Q R X dS rd   r4   r    r   r   r   rK   	  s    zTest1DFloat.test_fieldnamesN)$rM   rN   rO   r   r!   r&   r/   r1   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©   rK   r   r   r   r   r�     sB   			r�   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   rp   r   rD   rR   rS   rv   r    r   r   r   r     s    
zTest2DZeroFloat.setUpc                 C   s   |   | jjd¡ dS ©r   r?   Nr   r    r   r   r   r!     s    zTest2DZeroFloat.test_ndimc                 C   s   |   | jjd¡ dS )r#   r«   Nr$   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?   ry   r    r   r   r   rA     s    zTest2DZeroFloat.test_indexlistN)rM   rN   rO   r   r!   r&   rA   r   r   r   r   rª     s   rª   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@   rp   r   rD   rR   rS   rv   r    r   r   r   r   &  s    
zTest2DFloat.setUpc                 C   s   |   | jjd¡ dS r¬   r   r    r   r   r   r!   +  s    zTest2DFloat.test_ndimc                 C   s   |   | jjd¡ dS )rX   é   Nr'   r    r   r   r   r)   /  s    zTest2DFloat.test_sizec                 C   s   |   | jjd| jjj ¡ dS )r*   r°   NrZ   r    r   r   r   r,   3  s    zTest2DFloat.test_nbytesc                 C   s   |   | jjd¡ dS )r#   r¯   Nr$   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 r­   ry   r    r   r   r   rA   ;  s    zTest2DFloat.test_indexlistc                 C   s<   |   | j| jtjd d …g f ¡ |   | j| jtjg  ¡ d S r‘   ry   r    r   r   r   Útest_index_emptylist?  s     z Test2DFloat.test_index_emptylistN)
rM   rN   rO   r   r!   r)   r,   r&   rA   r±   r   r   r   r   r®   $  s   r®   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 )NrR   )i €  i   )r%   )r   r   r   rV   r   r    r   r   r   r   F  s    
zTestVeryLargeArray.setUpì        z&Maximum integer size >= 2**31 requiredc                 C   s   |   | jjd¡ d S )Nr³   r'   r    r   r   r   r)   J  s    zTestVeryLargeArray.test_sizeN)	rM   rN   rO   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@   rp   )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é	   rp   r‹   rR   rS   )	Úsuperr   r   rƒ   ZreshapeÚarrr   rV   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   r{   rz   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 5 Q R X d S r¿   )r   r{   r5   r“   r   rÀ   r   r   r   Útest_wrong_sizei  s    zTestBoolIndex.test_wrong_size)rM   rN   rO   Ú__doc__r   rÂ   rÃ   Ú__classcell__r   r   r½   r   r¹   \  s   r¹   )rÄ   r´   Únumpyr   r	   Úcommonr   r   r   rP   rf   rm   Z
skipUnlessÚversionZhdf5_version_tuplert   r�   rª   r®   r²   r¸   r¹   r   r   r   r   Ú<module>
   s$   "ACIE8  