
    g$                     >   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Z1eZ2e(Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<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                 V    t           t          |           j        |fi |d          S )NT)	full_prec)r	   r   evalf)enoptionss      _/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/units/tests/test_util.pyNSr3      s1     

 ..g..$????    c                  :    t           t           z   t           k    sJ d S N)L r4   r2   test_dim_simplify_addr9      s    q5A::::::r4   c                  J    t           t          z  t           t          z  k    sJ d S r6   r7   Tr8   r4   r2   test_dim_simplify_mulr=      s    Q3!A#::::::r4   c                  L    t          t          d          t          dz  k    sJ d S N   )r   r7   r8   r4   r2   test_dim_simplify_powrA   #   s%    q!991r4   c                  Z    t           t           z   t          z  t           t          z  k    sJ d S r6   r;   r8   r4   r2   test_dim_simplify_recrC   '   s%    EQ;!A#r4   c                     t          dt                    dk    sJ t          t          t                    dt          z  dz  k    sJ t          t          t          z  t
                    t
          dz  k    sJ t          dt          z  t          z  t
                    t
          k    sJ t          dt          z  t          z  t
                    dt
          z  k    sJ t          t
          t          t          z            dt          z  t          z  k    sJ t          dt
          z  t          t          z            dt          z  t          z  k    sJ t          t          t                    dt          z  k    sJ t          dt          z  t                    dt          z  k    sJ t          t          t                    d	t          z  d
z  k    sJ t          t          t          z  t          t          z            dt          z  dt          z  z  k    sJ t          dt          z  t          t          z            dt          z  k    sJ t          dt          z  t          t          z  t          dz  z            dt          z  t          z  t          dz  z  k    sJ t          t          t          z   t                    dt          z  d
z  k    sJ t          dt          z  dt          z  z   t                    dt          z  d
z  k    sJ t          t          dz  t          dz            dt          dz  z  dz  k    sJ t          dt          dz  z  t                    dt          dz  z  dz  k    sJ t          dt          z  t          z  dt          z  t          z  z   t          t          z            dt          z  dt          z  z  k    sJ t          dt          z  t          z  dt          z  t          z  z   t          t          z            dt          z  dt          z  z  k    sJ t          t          t          t          z   z  t                    dt          dz  z  k    sJ t          t          t                    t          k    sJ t          t          t                     dt           z  t"          z  k    sJ t          t          t          t           g          dt           z  t"          z  k    sJ t          t"          t          z  t                     dt           z  k    sJ t          t"          t                     dt           z  k    sJ t          t%          t          dz  t          dz  z             t                    t%          t          dz  t          dz  z             k    sJ t          t          dz  t          dz  z   dz  t                    t          dz  t          dz  z   dz  k    sJ 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*   r8   r4   r2   test_convert_to_quantitiesrL   ,   s   a1$$$$dI&&%	/%*?????eFlN33~i7OOOOOiof,n==OOOOk%'.??1^CSSSSSneFl33yv7MMMMMa&f5559OOOOOc6""eFl2222aff%%V3333dE""fUl3&66666d4i400E)OU4Z4PPPPPahf--69999ahvqy 899QuWX=MfVWi=WWWWWi$&..&,s2BBBBBa	kAdF*E22fUl36FFFFFdAguax((E%(N8,CCCCCaai''5>(+BBBBBa	k$&44eFlCCuU{TYZ`T`Gaaaaaa	k$&44j6GHHFS]L]_cdj_jLkkkkki4)#34e<<%ST*@TTTTTi))Y6666gv&&#f*R-7777gv//3v:b=@@@@bj&))SZ7777b&!!SZ//// d5!8eSj011599T%(UTWZBW=X=XXXXXuax%*,q0%88UAXs
=RUV<VVVVVVVr4   c            
      	   ddl m}   | d          \  }}t          t          t          t
          g          dt          z  t
          z  k    sJ t          t          t          t
          f          dt          z  t
          z  k    sJ t          t          t          t          t
                              dt          z  t
          z  k    sJ t          t          t          t          t
          g          t          t          dz  z  t
          dz  z  k    sJ t          t          t          t          t
          g          dt          dz  z  t          z  t
          dz  z  k    sJ t          dt          z  t
          z  t          g          t          k    sJ t          t          dz  t          t
          t          g          t          t
          z  dz  dz  k    sJ t          dt          z  t          t
          t          g          dt          z  t
          z  k    sJ t          t          t          t          t          g          dt          z  k    sJ t          t          t          t          t          t          g          d	
          dk    sJ t          t          t          t                    d	
          dk    sJ t          t          t           t                    d	
          dk    sJ t          t          t"          t
                    d
          dk    sJ t          t          t$          t&                    d	
          dk    sJ t          t          t          t          t          t          t          g          t                    d
          dk    sJ t          t)          t          dz  t
          dz  z             t          t
          g          t)          t          dz  t
          dz  z             k    sJ t          t          dz  t
          dz  z   dz  t          t
          g          t          dz  t
          dz  z   dz  k    sJ t          d|t          z  t          z   z  dt          z            d|t          z  t          z   z  k    sJ t          d|t          z  |t          z  z   z  dt*          z            dt*          |z  dz  |t*          z  dz  z   z  k    sJ d S )Nr   r   z
alpha betarF   r@   逖 rG   g      ?   )r0   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*meterrK        )sympy.core.symbolr   r'   r#   r   r"   r   r   r   r   r   r
   r   r3   r   r   r   r    r   r   r*   r   )r   alphabetas      r2   $test_convert_to_tuples_of_quantitiesrW   N   s   ))))))',''KE4nufo66)e:Kf:TTTTTnufo66)e:Kf:TTTTTneE6&:&:;;y5?PSY?YYYYYeeXv6778E1H;LVUVY;VVVVVej$788HZQR]<RSW<WX^`aXa<aaaaaiof,~.>??>QQQQnq(5&(*CDDfU^H^abHbbbbba.(5&(*CDDX]H]`fHfffffa!^V455Q>>>>jND 9::a@@@  E^  ^  ^  ^  ^jh//15559OOOOOj..!4448LLLLLjf--3337KKKKKj+V44:::>SSSSSjEA~v+FGGOOSUVVVZmmmmm d5!8fck122UFODDUTUXX^`cXcMcHdHddddduax&#+-1E6?CCqSY[^S^H^abGbbbbb aee+,ag66!T%Z%=O:PPPPPaeeEk12AiK@@Q	RVW[H[^cdm^mnr^rHrEsttttttr4   c                     ddl m} m}m}m}m}m} ddlm}  |d          \  }}| |z  	                                dk    sJ ||z  	                                dk    sJ || z  	                                dk    sJ d|z  |z  |dz  z  |z  | z  	                                d	|z  t          z  k    sJ | |z  |z  	                                d
dt          z  z  k    sJ d|z  t          z  	                                dt          z  k    sJ d|z  t          z  dt          z  z  	                                dk    sJ dt          dz  z  |t          z  dz  z  	                                dk    sJ d S )Nr   )cmmmr&   mKkilor   x yrQ   rS   i r@   i ʚ;rR   rN   rE   i     )sympy.physics.unitsrY   rZ   r&   r[   r\   r]   rT   r   simplifyr   r   r   r   )	rY   rZ   r&   r[   r\   r]   r   xys	            r2   test_eval_simplifyrd   m   s   ::::::::::::::::))))))75>>DAqrE####qD??$$$$rE''''qDF2q5LN2''))Z\&-@@@@@rE!G1hz&9#:::::dF5L""$$U
2222dF5L!I+&0022a7777ilNDJ?*4466!;;;;;;r4   c                     ddl m}  ddlm}m} ddlm}  |d          \  }} | |d|z  t          z  t          z  |z   z            |dt          z  t          z  |z   z  k    sJ  | |t          z  |t          z   z            |dz  ||d	z  z   z  d	z  k    sJ  | |t          z  ||z  t          |t          z   z  z   z            |dz  |dz  |d	z  ||d	z  z   z  z   z  d	z  k    sJ  | d|t          z  |z  d
z  z  t          z            d|z  d	z  k    sJ  | |dz  t          z  t          dz  |z  z             d|dz  z  dz  k    sJ d S )Nr   quantity_simplify)r]   footr   r^      i@  r@      rS   i      rE      )
sympy.physics.units.utilrg   r`   r]   rh   rT   r   r   r   r   )rg   r]   rh   r   rb   rc   s         r2   test_quantity_simplifyrn   ~   s   ::::::........))))))75>>DAqQ$ve 3a 7899QU
6@QTU@U=VVVVVT$Yt455q$b.9QRT9TTTTTT$YT	D$+4F(FGHHDRSGUY[\U\_cdf_fhlostvovhv_wUwLxy{L{{{{{Qd4!45d:;;tDy|KKKKT1WT\D!GDL899RaZ^KKKKKKr4   c                  X   ddl m}  ddlm}m}m}m}m}m}m	}m
}m}	m}
m}m}m}m}  | ||z  dd          |k    sJ  | d|z  |z  dd          d|z  k    sJ  | ||z  dd          |k    sJ  | ||z  dd          |k    sJ  | |t"          dz  z  dd          |k    sJ  | ||z  dd          |k    sJ  | ||z  dd          |k    sJ  | t"          dz  |z  dd          t"          dz  |z  k    sJ  | ||z  dd          |k    sJ  | |t$          z  dd          |k    sJ  | ||z  dd          |k    sJ  | ||z  dd          |	k    sJ  | t$          |z  dd          |k    sJ  | ||z  |z  dd          |
k    sJ  | ||z  t"          d	z  z  dd          |k    sJ  | ||z  dd          |k    sJ  | d
t&          z  |z  dd          dt"          z  d|z  z  k    sJ  | d
t(          z  t"          z  |d	z  z  dd          d
|z  k    sJ d S )Nr   rf   )ampereohmvoltr   pascalfaradr"   wattsiemenshenryteslaweberr   r   TSI)across_dimensionsunit_systemrP   rE   r@            )rm   rg   r`   rp   rq   rr   r   rs   rt   r"   ru   rv   rw   rx   ry   r   r   r   r   r   r   )rg   rp   rq   rr   r   rs   rt   r"   ru   rv   rw   rx   ry   r   r   s                  r2   (test_quantity_simplify_across_dimensionsr      s   :::::: F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  FVCZ4TRRRVZZZZZQvXc\TtTTTXYZ^X^^^^^T&[DdSSSWZZZZZT#X4PPPTZZZZZU5!8^tQUVVVZ`````U3Y$DQQQU[[[[[U6\TtTTTX\\\\\UAXf_RVWWW[`bc[cdj[jjjjjU6\TtTTTX\\\\\U7]dPTUUUY]]]]]T&[DdSSSWZZZZZVD[DdSSSW^^^^^WT\TtTTTX]]]]]T&[/4UYZZZ^cccccT&[1TW[\\\`eeeeeU6\TtTTTX]]]]]Qy[-SWXXX\^_d\dfhiofo\pppppQxZ-fai74]abbbfghnfnnnnnnnr4   c                     t          d          } t          t          | z             t          | z   k    sJ t          t          | z             t          | z   k    sJ t          t          | z                       | t                              t          k    sJ t          t
          t          z  t          z             t          t          t
          z  z   k    sJ t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d	            d S )
Nrb   c                  0    t          t          dz             S NrR   )r(   r   r8   r4   r2   <lambda>z'test_check_dimensions.<locals>.<lambda>   s    /q99 r4   c                  0    t          t          dz             S r   )r(   r   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s    /
;; r4   c                  :    t          t          t          z             S r6   )r(   r   r%   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s    />> r4   c                  :    t          t          t          z             S r6   r(   r   r"   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s    /?? r4   c                  @    t          dt          z  t          z             S r?   r   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s    /E	F0BCC r4   c                  F    t          dt          z  dt          z  z             S )Nr@   rE   r   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s    /E	AJ0FGG r4   c                  F    t          dt          z  dt          z  z             S r   )r(   r"   r   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s    /F
QY0FGG r4   c                  `    t          dt          z  t          t          z   z  t          z             S r?   )r(   r   r   r   r&   r8   r4   r2   r   z'test_check_dimensions.<locals>.<lambda>   s#    /E	4*;L0MPR0RSS r4   )
r   r(   r   r   subsr   r   r   r)   
ValueError)rb   s    r2   test_check_dimensionsr      sM   AD1H%%1111FQJ''6A:5555VaZ--a8899VCCCCF5L5011UU6\5IIIII
:99:::
:;;<<<
:>>???
:??@@@
:CCDDD
:GGHHH
:GGHHH
:SSTTTTTr4   N)r+   )>sympy.core.containersr   sympy.core.numbersr   sympy.core.powerr   rT   r   sympy.core.sympifyr   sympy.printing.strr	   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&   rm   r'   r(   sympy.testing.pytestr)   (sympy.functions.elementary.miscellaneousr*   r3   r7   r<   r9   r=   rA   rC   rL   rW   rd   rn   r   r   r8   r4   r2   <module>r      s   ' ' ' ' ' ' ! ! ! ! ! !             % % % % % % & & & & & & # # # # # #1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 B A A A A A A A ' ' ' ' ' ' 9 9 9 9 9 9@ @ @ @   
  
    
W W WDu u u>< < <"L L Lo o o2U U U U Ur4   