
    j                          d dl ZddlmZmZmZ d dlmZ d dlZ G d de          Z G d de          Z	 G d	 d
e          Z
 G d de          ZdS )    N   )TestCaseis_main_thread	make_name)Filec                       e Zd ZdZd Zd ZdS )BaseDatasetaP  
    data is a 3-dimensional dataset with dimensions [z, y, x]

    The z dimension is labeled. It does not have any attached scales.
    The y dimension is not labeled. It has one attached scale.
    The x dimension is labeled. It has two attached scales.

    data2 is a 3-dimensional dataset with no associated dimension scales.
    c                    t          |                                 d          | _        t          j        dd          | j        d<   t          j        dd          | j        d<   t          j        dd          | j        d<   t
          j                            | j        d         j                   t
          j        	                    | j        d         j        | j        d         j        d           t          j        dd          | j        d<   t
          j                            | j        d         j        d	           t
          j        	                    | j        d         j        | j        d         j        d           t          j        d
d          | j        d<   t
          j                            | j        d         j        d           t
          j        	                    | j        d         j        | j        d         j        d           t          j        dd          | j        d<   t
          j        
                    | j        d         j        dd           t
          j        
                    | j        d         j        dd           d S )Nw         fdatadata2r   x1x2   x2 namer   y1s   y1 namer   r   z1r      z   x)r   mktempr   nponesh5pyh5ds	set_scaleidattach_scale	set_labelselfs    c/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/h5py/tests/test_dimension_scales.pysetUpzBaseDataset.setUp   s   dkkmmS))C00v')S11wwC((t	DF4LO,,,	tvf~0$&,/1EEEwC((t	DF4LOZ888	tvf~0$&,/1EEEwC((t	DF4LOZ888	tvf~0$&,/1EEEwC((t	DF6N-q$777	DF6N-q$77777    c                 J    | j         r| j                                          d S d S )N)r   closer#   s    r%   tearDownzBaseDataset.tearDown0   s)    6 	FLLNNNNN	 	r'   N)__name__
__module____qualname____doc__r&   r*    r'   r%   r	   r	      s<         8 8 8$    r'   r	   c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )TestH5DSBindingszA
        Feature: Datasets can be created from existing data
    c                    |                      t          j                            | j        d         j                             |                     t          j                            | j        d         j                  d           |                     | j        d         j        d         d           |                     t          j                            | j        d         j                  d           dS )z0 Create a dimension scale from existing dataset r   r'   CLASSs   DIMENSION_SCALEr   r   N)	
assertTruer   r   is_scaler   r    assertEqualget_scale_nameattrsr#   s    r%   test_create_dimensionscalez+TestH5DSBindings.test_create_dimensionscale;   s    	**46$<?;;<<<11$&,/BBCHHH+G46HIII11$&,/BBJOOOOOr'   c                    |                      t          j                            | j        d         j        | j        d         j        d                     |                     t          j                            | j        d         j        | j        d         j        d                     |                     t          j                            | j        d         j        d          d           |                     t          j                            | j        d         j        d          d           |                     t          j                            | j        d         j        d          d           d S )Nr   r   r   r   r   )	r4   r   r   is_attachedr   r    assertFalser6   get_num_scalesr#   s    r%   test_attach_dimensionscalez+TestH5DSBindings.test_attach_dimensionscaleB   s   I!!$&."3TVD\_aHH	 	 	 	I!!$&."3TVD\_aHH	J 	J 	J11$&.2CQGGKKK11$&.2CQGGKKK11$&.2CQGGKKKKKr'   c                    t                      }t          j        dd          | j        |<   | j        |         }t          j                            |j        | j        d         j        d           t          j                            |j        | j        d         j        d           |                     t          j        	                    |j        | j        d         j        d                     | 
                    t          j                            |j        d          d           t          j                            |j        | j        d         j        d           |                     t          j        	                    |j        | j        d         j        d                     | 
                    t          j                            |j        d          d           d S )Nr   r   r   r   r   r   )r   r   r   r   r   r   r!   r    r4   r;   r6   r=   detach_scaler<   r$   namedss      r%   test_detach_dimensionscalez+TestH5DSBindings.test_detach_dimensionscaleL   sU   {{wy#..tVD\	rudfTloq999	rudfTloq999	--beTVD\_aHHIII11"%;;Q???	rudfTloq999..rudfTloqIIJJJ11"%;;Q?????r'   c                    |                      t          j                            | j        d         j        d          d           |                      t          j                            | j        d         j        d          d           |                      t          j                            | j        d         j        d          d           d S )Nr   r   r   r   r'   r   r   )r6   r   r   	get_labelr   r    r#   s    r%   test_label_dimensionscalez*TestH5DSBindings.test_label_dimensionscaleX   s    ,,TVF^->BBDIII,,TVF^->BBCHHH,,TVF^->BBDIIIIIr'   c                     d }t           j                            | j        d         j        d|d          }|                     t           j                            |          d           d S )Nc                 T    t           j                            |           }|dk    r| S d S )Nr   )r   r   r7   )dsidress     r%   funcz8TestH5DSBindings.test_iter_dimensionscales.<locals>.func^   s/    )**400Cj   ! r'   r   r   r   r   )r   r   iterater   r    r6   r7   )r$   rL   rK   s      r%   test_iter_dimensionscalesz*TestH5DSBindings.test_iter_dimensionscales]   sc    	 	 	
 iv 11dA>>11#66
CCCCCr'   N)	r+   r,   r-   r.   r9   r>   rD   rG   rN   r/   r'   r%   r1   r1   5   sz         P P PL L L
@ 
@ 
@J J J
D D D D Dr'   r1   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestDimensionManagerc                    | j         d                             d           |                     | j         d         j        d         d         | j         d                    | j         d                             d           | j         d         j        d                             | j         d                    |                     | j         d         j        d         d         | j         d                    d S )	Nr   s   foobarr   r   foobarr   s   foobazfoobaz)r   
make_scaler6   dimsr!   r#   s    r%   test_make_scalez$TestDimensionManager.test_make_scalei   s    t	***,Q/946$<HHHw""9---vA++DF7O<<<,Q/946'?KKKKKr'   c                     |                      t                    5  | j        d         j        d          d d d            d S # 1 swxY w Y   d S )Nr   r   )assertRaises
IndexErrorr   rU   r#   s    r%   test_get_dimensionz'TestDimensionManager.test_get_dimensionr   s    z** 	# 	#F6N""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   AAAc                     |                      t          | j        d         j                  d           |                      t          | j        d         j                  d           d S )Nr   r   r   r6   lenr   rU   r#   s    r%   test_lenzTestDimensionManager.test_lenv   sV    TVF^0111555TVG_122A66666r'   c                     | j         d         j        }|                     d |D             |d         |d         |d         g           d S )Nr   c                     g | ]}|S r/   r/   ).0ds     r%   
<listcomp>z2TestDimensionManager.test_iter.<locals>.<listcomp>}   s    1Qr'   r   r   r   )r   rU   r6   )r$   rU   s     r%   	test_iterzTestDimensionManager.test_iterz   sY    vf~"!Wd1gtAw'	 	 	 	 	r'   c                 \   | j                             t                      dd          }|                     t	          |j                  t                     t                      rH| j                                          |                     t	          |j                  t                     d S d S )N)r   r   f4)	r   create_datasetr   assertIsInstancereprrU   strr   r)   r$   rC   s     r%   	test_reprzTestDimensionManager.test_repr   s    V""9;;t<<d27mmS111 	6FLLNNN!!$rw--55555	6 	6r'   N)r+   r,   r-   rV   rZ   r^   rd   rl   r/   r'   r%   rP   rP   g   sb        L L L# # #7 7 7  6 6 6 6 6r'   rP   c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )TestDimensionsHighLevelc                    |                      t          | j        d         j        d                   d           |                      t          | j        d         j        d                   d           |                      t          | j        d         j        d                   d           |                      t          | j        d         j        d                   d           |                      t          | j        d         j        d                   d           |                      t          | j        d         j        d                   d           d S )Nr   r   r   r   r   r\   r#   s    r%   r^   z TestDimensionsHighLevel.test_len   s   TVF^0344a888TVF^0344a888TVF^0344a888TVG_1!455q999TVG_1!455q999TVG_1!455q99999r'   c                 R   |                      | j        d         j        d         j        d           |                      | j        d         j        d         j        d           |                      | j        d         j        d         j        d           |                      | j        d         j        d         j        d           |                      | j        d         j        d         j        d           |                      | j        d         j        d         j        d           d S )	Nr   r   xr    r   zr   )r6   r   rU   labelr#   s    r%   test_get_labelz&TestDimensionsHighLevel.test_get_label   s    ,Q/5s;;;,Q/5r:::,Q/5s;;;-a06;;;-a06;;;-a06;;;;;r'   c                 f   d| j         d         j        d         _        |                     | j         d         j        d         j        d           |                     | j         d         j        d         j        d           |                     | j         d         j        d         j        d           d S )Nfoor   r   r   rq   r   rr   )r   rU   rt   r6   r#   s    r%   test_set_labelz&TestDimensionsHighLevel.test_set_label   s    ',vA$,Q/5s;;;,Q/5r:::,Q/5u=====r'   c                    t          d          }| j        d         d         | j        |<   | j        |         }|j        d                             | j        d                    |j        d                             | j        d                    |                     t          |j        d                   d           |                     |j        d         d         | j        d                    |                     |j        d         d         | j        d                    |j        d                             | j        d                    |                     t          |j        d                   d           |                     |j        d         d         | j        d                    |j        d                             | j        d                    |                     t          |j        d                   d           d S )	Ndata3r   .r   r   r   r   r   )r   r   rU   r!   r6   r]   r@   rA   s      r%   test_attach_detach_scalez0TestDimensionsHighLevel.test_attach_detach_scale   s   !!vf~c*tVD\

t---

t---RWQZ!,,,At555At555

t---RWQZ!,,,At555

t---RWQZ!,,,,,r'   c                 .   |                      | j        d         j        d         d         | j        d                    |                     t                    5  | j        d         j        d         d         | j        d         f d d d            n# 1 swxY w Y   |                      | j        d         j        d         d         | j        d                    |                      | j        d         j        d         d         | j        d                    d S )	Nr   r   r   r   r   r   rr   x2 name)r6   r   rU   rX   RuntimeErrorr#   s    r%   test_get_dimension_scalez0TestDimensionsHighLevel.test_get_dimension_scale   s"   ,Q/2DF4LAAA|,, 	5 	5F7O #A&t44	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5,Q/3TVD\BBB,Q/	:DF4LIIIIIs   ,BBBc                     |                      | j        d         j        d                                         d| j        d         fd| j        d         fg           d S )Nr   r   rr   r   r}   r   )r6   r   rU   itemsr#   s    r%   test_get_itemsz&TestDimensionsHighLevel.test_get_items   s_    F6N"((**$&,)TVD\!:;	 	 	 	 	r'   c                     |                      | j        d         j        d                                         ddg           d S )Nr   r   rr   r}   )r6   r   rU   keysr#   s    r%   test_get_keysz%TestDimensionsHighLevel.test_get_keys   s<    ,Q/4466YHHHHHr'   c                     |                      | j        d         j        d                                         | j        d         | j        d         g           d S )Nr   r   r   r   )r6   r   rU   valuesr#   s    r%   test_get_valuesz'TestDimensionsHighLevel.test_get_values   sU    F6N"))++VD\46$<(	 	 	 	 	r'   c                 v    |                      d | j        d         j        d         D             ddg           d S )Nc                     g | ]}|S r/   r/   )ra   is     r%   rc   z5TestDimensionsHighLevel.test_iter.<locals>.<listcomp>   s    <<<!<<<r'   r   r   rr   r}   )r6   r   rU   r#   s    r%   rd   z!TestDimensionsHighLevel.test_iter   s?    <<TVF^%8%;<<<r9oNNNNNr'   c                 8   | j         d         }|                     t          |j        d                   dd         d           t	                      rH| j                                          |                     t          |j                  t                     d S d S )Nr   r   r      z"x" dimension 2)r   r6   ri   rU   r   r)   rh   rj   rk   s     r%   rl   z!TestDimensionsHighLevel.test_repr   s    VF^bgaj))!B$/1BCCC 	6FLLNNN!!$rw--55555	6 	6r'   c                    | j         d         j        d         | j         d         j        d<   |                     t          | j         d         j        d                   d           |                     t          | j         d         j        d                   d           |                     t          | j         d         j        d                   d           d S )Nr   DIMENSION_LISTr   r   r   r   )r   r8   r6   r]   rU   r#   s    r%   test_attributesz'TestDimensionsHighLevel.test_attributes   s    26&.2F3w./TVG_1!455q999TVG_1!455q999TVG_1!455q99999r'   c                    |                      | j        d         j                   |                      | j        d         j                   |                      | j        d         j                   |                     | j        d         j                   |                     | j        d         j                   |                     | j        d         j                   dS )zTest Dataset.is_scale propertyr   r   r   r   r   r   N)r4   r   r5   r<   r#   s    r%   test_is_scalez%TestDimensionsHighLevel.test_is_scale   s    t-...t-...t-....///0111122222r'   N)r+   r,   r-   r^   ru   rx   r{   r   r   r   r   rd   rl   r   r   r/   r'   r%   rn   rn      s        : : :< < <> > >- - -"J J J  I I I  O O O6 6 6: : :3 3 3 3 3r'   rn   )numpyr   commonr   r   r   r   r   r	   r1   rP   rn   r/   r'   r%   <module>r      s       7 7 7 7 7 7 7 7 7 7                (      F/D /D /D /D /D{ /D /D /Dd 6  6  6  6  6;  6  6  6FX3 X3 X3 X3 X3k X3 X3 X3 X3 X3r'   