o
    GZhz
                     @   sd   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d Zdd Zd	d
 Zdd ZdS )    )symbols)PointParticleReferenceFrameinertia)BodyBase)raiseswarns_deprecated_sympyc                      s|   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s3J tt	 fdd d S )NPZP_massZP_masscenterr   z3Particle('P', masscenter=P_masscenter, mass=P_mass)c                      s    j S N)frame pr   Z/var/www/auris/lib/python3.10/site-packages/sympy/physics/mechanics/tests/test_particle.py<lambda>   s    z'test_particle_default.<locals>.<lambda>)
r   namemassr   Z
masscenterpotential_energy__str____repr__r   AttributeErrorr   r   r   r   test_particle_default   s   r   c                     s  t d\} }}}}}}td td}td }t|ts!J |jks(J |j ks/J | |_|j| ks9J ||_|j|ksCJ td}	td}
||
||	j	  |
|	||	j  tt fdd ttfd	d ||	| | |	j ks~J ||
|	|  | | |	j ksJ |
|	||	j	  ||	| | |	j	 ksJ ||
|	d
ksJ |
|	||	j  ||	| | |	j ksJ ||
|	| | | |	j ksJ |
|	||	j ||	j	  ||	j   ||	| ||	j ||	j	  ||	j   ksJ ||
|	| | ||	j ||	j   ksJ | | |_|j| | ks/J ||	| |d |d  |d   d | |d  d | |d  d  | |d  d  fv s_J d S )Nzm m2 v1 v2 v3 r g hr
   P2paNOc                      s   t   S r   r   r   r
   mr   r   r   (       ztest_particle.<locals>.<lambda>c                      s   t d  S )Nr   r   r   )r   r   r   r   )   r    r      )r   r   r   
isinstancer   r   pointr   Zset_posyZset_velxr   	TypeErrorZlinear_momentumZangular_momentumzr   Zkinetic_energy)m2v1v2Zv3rghr   r   r   r   r   r   r   test_particle   sJ   $"&2..r.   c            	      C   s   t d} td\}}}td}|d|| j || j  }td||}||| }t| ||d  ||d  ||d |d   | | | d}||ksMJ d S )Nr   zm, a, bor   r
   r!   )Zixy)	r   r   r   Z	locatenewr%   r$   r   Zparallel_axisr   )	r   r   abr/   r   r
   ZIpZIp_expectedr   r   r   test_parallel_axis=   s   *r2   c                  C   s`   t d\} }}td}td|| }t  || | |  W d    d S 1 s)w   Y  d S )Nzm g hr
   r   )r   r   r   r	   Zset_potential_energy)r   r,   r-   r
   r   r   r   r   $test_deprecated_set_potential_energyI   s   "r3   N)Zsympyr   Zsympy.physics.mechanicsr   r   r   r   Z!sympy.physics.mechanics.body_baser   Zsympy.testing.pytestr   r	   r   r.   r2   r3   r   r   r   r   <module>   s    )