
    &Vf                         d dl Z d dlZddlmZmZ d dlmZmZ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   )utTestCase)FileGroupDatasetc                       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    ]/var/www/html/software/conda/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.tearDown1   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_dimensionscaleC   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          j                            | j        d         j        | j        d         j        d                     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           d S )Nr   r   r   r   )
r4   r   r   r;   r   r    detach_scaler<   r6   r=   r#   s    r%   test_detach_dimensionscalez+TestH5DSBindings.test_detach_dimensionscaleM   s    I!!$&."3TVD\_aHH	 	 	 		tvf~0$&,/1EEEI!!$&."3TVD\_aHH	 	 	 	11$&.2CQGGKKKKKr'   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_dimensionscaleW   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$   rI   rH   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>   rA   rD   rK   r/   r'   r%   r1   r1   6   sz         P P PL L L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_scaleh   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   rR   r#   s    r%   test_get_dimensionz'TestDimensionManager.test_get_dimensionq   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   rR   r#   s    r%   test_lenzTestDimensionManager.test_lenu   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   rR   r6   )r$   rR   s     r%   	test_iterzTestDimensionManager.test_itery   sY    vf~"!Wd1gtAw'	 	 	 	 	r'   c                 "   | j                             dd          }|                     t          |j                  t
                     | j                                          |                     t          |j                  t
                     d S )Nx)r   r   )r   create_datasetassertIsInstancereprrR   strr)   r$   dss     r%   	test_reprzTestDimensionManager.test_repr   sj    V""3..d27mmS111d27mmS11111r'   N)r+   r,   r-   rS   rW   r[   ra   rj   r/   r'   r%   rM   rM   f   sb        L L L# # #7 7 7  2 2 2 2 2r'   rM   c                   \    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 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   rY   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   rc   r    r   zr   )r6   r   rR   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   rc   r   ro   )r   rR   rq   r6   r#   s    r%   test_set_labelz&TestDimensionsHighLevel.test_set_label   s    ',vA$,Q/5s;;;,Q/5r:::,Q/5u=====r'   c                 <   | j         d         j        d                             | j         d                    |                     t	          | j         d         j        d                   d           |                     | j         d         j        d         d         | j         d                    | j         d         j        d                             | j         d                    |                     t	          | j         d         j        d                   d           d S )Nr   r   r   r   r   r   )r   rR   r@   r6   rZ   r#   s    r%   test_detach_scalez)TestDimensionsHighLevel.test_detach_scale   s    vA++DF4L999TVF^0344a888,Q/2DF4LAAAvA++DF4L999TVF^0344a88888r'   c                    | j         d         d         | j         d<   | j         d         j        d                             | j         d                    |                     t	          | j         d         j        d                   d           |                     | j         d         j        d         d         | j         d                    d S )Nr   .x3r   r   r   )r   rR   r!   r6   rZ   r#   s    r%   test_attach_scalez)TestDimensionsHighLevel.test_attach_scale   s    vd|C(tvA++DF4L999TVF^0344a888,Q/2DF4LAAAAAr'   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   ro   x2 name)r6   r   rR   rU   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   ro   r   r|   r   )r6   r   rR   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   ro   r|   )r6   r   rR   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   rR   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/   )r^   is     r%   r`   z5TestDimensionsHighLevel.test_iter.<locals>.<listcomp>   s    <<<!<<<r'   r   r   ro   r|   )r6   r   rR   r#   s    r%   ra   z!TestDimensionsHighLevel.test_iter   s?    <<TVF^%8%;<<<r9oNNNNNr'   c                    | j         d         }|                     t          |j        d                   dd         d           | j                                          |                     t          |j                  t                     d S )Nr   r   r      z"x" dimension 2)r   r6   rf   rR   r)   re   rg   rh   s     r%   rj   z!TestDimensionsHighLevel.test_repr   sn    VF^bgaj))!B$/1BCCCd27mmS11111r'   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   rZ   rR   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[   rr   ru   rw   rz   r~   r   r   r   ra   rj   r   r   r/   r'   r%   rl   rl      s        : : :< < <> > >9 9 9B B BJ J J  I I I  O O O2 2 2: : :3 3 3 3 3r'   rl   )sysnumpyr   commonr   r   r   r   r   r   r
   r1   rM   rl   r/   r'   r%   <module>r      s"   


                     % % % % % % % % % %          (      F-D -D -D -D -D{ -D -D -D`2 2 2 2 2; 2 2 2BR3 R3 R3 R3 R3k R3 R3 R3 R3 R3r'   