a
    ߙfb                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ dd Z	dd Z
dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)Constant)Quantityc                  C   sj   ddl m}  | jdksJ | jjdks*J | jjdks:J | jdksHJ | jsRJ | js\J | jsfJ d S )Nr   cg   JxޱAg  B)	astropy.constants.codata2010r   valuesicgsuncertaintyname	referenceunitr    r   Ilib/python3.9/site-packages/astropy/constants/tests/test_prior_version.pytest_c   s    

r   c                  C   s   ddl m}  ddlm} t| jd dk s.J t| jjd dk sFJ t| jjd dk s^J t| j|j dksvJ | jsJ | jsJ | j	sJ | j
sJ d S )Nr   )hgY9gaKSO17g=Ag:gr.-Du8g9(LV7)r   r   astropy.constantsabsr   r   r	   r
   r   r   r   )r   Z	h_currentr   r   r   test_h   s    


r   c                  C   s   ddl m}  tdd}tt | j|  W d    n1 s@0    Y  t| jtsZJ t| j	tsjJ t| j
tszJ | j	| t| j	j|j dksJ | j
| t| j
j|j dksJ d S )Nr   )egc  Y@zV/mzFr V/m) astropy.constants.astropyconst13r   QpytestZraises	TypeErrorr	   
isinstancer   ZgaussZesur   )Ze_13Er   r   r   test_e0   s    
("r   c                  C   sz   ddl m}  | jdksJ | jjdks*J | jjdks:J | jdksHJ | jsRJ | js\J | jsfJ | jj	dksvJ dS )z<Tests for #1263 demonstrating how g0 constant should behave.r   g0g:#@gQ@ZaccelerationN)
r   r   r   r   r	   r
   r   r   r   Zphysical_typer   r   r   r   test_g0C   s    


r   c                  C   sH   ddl m}  ddlm} d|j }| | |j}t|jdksDJ dS )zwb_wien should give the correct peak wavelength for
    given blackbody temperature. The Sun is used in this test.

    r   )b_wienunitsi  i  N)	r   r    astropyr"   KtoZnmroundr   )r    utwr   r   r   test_b_wienV   s
    
r*   c                  C   sX   ddl m}  ddlm} td}tj|jd| jj	j
 t|| dddsTJ dS )	zzParsec is defined to use small-angle limit per IAU 2015 Resolution B 2.
    iau2012 version still uses tan(parallax).
    r   )iau2012r!   g߼xV42?mg+=)ZrtolZatolN)r   r+   r#   r"   npZradiansZallcloseZpcr%   r   r   Ztan)r+   r'   Zplxr   r   r   test_pcb   s    
r.   c                  C   s   ddl m} m}m} d}| jj|kr<| jj|kr<| jj|ks@J d}|jj|krh|jj|krh|jj|kslJ d}|jj|kr|jj|kr|jj|ksJ dS )z`Ensure mass values are set up correctly.
    https://github.com/astropy/astropy/issues/8920
    r   )astropyconst13astropyconst20astropyconst40z(Allen's Astrophysical Quantities 4th Ed.z%IAU 2015 Resolution B 3 + CODATA 2014z%IAU 2015 Resolution B 3 + CODATA 2018N)r   r/   r0   r1   ZM_sunr   ZM_jupZM_earth)r/   r0   r1   Zref_textr   r   r   test_massesl   s&    





r2   c                  C   sN   ddl m}  ddlm} t| D ]$\}}t|tr$t|j| j	r$J q$d S )Nr   r!   )r/   )
r#   r"   r   r/   varsitemsr   r   r   ZUnrecognizedUnit)r'   constkeyvalr   r   r   	test_unit   s
    
r8   c                  C   sD   ddl m}  t| j}|| jks&J t| j}|| jks@J d S )Nr   )	constants)r#   r9   copydeepcopyr   )r5   Zccr   r   r   	test_copy   s
    r<   c                  C   s  ddl m}  | t}|| ks"J |j| jks2J |jdks@J |j| jksPJ |j| jks`J |j| jkspJ | t	}|| ksJ |j| jksJ t
|t	u sJ t|drJ t	| }|| ksJ |j| jksJ t
|t	u sJ t|drJ t	| dd}|| ksJ |j| jks"J |jdks2J |j| jksDJ |j| jksVJ |j| jkshJ t	| ddd}|| u sJ dS )	zCCheck that Constant and Quantity views can be taken (#3537, #3538).r   r   r   T)subokF)r=   r:   N)r   r   Zviewr   r   r
   r   r   r   r   typehasattr)r   Zc2Zq1Zq2Zc3Zc4r   r   r   	test_view   s6    

r@   )r:   r   Znumpyr-   r   r   Zastropy.unitsr   r   r   r   r   r   r*   r.   r2   r8   r<   r@   r   r   r   r   <module>   s   
	