
    \hz
                     \    S SK Jr  S SKJrJrJrJr  S SKJr  S SK	J
r
Jr  S rS rS rS rg	)
    )symbols)PointParticleReferenceFrameinertia)BodyBase)raiseswarns_deprecated_sympyc                  R  ^  [        S5      m T R                  S:X  d   eT R                  [        S5      :X  d   eT R                  R                  S:X  d   eT R
                  S:X  d   eT R                  5       S:X  d   eT R                  5       S:X  d   e[        [        U 4S j5        g )NPP_massP_masscenterr   z3Particle('P', masscenter=P_masscenter, mass=P_mass)c                     > T R                   $ N)frameps   c/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/mechanics/tests/test_particle.py<lambda>'test_particle_default.<locals>.<lambda>   s	    177    )
r   namemassr   
masscenterpotential_energy__str____repr__r	   AttributeErrorr   s   @r   test_particle_defaultr      s    A66S==66WX&&&&<<..."""99;#::< + , , ,
>?+r   c                    ^^ [        S5      u  mpp#pEn[        S5      m[        S5      n[        STT5      n[        U[        5      (       d   eUR
                  T:X  d   eUR                  T:X  d   eXl        UR
                  U :X  d   eXxl        UR                  U:X  d   e[        S5      n	[        S5      n
UR                  XU	R                  -  5        UR                  XU	R                  -  5        [        [        UU4S j5        [        [        U4S j5        UR                  U	5      X-  U	R                  -  :X  d   eUR                  X5      U * U-  U-  U	R                   -  :X  d   eUR                  XU	R                  -  5        UR                  U	5      X-  U	R                  -  :X  d   eUR                  X5      S	:X  d   eUR                  XU	R                   -  5        UR                  U	5      X-  U	R                   -  :X  d   eUR                  X5      X-  U-  U	R                  -  :X  d   eUR                  XU	R                  -  X)R                  -  -   X9R                   -  -   5        UR                  U	5      XU	R                  -  X)R                  -  -   X9R                   -  -   -  :X  d   eUR                  X5      X-  X9R                  -  XR                   -  -
  -  :X  d   eTU-  U-  Ul        UR"                  TU-  U-  :X  d   eUR%                  U	5      XS
-  US
-  -   US
-  -   -  S
-  XS
-  -  S
-  XS
-  -  S
-  -   XS
-  -  S
-  -   4;   d   eg )Nzm m2 v1 v2 v3 r g hr   P2paNOc                     > [        T T T5      $ r   r   )r   ms   r   r   test_particle.<locals>.<lambda>(   s    hq!Q/r   c                     > [        ST T 5      $ )Nr"   r&   )r'   s   r   r   r(   )   s    htQ2r   r      )r   r   r   
isinstancer   r   pointr   set_posyset_velxr	   	TypeErrorlinear_momentumangular_momentumzr   kinetic_energy)m2v1v2v3rghr!   r   r#   r$   r   r'   s              @@r   test_particler=      s   !()>!?ArrqQc
A	tBq!Aa""""66Q;;77a<<F66R<<G77b==sAc
AJJqacc'JJqqss(
9/0
923Q27QSS=000a#sQw|acc'9999JJqqss(Q27QSS=000a#q(((JJqqss(Q27QSS=000a#rv{QSS'8888JJqqss(R##X%SS01Q2accBH)<rCCx)G#HHHHa#rvccBH1D'EEEEQAQ***	1WrQw&q01A5!G|a"Qw,"22R'\A5EEGG G Gr   c            	      @   [        S5      n [        S5      u  pn[        S5      nUR                  SX R                  -  X0R
                  -  -   5      n[        SXA5      nUR                  XP5      n[        XUS-  -  XS-  -  XS-  US-  -   -  U* U-  U-  S9nXx:X  d   eg )Nr#   zm, a, bor   r   r*   )ixy)	r   r   r   	locatenewr0   r.   r   parallel_axisr   )	r#   r'   abr?   r   r   IpIp_expecteds	            r   test_parallel_axisrG   =   s    sAi GA!c
A	CSS1ss7*+AaA	
	B!aZ!VQq&16/5J b1fqj*Kr   c                      [        S5      u  pn[        S5      n[        SX05      n[        5          UR	                  X-  U-  5        S S S 5        g ! , (       d  f       g = f)Nzm g hr   r"   )r   r   r   r
   set_potential_energy)r'   r;   r<   r   r   s        r   $test_deprecated_set_potential_energyrJ   I   sK    gGA!c
AqA		!	quqy) 
"	!	!s   A
AN)sympyr   sympy.physics.mechanicsr   r   r   r   !sympy.physics.mechanics.body_baser   sympy.testing.pytestr	   r
   r   r=   rG   rJ    r   r   <module>rP      s*     L L 6 ?
,&GR	*r   