o
    µ2úhž  ã                   @   st   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d„ ZdS )é    N)Úh5pÚh5fÚversioné   )ÚTestCasec                   @   sv   e Zd ZdZdd„ Zd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   úN/var/www/html/chatgem/venv/lib/python3.10/site-packages/h5py/tests/test_h5p.pyÚtest_libver   ó
   ÿzTestLibver.test_libverc                 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   r   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_v112,   ó
   ÿzTestLibver.test_libver_v112)r   é   r   zRequires HDF5 1.14 or laterc                 C   r   )z/ Test libver bounds set/get for H5F_LIBVER_V114N)	r   r	   r
   r   r   r   ÚLIBVER_V114r   r   r   r   r   r   Útest_libver_v1145   r   zTestLibver.test_libver_v114)é   r   r   zRequires HDF5 2.0 or laterc                 C   r   )z/ Test libver bounds set/get for H5F_LIBVER_V200N)	r   r	   r
   r   r   r   ÚLIBVER_V200r   r   r   r   r   r   Útest_libver_v200>   r   zTestLibver.test_libver_v200N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚutÚskipIfr   Úhdf5_version_tupler   r"   r%   r   r   r   r   r      s"    ÿ
ÿ
ÿr   c                   @   ó(   e Zd ZdZdd„ Zd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	   ÚDATASET_ACCESSÚset_chunk_cacher   Úget_chunk_cache)r   ÚdalistÚnslotsÚnbytesÚw0r   r   r   Útest_chunk_cacheL   s   ÿzTestDA.test_chunk_cachec                 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	   r0   r   Úget_efile_prefixÚdecodeÚset_efile_prefixÚencode)r   r3   Úefile_prefixr   r   r   Útest_efile_prefixW   s   ÿÿzTestDA.test_efile_prefixc                 C   sL   t  t j¡}|  | ¡  ¡ d¡ d}| | d¡¡ |  | ¡  ¡ |¡ dS )ztest get/set virtual prefix r8   zpath/to/virtual/datasetr9   N)r   r	   r0   r   Úget_virtual_prefixr;   Úset_virtual_prefixr=   )r   r3   Úvirtual_prefixr   r   r   Útest_virtual_prefixf   s   ÿzTestDA.test_virtual_prefixN)r&   r'   r(   r)   r7   r?   rC   r   r   r   r   r.   H   s
    r.   c                   @   r-   )	Ú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_configu   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   rG   Ú	thresholdÚ	alignmentr   r   r   Útest_set_alignment|   ó   
ÿzTestFA.test_set_alignmentc                 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   rG   Úuse_file_lockingÚignore_when_disabledr   r   r   Útest_set_file_locking†   rO   zTestFA.test_set_file_lockingN)r&   r'   r(   r)   rI   rN   rT   r   r   r   r   rD   q   s
    
rD   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
        )é   é   i   rh   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   ro   r   r   r   r   rU   ‘   s    rU   c                  C   s¸   t  t j¡} d}|  |¡ |  ¡ |ksJ ‚d}|  |¡ |  ¡ |ks$J ‚tjtj	@ }|  
|¡ |  ¡ |ks7J ‚t  t j¡}| dd¡ |  |¡ |  ¡  ¡ dksRJ ‚| ¡  |  ¡  dS )zTest Link Access Property Listé   s   /prefixF)FFN)r   r	   ÚLINK_ACCESSÚ
set_nlinksÚ
get_nlinksÚset_elink_prefixÚget_elink_prefixr   ÚACC_RDWRÚACC_SWMR_WRITEÚset_elink_acc_flagsÚget_elink_acc_flagsr
   rP   Úset_elink_faplÚget_elink_faplrQ   Úclose)ÚlaplÚnlinksÚprefixrd   Úfaplr   r   r   Útest_proplaidÓ   s    



r   )Úunittestr*   Úh5pyr   r   r   Úcommonr   r   r.   rD   rU   r   r   r   r   r   Ú<module>   s   	7) B