
    Qi*                     :   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZmZmZ d dlmZmZmZmZmZ  ed          \  ZZZ ed          \  ZZZ ed	          Z ed
          Zedz  ej        z  eej        z  z   e e	e          z  ej        z  z   Zeej        z   e	e          ej        z  z   eez  ej        z  z   Z eej        z   ee          ej        z  z   e!                                ez  ej        z  z
  Z"eez  ej        z  eez   ez  ej        z  z   edz  ez  ej        z  z   Z#edz  ej        ej        z  z  eej        ej        z  z  z   e e	e          z  ej        ej        z  z  z   Zeej        ej        z  z   e	e          ej        ej        z  z  z   eez  ej        ej        z  z  z   Zej        ej         ej        z
  z  Z$ej        ej        ej        z   z  Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5dS )    )Function)symbols)sqrt)asincossin)ReferenceFramedynamicsymbolsDyadic)VectorLatexPrintervpprintvsprint	vsstrreprvlatexa, b, czalpha, omega, betaAN   c                 &    t          | dd          S )NFuse_unicode	wrap_liner   exprs    /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/physics/vector/tests/test_printing.pyascii_vprettyr      s    4Ue<<<<    c                 &    t          | dd          S )NTFr   r   r   s    r   unicode_vprettyr        s    4TU;;;;r   c                      t          d          d          } t                                          | dz            dk    sJ  t          d          d          }t                                          |                                          dk    sJ  t          d          d          }t                                          |                                                                          dk    sJ d S )	Nrtr   zr^{2}zr^2z\dot{r^{2}}r__az\ddot{r^{a}})r   r   doprintdiff)r"   r2ras      r   test_latex_printerr)   $   s    cA''Q//7::::	%		B''		22nDDDD	&		#		B''		(8(899_LLLLLLr   c                  ^   d} d}t          t                    | k    sJ t          t                    |k    sJ d} d}t          t                    | k    sJ t          t                    |k    sJ d} d}t          t                    | k    sJ t          t                    |k    sJ t          t
          j                   dk    sJ t          t
          j                   dk    sJ t          dt
          j        z            d	k    sJ t          dt
          j        z            d	k    sJ d S )
NzC 2                               
a  n_x + b n_y + c*sin(alpha) n_zu>    2                           
a  n_x + b n_y + c⋅sin(α) n_zz+alpha n_x + sin(omega) n_y + alpha*beta n_zu"   α n_x + sin(ω) n_y + α⋅β n_zzk                     2    
a       b + c       c     
- n_x + ----- n_y + -- n_z
b         a         b     u{                        2    
a       b + c       c     
─ n_x + ───── n_y + ── n_z
b         a         b     z-a_xr   0)r   vr    wor   xexpected	uexpecteds     r   test_vector_pretty_printr3   -   sD   HI
 x''''1****<H4Ix''''1****HI x''''1**** !#&((((AC4  F**** 133&&&&1QS5!!S((((((r   c                  |   t          d          \  } }}}}| dz  ||z  z   t          j        z  t          |          t          j        z  z   t          |          t          j        z  z   }t          |          dk    sJ t          d          \  }}}}|t          j        z  ||z  t          j        z  z   ||z  t          j        z  z   }t          |          dk    sJ t          d          \  }	}
}t          d          \  }}}t          |          t          j        z  t          |	          t          |
          z  t          j        z  z   t          ||z             t          j        z  z   }t          |          dk    sJ t          d	          }t          d          \  } }}}}| dz  ||z  z   |j        z  t          |          |j        z  z   t          |          |j        z  z   }d
}t          |          |k    sJ t          d	d          }| dz  ||z  z   |j        z  t          |          |j        z  z   t          |          |j        z  z   }d}t          |          |k    sJ d}t          t                    |k    sJ d}t          t                    |k    sJ d}t          t                    |k    sJ d S )Nza, b, c, d, omegar   zs(a^{2} + \frac{b}{c})\mathbf{\hat{a}_x} + \sqrt{d}\mathbf{\hat{a}_y} + \cos{\left(\omega \right)}\mathbf{\hat{a}_z}ztheta, omega, alpha, qzT\theta\mathbf{\hat{a}_x} + \omega^{2}\mathbf{\hat{a}_y} + \alpha q\mathbf{\hat{a}_z}zphi1, phi2, phi3ztheta1, theta2, theta3z\sin{\left(\theta_{1} \right)}\mathbf{\hat{a}_x} + \cos{\left(\phi_{1} \right)} \cos{\left(\phi_{2} \right)}\mathbf{\hat{a}_y} + \cos{\left(\theta_{1} + \phi_{3} \right)}\mathbf{\hat{a}_z}r   zs(a^{2} + \frac{b}{c})\mathbf{\hat{n}_x} + \sqrt{d}\mathbf{\hat{n}_y} + \cos{\left(\omega \right)}\mathbf{\hat{n}_z})z\hat{i}z\hat{j}z\hat{k})latexszR(a^{2} + \frac{b}{c})\hat{i} + \sqrt{d}\hat{j} + \cos{\left(\omega \right)}\hat{k}z~\alpha\mathbf{\hat{n}_x} + \operatorname{asin}{\left(\omega \right)}\mathbf{\hat{n}_y} -  \beta \dot{\alpha}\mathbf{\hat{n}_z}z]- \mathbf{\hat{n}_x}\otimes \mathbf{\hat{n}_y} - \mathbf{\hat{n}_x}\otimes \mathbf{\hat{n}_z}z[\mathbf{\hat{n}_x}\otimes \mathbf{\hat{n}_y} + \mathbf{\hat{n}_x}\otimes \mathbf{\hat{n}_z})r   r   r/   r   yr   zr   r
   r   r	   wwxxxx2)abcdomegar,   thetaalphaqphi1phi2phi3theta1theta2theta3r   r1   s                    r   test_vector_latexrI   `   s    344Aq!Q	
a!a%13a13.Uac1AAA!99 / 0 0 0 0
 ,,DEEE5%eemac))QY!#,==A!99 7 8 8 8 8 &&899D$$%=>>FFF	Vqs		TSYY		$
%	Vd]		ac	!
"A !99 @ A A A A 	sA 344Aq!Q	
a!a%13a13.Uac1AAA&H
 !99     	s#GHHHA	
a!a%13a13.Uac1AAA5H !99    NH"::!!!!8H"::!!!!8H#;;(""""""r   c                      t          t          j        dz  d          dk    sJ t          t          j        dz  d          dk    sJ d S )N      @F	full_precz3.0\mathbf{\hat{n}_x}Tz"3.00000000000000\mathbf{\hat{n}_x})r   r   r/    r   r   test_vector_latex_argumentsrO      sR    !#)u---1IIIII!#)t,,,0UUUUUUUr   c                     t          d          } t          d          \  }}|                                | j        z  }t	          |          dk    sJ |                                |z  | j        z  }t	          |          dk    sJ d S )Nr   zomega, alphaz\dot{\omega}\mathbf{\hat{n}_x}z'\dot{\omega}^{\alpha}\mathbf{\hat{n}_x})r	   r
   r&   r/   r   )r   r?   rA   r,   s       r    test_vector_latex_with_functionsrQ      s    sA!.11LE5

qsA!9999999

#A!99 0 1 1 1 1 1 1r   c                  >   d} d}t          t                    | k    sJ t          t                    |k    sJ d} d}t          t                    | k    sJ t          t                    |k    sJ t          t	          g                     dk    sJ t          t	          g                     dk    sJ t          t
                    dk    sJ t          t
                    dk    sJ t          t                    dk    sJ t          t                    d	k    sJ d S )
Nz0 2
a  n_x|n_y + b n_y|n_y + c*sin(alpha) n_z|n_yu5    2
a  n_x⊗n_y + b n_y⊗n_y + c⋅sin(α) n_z⊗n_yz7alpha n_x|n_x + sin(omega) n_y|n_z + alpha*beta n_z|n_xu4   α n_x⊗n_x + sin(ω) n_y⊗n_z + α⋅β n_z⊗n_xr+   z- n_x|n_y - n_x|n_zu   - n_x⊗n_y - n_x⊗n_zzn_x|n_y + n_x|n_zu   n_x⊗n_y + n_x⊗n_z)r   r6   r    r/   r   r9   r:   r0   s     r   test_dyadic_pretty_printrS      s,   H
I x''''1****HHFIx''''1****$$++++6"::&&#---- 555552";;;;;!444443#:::::::r   c                      d} t          t                    | k    sJ d} t          t                    | k    sJ t          t          g                     dk    sJ d S )Nza^{2}\mathbf{\hat{n}_x}\otimes \mathbf{\hat{n}_y} + b\mathbf{\hat{n}_y}\otimes \mathbf{\hat{n}_y} + c \sin{\left(\alpha \right)}\mathbf{\hat{n}_z}\otimes \mathbf{\hat{n}_y}z\alpha\mathbf{\hat{n}_x}\otimes \mathbf{\hat{n}_x} + \sin{\left(\omega \right)}\mathbf{\hat{n}_y}\otimes \mathbf{\hat{n}_z} + \alpha \beta\mathbf{\hat{n}_z}\otimes \mathbf{\hat{n}_x}r+   )r   r6   r/   r   )r1   s    r   test_dyadic_latexrU      si    @H
 !99    LH
 !99    &**$$$$$$r   c                  N   t          t          g                     dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t
                    dk    sJ t          t                    dk    sJ d S )Nr+   z5a**2*(N.x|N.y) + b*(N.y|N.y) + c*sin(alpha)*(N.z|N.y)z=alpha*(N.x|N.x) + sin(omega)*(N.y|N.z) + alpha*beta*(N.z|N.x)z-alpha*N.x + asin(omega)*N.y - beta*alpha'*N.zz- (N.x|N.y) - (N.x|N.z)z(N.x|N.y) + (N.x|N.z))r   r   r6   r/   r8   r9   r:   rN   r   r   test_dyadic_strrW      s    6"::#%%%%1::PPPPP1::XXXXX2;;IIIII2;;333333<<2222222r   c                  t   ddl m}  t          d          }t          d          }t          d          }t          d          }t          d          }d}| ||                              |                               ||           ||           ||          z
            z  } | |          |k    sJ d S )	Nr   )r   r/   JfghzRJ \left(\frac{d}{d x} g{\left(x \right)} - \frac{d}{d x} h{\left(x \right)}\right))sympy.physics.vectorr   r   r   r&   subs)r   r/   rY   rZ   r[   r\   r1   r   s           r   test_vlatexr_      s    ++++++AAAAAdHQQqTTYYq\\qqttQQqTT!!A$$Y///D6$<<8######r   c                     t          d          \  } }}t          d          }| |j        z  ||j        z  z   ||j        z  z   }||j        z  ||j        z  z   | |j        z  z   }||z   }d}t          |          |k    sJ dS )z
    Test for proper pretty printing of physics vectors with ADD
    instances in arguments.

    Test is exactly the one suggested in the original bug report by
    @moorepants.
    r   r   z'(a + b) a_x + (b + c) a_y + (a + c) a_zN)r   r	   r/   r6   r7   r   )r;   r<   r=   r   r,   r-   r7   r1   s           r   test_issue_13354ra     s     i  GAq!sA	AC!ac'AG#A	AC!ac'AG#A	AA<Hx''''''r   c                  >   t                                           t          j        z  } t	          |           dk    sJ t          |           dk    sJ t                                                                           t          j        z  } t          |           dk    sJ t	          |           dk    sJ t          |           dk    sJ t                                                                                                           t          j        z  } t          |           dk    sJ t	          |           dk    sJ t          |           dk    sJ t                                                                                                                                           t          j        z  } t          |           d	k    sJ t	          |           d
k    sJ t          |           dk    sJ t                                                                                                                                                                           t          j        z  } t          |           dk    sJ d}d}t	          |           |k    sJ t          |           |k    sJ d S )Nu   ω̇ n_xzomega'(t) n_xz\ddot{\omega}\mathbf{\hat{n}_x}u   ω̈ n_xzomega''(t) n_xz \dddot{\omega}\mathbf{\hat{n}_x}u	   ω⃛ n_xzomega'''(t) n_xz!\ddddot{\omega}\mathbf{\hat{n}_x}u	   ω⃜ n_xzomega''''(t) n_xz.\frac{d^{5}}{d t^{5}} \omega\mathbf{\hat{n}_x}zJ 5            
d             
---(omega) n_x
  5           
dt            u=    5        
d         
───(ω) n_x
  5       
dt        )r?   r&   r   r/   r    r   r   )r,   r1   r2   s      r   test_vector_derivative_printingrc     sY   

qsA1++++.... 	

ac!A!99:::::1++++///// 	

  ""QS(A!99;;;;;1,,,,00000 	

  ""''))AC/A!99<<<<<1,,,,11111 	

  ""''))..00136A!99IIIIIHI 1****x''''''r   c                      t          t                    dk    sJ t          t                                          t          j        z            dk    sJ t          t                    dk    sJ d S )Nz+alpha*N.x + sin(omega)*N.y + alpha*beta*N.zz
omega'*N.x)r   r-   r?   r&   r   r/   r   rN   r   r   test_vector_str_printingre   J  s`    1::FFFFF5::<<!#%&&,6666Q<<HHHHHHHr   c                      t          t          j        dz  d          dk    sJ t          t          j        dz  d          dk    sJ d S )NrK   FrL   z3.0*N.xTz3.00000000000000*N.x)r   r   r/   rN   r   r   test_vector_str_argumentsrg   P  sQ    139...);;;;139---1GGGGGGGr   c                  t   dd l mc m}  |                     d          }|                     dd          \  }}t          d          }t          |||z   dz  z  |j        z            dk    sJ t          ||z   dz  |j        z            dk    sJ t          ||z  t          z  |j        z            d	k    sJ d S )
Nr   r   z
theta, phi   Lr   z>L \left(\dot{\phi} + \dot{\theta}\right)^{2}\mathbf{\hat{a}_x}z<\left(\dot{\phi} + \dot{\theta}\right)^{2}\mathbf{\hat{a}_x}z:\left(\dot{\phi} \dot{\theta}\right)^{a}\mathbf{\hat{a}_x})	sympy.physics.mechanicsphysics	mechanicsr	   r
   r   r   r/   r;   )meA_framethetadphidrj   s        r   test_issue_14041rr   U  s   ((((((((($$G$$\155LFDA!TF]Q&&wy011IJ J J J4&=1$WY.//GH H H H4;"79,--EF F F F F Fr   N)6sympy.core.functionr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   r   r]   r	   r
   r   sympy.physics.vector.printingr   r   r   r   r   r;   r<   r=   rA   r?   betar   r   r/   r6   r7   r,   r-   r&   r8   r.   r9   r:   r   r    r)   r3   rI   rO   rQ   rS   rU   rW   r_   ra   rc   re   rg   rr   rN   r   r   <module>ry      s   ) ( ( ( ( ( % % % % % % 9 9 9 9 9 9 E E E E E E E E E E G G G G G G G G G GG G G G G G G G G G G G G G ')

1a#^$899 udN3N3FQSL1qs7QU^ac11	ACK##e**qs""UT\AC%77
QS[44;;$$uzz||d':QS'@@aC!#I1a!#1Q,FacACi1ac	?*QU^qsQSy-II	QS13Y##e**ac	22UT\QS13Y5OOSQSD13JcQS13Y= = =< < <M M M0) 0) 0)fC# C# C#LV V V
1 1 1 ; ; ;:% % %&3 3 3$ $ $"( ( ((.( .( .(bI I IH H H
F F F F Fr   