
    g
                     L    d dl mZ d dlmZ d dlmZmZmZmZm	Z	 d Z
d Zd ZdS )    )symbols)raises)inertiainertia_of_point_massInertiaReferenceFramePointc            	         t          d          } t          d          \  }}}t          d          \  }}}t          | |||          || j        | j        z  z  || j        | j        z  z  z   || j        | j        z  z  z   k    sJ t          | ddd          d| j        | j        z  z  k    sJ t          t          d            t          | ||||||          || j        | j        z  z  || j        | j        z  z  z   || j        | j        z  z  z   || j        | j        z  z  z   || j        | j        z  z  z   || j        | j        z  z  z   || j        | j        z  z  z   || j        | j        z  z  z   || j        | j        z  z  z   k    sJ d S )NNixx iyy izzzixy iyz izxr   c                  &    t          dddd          S )Nr   )r        f/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/mechanics/tests/test_inertia.py<lambda>z%test_inertia_dyadic.<locals>.<lambda>   s    gaAq11 r   )r   r   r   xyzr   	TypeError)r   ixxiyyizzixyiyzizxs          r   test_inertia_dyadicr      s   sAM**MCcM**MCc1c3$$ac	):SS13Y> *qs+*, - - - -1aA!qsQSy/1111
9112221c3S#s33qsQSy8I1399 #qsQSy 192471394E9FHK	
qsI9QS13Y'9(*-qs*;9<>AQSCF ?9 !#)$9% & & & & & &r   c                  Z   t          d          \  } }}}t          d          }| |j        z  }t          |||          }||| dz  z  |j        |j        z  z  || dz  z  |j        |j        z  z  z   k    sJ ||j        z  }t          |||          }|||dz  z  |j        |j        z  z  ||dz  z  |j        |j        z  z  z   k    sJ ||j        z  }t          |||          }|||dz  z  |j        |j        z  z  ||dz  z  |j        |j        z  z  z   k    sJ ||z   |z   }	t          ||	|          }|||dz  |dz  z   z  |j        |j        z  z  || z  |z  |j        |j        z  z  z
  || z  |z  |j        |j        z  z  z
  || z  |z  |j        |j        z  z  z
  || dz  |dz  z   z  |j        |j        z  z  z   ||z  |z  |j        |j        z  z  z
  || z  |z  |j        |j        z  z  z
  ||z  |z  |j        |j        z  z  z
  || dz  |dz  z   z  |j        |j        z  z  z   k    sJ d S )Nzr s t mr      )r   r   r   r   r   r   )
rstmr   pxIpypzps
             r   test_inertia_of_point_massr(      s   ##JAq!QsA	
QSBaQ''AAqDAC!#I&QTQS13Y)??????	
QSBaQ''AAqDAC!#I&QTQS13Y)??????	
QSBaQ''AAqDAC!#I&QTQS13Y)??????
R"AaA&&AadQTk"acACi0QacACi()QacACi() QacACi() adQTk"acACi0	1
 QacACi() QacACi() QacACi() adQTk"acACi01 2 2 2 2 2 2r   c                  \   t          d          } t          d          t          d          \  }}}|| j        | j        z  z  || j        | j        z  z  z   || j        | j        z  z  z   t          t          | |||                    t          t                    sJ 
                                dk    sJ j        k    sJ j        k    sJ d         k    sJ d         k    sJ fk    sJ t          t          fd           t                    k    sJ t          j        | |||          k    sJ t          t          fd           t          t          fd	           t          t          fd
           t          t          f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                       fk    S )Nr   )r$   I_dyadicr*   s   r   r   z%test_inertia_object.<locals>.<lambda>@   s    aAx=0 r   c                       dz   S N)r+   r   r   r$   s   r   r   z%test_inertia_object.<locals>.<lambda>D   s    a&j r   c                      d z   S r/   r   r0   s   r   r   z%test_inertia_object.<locals>.<lambda>E   s    fqj r   c                       dz  S Nr   r   r0   s   r   r   z%test_inertia_object.<locals>.<lambda>F       a!e r   c                      d z  S r3   r   r0   s   r   r   z%test_inertia_object.<locals>.<lambda>G   r4   r   )r   r	   r   r   r   r   r   r   
isinstancetuple__repr__dyadicpointr   r   from_inertia_scalars)r   r   r   r   r$   r-   r*   s       @@@r   test_inertia_objectr<   2   s   sAc

AM**MCcacACi 3!#)#44sacACi7HHH3S))1--Aa::<< 6 7 7 7 78x7a<<<<Q48Q4199991
90000001118$$$$$$,Q3SAAAAAA
9(((()))
9(((()))
9mmmm$$$
9mmmm$$$$$r   N)sympyr   sympy.testing.pytestr   sympy.physics.mechanicsr   r   r   r   r	   r   r(   r<   r   r   r   <module>r@      s          ' ' ' ' ' 'E E E E E E E E E E E E E E& & &2 2 2:% % % % %r   