o
    g$                     @   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i |ddS )NT)	full_prec)r   r   evalf)enoptions r0   Z/var/www/visachat/venv/lib/python3.10/site-packages/sympy/physics/units/tests/test_util.pyNS   s   r2   c                   C   s   t t  t ksJ d S N)Lr0   r0   r0   r1   test_dim_simplify_add   s   r5   c                   C   s   t t t t ks
J d S r3   r4   Tr0   r0   r0   r1   test_dim_simplify_mul   s   r8   c                   C   s   t tdtd ksJ d S N   )r   r4   r0   r0   r0   r1   test_dim_simplify_pow#   s   r;   c                   C   s   t t  t t t ksJ d S r3   r6   r0   r0   r0   r1   test_dim_simplify_rec'   s   r<   c                   C   s  t dtdks	J t ttdt d ksJ t tt ttd ks#J t dt t ttks0J t dt t tdt ks?J t ttt dt t ksNJ t dt tt dt t ks_J t ttdt ksjJ t dt tdt kswJ t ttd	t d
 ksJ t tt tt dt dt  ksJ t dt	 tt dt	 ksJ t dt	 t
t td  dt t
 td  ksJ t tt tdt d
 ksJ t dt dt  tdt d
 ksJ t td td dtd  d ksJ t dtd  tdtd  d ksJ t dt t dt t  tt dt dt  ks$J t dt t dt t  tt dt dt  ks@J t ttt  tdtd  ksRJ t tttks\J t ttdt t ksjJ t tttgdt t kszJ t tt tdt ksJ t ttdt ksJ t ttd td  tttd td  ksJ t td td  d ttd td  d ksJ d S )N   i:b  i	=  Jx#r:   iQ x   i }   i i  i?  i@x}i  i`  im  iA ie  i'           @)r&   r   r   r   r!   r"   r   r   r   r   r   r   r
   r#   r   r    r   r   r)   r0   r0   r0   r1   test_convert_to_quantities,   s6   "&2&&(88$ 48rD   c                  C   s  ddl m}  | d\}}ttttgdt t ksJ ttttfdt t ks*J tttttdt t ks:J tttttgttd  td  ksNJ ttt	t
tgdt	d  t
 td  ksdJ tdt t tgtksrJ ttd tttgtt d d ksJ tdt tttgdt t ksJ tttttgdt ksJ ttttttgd	d
dksJ ttttd	d
dksJ ttttd	d
dksJ ttttdd
dksJ ttttd	d
dksJ tttttttgtdd
dksJ tttd td  ttgttd td  ksJ ttd td  d ttgtd td  d ks5J td|t t  dt d|t t  ksMJ td|t |t   dt dt| d |t d   ksmJ d S )Nr   r   z
alpha betar>   r:   逖 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*meterrC        )sympy.core.symbolr   r&   r"   r   r!   r   r   r   r
   r   r	   r   r2   r   r   r   r   r   r   r)   r   )r   alphabetar0   r0   r1   $test_convert_to_tuples_of_quantitiesN   s*    (,($ &880DrN   c            	      C   s(  ddl m} m}m}m}m}m} ddlm} |d\}}| | 	 dks&J || 	 dks0J ||  	 dks:J d| | |d  | |  	 d	| t
 ksRJ | | | 	 d
dt  ksbJ d| t 	 dt kspJ d| t dt  	 dksJ dtd  |t d  	 dksJ d S )Nr   )cmmmr%   mKkilor   x yrH   rJ   i r:   i ʚ;rI   rE   r=   i     )sympy.physics.unitsrO   rP   r%   rQ   rR   rS   rK   r   simplifyr   r
   r   r   )	rO   rP   r%   rQ   rR   rS   r   xyr0   r0   r1   test_eval_simplifym   s    0  (rZ   c                  C   sD  ddl m}  ddlm}m} ddlm} |d\}}| |d| t t |  |dt t |  ks4J | |t	 |t	  |d ||d	   d	 ksLJ | |t	 || t	|t	    |d |d |d	 ||d	     d	 ksrJ | d|t	 | d
  t	 d| d	 ksJ | |d t	 t	d |  d|d  d ksJ d S )Nr   quantity_simplify)rS   footr   rT      i@  r:      rJ   i      r=      )
sympy.physics.units.utilr\   rV   rS   r]   rK   r   r   r   r   )r\   rS   r]   r   rX   rY   r0   r0   r1   test_quantity_simplify~   s   40L,4rc   c                  C   sn  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s3J | d| | dddd| ksDJ | || ddd|ksQJ | || ddd|ks^J | |td  ddd|ksmJ | || ddd|kszJ | || ddd|ksJ | td | dddtd | ksJ | || ddd|ksJ | |t ddd|ksJ | || ddd|ksJ | || ddd|	ksJ | t| ddd|ksJ | || | ddd|
ksJ | || td	  ddd|ksJ | || ddd|ks	J | d
t | ddddt d|  ksJ | d
t t |d	  dddd
| ks5J d S )Nr   r[   )ampereohmvoltr   pascalfaradr!   wattsiemenshenryteslaweberr   r   TSI)across_dimensionsunit_systemrG   r=   r:            )rb   r\   rV   rd   re   rf   r   rg   rh   r!   ri   rj   rk   rl   rm   r   r   r   r   r   r   )r\   rd   re   rf   r   rg   rh   r!   ri   rj   rk   rl   rm   r   r   r0   r0   r1   (test_quantity_simplify_across_dimensions   s(   @"&",0rt   c                  C   s   t d} tt|  t|  ksJ tt|  t|  ksJ tt|  | ttks*J ttt t ttt  ks:J 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 )NrX   c                   S      t td S NrI   )r'   r   r0   r0   r0   r1   <lambda>       z'test_check_dimensions.<locals>.<lambda>c                   S   ru   rv   )r'   r   r0   r0   r0   r1   rw      rx   c                   S      t tt S r3   )r'   r   r$   r0   r0   r0   r1   rw      rx   c                   S   ry   r3   r'   r   r!   r0   r0   r0   r1   rw      rx   c                   S   s   t dt t S r9   rz   r0   r0   r0   r1   rw      s    c                   S   s   t dt dt  S )Nr:   r=   rz   r0   r0   r0   r1   rw          c                   S   s   t dt dt  S rv   )r'   r!   r   r0   r0   r0   r1   rw      r{   c                   S   s   t dt tt  t S r9   )r'   r   r   r
   r%   r0   r0   r0   r1   rw      s    )
r   r'   r   r   subsr   r   r   r(   
ValueError)rX   r0   r0   r1   test_check_dimensions   s    r~   N)r*   )>sympy.core.containersr   sympy.core.numbersr   sympy.core.powerr   rK   r   sympy.core.sympifyr   sympy.printing.strr   rV   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%   rb   r&   r'   sympy.testing.pytestr(   (sympy.functions.elementary.miscellaneousr)   r2   r4   r7   r5   r8   r;   r<   rD   rN   rZ   rc   rt   r~   r0   r0   r0   r1   <module>   s.    |
"