o
    GZh
                     @   sP   d dl mZ d dlmZ d dlmZmZmZmZm	Z	 dd Z
dd Zdd	 Zd
S )    )symbols)raises)inertiainertia_of_point_massInertiaReferenceFramePointc                  C   sB  t d} td\}}}td\}}}t| ||||| j| jB  || j| jB   || j| jB   ks3J t| dddd| j| jB  ksDJ ttdd  t| |||||||| j| jB  || j| jB   || j| jB   || j| jB   || j| jB   || j| jB   || j| jB   || j| jB   || j| jB   ksJ d S )NNixx iyy izzzixy iyz izxr   c                   S   s   t ddddS )Nr   )r    r   r   Y/var/www/auris/lib/python3.10/site-packages/sympy/physics/mechanics/tests/test_inertia.py<lambda>   s    z%test_inertia_dyadic.<locals>.<lambda>)r   r   r   xyzr   	TypeError)r	   ixxiyyizzZixyZiyzZizxr   r   r   test_inertia_dyadic   s>   

" 
r   c            
      C   s  t d\} }}}td}| |j }t|||}||| d  |j|jB  || d  |j|jB   ks3J ||j }t|||}|||d  |j|jB  ||d  |j|jB   ksZJ ||j }t|||}|||d  |j|jB  ||d  |j|jB   ksJ || | }	t||	|}|||d |d   |j|jB  ||  | |j|jB   ||  | |j|jB   ||  | |j|jB   || d |d   |j|jB   || | |j|jB   ||  | |j|jB   || | |j|jB   || d |d   |j|jB   ks
J d S )Nzr s t mr	      )r   r   r   r   r   r   )
rstmr	   ZpxIpyZpzpr   r   r   test_inertia_of_point_mass   s<   
8
8
8 r   c                     sZ  t d} tdtd\}}}|| j| jB  || j| jB   || j| jB   tt| ||| t t	s8J  
 dks@J  jksGJ  jksNJ  d ksVJ  d ks^J  fksfJ tt fdd  tkszJ  t| |||ksJ tt fd	d tt fd
d tt fdd tt fdd d S )Nr	   Or
   zFInertia(dyadic=ixx*(N.x|N.x) + iyy*(N.y|N.y) + izz*(N.z|N.z), point=O)r      c                      s    fkS )Nr   r   r   ZI_dyadicr   r   r   r   @   s    z%test_inertia_object.<locals>.<lambda>c                      s    d S N)r    r   r   r   r   r   r   r   D       c                      s   d  S r"   r   r   r#   r   r   r   E   r$   c                      s    d S Nr   r   r   r#   r   r   r   F   r$   c                      s   d  S r%   r   r   r#   r   r   r   G   r$   )r   r   r   r   r   r   r   r   
isinstancetuple__repr__Zdyadicpointr   r   Zfrom_inertia_scalars)r	   r   r   r   r   r!   r   test_inertia_object2   s&   0r*   N)Zsympyr   Zsympy.testing.pytestr   Zsympy.physics.mechanicsr   r   r   r   r   r   r   r*   r   r   r   r   <module>   s    