a
    ߙfb                     @   s~   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 fejejddejejej	d  ej  fgZ
G d	d
 d
ZdS )z%Test setting and adding unit aliases.    N	Angstromscountszcounts/s)Zergsr   zergs/(s cm**2 Angstroms)   c                   @   sz   e Zd Zdd Zdd Zejdg dejdedd	 Z	ejded
d Z
dd Zdd Zdd Zdd ZdS )TestAliasesc                 C   s   t i  d S N)uset_enabled_aliasesself r   ?lib/python3.9/site-packages/astropy/units/tests/test_aliases.pyteardown_method   s    zTestAliases.teardown_methodc                 C   s   t  ji ksJ d S r   )r   get_current_unit_registryaliasesr	   r   r   r   teardown_class   s    zTestAliases.teardown_classformat_)NZfitsZogipZvounitcdszaliases,bad,unitc                 C   s   |dkr| dd dd}t|4 t j|ks:J t||ksLJ W d    n1 s`0    Y  t ji ks|J tt t| W d    n1 s0    Y  d S )Nr    .z** )	replacer   r   r   r   Unitpytestraises
ValueError)r
   r   badunitr   r   r   r   (test_set_enabled_aliases_context_manager   s    0z4TestAliases.test_set_enabled_aliases_context_managerc                 C   s   t |4 t  j|ksJ t ||ks0J W d    n1 sD0    Y  t  ji ks`J tt t | W d    n1 s0    Y  d S r   )r   add_enabled_aliasesr   r   r   r   r   r   )r
   r   r   r   r   r   r   (test_add_enabled_aliases_context_manager%   s    0z4TestAliases.test_add_enabled_aliases_context_managerc              
   C   s   t tD ]\}\}}}t| t j|ks2J t||ksDJ tD ]b\}}}||ksb||v rvt||ksJ qHtt	 t| W d    qH1 s0    Y  qHqd S r   )
	enumeratetrialsr   r   r   r   r   r   r   r   )r
   ir   r   r   _bad2unit2r   r   r   test_set_enabled_aliases/   s    
z$TestAliases.test_set_enabled_aliasesc           
   
   C   s   i }t tD ]\}\}}}t| || t j|ks@J t||ksRJ t tD ]^\}\}}}	||krt||	ksJ qZt	t
 t| W d    qZ1 s0    Y  qZqd S r   )r    r!   r   r   updater   r   r   r   r   r   )
r
   Zexpected_aliasesr"   r   r   r   jr#   r$   r%   r   r   r   test_add_enabled_aliases>   s    

z$TestAliases.test_add_enabled_aliasesc                 C   sL   t jtdd* tdtdtj i W d    n1 s>0    Y  d S )Nzalready meansmatchZpctg-q=)r   r   r   r   r   r   countr	   r   r   r   test_cannot_alias_existing_unitO   s    z+TestAliases.test_cannot_alias_existing_unitc                 C   sR   t dt ji tjtdd  t dt ji W d    n1 sD0    Y  d S )Nr   zalready is an aliasr*   )r   r   r,   r   r   r   r   Zadur	   r   r   r   0test_cannot_alias_existing_alias_to_another_unitS   s    z<TestAliases.test_cannot_alias_existing_alias_to_another_unitN)__name__
__module____qualname__r   r   r   ZmarkZparametrizer!   r   r   r&   r)   r-   r.   r   r   r   r   r      s   
	r   )__doc__r   Zastropy.unitsZunitsr   ZAAr,   sZergcmr!   r   r   r   r   r   <module>   s   