o
    *ήc!                     @   sF  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dZ/eZ0e(Z1dd Z2dd Z3dd Z4dd Z5dd Z6dd Z7dd Z8dd Z9d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   c                 K   s   t t| j|fi |ddS )NT)	full_prec)r   r   evalf)enoptions r/   J/tmp/pip-target-vg8gfxp4/lib/python/sympy/physics/units/tests/test_util.pyNS   s   r1   c                   C   s   t t  t ksJ d S N)Lr/   r/   r/   r0   test_dim_simplify_add   s   r4   c                   C   s   t t t t ks
J d S r2   r3   Tr/   r/   r/   r0   test_dim_simplify_mul   s   r7   c                   C   s   t tdtd ksJ d S N   )r   r3   r/   r/   r/   r0   test_dim_simplify_pow"   s   r:   c                   C   s   t t  t t t ksJ d S r2   r5   r/   r/   r/   r0   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 d S )N   i:b  i	=  Jx#r9   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/   r/   r/   r0   test_convert_to_quantities+   s2   "&2&&(88$ rB   c                   C   s  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sBJ t ttttgdtd  t td  ksXJ t dt t tgtksfJ t td tttgtt d d kszJ 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 d S )Nr=   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*meter)r&   r"   r   r!   r   r   r   r
   r   r	   r   r1   r   r   r   r   r   r   r/   r/   r/   r0   $test_convert_to_tuples_of_quantitiesI   s    (,($ *rG   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 yrF     i r9   i ʚ;   rC   r<   i     )sympy.physics.unitsrH   rI   r%   rJ   rK   rL   sympy.core.symbolr   simplifyr   r
   r   r   )	rH   rI   r%   rJ   rK   rL   r   xyr/   r/   r0   test_eval_simplify]   s    0  (rV   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)rL   footr   rM      i@  r9      rN   i      r<      )
sympy.physics.units.utilrX   rQ   rL   rY   rR   r   r   r   r   )rX   rL   rY   r   rT   rU   r/   r/   r0   test_quantity_simplifyn   s   40L,4r_   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   rW   )ampereohmvoltr   pascalfaradr!   wattsiemenshenryteslaweberr   r   TSI)across_dimensionsunit_systemrE   r<   r9            )r^   rX   rQ   r`   ra   rb   r   rc   rd   r!   re   rf   rg   rh   ri   r   r   r   r   r   r   )rX   r`   ra   rb   r   rc   rd   r!   re   rf   rg   rh   ri   r   r   r/   r/   r0   (test_quantity_simplify_across_dimensions{   s(   @"&",0rp   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 )NrT   c                   S      t td S NrO   )r'   r   r/   r/   r/   r0   <lambda>       z'test_check_dimensions.<locals>.<lambda>c                   S   rq   rr   )r'   r   r/   r/   r/   r0   rs      rt   c                   S      t tt S r2   )r'   r   r$   r/   r/   r/   r0   rs      rt   c                   S   ru   r2   r'   r   r!   r/   r/   r/   r0   rs      rt   c                   S   s   t dt t S r8   rv   r/   r/   r/   r0   rs      s    c                   S   s   t dt dt  S )Nr9   r<   rv   r/   r/   r/   r0   rs          c                   S   s   t dt dt  S rr   )r'   r!   r   r/   r/   r/   r0   rs      rw   c                   S   s   t dt tt  t S r8   )r'   r   r   r
   r%   r/   r/   r/   r0   rs      s    )
r   r'   r   r   subsr   r   r   r(   
ValueError)rT   r/   r/   r0   test_check_dimensions   s    rz   N)r)   )<sympy.core.containersr   sympy.core.numbersr   sympy.core.powerr   rR   r   sympy.core.sympifyr   sympy.printing.strr   rQ   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%   r^   r&   r'   sympy.testing.pytestr(   r1   r3   r6   r4   r7   r:   r;   rB   rG   rV   r_   rp   rz   r/   r/   r/   r0   <module>   s,    |
