U
    L?h$                     @   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.   U/var/www/html/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stt dt tt dt t kstt ttdt kstt dt t	dt	 kst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stt tt tdt d
 kstt dt dt  tdt d
 kstt td td dtd  d kst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stt ttt  tdtd  kstt tttkstt ttdt t kst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std S )N   i:b  i	=  Jx#r9   iQ x   i }   i i  i?  i@x}i  i`  im  iA 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stttt
ttgdt
d  t td  ksttdt t tgtkst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stttttd	d
dkstttttdd
dkstttttd	d
dkst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sttd|t |t   dt dt| d |t d   kst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st
| | | 	 d
dt  kst
d| t 	 dt kst
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st	| |t
 || t
|t
    |d |d |d	 ||d	     d	 kst	| 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st| || ddd|kst| || ddd|kst| |td  ddd|kst| || ddd|kst| || 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st| || ddd|	kst| t| ddd|kst| || | ddd|
kst| || 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,   |
"