a
    ߙfb                     @   sl   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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.constantsr   valuesicgsuncertaintyname	referenceunitr    r   Dlib/python3.9/site-packages/astropy/constants/tests/test_constant.pytest_c   s    

r   c                  C   s   ddl m}  t| jd dk s"J t| jjd dk s:J t| jjd dk sRJ | jdks`J | jsjJ | jstJ | j	s~J d S )Nr   hg_D9gx88gg:ghe99)
r   r   absr   r   r	   r
   r   r   r   r   r   r   r   test_h   s    

r   c                      s   ddl m tdd tt fdd tt fdd tt fdd tjtshJ tjtsxJ tj	tsJ j  tdd	ksJ j  tjj
 j
 d
ksJ j	  tj	j
 j
 d
ksJ dS )z<Tests for #572 demonstrating how EM constants should behave.r   )ed   zV/mc                      s     S Nr   r   Er   r   r   <lambda>5       ztest_e.<locals>.<lambda>c                      s     S r   r   r   r   r   r   r   9   r   c                      s
   j   S r   )r	   r   r   r   r   r   <   r   zeV/mzFr V/mN)r   r   QpytestZraises	TypeError
isinstancer   ZgaussZesur   r   r   r   r   test_e,   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_g0G   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_wienZ   s
    
r.   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%   	constants)	r'   r&   r0   varsitemsr   r   r   ZUnrecognizedUnit)r+   constkeyvalr   r   r   	test_unitf   s
    
r6   c                  C   sD   ddl m}  t| j}|| jks&J t| j}|| jks@J d S )Nr   r/   )r'   r0   copydeepcopyr   )r3   Zccr   r   r   	test_copyt   s
    r9   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:   r7   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=   )r7   r   r   r   Zastropy.unitsr   r   r   r   r    r#   r.   r6   r9   r=   r   r   r   r   <module>   s   	