
    gz
                     ^    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d	S )
    )symbols)PointParticleReferenceFrameinertia)BodyBase)raiseswarns_deprecated_sympyc                  J    t          d            j        dk    sJ  j        t          d          k    sJ  j        j        dk    sJ  j        dk    sJ                                  dk    sJ                                  dk    sJ t          t           fd           d S )NPP_massP_masscenterr   z3Particle('P', masscenter=P_masscenter, mass=P_mass)c                       j         S N)frameps   g/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/mechanics/tests/test_particle.py<lambda>z'test_particle_default.<locals>.<lambda>   s	    17     )
r   namemassr   
masscenterpotential_energy__str____repr__r	   AttributeErrorr   s   @r   test_particle_defaultr      s    A6S====6WX&&&&&&<....""""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	        z             |
                    |	||	j        z             t          t          fd           t          t          fd           |                    |	          | |z  |	j        z  k    sJ |                    |
|	          |  |z  |z  |	j        z  k    sJ |
                    |	||	j	        z             |                    |	          | |z  |	j	        z  k    sJ |                    |
|	          d	k    sJ |
                    |	||	j        z             |                    |	          | |z  |	j        z  k    sJ |                    |
|	          | |z  |z  |	j        z  k    sJ |
                    |	||	j        z  ||	j	        z  z   ||	j        z  z              |                    |	          | ||	j        z  ||	j	        z  z   ||	j        z  z   z  k    sJ |                    |
|	          | |z  ||	j        z  ||	j        z  z
  z  k    sJ |z  |z  |_        |j        |z  |z  k    s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 d S )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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;      s   !()>!?!?Ar2r2q!Qc

A	tBq!Aa"""""6Q;;;;7a<<<<AF6R<<<<AG7b====sAc

AJJq!ac'JJq"qs(
9/////000
92222333Q27QS=0000a##sQw|ac'99999JJq"qs(Q27QS=0000a##q((((JJq"qs(Q27QS=0000a##rAv{QS'88888JJq"qs(R!#X%QS0111Q2acBH)<rACx)G#HHHHHa##rAvacBH1D'EEEEEQAQ****	 R1WrQw&q01A5B!G|a"rQw,"22R"'\A5EEGG G G G G Gr   c            	      ~   t          d          } t          d          \  }}}t          d          }|                    d|| j        z  || j        z  z             }t          d||          }|                    ||           }t          | ||dz  z  ||dz  z  ||dz  |dz  z   z  | |z  |z            }||k    sJ d S )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QS1qs7*++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  |                    | |z  |z             d d d            d S # 1 swxY w Y   d S )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   s    gGAq!c

Aq!A		!	! * *	q1uqy)))* * * * * * * * * * * * * * * * * *s   A++A/2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 L L L L L L L L L L 6 6 6 6 6 6 ? ? ? ? ? ? ? ?
, 
, 
,&G &G &GR	 	 	* * * * *r   