B
    ¬»ˆda  ã               @   sl   d dl Zd dlmZmZmZ ddl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dS )é    N)Úh5pÚh5fÚversioné   )ÚTestCasec               @   sf   e Zd ZdZdd„ Ze ejdk d¡dd„ ƒZ	e ejdk d¡dd	„ ƒZ
e ejd
k d¡dd„ ƒZdS )Ú
TestLibverz5
        Feature: Setting/getting lib ver bounds
    c             C   s8   t  t j¡}| tjtj¡ |  tjtjf| ¡ ¡ dS )z Test libver bounds set/get N)	r   ÚcreateÚFILE_ACCESSÚset_libver_boundsr   ÚLIBVER_EARLIESTZLIBVER_LATESTÚassertEqualÚget_libver_bounds)ÚselfÚplist© r   úE/var/www/html/venv/lib/python3.7/site-packages/h5py/tests/test_h5p.pyÚtest_libver   s    zTestLibver.test_libver)r   é
   é   zRequires HDF5 1.10.2 or laterc             C   s8   t  t j¡}| tjtj¡ |  tjtjf| ¡ ¡ dS )z. Test libver bounds set/get for H5F_LIBVER_V18N)	r   r   r	   r
   r   r   Ú
LIBVER_V18r   r   )r   r   r   r   r   Útest_libver_v18   s    zTestLibver.test_libver_v18c             C   s8   t  t j¡}| tjtj¡ |  tjtjf| ¡ ¡ dS )z/ Test libver bounds set/get for H5F_LIBVER_V110N)	r   r   r	   r
   r   r   ZLIBVER_V110r   r   )r   r   r   r   r   Útest_libver_v110'   s    zTestLibver.test_libver_v110)r   é   é   zRequires HDF5 1.11.4 or laterc             C   s8   t  t j¡}| tjtj¡ |  tjtjf| ¡ ¡ dS )z/ Test libver bounds set/get for H5F_LIBVER_V112N)	r   r   r	   r
   r   r   ZLIBVER_V112r   r   )r   r   r   r   r   Útest_libver_v1120   s    zTestLibver.test_libver_v112N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚutÚskipIfr   Úhdf5_version_tupler   r   r   r   r   r   r   r      s   r   c               @   sL   e Zd ZdZdd„ Ze ejdk d¡dd„ ƒZ	e ejdk d	¡d
d„ ƒZ
dS )ÚTestDAzU
    Feature: setting/getting chunk cache size on a dataset access property list
    c             C   s@   t  t j¡}d}d}d}| |||¡ |  |||f| ¡ ¡ dS )ztest get/set chunk cache i'  i@B g      à?N)r   r   ÚDATASET_ACCESSZset_chunk_cacher   Zget_chunk_cache)r   ÚdalistZnslotsÚnbytesZw0r   r   r   Útest_chunk_cache=   s    zTestDA.test_chunk_cache)r   é   é   zRequires HDF5 1.8.17 or laterc             C   st   t  t j¡}|  | ¡  ¡ d¡ d}| | d¡¡ |  | ¡  ¡ |¡ d}| | d¡¡ |  | ¡  ¡ |¡ dS )ztest get/set efile prefix Ú zpath/to/external/datasetzutf-8z	${ORIGIN}N)r   r   r#   r   Zget_efile_prefixÚdecodeZset_efile_prefixÚencode)r   r$   Zefile_prefixr   r   r   Útest_efile_prefixH   s    zTestDA.test_efile_prefix)r   r   r   zRequires HDF5 1.10.2 or laterc             C   sL   t  t j¡}|  | ¡  ¡ d¡ d}| | d¡¡ |  | ¡  ¡ |¡ dS )ztest get/set virtual prefix r)   zpath/to/virtual/datasetzutf-8N)r   r   r#   r   Zget_virtual_prefixr*   Zset_virtual_prefixr+   )r   r$   Zvirtual_prefixr   r   r   Útest_virtual_prefixY   s    zTestDA.test_virtual_prefixN)r   r   r   r   r&   r   r    r   r!   r,   r-   r   r   r   r   r"   9   s   r"   c               @   sZ   e Zd ZdZdd„ Zdd„ Ze ej	dkpHej	dd… d	koHej	d d
kd¡dd„ ƒZ
dS )ÚTestFAzL
    Feature: setting/getting mdc config on a file access property list
    c             C   s"   t  t j¡}| ¡ }| |¡ dS )ztest get/set mdc config N)r   r   r	   Zget_mdc_configZset_mdc_config)r   ÚfalistÚconfigr   r   r   Útest_mdc_configj   s    zTestFA.test_mdc_configc             C   s8   t  t j¡}d}d}| ||¡ |  ||f| ¡ ¡ dS )ztest get/set chunk cache i (  i   N)r   r   r	   Zset_alignmentr   Zget_alignment)r   r/   Ú	thresholdZ	alignmentr   r   r   Útest_set_alignmentq   s    
zTestFA.test_set_alignment)r   é   r   Nr   )r   r   é   z1Requires HDF5 1.12.1 or later or 1.10.x >= 1.10.7c             C   s8   t  t j¡}d}d}| ||¡ |  ||f| ¡ ¡ dS )ztest get/set file lockingFN)r   r   r	   Zset_file_lockingr   Zget_file_locking)r   r/   Zuse_file_lockingZignore_when_disabledr   r   r   Útest_set_file_locking{   s    
zTestFA.test_set_file_locking)r   r   r   r   r1   r3   r   Z
skipUnlessr   r!   r6   r   r   r   r   r.   f   s   

r.   c               @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestPLc             C   sÄ   t  t j¡}| d¡ |  d| ¡ ¡ | d¡ |  d| ¡ ¡ t  t j¡}| d¡ |  d| ¡ ¡ | d¡ |  d| ¡ ¡ t  t j¡}| d¡ |  d| ¡ ¡ | d¡ |  d| ¡ ¡ dS )z:
        tests if the object track times  set/get
        FTN)r   r   ÚGROUP_CREATEZset_obj_track_timesr   Zget_obj_track_timesZDATASET_CREATEÚOBJECT_CREATE)r   ÚgcidZdcidZocidr   r   r   Útest_obj_track_times‹   s    





zTestPL.test_obj_track_timesc             C   sv   t  t j¡}| d¡ |  d| ¡ ¡ t jt jB }| |¡ |  || ¡ ¡ t  t j¡}| |¡ |  || ¡ ¡ dS )z7
        tests the link creation order set/get
        r   N)	r   r   r8   Zset_link_creation_orderr   Zget_link_creation_orderZCRT_ORDER_TRACKEDZCRT_ORDER_INDEXEDZFILE_CREATE)r   r:   ÚflagsZfcplr   r   r   Útest_link_creation_tracking¦   s    


z"TestPL.test_link_creation_trackingc          	   C   sb   t  t j¡}| ¡ }|  d|¡ |  t¡ | dd¡ W dQ R X | dd¡ |  d| ¡ ¡ dS )z1
        test the attribute phase change
        )r'   é   i   r>   Nr   )r   r   )r   r   r9   Zget_attr_phase_changer   ÚassertRaisesÚ
ValueErrorZset_attr_phase_change)r   ZcidÚretr   r   r   Útest_attr_phase_change¸   s    zTestPL.test_attr_phase_changeN)r   r   r   r;   r=   rB   r   r   r   r   r7   Š   s   r7   )Zunittestr   Zh5pyr   r   r   Úcommonr   r   r"   r.   r7   r   r   r   r   Ú<module>
   s   (-$