
    sgz
                     \    d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
mZ d Zd Zd Zd Zy	)
    )symbols)PointParticleReferenceFrameinertia)BodyBase)raiseswarns_deprecated_sympyc                  D    t        d        j                  dk(  sJ  j                  t        d      k(  sJ  j                  j                  dk(  sJ  j
                  dk(  sJ  j                         dk(  sJ  j                         dk(  sJ t        t         fd       y )NPP_massP_masscenterr   z3Particle('P', masscenter=P_masscenter, mass=P_mass)c                       j                   S N)frameps   ^/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/mechanics/tests/test_particle.py<lambda>z'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                     t        d      \  } }}}}}}t        d      t        d      }t        d      }t        |t              sJ |j
                  k(  sJ |j                  k(  sJ | |_        |j
                  | k(  sJ ||_        |j                  |k(  sJ t        d      }	t        d      }
|j                  |
||	j                  z         |j                  |	||	j                  z         t        t        fd       t        t        fd       |j                  |	      | |z  |	j                  z  k(  sJ |j                  |
|	      |  |z  |z  |	j                   z  k(  sJ |j                  |	||	j                  z         |j                  |	      | |z  |	j                  z  k(  sJ |j                  |
|	      d	k(  sJ |j                  |	||	j                   z         |j                  |	      | |z  |	j                   z  k(  sJ |j                  |
|	      | |z  |z  |	j                  z  k(  sJ |j                  |	||	j                  z  ||	j                  z  z   ||	j                   z  z          |j                  |	      | ||	j                  z  ||	j                  z  z   ||	j                   z  z   z  k(  sJ |j                  |
|	      | |z  ||	j                  z  ||	j                   z  z
  z  k(  sJ |z  |z  |_        |j"                  |z  |z  k(  sJ |j%                  |	      | |d
z  |d
z  z   |d
z  z   z  d
z  | |d
z  z  d
z  | |d
z  z  d
z  z   | |d
z  z  d
z  z   fv sJ y )Nzm m2 v1 v2 v3 r g hr   P2paNOc                      t                S r   r   )r   ms   r   r   ztest_particle.<locals>.<lambda>(   s    hq!Q/ r   c                      t        d        S )Nr!   r%   )r&   s   r   r   ztest_particle.<locals>.<lambda>)   s    htQ2 r   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;      sW   !()>!?Ar2r2q!Qc
A	tBq!Aa"""66Q;;77a<<AF66R<<AG77b==sAc
AJJq!acc'JJq"qss(
9/0
923Q27QSS=000a#sQw|acc'9999JJq"qss(Q27QSS=000a#q(((JJq"qss(Q27QSS=000a#rAv{QSS'8888JJq"qss(R!##X%QSS01Q2accBH)<rACCx)G#HHHHa#rAvaccBH1D'EEEEQAQ***	R1WrQw&q01A5B!G|a"rQw,"22R"'\A5EEGG G Gr   c            	      V   t        d      } t        d      \  }}}t        d      }|j                  d|| j                  z  || j
                  z  z         }t        d||      }|j                  ||       }t        | ||dz  z  ||dz  z  ||dz  |dz  z   z  | |z  |z        }||k(  sJ y )Nr"   zm, a, bor   r   r(   )ixy)	r   r   r   	locatenewr.   r,   r   parallel_axisr   )	r"   r&   abr=   r   r   IpIp_expecteds	            r   test_parallel_axisrE   =   s    sAi GAq!c
A	CQSS1qss7*+AaA	
A	B!QaZQ!VQ!q&16/5J b1fqj*Kr   c                      t        d      \  } }}t        d      }t        d||       }t               5  |j	                  | |z  |z         d d d        y # 1 sw Y   y xY w)Nzm g hr   r!   )r   r   r   r
   set_potential_energy)r&   r9   r:   r   r   s        r   $test_deprecated_set_potential_energyrH   I   sZ    gGAq!c
Aq!A		! *	q1uqy)* * *s   AAN)sympyr   sympy.physics.mechanicsr   r   r   r   !sympy.physics.mechanics.body_baser   sympy.testing.pytestr	   r
   r   r;   rE   rH    r   r   <module>rN      s*     L L 6 ?
,&GR	*r   