
    \hS4                         S r SSKrSSKJr  SSKJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJrJrJr  SS
KJr  SSKJr   " S S5      r " S S5      rg)zBTests for the ``sympy.physics.biomechanics.activation.py`` module.    N)Symbol)FloatIntegerRational)tanh)Matrix)zeros)dynamicsymbols)ActivationBase FirstOrderActivationDeGroote2016ZerothOrderActivation)_NamedMixin)simplifyc                       \ rS rSr\S 5       r\R                  " SS9S 5       rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rSrg)TestZerothOrderActivation   c                      [        [        [        5      (       d   e[        [        [        5      (       d   e[        R                  S:X  d   eg )Nr   )
issubclassr   r   r   __name__     h/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/biomechanics/tests/test_activation.py
test_class$TestZerothOrderActivation.test_class   s?    /@@@@/====$--1HHHHr   Tautousec                 f    SU l         [        S5      U l        [        U R                   5      U l        g )Nnamee_name)r   r
   er   instanceselfs    r    _zeroth_order_activation_fixture:TestZerothOrderActivation._zeroth_order_activation_fixture   s%    	)-dii8r   c                 \    [        U R                  5      n[        U[         5      (       d   eg N)r   r   
isinstancer#   r!   s     r   test_instance'TestZerothOrderActivation.test_instance"   s$    (3($9::::r   c                     [         R                  " U R                  5      n[        U[         5      (       d   eU[        U R                  5      :X  d   eg r'   )r   with_defaultsr   r(   r)   s     r   test_with_defaults,TestZerothOrderActivation.test_with_defaults&   sB    (66tyyA($9::::0;;;;r   c                     [        U R                  S5      (       d   eU R                  R                  U R                  :X  d   eg Nr   hasattrr!   r   r"   s    r   	test_name#TestZerothOrderActivation.test_name+   5    t}}f----}}!!TYY...r   c                 v    [        U R                  S5      (       d   eU R                  R                  S:X  d   eg )Norderr   r3   r!   r8   r"   s    r   
test_order$TestZerothOrderActivation.test_order/   1    t}}g....}}""a'''r   c                 \   [        U R                  S5      (       d   e[        U R                  S5      (       d   e[        S5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   eU R                  R                  U R                  R                  L d   eg Nr    
excitationr   r3   r!   r
   r    r?   r#   
e_expecteds     r   test_excitation_attribute3TestZerothOrderActivation.test_excitation_attribute3       t}}c****t}}l3333#H-
}}*,,,}}'':555}}$--":"::::r   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   e[        S5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   eU R                  R                  U R                  R                  s=L a  U R                  R
                  L d   e   eg )Na
activationr   )r3   r!   r
   rG   rH   r    r#   
a_expecteds     r   test_activation_attribute3TestZerothOrderActivation.test_activation_attribute;   s    t}}c****t}}l3333#H-
}}*,,,}}'':555}}$--":":MdmmooMMMMMr   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   eU R                  R                  U R                  R                  :X  d   e[	        SS5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eg )Nx
state_varsr      r   rP   )r3   r!   rN   rO   r	   r(   r   shaper#   
x_expecteds     r   test_state_vars_attribute3TestZerothOrderActivation.test_state_vars_attributeC   s    t}}c****t}}l3333}}$--":"::::1a[
}}*,,,}}'':555$--//62222$--22F;;;;}}$$...}}''--777r   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   eU R                  R                  U R                  R                  :X  d   e[	        U R
                  /5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eg Nr
input_varsrP   rP   r3   r!   rY   rZ   r   r    r(   rR   r#   
r_expecteds     r   test_input_vars_attribute3TestZerothOrderActivation.test_input_vars_attributeO       t}}c****t}}l3333}}$--":"::::TVVH%
}}*,,,}}'':555$--//62222$--22F;;;;}}$$...}}''--777r   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   eU R                  R                  U R                  R                  :X  d   e[	        SS5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eg )Np	constantsr   rP   rQ   )r3   r!   rc   rd   r	   r(   r   rR   r#   
p_expecteds     r   test_constants_attribute2TestZerothOrderActivation.test_constants_attribute[   s    t}}c****t}}k2222}}$--"9"99991a[
}}*,,,}}&&*444$--//62222$--116::::}}$$...}}&&,,666r   c                 .   [        U R                  S5      (       d   e[        / 5      nU R                  R                  U:X  d   e[	        U R                  R                  [        5      (       d   eU R                  R                  R
                  S:X  d   eg )NM)r   r   r3   r!   r   rj   r(   rR   r#   
M_expecteds     r   test_M_attribute*TestZerothOrderActivation.test_M_attributeg   so    t}}c****BZ
}}*,,,$--//62222}}$$...r   c                 0   [        U R                  S5      (       d   e[        SS5      nU R                  R                  U:X  d   e[	        U R                  R                  [
        5      (       d   eU R                  R                  R                  S:X  d   eg )NFr   rP   rQ   )r3   r!   r	   rq   r(   r   rR   )r#   
F_expecteds     r   test_F TestZerothOrderActivation.test_Fn   sq    t}}c****1a[
}}*,,,$--//62222}}$$...r   c                     [        U R                  S5      (       d   e[        SS5      nU R                  R                  5       nX!:X  d   e[	        U[
        5      (       d   eUR                  S:X  d   eg )Nrhsr   rP   rQ   )r3   r!   r	   rv   r(   r   rR   )r#   rhs_expectedrv   s      r   test_rhs"TestZerothOrderActivation.test_rhsu   sg    t}}e,,,,Q{mm!"""#v&&&&yyF"""r   c                 >    Sn[        U R                  5      U:X  d   eg )NzZerothOrderActivation('name')reprr!   r#   expecteds     r   	test_repr#TestZerothOrderActivation.test_repr}   s    4DMM"h...r   )r    r!   r   N)r   
__module____qualname____firstlineno__staticmethodr   pytestfixturer$   r*   r.   r4   r:   rC   rK   rU   r_   rg   rn   rs   rx   r   __static_attributes__r   r   r   r   r      su    I I
 ^^D!9 "9
;<
/(;N
8
8
7//#/r   r   c            	       r   \ rS rSr\S 5       r\R                  " SS9S 5       rS r	S r
S rS	 rS
 rS rS rS r\R"                  R%                  SS\" S5      4\" S5      \" S5      4\" S5      \" S5      4/5      S 5       rS r\R"                  R%                  SS\" S5      4\" S5      \" S5      4\" S5      \" S5      4/5      S 5       rS r\R"                  R%                  SS\" S5      4\" S5      \" S5      4\" S5      \" S5      4/5      S 5       rS  rS! rS" rS# rS$ rS% r S& r!S' r"S(r#g))$TestFirstOrderActivationDeGroote2016   c                      [        [        [        5      (       d   e[        [        [        5      (       d   e[        R                  S:X  d   eg )Nr   )r   r   r   r   r   r   r   r   r   /TestFirstOrderActivationDeGroote2016.test_class   s?    :NKKKK:KHHHH/88<^^^^r   Tr   c                 (   SU l         [        S5      U l        [        S5      U l        [	        S5      U l        [	        S5      U l        [	        S5      U l        [        U R                   U R
                  U R                  U R                  5      U l	        g )Nr   r   a_nametau_atau_db)
r   r
   r    rG   r   r   r   r   r   r!   r"   s    r   ._first_order_activation_de_groote_2016_fixtureSTestFirstOrderActivationDeGroote2016._first_order_activation_de_groote_2016_fixture   sj    	))G_
G_
8IIJJJJFF	
r   c                 \    [        U R                  5      n[        U[         5      (       d   eg r'   )r   r   r(   r)   s     r   r*   2TestFirstOrderActivationDeGroote2016.test_instance   s$    3DII>($DEEEEr   c                    [         R                  " U R                  5      n[        U[         5      (       d   eUR                  [        S5      :X  d   eUR                  [        S5      :X  d   eUR                  [        S5      :X  d   eUR                  [        S5      :X  d   eUR                  [        S5      :X  d   eUR                  [        S5      :X  d   eg )N0.0150.060z10.0)r   r-   r   r(   r   r   activation_time_constantr   deactivation_time_constantr   smoothing_rater)   s     r   r.   7TestFirstOrderActivationDeGroote2016.test_with_defaults   s    3AA$))L($DEEEE~~w///00E'NBBB~~w///22eGnDDDzzU6]***&&%-777r   c                     [        U R                  S5      (       d   eU R                  R                  U R                  :X  d   eg r1   r2   r"   s    r   r4   .TestFirstOrderActivationDeGroote2016.test_name   r6   r   c                 v    [        U R                  S5      (       d   eU R                  R                  S:X  d   eg )Nr8   rP   r9   r"   s    r   r:   /TestFirstOrderActivationDeGroote2016.test_order   r<   r   c                 \   [        U R                  S5      (       d   e[        U R                  S5      (       d   e[        S5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   eU R                  R                  U R                  R                  L d   eg r>   r@   rA   s     r   test_excitation4TestFirstOrderActivationDeGroote2016.test_excitation   rE   r   c                    [         R                  " [        5         S U R                  l        S S S 5        [         R                  " [        5         S U R                  l        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = fr'   )r   raisesAttributeErrorr!   r    r?   r"   s    r   test_excitation_is_immutableATestFirstOrderActivationDeGroote2016.test_excitation_is_immutable   N    ]]>*"DMMO +]]>*'+DMM$ +* +***   A*A;*
A8;
B	c                     [        U R                  S5      (       d   e[        U R                  S5      (       d   e[        S5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   eg )NrG   rH   r   )r3   r!   r
   rG   rH   rI   s     r   test_activation4TestFirstOrderActivationDeGroote2016.test_activation   sh    t}}c****t}}l3333#H-
}}*,,,}}'':555r   c                    [         R                  " [        5         S U R                  l        S S S 5        [         R                  " [        5         S U R                  l        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = fr'   )r   r   r   r!   rG   rH   r"   s    r   test_activation_is_immutableATestFirstOrderActivationDeGroote2016.test_activation_is_immutable   r   r   ztau_a, expectedN
tau_a_namer   r   c                     [        SUS9nUR                  U:X  d   eUR                  U:X  d   eUR                  UR                  L d   eg )Nr   )r   )r   r   r   )r#   r   r~   r!   s       r   test_activation_time_constantBTestFirstOrderActivationDeGroote2016.test_activation_time_constant   sS     4U
 ~~)))00H<<<~~!B!BBBBr   c                    [         R                  " [        5         S U R                  l        S S S 5        [         R                  " [        5         S U R                  l        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = fr'   )r   r   r   r!   r   r   r"   s    r   *test_activation_time_constant_is_immutableOTestFirstOrderActivationDeGroote2016.test_activation_time_constant_is_immutable   sO    ]]>*"&DMM +]]>*59DMM2 +* +***r   ztau_d, expected
tau_d_namer   r   c                     [        SUS9nUR                  U:X  d   eUR                  U:X  d   eUR                  UR                  L d   eg )Nr   )r   )r   r   r   )r#   r   r~   r!   s       r   test_deactivation_time_constantDTestFirstOrderActivationDeGroote2016.test_deactivation_time_constant   sS     4u
 ~~)))22h>>>~~!D!DDDDr   c                    [         R                  " [        5         S U R                  l        S S S 5        [         R                  " [        5         S U R                  l        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = fr'   )r   r   r   r!   r   r   r"   s    r   ,test_deactivation_time_constant_is_immutableQTestFirstOrderActivationDeGroote2016.test_deactivation_time_constant_is_immutable   sO    ]]>*"&DMM +]]>*7;DMM4 +* +***r   zb, expectedb_namer   10c                     [        SUS9nUR                  U:X  d   eUR                  U:X  d   eUR                  UR                  L d   eg )Nr   )r   )r   r   r   )r#   r   r~   r!   s       r   test_smoothing_rate8TestFirstOrderActivationDeGroote2016.test_smoothing_rate   sS     41
 zzX%%%&&(222zzX44444r   c                    [         R                  " [        5         S U R                  l        S S S 5        [         R                  " [        5         S U R                  l        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = fr'   )r   r   r   r!   r   r   r"   s    r    test_smoothing_rate_is_immutableETestFirstOrderActivationDeGroote2016.test_smoothing_rate_is_immutable  sN    ]]>*"DMMO +]]>*+/DMM( +* +***r   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   eU R                  R                  U R                  R                  :X  d   e[	        U R
                  /5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eg )NrN   rO   r[   )r3   r!   rN   rO   r   rG   r(   rR   rS   s     r   test_state_vars4TestFirstOrderActivationDeGroote2016.test_state_vars  ra   r   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   eU R                  R                  U R                  R                  :X  d   e[	        U R
                  /5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eg rX   r\   r]   s     r   test_input_vars4TestFirstOrderActivationDeGroote2016.test_input_vars  ra   r   c                    [        U R                  S5      (       d   e[        U R                  S5      (       d   eU R                  R                  U R                  R                  :X  d   e[	        U R
                  U R                  U R                  /5      nU R                  R                  U:X  d   eU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eg )Nrc   rd   )   rP   )
r3   r!   rc   rd   r   r   r   r   r(   rR   re   s     r   test_constants3TestFirstOrderActivationDeGroote2016.test_constants$  s   t}}c****t}}k2222}}$--"9"9999TZZTVV<=
}}*,,,}}&&*444$--//62222$--116::::}}$$...}}&&,,666r   c                 0   [        U R                  S5      (       d   e[        S/5      nU R                  R                  U:X  d   e[	        U R                  R                  [        5      (       d   eU R                  R                  R
                  S:X  d   eg )Nrj   rP   r[   rk   rl   s     r   test_M+TestFirstOrderActivationDeGroote2016.test_M0  sq    t}}c****QC[
}}*,,,$--//62222}}$$...r   c           	      `   [        U R                  S5      (       d   eSU R                  [        SS5      [        SS5      U R                  -  -   -  -  [        SS5      [        SS5      [        U R                  U R                  U R                  -
  -  5      -  -   -  [        SS5      [        SS5      U R                  -  -   U R                  -  [        SS5      [        SS5      [        U R                  U R                  U R                  -
  -  5      -  -
  -  -   U R                  U R                  -
  -  n[        U/5      nU R                  R                  U:X  d   e[        U R                  R                  [        5      (       d   eU R                  R                  R                  S:X  d   eg )Nrq   rP      r   r[   )r3   r!   r   r   rG   r   r   r    r   r   rq   r(   rR   )r#   da_exprrr   s      r   rs   +TestFirstOrderActivationDeGroote2016.test_F7  sX   t}}c****Xa^hq!nTVV.CCDEq!nx1~d466466DFF?3K.LLLNA!Q!66

Bq!nx1~d466466DFF?3K.LLLNN fftvvo	 	 WI&
}}*,,,$--//62222}}$$...r   c           	         [        U R                  S5      (       d   eSU R                  [        SS5      [        SS5      U R                  -  -   -  -  [        SS5      [        SS5      [        U R                  U R                  U R                  -
  -  5      -  -   -  [        SS5      [        SS5      U R                  -  -   U R                  -  [        SS5      [        SS5      [        U R                  U R                  U R                  -
  -  5      -  -
  -  -   U R                  U R                  -
  -  n[        U/5      nU R                  R                  5       nX2:X  d   e[        U[        5      (       d   eUR                  S:X  d   e[        U R                  R                  R                  U R                  R                   5      U-
  5      [#        S5      :X  d   eg )Nrv   rP   r   r   r[   )r3   r!   r   r   rG   r   r   r    r   r   rv   r(   rR   r   rj   solverq   r	   )r#   r   rw   rv   s       r   rx   -TestFirstOrderActivationDeGroote2016.test_rhsE  s   t}}e,,,,Xa^hq!nTVV.CCDEq!nx1~d466466DFF?3K.LLLNA!Q!66

Bq!nx1~d466466DFF?3K.LLLNN fftvvo	 	 wi(mm!"""#v&&&&yyF"""--dmmoo>DEqQQQr   c                 >    Sn[        U R                  5      U:X  d   eg )Nz|FirstOrderActivationDeGroote2016('name', activation_time_constant=tau_a, deactivation_time_constant=tau_d, smoothing_rate=b)r{   r}   s     r   r   .TestFirstOrderActivationDeGroote2016.test_reprU  s%      	 DMM"h...r   )rG   r   r    r!   r   r   r   )$r   r   r   r   r   r   r   r   r   r*   r.   r4   r:   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   rs   rx   r   r   r   r   r   r   r      s   _ _
 ^^D!
 "
F8/(;,6, [[6,'(G_fWo.7^U7^,	
CC: [[6,'(G_fWo.7^U7^,	
EE< [[6(#$C[&+&T]GDM*	
550
8
8
7//R /r   r   )__doc__r   sympyr   sympy.core.numbersr   r   r   %sympy.functions.elementary.hyperbolicr   sympy.matricesr   sympy.matrices.denser	   sympy.physics.mechanicsr
   sympy.physics.biomechanicsr   r   r   !sympy.physics.biomechanics._mixinr   sympy.simplify.simplifyr   r   r   r   r   r   <module>r      sK    H   7 7 6 ! & 2 
 : ,k/ k/\Z/ Z/r   