
    1Vh                         d dl Zd dlmZmZmZ ddlmZ  G d de      Z G d de      Z	 G d	 d
e      Z
 G d de      Zy)    N)h5ph5fversion   )TestCasec                   n    e Zd ZdZd Zd Zd Z ej                  e	j                  dk  d      d        Zy)	
TestLibverz5
        Feature: Setting/getting lib ver bounds
    c                 "   t        j                  t         j                        }|j                  t        j
                  t        j                         | j                  t        j
                  t        j                  f|j                                y)z Test libver bounds set/get N)	r   createFILE_ACCESSset_libver_boundsr   LIBVER_EARLIESTLIBVER_LATESTassertEqualget_libver_boundsselfplists     C/home/dcms/DCMS/lib/python3.12/site-packages/h5py/tests/test_h5p.pytest_libverzTestLibver.test_libver   s]    

3??+ 3 3S5F5FG#--s/@/@A002	4    c                 "   t        j                  t         j                        }|j                  t        j
                  t        j                         | j                  t        j
                  t        j                  f|j                                y)z. Test libver bounds set/get for H5F_LIBVER_V18N)	r   r   r   r   r   r   
LIBVER_V18r   r   r   s     r   test_libver_v18zTestLibver.test_libver_v18   sY    

3??+ 3 3S^^D#--s~~>002	4r   c                 "   t        j                  t         j                        }|j                  t        j
                  t        j                         | j                  t        j
                  t        j                  f|j                                y)z/ Test libver bounds set/get for H5F_LIBVER_V110N)	r   r   r   r   r   r   LIBVER_V110r   r   r   s     r   test_libver_v110zTestLibver.test_libver_v110%   sU    

3??+@#..#//:002	4r   )r         zRequires HDF5 1.11.4 or laterc                 "   t        j                  t         j                        }|j                  t        j
                  t        j                         | j                  t        j
                  t        j                  f|j                                y)z/ Test libver bounds set/get for H5F_LIBVER_V112N)	r   r   r   r   r   r   LIBVER_V112r   r   r   s     r   test_libver_v112zTestLibver.test_libver_v112,   sW     

3??+@#..#//:002	4r   N)__name__
__module____qualname____doc__r   r   r   utskipIfr   hdf5_version_tupler"    r   r   r	   r	      sE    444 RYYw))J6.0404r   r	   c                   "    e Zd ZdZd Zd Zd Zy)TestDAzU
    Feature: setting/getting chunk cache size on a dataset access property list
    c                     t        j                  t         j                        }d}d}d}|j                  |||       | j	                  |||f|j                                y)test get/set chunk cache i'  i@B g      ?N)r   r   DATASET_ACCESSset_chunk_cacher   get_chunk_cache)r   dalistnslotsnbytesw0s        r   test_chunk_cachezTestDA.test_chunk_cache9   sZ    C../vvr2&&"-//1	3r   c                    t        j                  t         j                        }| j                  |j	                         j                         d       d}|j                  |j                  d             | j                  |j	                         j                         |       d}|j                  |j                  d             | j                  |j	                         j                         |       y)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   r2   efile_prefixs      r   test_efile_prefixzTestDA.test_efile_prefixD   s    C../00299;R@1 3 3G <=00299;%	' # 3 3G <=00299;%	'r   c                 F   t        j                  t         j                        }| j                  |j	                         j                         d       d}|j                  |j                  d             | j                  |j	                         j                         |       y)ztest get/set virtual prefix r8   zpath/to/virtual/datasetr9   N)r   r   r/   r   get_virtual_prefixr;   set_virtual_prefixr=   )r   r2   virtual_prefixs      r   test_virtual_prefixzTestDA.test_virtual_prefixS   s{    C../224;;=rB2!!."7"7"@A224;;='	)r   N)r#   r$   r%   r&   r6   r?   rD   r*   r   r   r,   r,   5   s    	3')r   r,   c                       e Zd ZdZd Zd Z ej                  ej                  dk\  xs& ej                  dd dk(  xr ej                  d   dk\  d	      d
        Z
y)TestFAzL
    Feature: setting/getting mdc config on a file access property list
    c                     t        j                  t         j                        }|j                         }|j	                  |       y)ztest get/set mdc config N)r   r   r   get_mdc_configset_mdc_config)r   falistconfigs      r   test_mdc_configzTestFA.test_mdc_configb   s0    COO,&&(f%r   c                     t        j                  t         j                        }d}d}|j                  ||       | j	                  ||f|j                                y)r.   i (  i   N)r   r   r   set_alignmentr   get_alignment)r   rJ   	threshold	alignments       r   test_set_alignmentzTestFA.test_set_alignmenti   sO    COO,		Y	2)Y/--/	1r   )r      r   N   )r   
      z1Requires HDF5 1.12.1 or later or 1.10.x >= 1.10.7c                     t        j                  t         j                        }d}d}|j                  ||       | j	                  ||f|j                                y)ztest get/set file lockingFN)r   r   r   set_file_lockingr   get_file_locking)r   rJ   use_file_lockingignore_when_disableds       r   test_set_file_lockingzTestFA.test_set_file_lockings   sW     COO, $ 02FG*,@A002	4r   )r#   r$   r%   r&   rL   rR   r'   
skipUnlessr   r)   r\   r*   r   r   rF   rF   ^   ss    &1 R]]""j0 	[		#	#BQ	'7	2	Yw7Q7QRS7TXY7Y;=4	=4r   rF   c                       e Zd Zd Zd Zd Zy)TestPLc                 "   t        j                  t         j                        }|j                  d       | j	                  d|j                                |j                  d       | j	                  d|j                                t        j                  t         j                        }|j                  d       | j	                  d|j                                |j                  d       | j	                  d|j                                t        j                  t         j                        }|j                  d       | j	                  d|j                                |j                  d       | j	                  d|j                                y)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ocids       r   test_obj_track_timeszTestPL.test_obj_track_times   s,   
 zz#**+  ' 8 8 :;  &t779:zz#,,-  ' 8 8 :;  &t779: zz#++,  ' 8 8 :;  &t779:r   c                    t        j                  t         j                        }|j                  d       | j	                  d|j                                t         j                  t         j                  z  }|j                  |       | j	                  ||j                                t        j                  t         j                        }|j                  |       | j	                  ||j                                y)z7
        tests the link creation order set/get
        r   N)	r   r   ra   set_link_creation_orderr   get_link_creation_orderCRT_ORDER_TRACKEDCRT_ORDER_INDEXEDFILE_CREATE)r   rf   flagsfcpls       r   test_link_creation_trackingz"TestPL.test_link_creation_tracking   s    
 zz#**+$$Q'D88:;%%(=(==$$U+ < < >? zz#//*$$U+ < < >?r   c                 j   t        j                  t         j                        }|j                         }| j	                  d|       | j                  t              5  |j                  dd       ddd       |j                  dd       | j	                  d|j                                y# 1 sw Y   <xY w)z1
        test the attribute phase change
        )      i   ru   Nr   )r   r   )r   r   re   get_attr_phase_changer   assertRaises
ValueErrorset_attr_phase_change)r   cidrets      r   test_attr_phase_changezTestPL.test_attr_phase_change   s    
 jj**+'')$ z* 	0%%eQ/	0
 	!!!Q' 9 9 ;<	0 	0s   B))B2N)r#   r$   r%   ri   rr   r|   r*   r   r   r_   r_      s    ;6@$=r   r_   )unittestr'   h5pyr   r   r   commonr   r	   r,   rF   r_   r*   r   r   <module>r      sF     " " "4 "4H&)X &)R!4X !4H?=X ?=r   