a
    khz
                     @   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s8J  jdksFJ   dksVJ   dksfJ 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   Y/var/www/auris/lib/python3.9/site-packages/sympy/physics/mechanics/tests/test_particle.py<lambda>       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sBJ |jksPJ |j ks^J | |_|j| ksrJ ||_|j|ksJ td}	td}
||
||	j	  |
|	||	j  tt fdd ttfd	d ||	| | |	j ksJ ||
|	|  | | |	j ks"J |
|	||	j	  ||	| | |	j	 ksRJ ||
|	d
kshJ |
|	||	j  ||	| | |	j ksJ ||
|	| | | |	j ksJ |
|	||	j ||	j	  ||	j   ||	| ||	j ||	j	  ||	j   ksJ ||
|	| | ||	j ||	j   ksBJ | | |_|j| | kshJ ||	| |d |d  |d   d | |d  d | |d  d  | |d  d  fv sJ 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   (   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   Zpointr   Zset_posyZset_velxr   	TypeErrorZlinear_momentumZangular_momentumzr   Zkinetic_energy)m2Zv1Z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sJ 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    *r/   c                  C   s^   t d\} }}td}td|| }t " || | |  W d    n1 sP0    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
    r0   N)Zsympyr   Zsympy.physics.mechanicsr   r   r   r   Z!sympy.physics.mechanics.body_baser   Zsympy.testing.pytestr   r	   r   r+   r/   r0   r   r   r   r   <module>   s   )