U
    ZÊ¹j‹$  ã                   @   sR  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z, d d	l-m.Z. d d
l/m0Z0 d#dd„Z1eZ2e(Z3dd„ Z4dd„ Z5dd„ Z6dd„ Z7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<d d!„ Z=d"S )$é    )ÚTuple)Úpi)ÚPow©Úsymbols)Úsympify)Ússtr)ÚGÚ
centimeterÚcoulombÚdayÚdegreeÚgramÚhbarÚhourÚinchÚjouleÚkelvinÚkilogramÚ	kilometerÚlengthÚmeterÚmileÚminuteÚnewtonÚplanckÚplanck_lengthÚplanck_massÚplanck_temperatureÚplanck_timeÚradiansÚsecondÚspeed_of_lightÚ	steradianÚtimeÚkm)Ú
convert_toÚcheck_dimensions)Úraises)Úsqrté   c                 K   s   t t| ƒj|f|Ždd�S )NT)Z	full_prec)r   r   Zevalf)ÚeÚnÚoptions© r.   úb/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/physics/units/tests/test_util.pyÚNS   s    r0   c                   C   s   t t  t kst‚d S ©N)ÚLÚAssertionErrorr.   r.   r.   r/   Útest_dim_simplify_add   s    r4   c                   C   s   t t t t kst‚d S r1   ©r2   ÚTr3   r.   r.   r.   r/   Útest_dim_simplify_mul   s    r7   c                   C   s   t tdƒtd kst‚d S ©Né   )r   r2   r3   r.   r.   r.   r/   Útest_dim_simplify_pow#   s    r:   c                   C   s   t t  t t t kst‚d S r1   r5   r.   r.   r.   r/   Útest_dim_simplify_rec'   s    r;   c                   C   s¢  t dtƒdkst‚t ttƒdt d ks,t‚t tt tƒtd ksFt‚t dt t tƒtks`t‚t dt t tƒdt ks~t‚t ttt ƒdt t ksœt‚t dt tt ƒdt t ks¾t‚t ttƒdt ksÔt‚t dt t	ƒdt	 ksît‚t ttƒd	t d
 k�s
t‚t tt tt ƒdt dt  k�s2t‚t dt
 tt ƒdt
 k�sRt‚t dt
 tt td  ƒdt t td  k�s†t‚t tt tƒdt d
 k�s¦t‚t dt dt  tƒdt d
 k�sÎt‚t td td ƒdtd  d k�söt‚t dtd  tƒdtd  d k�st‚t dt t dt t  tt ƒdt dt  k�sVt‚t dt t dt t  tt ƒdt dt  k�sŽt‚t ttt  tƒdtd  k�s²t‚t ttƒtk�sÆt‚t ttƒdt t k�sât‚t tttgƒdt t k�st‚t tt tƒdt k�st‚t ttƒdt k�s6t‚t ttd td  ƒtƒttd td  ƒk�sjt‚t td td  d tƒtd td  d k�sžt‚d S )Né   i:b  i	=  éJxÞé”ð¼#r9   i€Q éx   iÐ é}   iú i  i?  i@x}i½  i`Ð  iÝm  i€A ie  iÀÐ' é´   ç       @)r&   r   r3   r   r   r!   r"   r   r   r   r   r   r   r
   r#   r   r    r   r   r)   r.   r.   r.   r/   Útest_convert_to_quantities,   s6    "( 4 (((88$ 4rC   c                  C   sð  ddl m}  | dƒ\}}ttttgƒdt t ks6t‚ttttfƒdt t ksTt‚tttttƒƒdt t kstt‚tttt	tgƒt	td  td  ksœt‚ttt
ttgƒdt
d  t td  ksÈt‚tdt t tgƒtksät‚ttd ttt	gƒtt d d k�st‚tdt ttt	gƒdt t k�s4t‚tttttgƒdt k�sRt‚ttttttgƒd	d
�dk�stt‚tttt	ƒd	d
�dk�s�t‚ttttƒd	d
�dk�s¬t‚ttttƒdd
�dk�sÈt‚ttttƒd	d
�dk�sät‚tttttttgƒtƒdd
�dk�st‚tttd td  ƒttgƒttd td  ƒk�sDt‚ttd td  d ttgƒtd td  d k�s|t‚td|t t  dt ƒd|t t  k�s¬t‚td|t |t   dt ƒdt| d |t d   k�sìt‚d S )Nr   r   z
alpha betar=   r9   é€–˜ r>   g      ð?é   )r,   zW6.187142e+34*gravitational_constant**0.5000000*hbar**0.5000000/speed_of_light**1.500000z2.176434e-8*kilogramz1.616255e-35*meteré   z5.39125e-44*secondz1.416784e+32*kelviné
   z1.000000000*meterrB   é   éè  )Úsympy.core.symbolr   r&   r"   r   r!   r3   r   r   r   r
   r   r	   r   r0   r   r   r   r   r   r   r)   r   )r   ÚalphaÚbetar.   r.   r/   Ú$test_convert_to_tuples_of_quantitiesN   s*     (,*&"(880rM   c            	      C   s,  ddl m} m}m}m}m}m} ddlm} |dƒ\}}| |  	¡ dksLt
‚||  	¡ dks`t
‚||   	¡ dkstt
‚d| | |d  | |   	¡ d	| t ks¤t
‚| | |  	¡ d
dt  ksÄt
‚d| t  	¡ dt ksàt
‚d| t dt   	¡ dk�st
‚dtd  |t d   	¡ dk�s(t
‚d S )Nr   )ÚcmÚmmr%   ÚmÚKÚkilor   úx yrG   rI   i † r9   i Êš;rH   rD   r<   i¸  é   )Úsympy.physics.unitsrN   rO   r%   rP   rQ   rR   rJ   r   Úsimplifyr3   r   r
   r   r   )	rN   rO   r%   rP   rQ   rR   r   ÚxÚyr.   r.   r/   Útest_eval_simplifym   s     0 "rY   c                  C   sH  ddl m}  ddlm}m} ddlm} |dƒ\}}| |d| t t |  ƒ|dt t |  ksht	‚| |t
 |t
  ƒ|d ||d	   d	 ks˜t	‚| |t
 || t
|t
    ƒ|d |d |d	 ||d	     d	 ksät	‚| d|t
 | d
  t
 ƒd| d	 k�st	‚| |d t
 t
d |  ƒd|d  d k�sDt	‚d S )Nr   ©Úquantity_simplify)rR   Úfootr   rS   é   i@  r9   é   rI   i   é   r<   é�   )Úsympy.physics.units.utilr[   rU   rR   r\   rJ   r   r   r   r3   r   )r[   rR   r\   r   rW   rX   r.   r.   r/   Útest_quantity_simplify~   s    40L.rb   c                  C   s€  ddl m}  ddlm}m}m}m}m}m}m	}m
}m}	m}
m}m}m}m} | || ddd�|ksft‚| d| | ddd�d| ksˆt‚| || ddd�|ks¢t‚| || ddd�|ks¼t‚| |td  ddd�|ksÚt‚| || ddd�|ksôt‚| || ddd�|k�st‚| td | ddd�td | k�s8t‚| || ddd�|k�sTt‚| |t ddd�|k�spt‚| || ddd�|k�sŒt‚| || ddd�|	k�s¨t‚| t| ddd�|k�sÄt‚| || | ddd�|
k�sät‚| || td	  ddd�|k�st‚| || ddd�|k�s$t‚| d
t | ddd�dt d|  k�sPt‚| d
t t |d	  ddd�d
| k�s|t‚d S )Nr   rZ   )ÚampereÚohmÚvoltr   ÚpascalÚfaradr!   ÚwattÚsiemensÚhenryÚteslaÚweberr   r   TZSI)Zacross_dimensionsZunit_systemrF   r<   r9   é   é   é   )ra   r[   rU   rc   rd   re   r   rf   rg   r!   rh   ri   rj   rk   rl   r   r   r3   r   r   r   r   )r[   rc   rd   re   r   rf   rg   r!   rh   ri   rj   rk   rl   r   r   r.   r.   r/   Ú(test_quantity_simplify_across_dimensions‹   s(    @"( $,rp   c                  C   sè   t dƒ} tt|  ƒt|  ks t‚tt|  ƒt|  ks8t‚tt|   | t¡ƒtksTt‚ttt t ƒttt  kstt‚t	t
dd„ ƒ t	t
dd„ ƒ t	t
dd„ ƒ t	t
dd„ ƒ t	t
dd„ ƒ t	t
dd„ ƒ t	t
d	d„ ƒ t	t
d
d„ ƒ d S )NrW   c                   S   s   t td ƒS ©NrH   )r'   r   r.   r.   r.   r/   Ú<lambda>«   ó    z'test_check_dimensions.<locals>.<lambda>c                   S   s   t td ƒS rq   )r'   r   r.   r.   r.   r/   rr   ¬   rs   c                   S   s   t tt ƒS r1   )r'   r   r$   r.   r.   r.   r/   rr   ­   rs   c                   S   s   t tt ƒS r1   ©r'   r   r!   r.   r.   r.   r/   rr   ®   rs   c                   S   s   t dt t ƒS r8   rt   r.   r.   r.   r/   rr   ¯   rs   c                   S   s   t dt dt  ƒS )Nr9   r<   rt   r.   r.   r.   r/   rr   °   rs   c                   S   s   t dt dt  ƒS rq   )r'   r!   r   r.   r.   r.   r/   rr   ±   rs   c                   S   s   t dt tt  t ƒS r8   )r'   r   r   r
   r%   r.   r.   r.   r/   rr   ²   rs   )r   r'   r   r3   r   Úsubsr   r   r   r(   Ú
ValueError)rW   r.   r.   r/   Útest_check_dimensions¤   s     rw   N)r*   )>Zsympy.core.containersr   Zsympy.core.numbersr   Zsympy.core.powerr   rJ   r   Zsympy.core.sympifyr   Zsympy.printing.strr   rU   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   ra   r&   r'   Zsympy.testing.pytestr(   Z(sympy.functions.elementary.miscellaneousr)   r0   r2   r6   r4   r7   r:   r;   rC   rM   rY   rb   rp   rw   r.   r.   r.   r/   Ú<module>   s,   |
"