o
    GZŽ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i |¤ŽddS )NT)Z	full_prec)r   r   Zevalf)ÚeÚnÚoptions© r.   úR/var/www/auris/lib/python3.10/site-packages/sympy/physics/units/tests/test_util.pyÚNS   s   r0   c                   C   s   t t  t ksJ ‚d S ©N)ÚLr.   r.   r.   r/   Útest_dim_simplify_add   s   r3   c                   C   s   t t t t ks
J ‚d S r1   ©r2   ÚTr.   r.   r.   r/   Útest_dim_simplify_mul   s   r6   c                   C   s   t tdƒtd ksJ ‚d S ©Né   )r   r2   r.   r.   r.   r/   Útest_dim_simplify_pow#   s   r9   c                   C   s   t t  t t t ksJ ‚d S r1   r4   r.   r.   r.   r/   Ú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s„J ‚t tt tt ƒdt dt  ks—J ‚t dt	 tt ƒdt	 ks¦J ‚t dt	 t
t td  ƒdt t
 td  ks¿J ‚t tt tƒdt d
 ksÎJ ‚t dt dt  tƒdt d
 ksáJ ‚t td td ƒdtd  d ksôJ ‚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sˆJ ‚t ttƒdt ks”J ‚t ttd td  ƒtƒttd td  ƒks®J ‚t td td  d tƒtd td  d ksÈJ ‚d S )Né   i:b  i	=  éJxÞé”ð¼#r8   i€Q éx   iÐ é}   iú i  i?  i@x}i½  i`Ð  iÝm  i€A ie  iÀÐ' é´   ç       @)r&   r   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   "&2&&(88$ 48rB   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s†J ‚tdt tttgƒdt t ks˜J ‚tttttgƒdt ks¦J ‚ttttttgƒd	d
dks¶J ‚ttttƒd	d
dksÃJ ‚ttttƒd	d
dksÐJ ‚ttttƒdd
dksÝJ ‚ttttƒd	d
dksêJ ‚tttttttgƒtƒdd
dksýJ ‚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<   r8   é€–˜ 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*meterrA   é   éè  )Úsympy.core.symbolr   r&   r"   r   r!   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DrL   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s€J ‚dtd  |t d   	¡ dks’J ‚d S )Nr   )ÚcmÚmmr%   ÚmÚKÚkilor   úx yrF   rH   i † r8   i Êš;rG   rC   r;   i¸  é   )Úsympy.physics.unitsrM   rN   r%   rO   rP   rQ   rI   r   Úsimplifyr   r
   r   r   )	rM   rN   r%   rO   rP   rQ   r   ÚxÚyr.   r.   r/   Útest_eval_simplifym   s    0  (rX   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sˆJ ‚| |d t	 t	d |  ƒd|d  d ks J ‚d S )Nr   ©Úquantity_simplify)rQ   Úfootr   rR   é   i@  r8   é   rH   i   é   r;   é   )
Úsympy.physics.units.utilrZ   rT   rQ   r[   rI   r   r   r   r   )rZ   rQ   r[   r   rV   rW   r.   r.   r/   Útest_quantity_simplify~   s   40L,4ra   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s‡J ‚| td | dddtd | ksšJ ‚| || ddd|ks§J ‚| |t ddd|ks´J ‚| || ddd|ksÁJ ‚| || ddd|	ksÎJ ‚| t| ddd|ksÛJ ‚| || | ddd|
ksêJ ‚| || td	  ddd|ksûJ ‚| || 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   rY   )ÚampereÚohmÚvoltr   ÚpascalÚfaradr!   ÚwattÚsiemensÚhenryÚteslaÚweberr   r   TZSI)Zacross_dimensionsZunit_systemrE   r;   r8   é   é   é   )r`   rZ   rT   rb   rc   rd   r   re   rf   r!   rg   rh   ri   rj   rk   r   r   r   r   r   r   )rZ   rb   rc   rd   r   re   rf   r!   rg   rh   ri   rj   rk   r   r   r.   r.   r/   Ú(test_quantity_simplify_across_dimensions‹   s(   @"&",0ro   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 )NrV   c                   S   ó   t td ƒS ©NrG   )r'   r   r.   r.   r.   r/   Ú<lambda>«   ó    z'test_check_dimensions.<locals>.<lambda>c                   S   rp   rq   )r'   r   r.   r.   r.   r/   rr   ¬   rs   c                   S   ó   t tt ƒS r1   )r'   r   r$   r.   r.   r.   r/   rr   ­   rs   c                   S   rt   r1   ©r'   r   r!   r.   r.   r.   r/   rr   ®   rs   c                   S   s   t dt t ƒS r7   ru   r.   r.   r.   r/   rr   ¯   s    c                   S   s   t dt dt  ƒS )Nr8   r;   ru   r.   r.   r.   r/   rr   °   ó    c                   S   s   t dt dt  ƒS rq   )r'   r!   r   r.   r.   r.   r/   rr   ±   rv   c                   S   s   t dt tt  t ƒS r7   )r'   r   r   r
   r%   r.   r.   r.   r/   rr   ²   s    )
r   r'   r   r   Úsubsr   r   r   r(   Ú
ValueError)rV   r.   r.   r/   Útest_check_dimensions¤   s    ry   N)r*   )>Zsympy.core.containersr   Zsympy.core.numbersr   Zsympy.core.powerr   rI   r   Zsympy.core.sympifyr   Zsympy.printing.strr   rT   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'   Zsympy.testing.pytestr(   Z(sympy.functions.elementary.miscellaneousr)   r0   r2   r5   r3   r6   r9   r:   rB   rL   rX   ra   ro   ry   r.   r.   r.   r/   Ú<module>   s.    |
"