
    &Vf                     ^    d dl Zd dlZddlmZmZ  G d de          Z G d de          ZdS )    N   )utTestCasec                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestDatasetSwmrRead| Testing SWMR functions when reading a dataset.
    Skip this test if the HDF5 library does not have the SWMR features.
    c                 |   t          j        |            t          j        d                              d          | _        | j                            ddd| j                  | _        | j        j	        }| j        
                                 t          j        |dd	          | _        | j        d         | _        d S )
N   fdata)r
   N)chunksmaxshaper   rT)swmr)r   setUpnparangeastyper   r   create_datasetdsetfilenamecloseh5pyFile)selffnames     Y/var/www/html/software/conda/lib/python3.11/site-packages/h5py/tests/test_dataset_swmr.pyr   zTestDatasetSwmrRead.setUp   s    tIbMM((--	F))&W[W`)aa	5#D111F6N			    c                 D    |                      | j        j                   dS )z/ Verify that the file is initially in SWMR modeN)
assertTruer   	swmr_moder   s    r   test_initial_swmr_mode_onz-TestDatasetSwmrRead.test_initial_swmr_mode_on   s    ()))))r   c                 F    |                      | j        | j                   d S r   )assertArrayEqualr   r   r#   s    r   test_read_dataz"TestDatasetSwmrRead.test_read_data   s"    di33333r   c                 8    | j                                          d S r   )r   refreshr#   s    r   test_refreshz TestDatasetSwmrRead.test_refresh   s    	r   c                     |                      t                    5  d| j        _        ddd           n# 1 swxY w Y   |                     | j        j                   dS )z Verify when reading a file cannot be forcibly switched to swmr mode.
        When reading with SWMR the file must be opened with swmr=True.TN)assertRaises	Exceptionr   r"   r!   r#   s    r   test_force_swmr_mode_on_raisesz2TestDatasetSwmrRead.test_force_swmr_mode_on_raises    s     y)) 	$ 	$#DF	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$()))))   488c                     |                      t                    5  d| j        _        ddd           n# 1 swxY w Y   |                     | j        j                   dS ) Switching SWMR write mode off is only possible by closing the file.
        Attempts to forcibly switch off the SWMR mode should raise a ValueError.
        FN)r,   
ValueErrorr   r"   r!   r#   s    r   test_force_swmr_mode_off_raisesz3TestDatasetSwmrRead.test_force_swmr_mode_off_raises'   s     z** 	% 	%$DF	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%()))))r/   N)
__name__
__module____qualname____doc__r   r$   r'   r*   r.   r3    r   r   r   r      sx         # # #* * *4 4 4  * * ** * * * *r   r   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestDatasetSwmrWriter   c                    t          j        |                                 dd          | _        t	          j        d                              d          | _        | j                            dd| j        j	        dd	
          | _
        dS )za First setup a file with a small chunked and empty dataset.
        No data written yet.
        wlatest)libver   r   r   )r   )   r   )shapedtyper   r   N)r   r   mktempr   r   r   r   r   r   rB   r   r#   s    r   r   zTestDatasetSwmrWrite.setUp4   sm     4;;==#h???IaLL'',,	F))&DIO\`kr)ss			r   c                 D    |                      | j        j                   dS )z3 Verify that the file is not initially in SWMR modeN)assertFalser   r"   r#   s    r   test_initial_swmr_mode_offz/TestDatasetSwmrWrite.test_initial_swmr_mode_offA   s!    )*****r   c                 \    d| j         _        |                     | j         j                   dS )z  Switch to SWMR mode and verify TN)r   r"   r!   r#   s    r   test_switch_swmr_mode_onz-TestDatasetSwmrWrite.test_switch_swmr_mode_onE   s)    ()))))r   c                    d| j         _        |                     | j         j                   |                     t                    5  d| j         _        ddd           n# 1 swxY w Y   |                     | j         j                   dS )r1   TFN)r   r"   r!   r,   r2   r#   s    r    test_switch_swmr_mode_off_raisesz5TestDatasetSwmrWrite.test_switch_swmr_mode_off_raisesJ   s      ()))z** 	% 	%$DF	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%()))))s   AA#&A#c                 j   d| j         _        |                     | j         j                   | j                            | j        j                   | j        | j        dd<   | j                                         | j                                         | 	                    | j        | j                   dS )z) Extend and flush a SWMR dataset
        TN)
r   r"   r!   r   resizer   rA   flushr)   r&   r#   s    r   test_extend_dsetz%TestDatasetSwmrWrite.test_extend_dsetT   s      ()))	$)/+++y	!!!	 		di33333r   c                    d| j         _        |                     | j         j                   | j                            d           | j        | j        dd <   | j                                         | j                                         |                     | j        | j                   | j                            d           | j        | j        dd <   | j                                         | j                                         |                     | j        dd         | j                   |                     | j        dd         | j                   d S )NT)r?   r   )   r?   rP   )	r   r"   r!   r   rL   r   rM   r)   r&   r#   s    r   test_extend_dset_multiplez.TestDatasetSwmrWrite.test_extend_dset_multipleb   s%   ()))	$   		!""	 		di333	$   		!""	 		di!ndi888di!ndi88888r   N)
r4   r5   r6   r7   r   rF   rH   rJ   rN   rQ   r8   r   r   r:   r:   /   s{         
t 
t 
t+ + +* * *
* * *4 4 49 9 9 9 9r   r:   )numpyr   r   commonr   r   r   r:   r8   r   r   <module>rT      s                        &* &* &* &* &*( &* &* &*PG9 G9 G9 G9 G98 G9 G9 G9 G9 G9r   