
    g
                     n    d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZ d Zd Zd Zd Zd	S )
    )raises)symbols)	RigidBodyParticleReferenceFramePointouterdynamicsymbolsForceTorque)gravity_parse_loadc                  J   t          d          } t          d          }t          || j                  }|j        |k    sJ |j        | j        k    sJ |                                dk    sJ t          |t                    sJ |d         |k    sJ |d         | j        k    sJ ||| j        fk    sJ || j        |fk    sJ ||| j        | j	        z   fk    sJ |t          d          | j        fk    sJ t          d|          }t          || j                  }||k    sJ d S )NNPozForce(point=Po, force=N.x)r      CoP)r   r   r   xpointforce__repr__
isinstancetupleyr   )r   r   f1r   f2s        d/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/mechanics/tests/test_loads.pytest_force_defaultr   	   s-   sA	tB	r13B8r>>>>8qs????;;==88888b%     a5B;;;;a5AC<<<<"ac????!#r????"acACi    %++qs#####bA	q!#B888888    c                  .   t          d          } t          | | j                  }|j        | k    sJ |j        | j        k    sJ |                                dk    sJ t          |t                    sJ |d         | k    sJ |d         | j        k    sJ || | j        fk    sJ || j        | fk    sJ || | j        | j        z   fk    sJ |t          d          | j        fk    sJ t          d|           }t          || j                  }||k    sJ d S )Nr   zTorque(frame=N, torque=N.x)r   r   Ar   )frame)
r   r   r   r#   torquer   r   r   r   r   )r   r   rbr   s       r   test_torque_defaultr&      s+   sA	13B8q====9;;==99999b%     a5A::::a5AC<<<<!QS>>>>!#q>>>>!QS13Y.%%qs+++++	3a	 	 	 B	ACB888888r    c                     t          d          } t          d          \  }}}t          d          \  }}t          d          }t	          d||          }t          d          }t          d          }	t          |j        |j                  }
t          d|	|||
|	f          }||f|	|fg}|                    t          || j
        z  ||                     ||f|	|f|||z  | j
        z  f|	||z  | j
        z  fg}t          t          |                    D ]G}t          t          ||                             D ]"}||         |         ||         |         k    sJ #Hd S )	Nr   zm M gzF1 F2popar"   r   B)r   r   r
   r   r   r	   r   r   extendr   r   rangelen)r   mMgF1F2r(   r)   r"   r   Ir*   	forceListlijs                   r   test_gravityr8   2   sl   sAgGAq!G$$FB	tB	$A		BsAc

Aac13A#q!QA''AbAr7#IWQWb!,,---
bAr7RQ-1q513;/?@A3q66]] . .s1Q4yy!! 	. 	.AQ<?ad1g-----	.. .r    c                     t          d          t          d          t          t          j                            j        fk    sJ t          t          j                            j        fk    sJ t          j        f          } t          | t                    sJ | t          j                  k    sJ t          j        f          }t          |t
                    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   r(   c                  L    t          t          d           j        f          S Nr)   )r   r   r   r   r(   s   r   <lambda>z"test_parse_loads.<locals>.<lambda>Q   s     {HT2,>,>+DEE r    c                  N    t          t          d            j        f          S r;   )r   r   r   r<   s   r   r=   z"test_parse_loads.<locals>.<lambda>R   s"    {IdB,B,BAC+HII r    c                  >    t           j         j        f          S Nr   r   r<   s   r   r=   z"test_parse_loads.<locals>.<lambda>T   s    {BR+=>> r    c                  0    t           j        g          S r@   rA   r<   s   r   r=   z"test_parse_loads.<locals>.<lambda>V   s    k2qs)44 r    )r   r   r   r   zr   r   r   r   r   
ValueError	TypeError)r   t1r   r(   s     @@r   test_parse_loadsrG   E   sp   sA	tBuR~~&&2qs)3333va~~&&1ac(2222	b!#Y		Bb%     r13	aX		Bb&!!!!!13
:EEEEEFFF
:IIIIIJJJ
:>>>>>???
94444455555r    N)pytestr   sympyr   sympy.physics.mechanicsr   r   r   r   r	   r
   r   r   sympy.physics.mechanics.loadsr   r   r   r&   r8   rG    r    r   <module>rM      s               K K K K K K K K K K K K K K K K K K K K > > > > > > > >  *  (. . .&6 6 6 6 6r    