
    IR-e                         d Z ddlZddlmZ dej        idej        fdej        idej        ej        z  fej        ej        ddej        ej        ej	        dz  z  ej        z  z  fgZ
 G d	 d
          ZdS )z%Test setting and adding unit aliases.    N	Angstromscountszcounts/s)ergsr   zergs/(s cm**2 Angstroms)   c                      e Zd Zd Zd Zej                            dg d          ej                            de          d                         Z	ej                            de          d             Z
d Zd	 Zd
 Zd ZdS )TestAliasesc                 .    t          j        i            d S N)uset_enabled_aliasesselfs    @lib/python3.11/site-packages/astropy/units/tests/test_aliases.pyteardown_methodzTestAliases.teardown_method   s    	b!!!!!    c                 B    t          j                    j        i k    sJ d S r
   )r   get_current_unit_registryaliasesr   s    r   teardown_classzTestAliases.teardown_class   s%    *,,4::::::r   format_)Nfitsogipvounitcdszaliases,bad,unitc                    |dk    r*|                     dd                               dd          }t          j        |          5  t          j                    j        |k    sJ t          j        |          |k    sJ 	 d d d            n# 1 swxY w Y   t          j                    j        i k    sJ t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr    .z** )	replacer   r   r   r   Unitpytestraises
ValueError)r   r   badunitr   s        r   (test_set_enabled_aliases_context_managerz4TestAliases.test_set_enabled_aliases_context_manager   sq    e++c3''//b99C"7++ 	' 	'.008GCCCC6#;;$&&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' *,,4::::]:&& 	 	F3KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   9BBBC//C36C3c                    t          j        |          5  t          j                    j        |k    sJ t          j        |          |k    sJ 	 d d d            n# 1 swxY w Y   t          j                    j        i k    sJ t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S r
   )r   add_enabled_aliasesr   r   r    r!   r"   r#   )r   r   r$   r%   s       r   (test_add_enabled_aliases_context_managerz4TestAliases.test_add_enabled_aliases_context_manager'   sA   "7++ 	' 	'.008GCCCC6#;;$&&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' *,,4::::]:&& 	 	F3KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   9AA"AB??CCc                    t          t                    D ]\  }\  }}}t          j        |           t          j                    j        |k    sJ t          j        |          |k    sJ t          D ]p\  }}}||k    s||v rt          j        |          |k    sJ +t          j        t                    5  t          j        |           d d d            n# 1 swxY w Y   qd S r
   )
	enumeratetrialsr   r   r   r   r    r!   r"   r#   )r   ir   r$   r%   _bad2unit2s           r   test_set_enabled_aliasesz$TestAliases.test_set_enabled_aliases1   s0   '0'8'8 	% 	%#A#d!'***.008GCCCC6#;;$&&&&"( % %43;;$'//6$<<500000z22 % %t% % % % % % % % % % % % % % %	%	% 	%s   5CCCc                    i }t          t                    D ]\  }\  }}}t          j        |           |                    |           t          j                    j        |k    sJ t          j        |          |k    sJ t          t                    D ]o\  }\  }}}	||k    rt          j        |          |	k    sJ *t          j	        t                    5  t          j        |           d d d            n# 1 swxY w Y   pd S r
   )r+   r,   r   r(   updater   r   r    r!   r"   r#   )
r   expected_aliasesr-   r   r$   r%   jr.   r/   r0   s
             r   test_add_enabled_aliasesz$TestAliases.test_add_enabled_aliases@   sQ   '0'8'8 	% 	%#A#d!'***##G,,,.008<LLLLL6#;;$&&&&'0'8'8 % %##AtU666$<<500000z22 % %t% % % % % % % % % % % % % % %	%	% 	%s   C99C= C=c                     t          j        t          d          5  t          j        dt          j        dt          j        z            i           d d d            d S # 1 swxY w Y   d S )Nzalready meansmatchpctg-q=)r!   r"   r#   r   r   r    countr   s    r   test_cannot_alias_existing_unitz+TestAliases.test_cannot_alias_existing_unitQ   s    ]:_=== 	D 	D!5!&*A*A"BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   6AA#&A#c                     t          j        dt           j        i           t          j        t
          d          5  t          j        dt           j        i           d d d            d S # 1 swxY w Y   d S )Nr   zalready is an aliasr8   )r   r   r;   r!   r"   r#   r(   adur   s    r   0test_cannot_alias_existing_alias_to_another_unitz<TestAliases.test_cannot_alias_existing_alias_to_another_unitU   s    	x1222]:-BCCC 	5 	5!8QU"3444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   !A**A.1A.N)__name__
__module____qualname__r   r   r!   markparametrizer,   r&   r)   r1   r6   r<   r?    r   r   r   r      s        " " "; ; ; [Y(O(O(OPP[/88
 
 98 QP
 [/88  98% % %% % %"D D D5 5 5 5 5r   r   )__doc__r!   astropy.unitsunitsr   AAr;   sergcmr,   r   rE   r   r   <module>rM      s    + +        14+qt,*agm4QT**"	qtQw%&
F5 F5 F5 F5 F5 F5 F5 F5 F5 F5r   