
    j                         d dl Zd dlZd dlZddlmZ  G d de          Zej                            d           G d d	e                      Z	dS )
    N   )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     _/var/www/html/Carbon-Document/venv/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-   r2    r   r   r   r   	   sx         # # #* * *4 4 4  * * ** * * * *r   r   z#Can't enable global SWMR flag twice)reasonc                   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.setUp8   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_offE   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_onI   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 )r0   TFN)r
   r!   r    r+   r1   r"   s    r    test_switch_swmr_mode_off_raisesz5TestDatasetSwmrWrite.test_switch_swmr_mode_off_raisesN   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_dsetX   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_multiplef   s%   ()))	$   		!""	 		di333	$   		!""	 		di!ndi888di!ndi88888r   N)
r3   r4   r5   r6   r   rF   rH   rJ   rN   rQ   r7   r   r   r:   r:   2   s{         
t 
t 
t+ + +* * *
* * *4 4 49 9 9 9 9r   r:   )
numpyr   pytestr   commonr   r   markthread_unsafer:   r7   r   r   <module>rW      s               &* &* &* &* &*( &* &* &*R "GHHG9 G9 G9 G9 G98 G9 G9 IHG9 G9 G9r   