
    \h!                     8   S SK JrJrJrJr  S SKJr  S SKJrJ	r	J
r
JrJr  S SKJr  \" S5      u  rrrrr\" S5      u  rrr\" SS \* \-  /S S\* \-  /S S \S-  \-  //5      r\" S S \S-  \S-  -   \\-  -
  /5      r\" / S	Q/ S
QS S SS \* \-  /S S S S\* \-  /S S S S \S-  \-  //5      r\" \\S S \S-  \S-  -   \\-  -
  /5      r\" \\/5      r\R9                  \5      r\" \\-  5      r\" S5      r\RA                  SS\\RB                  /5      r"\
" S5      r#\#RI                  S\\"R                  -  5      r%\	" S\%\5      r&\&/r'\%\\-  \R                  -  4/r(\" S5      r)\)\\-  \\-   -  0r*S/r+S/r,\\\4r-\\4r.\\\\\4r/Sr0Sr1S r2S r3S r4S r5S r6g)    )symbolsMatrixatanzeros)simplify)dynamicsymbolsParticlePointReferenceFrameSymbolicSystem)raiseszx y u v lambdazm l g      )r   r   r   r   r   )r   r   r   r   r   NAAxisOPPaPE   )r   r   )r      c                     [        [        [        [        [        [
        [        [        [        S9n U R                  [        [        [        /5      :X  d   eU R                  [        [        [        /5      :X  d   eU R                  [        [        [        [        [        [         /5      :X  d   eU R"                  S/:X  d   e[        n[%        U R                  U-
  5      ['        SS5      :X  d   e[)        U R+                  5       5      [        [        [         [        [        1:X  d   e[-        U R+                  5       5      [.        :X  d   e[)        U R1                  5       5      [2        [4        [6        1:X  d   e[-        U R1                  5       5      [.        :X  d   eU R8                  [        :X  d   eU R                  [:        4:X  d   eU R                  [<        [4        [6        -  [>        R                  -  44:X  d   eg )Nalg_conoutput_eqns
coord_idxs
speed_idxsbodiesloadsr      r   ) r   statescomb_explicit_rhsalg_con_fullout_eqnsr   r   r   r    coordinatesr   xyspeedsuvlamr   r   r   setdynamic_symbolstypetupleconstant_symbolslgmr   r   r   r   )
symsystem1inters     a/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/mechanics/tests/test_system.pytest_form_1r8   C   s   (9(4(+5*'-U<J
 !!VQF^3331v...1aC'8 9999!$$$EJ00589U1a[HHHz))+,AsAq0AAAA
**,-666z**,-!Q:::
++-.%777!!X---%%%AEACCK 02222    c                     [        [        [        [        [        [
        [        [        [        S9n U R                  [        [        [        [        /5      :X  d   eU R                  [        [        [        /5      :X  d   eU R                  [        [        [        [        [        [        /5      :X  d   eU R                   S/:X  d   e[        n[#        U R                  U-
  5      [%        SS5      :X  d   e[#        U R                  [        -
  5      [%        S5      :X  d   e['        U R)                  5       5      [        [        [        [        [        1:X  d   e[+        U R)                  5       5      [,        :X  d   e['        U R/                  5       5      [0        [2        [4        1:X  d   e[+        U R/                  5       5      [,        :X  d   e[6        nU R9                  5         [#        U R6                  U-
  5      [%        SS5      :X  d   eU R:                  [        :X  d   eU R                  [<        4:X  d   eU R                  [>        [2        [4        -  [@        R                  -  44:X  d   eg )N)r)   mass_matrixr   r   r   r    r   r!   r   )!r   r&   comb_implicit_rhsr)   comb_implicit_matr$   r%   r   r    r   r'   r(   r,   r*   r+   r"   r   r   r   r-   r.   r/   r0   r1   r2   r3   r4   r#   compute_explicit_formr   r   r   r   )
symsystem2r6   s     r7   test_form_2r@   ]   s   ->v,=(4('-U<J
 !!VQ3K%88881v...1c1a'8 9999!$$$EJ00589U1a[HHHJ001BBCuQxOOOz))+,AsAq0AAAA
**,-666z**,-!Q:::
++-.%777E$$&J00589U1a[HHH !!X---%%%AEACCK 02222r9   c                     [        [        [        [        [        [
        [        [        [        [        S9	n U R                  [        [        [        /5      :X  d   eU R                  [        [        [         /5      :X  d   eU R                  [        [        [        [        [         ["        /5      :X  d   eU R
                  S/:X  d   e[        n[        n[%        U R                  U-
  5      ['        SS5      :X  d   e[%        U R                  [        -
  5      ['        S5      :X  d   e[%        U R                  U-
  5      ['        SS5      :X  d   e[(        n[%        U R(                  U-
  5      ['        SS5      :X  d   e[%        U R*                  [*        -
  5      ['        S5      :X  d   e[,        nU R/                  5         [%        U R,                  U-
  5      ['        SS5      :X  d   e[1        U R3                  5       5      [        [         ["        [        [        1:X  d   e[5        U R3                  5       5      [6        :X  d   e[1        U R9                  5       5      [:        [<        [>        1:X  d   e[5        U R9                  5       5      [6        :X  d   eU R@                  0 :X  d   eU R                  [B        4:X  d   eU R                  [D        [<        [>        -  [F        R                  -  44:X  d   eg )N)r;   coordinate_derivativesr   r   r   r   r    r   r   r   r   r!   )$r   r"   dyn_implicit_rhsdyn_implicit_matkin_explicit_rhsr   r   r   r   r    r&   r   r'   r(   r)   r*   r+   r,   r   r   r<   r=   r#   r>   r-   r.   r/   r0   r1   r2   r3   r4   r   r   r   r   )
symsystem3inter1inter2r6   s       r7   test_form_3rI   }   sa   (8,<7G(/J+5f&+-J !!VQF^3331v...1aC'8 9999!$$$FFJ//&89U1a[HHHJ//2BBCuQxOOOJ//&89U1a[HHHEJ00589U1a[HHHJ001BBCuQxOOOE$$&J00589U1a[HHHz))+,AsAq0AAAA
**,-666z**,-!Q:::
++-.%777!!R'''%%%AEACCK 02222r9   c                     [        [        [        [        [        [
        [        [        [        S9n [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        [        [        5         SU l        S S S 5        g ! , (       d  f       GNe= f! , (       d  f       GNX= f! , (       d  f       GNK= f! , (       d  f       GN>= f! , (       d  f       GN1= f! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       GN
= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   *   )r   r"   r#   r$   r%   r   r   r   r    r   AttributeErrorr&   rC   r<   rD   r=   rE   r)   r   )	symsystems    r7   test_property_attributesrN      sv   v'8'3*4&,E;I
 
		 
 		 "	 
 		%'	" 
 		&(	# 
 			 
 		%'	" 
 		&(	# 
 		%'	" 
 		&(	# 
 			 
 			 
 			 
 	- 
 																							s    F&F8>G
G<G.H :HH$8H6I6II)&
F58
G

G
G+.
G= 
H
H!$
H36
I
I
I&)
I7c                  R   [        [        [        5      n [        [        5         U R
                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                  5         SSS5        [        [        [        [        [
        S9n[        [        5         UR                    SSS5        [        [        5         UR                    SSS5        [        [        5         UR                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                    SSS5        [        [        5         U R                    SSS5        [        [        5         UR                    SSS5        g! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GNf= f! , (       d  f       GNT= f! , (       d  f       GNB= f! , (       d  f       GN0= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g= f)zThis test will cover errors that arise from trying to access attributes
that were not specified upon object creation or were specified on creation
and the user tries to recalculate them.N)r)   r;   )r   r"   r#   r   rL   r=   r<   rD   rC   rE   r>   r&   r)   r   r    )r5   r?   s     r7   test_not_specified_errorsrP      s     (9:J		$$ 
 		$$ 
 		## 
 		## 
 		## 
 		((* 
   ->v,=?J 
	## 
 		## 
 		## 
 
 
	 
 		 
 
 
	 
 		 
 
 
	$$ 
 	O 
 											 
 					
 
 			
 
 			
 
 	s   H.I ,II$4I6JJ J,$J>K,K"K44LL.
H= 
I
I!$
I36
J
J
J),
J;>
K
K"
K14
L
L
L&N)7sympyr   r   r   r   sympy.simplify.simplifyr   sympy.physics.mechanicsr   r	   r
   r   r   sympy.testing.pytestr   r'   r(   r*   r+   r,   r4   r2   r3   rD   rC   r=   r<   rE   LUsolver#   thetar   	orientnewzr   r   	locatenewr   r   r   r    r   r%   r   r$   r&   r)   r"   r   r   r8   r@   rI   rN   rP    r9   r7   <module>r[      sI   . . ,E E ' !!121aC
'
1a Aq1"Q$<q1"Q$<q!Q$q&>+ ,  1aA1qs!234 O+1a!A.1a!A.1aAa0	2 3  Aq!Q1q!tac(9:; 1a&> %--.?@  	QqS	3KKVeQSS\*	#JKKQWdAq

QUQSS[	 T]!QqS	? #s!Sk
Q
Q1c	

343@$3N@1%r9   