U
    9%e!                     @   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|ddS )NT)Z	full_prec)r   r   Zevalf)enoptions r-   b/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/physics/units/tests/test_util.pyNS   s    r/   c                   C   s   t t  t kstd S N)LAssertionErrorr-   r-   r-   r.   test_dim_simplify_add   s    r3   c                   C   s   t t t t kstd S r0   r1   Tr2   r-   r-   r-   r.   test_dim_simplify_mul   s    r6   c                   C   s   t tdtd kstd S N   )r   r1   r2   r-   r-   r-   r.   test_dim_simplify_pow"   s    r9   c                   C   s   t t  t t t kstd S r0   r4   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d S )N   i:b  i	=  Jx#r8   iQ x   i }   i i  i?  i@x}i  i`  im  iA ie  i'    )r&   r   r2   r   r   r!   r"   r   r   r   r   r   r   r
   r#   r   r    r   r   r-   r-   r-   r.   test_convert_to_quantities+   s2    "( 4 (((88$ rA   c                   C   s  t tttgdt t kstt tttfdt t ks<tt ttttdt t ks\t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stt dt tttgdt t kstt t
t
ttgdt
 ks8ttt tt
ttgdddksZttt ttddd	ksvt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std S )Nr<   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*meter)r&   r"   r   r!   r2   r   r   r   r
   r   r	   r   r/   r   r   r   r   r   r   r-   r-   r-   r.   $test_convert_to_tuples_of_quantitiesI   s     (,(&"rF   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 yrE     i r8   i ʚ;   rB   r;   i     )sympy.physics.unitsrG   rH   r%   rI   rJ   rK   sympy.core.symbolr   simplifyr2   r   r
   r   r   )	rG   rH   r%   rI   rJ   rK   r   xyr-   r-   r.   test_eval_simplify]   s     0 "rU   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)rK   footr   rL      i@  r8      rM   i      r;      )sympy.physics.units.utilrW   rP   rK   rX   rQ   r   r   r   r2   r   )rW   rK   rX   r   rS   rT   r-   r-   r.   test_quantity_simplifyn   s    40L.r^   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   rV   )ampereohmvoltr   pascalfaradr!   wattsiemenshenryteslaweberr   r   TZSI)Zacross_dimensionsZunit_systemrD   r;   r8            )r]   rW   rP   r_   r`   ra   r   rb   rc   r!   rd   re   rf   rg   rh   r   r   r2   r   r   r   r   )rW   r_   r`   ra   r   rb   rc   r!   rd   re   rf   rg   rh   r   r   r-   r-   r.   (test_quantity_simplify_across_dimensions{   s(    @"( $,rl   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 )NrS   c                   S   s   t td S NrN   )r'   r   r-   r-   r-   r.   <lambda>       z'test_check_dimensions.<locals>.<lambda>c                   S   s   t td S rm   )r'   r   r-   r-   r-   r.   rn      ro   c                   S   s   t tt S r0   )r'   r   r$   r-   r-   r-   r.   rn      ro   c                   S   s   t tt S r0   r'   r   r!   r-   r-   r-   r.   rn      ro   c                   S   s   t dt t S r7   rp   r-   r-   r-   r.   rn      ro   c                   S   s   t dt dt  S )Nr8   r;   rp   r-   r-   r-   r.   rn      ro   c                   S   s   t dt dt  S rm   )r'   r!   r   r-   r-   r-   r.   rn      ro   c                   S   s   t dt tt  t S r7   )r'   r   r   r
   r%   r-   r-   r-   r.   rn      ro   )r   r'   r   r2   r   subsr   r   r   r(   
ValueError)rS   r-   r-   r.   test_check_dimensions   s     rs   N)r)   )<Zsympy.core.containersr   Zsympy.core.numbersr   Zsympy.core.powerr   rQ   r   Zsympy.core.sympifyr   Zsympy.printing.strr   rP   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(   r/   r1   r5   r3   r6   r9   r:   rA   rF   rU   r^   rl   rs   r-   r-   r-   r.   <module>   s*   |
