o
    ªi ea  ã                   @   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   ó8   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_EARLIESTÚLIBVER_LATESTÚassertEqualÚget_libver_bounds©ÚselfÚplist© r   úB/var/www/myenv/lib/python3.10/site-packages/h5py/tests/test_h5p.pyÚtest_libver   s
   ÿzTestLibver.test_libver©r   é
   é   úRequires HDF5 1.10.2 or laterc                 C   r   )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   ó
   ÿzTestLibver.test_libver_v18c                 C   r   )z/ Test libver bounds set/get for H5F_LIBVER_V110N)	r   r	   r
   r   r   r   ÚLIBVER_V110r   r   r   r   r   r   Útest_libver_v110'   r   zTestLibver.test_libver_v110)r   é   é   zRequires HDF5 1.11.4 or laterc                 C   r   )z/ Test libver bounds set/get for H5F_LIBVER_V112N)	r   r	   r
   r   r   r   ÚLIBVER_V112r   r   r   r   r   r   Útest_libver_v1120   r   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 )útest get/set chunk cache i'  i@B g      à?N)r   r	   ÚDATASET_ACCESSÚset_chunk_cacher   Úget_chunk_cache)r   ÚdalistÚnslotsÚnbytesÚ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/datasetúutf-8z	${ORIGIN}N)r   r	   r,   r   Úget_efile_prefixÚdecodeÚset_efile_prefixÚencode)r   r/   Úefile_prefixr   r   r   Útest_efile_prefixH   s   ÿÿzTestDA.test_efile_prefixr   r   c                 C   sL   t  t j¡}|  | ¡  ¡ d¡ d}| | d¡¡ |  | ¡  ¡ |¡ dS )ztest get/set virtual prefix r6   zpath/to/virtual/datasetr7   N)r   r	   r,   r   Úget_virtual_prefixr9   Úset_virtual_prefixr;   )r   r/   Úvirtual_prefixr   r   r   Útest_virtual_prefixY   s   ÿzTestDA.test_virtual_prefixN)r#   r$   r%   r&   r3   r'   r(   r   r)   r=   rA   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p$ej	dd… d	ko$e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
   Úget_mdc_configÚ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 )r+   i (  i   N)r   r	   r
   Úset_alignmentr   Úget_alignment)r   rE   Ú	thresholdÚ	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
   Úset_file_lockingr   Úget_file_locking)r   rE   Úuse_file_lockingÚignore_when_disabledr   r   r   Útest_set_file_locking{   s   
ÿzTestFA.test_set_file_locking)r#   r$   r%   r&   rG   rL   r'   Ú
skipUnlessr   r)   rS   r   r   r   r   rB   f   s    

ýrB   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_CREATEÚset_obj_track_timesr   Úget_obj_track_timesÚDATASET_CREATEÚOBJECT_CREATE)r   ÚgcidÚdcidÚ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	   rV   Úset_link_creation_orderr   Úget_link_creation_orderÚCRT_ORDER_TRACKEDÚCRT_ORDER_INDEXEDÚFILE_CREATE)r   r[   ÚflagsÚ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 s&w   Y  | dd¡ |  d| ¡ ¡ dS )z1
        test the attribute phase change
        )r4   é   i   rg   Nr   )r   r   )r   r	   rZ   Úget_attr_phase_changer   ÚassertRaisesÚ
ValueErrorÚset_attr_phase_change)r   ÚcidÚretr   r   r   Útest_attr_phase_change¸   s   ÿzTestPL.test_attr_phase_changeN)r#   r$   r%   r^   rf   rn   r   r   r   r   rU   Š   s    rU   )Úunittestr'   Úh5pyr   r   r   Úcommonr   r   r*   rB   rU   r   r   r   r   Ú<module>   s   	(-$