a
    ĮĄa  ć                   @   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©ŚselfZplist© r   ś2lib/python3.9/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   Ś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   Ś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   Śtest_libver_v1120   s
    ’zTestLibver.test_libver_v112N)Ś__name__Ś
__module__Ś__qualname__Ś__doc__r   ŚutZskipIfr   Śhdf5_version_tupler   r   r   r   r   r   r   r      s   ’
’
’r   c                   @   s   e Zd ZdZ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 )śtest get/set chunk cache i'  i@B g      ą?N)r   r   ZDATASET_ACCESSZset_chunk_cacher   Zget_chunk_cache)r   ZdalistZnslotsŚnbytesZw0r   r   r   Śtest_chunk_cache=   s    ’zTestDA.test_chunk_cacheN)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   ŚfalistZconfigr   r   r   Śtest_mdc_configM   s    zTestFA.test_mdc_configc                 C   s8   t  t j”}d}d}| ||” |  ||f| ” ” dS )r"   i (  i   N)r   r   r	   Zset_alignmentr   Zget_alignment)r   r&   Z	thresholdZ	alignmentr   r   r   Śtest_set_alignmentT   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   r'   r(   r   Z
skipUnlessr   r    r+   r   r   r   r   r%   I   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_timesn   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   r-   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   sv   t  t j”}| ” }|  d|” |  t” | dd” W d   n1 sL0    Y  | dd” |  d| ” ” dS )z1
        test the attribute phase change
        )é   é   i   r4   Nr   )r   r   )r   r   r.   Zget_attr_phase_changer   ZassertRaisesŚ
ValueErrorZset_attr_phase_change)r   ZcidZretr   r   r   Śtest_attr_phase_change   s    *zTestPL.test_attr_phase_changeN)r   r   r   r0   r2   r6   r   r   r   r   r,   m   s   r,   )Zunittestr   Zh5pyr   r   r   Ścommonr   r   r!   r%   r,   r   r   r   r   Ś<module>
   s   ($