
    sg
                     J    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y)    )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 y )NNixx iyy izzzixy iyz izxr   c                      t        dddd      S )Nr   )r        ]/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/mechanics/tests/test_inertia.py<lambda>z%test_inertia_dyadic.<locals>.<lambda>   s    gaAq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$acc	):SSS133Y> *qss+*, - - -1aA!qssQSSy/111
9121c3S#s3qssQSSy8I13399 #qssQSSy 1924713394E9FHK	
qssI9QSS133Y'9(*-qss*;9<>AQSSCCF ?9 !##)$9% & & &r   c                  j   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 y )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	
QSSBaQ'AAqDACC!##I&QTQSS133Y)?????	
QSSBaQ'AAqDACC!##I&QTQSS133Y)?????	
QSSBaQ'AAqDACC!##I&QTQSS133Y)?????
R"AaA&AadQTk"accACCi0QaccACCi()QaccACCi() QaccACCi() adQTk"accACCi0	1
 QaccACCi() QaccACCi() QaccACCi() adQTk"accACCi01 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 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       y )Nr   Or   zFInertia(dyadic=ixx*(N.x|N.x) + iyy*(N.y|N.y) + izz*(N.z|N.z), point=O)r      c                       fk7  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   sm   sAc
AM*MCcaccACCi 3!##)#44saccACCi7HHH3S)1-Aa::< 6 7 7 788x77a<<Q48Q41991
9018$$$$,,Q3SAAAA
9()
9()
9m$
9m$r   N)sympyr   sympy.testing.pytestr   sympy.physics.mechanicsr   r   r   r   r	   r   r(   r<   r   r   r   <module>r@      s&     'E E&2:%r   