
    \h
                     l    S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
JrJr  S SKJrJr  S rS rS rS rg	)
    )raises)symbols)	RigidBodyParticleReferenceFramePointouterdynamicsymbolsForceTorque)gravity_parse_loadc                  f   [        S5      n [        S5      n[        XR                  5      nUR                  U:X  d   eUR
                  U R                  :X  d   eUR                  5       S:X  d   e[        U[        5      (       d   eUS   U:X  d   eUS   U R                  :X  d   eX!U R                  4:X  d   eX R                  U4:w  d   eX!U R                  U R                  -   4:w  d   eU[        S5      U R                  4:w  d   e[        SU5      n[        X0R                  5      nX$:X  d   eg )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        `/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/mechanics/tests/test_loads.pytest_force_defaultr   	   s   sA	tB	r33B88r>>88qss??;;=8888b%    a5B;;a5ACC<<acc??##r??accACCi   %+qss####bA	q##B8O8    c                  L   [        S5      n [        X R                  5      nUR                  U :X  d   eUR                  U R                  :X  d   eUR                  5       S:X  d   e[        U[        5      (       d   eUS   U :X  d   eUS   U R                  :X  d   eXU R                  4:X  d   eXR                  U 4:w  d   eXU R                  U R                  -   4:w  d   eU[        S5      U R                  4:w  d   e[        SU S9n[        X R                  5      nX:X  d   eg )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	33B88q==99;;=9999b%    a5A::a5ACC<<QSS>>##q>>QSS133Y.%qss++++	3a	 B	CCB8O8r    c                  J   [        S5      n [        S5      u  pn[        S5      u  pE[        S5      n[	        SXa5      n[        S5      n[        S5      n	[        UR                  UR                  5      n
[        SXX*U	45      nXd4X4/nUR                  [        X0R                  -  X{5      5        Xd4X4XcU-  U R                  -  4XU-  U R                  -  4/n[        [        U5      5       H2  n[        [        X   5      5       H  nX   U   X   U   :X  a  M   e   M4     g )	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   s   sAgGA!G$FB	tB	$	BsAc
Aacc133A#qQA'AA7#IWQWb,-
A7RQ-q5133;/?@A3q6]s14y!A<?ad1g--- " r    c                    ^^ [        S5      m[        S5      m[        [        TTR                  5      5      TTR                  4:X  d   e[        [        TTR                  5      5      TTR                  4:X  d   e[        TTR                  45      n [        U [        5      (       d   eU [        TTR                  5      :X  d   e[        TTR                  45      n[        U[
        5      (       d   eU[        TTR                  5      :X  d   e[        [        UU4S j5        [        [        UU4S j5        [        [        UU4S j5        [        [        UU4S j5        g )Nr   r(   c                  F   > [        [        ST5      T R                  45      $ Nr)   )r   r   r   r   r(   s   r   <lambda>"test_parse_loads.<locals>.<lambda>Q   s    {HT2,>+DEr    c                  H   > [        [        STT 5      T R                  45      $ r;   )r   r   r   r<   s   r   r=   r>   R   s    {IdB,BACC+HIr    c                  J   > [        TT R                  TT R                  45      $ Nr   r   r<   s   r   r=   r>   T   s    {BR+=>r    c                  2   > [        TT R                  /5      $ rA   rB   r<   s   r   r=   r>   V   s    k2qss)4r    )r   r   r   r   zr   r   r   r   r   
ValueError	TypeError)r   t1r   r(   s     @@r   test_parse_loadsrH   E   s   sA	tBuR~&2qss)333va~&1acc(222	b!##Y	Bb%    r133	aX	Bb&!!!!133
:EF
:IJ
:>?
945r    N)pytestr   sympyr   sympy.physics.mechanicsr   r   r   r   r	   r
   r   r   sympy.physics.mechanics.loadsr   r   r   r&   r8   rH    r    r   <module>rN      s4     K K K >*(.&6r    