Ë
    7^(h÷  ã            	       óJ  — d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	  ed«      Z
e
sdZe j                  j                  e j                  j                  e j                  j                  e j                  j                  e«      «      «      «      Zdd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)é    N)ÚcosÚsin)Úimport_module)Úskip)Úparse_autolevÚantlr4Tc           	      óV  — t         j                  j                  t        dd| «      }t         j                  j                  t        dd|«      }t	        |«      5 }t        |d¬«      }d d d «       t	        |«      5 }t        |«      D ]P  \  }}|j                  d«      r n:	 j                  d«      |   }	|j                  «       |	j                  «       k(  sJ ‚ŒR d d d «       y # 1 sw Y   Œ|xY w# t        $ r& d|z   dz   }
t        |
j                  |d	z   «      «      ‚w xY w# 1 sw Y   y xY w)
NÚautolevútest-examplesT)Úinclude_numericú#ú
zmismatch in z in line no: {0}é   )ÚosÚpathÚjoinÚFILE_DIRÚopenr   Ú	enumerateÚ
startswithÚsplitÚrstripÚ	ExceptionÚAssertionErrorÚformat)Úin_filenameÚout_filenameÚ	test_nameÚin_file_pathÚcorrect_file_pathÚfÚgenerated_codeÚidxÚline1Úline2Úmsgs              ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/parsing/tests/test_autolev.pyÚ_test_examplesr(      s#  € ä—7‘7—<‘<¤¨)°_Ø +ó-€LäŸ™Ÿ™¤X¨y¸/Ø%1ó3Ðä	ˆlÓ	ð @˜qÜ& q¸$Ô?ˆ÷@ô 
ÐÓ	 ð 	8 AÜ# A›,ò 	8‰JˆC�Ø×Ñ Ô$Ùð8Ø&×,Ñ,¨TÓ2°3Ñ7�Ø—|‘|“~¨¯©«Ò7Ð7Ñ7ð	8÷	8ð 	8÷@ð @ûô ò 8Ø$ yÑ0Ð3EÑE�Ü$ S§Z¡Z°°A±Ó%6Ó7Ð7ð8ú÷	8ð 	8ús0   ÁC!Á9%DÂ7C-ÃDÃ!C*Ã-/DÄDÄD(c                  óH   — g d¢} | D ]  }|dz   }|dz   }t        |||«       Œ y )N)Ú	ruletest1Ú	ruletest2Ú	ruletest3Ú	ruletest4Ú	ruletest5Ú	ruletest6Ú	ruletest7Ú	ruletest8Ú	ruletest9Ú
ruletest10Ú
ruletest11Ú
ruletest12ú.alú.py)r(   ©ÚlÚiÚin_filepathÚout_filepaths       r'   Útest_rule_testsr=   &   s8   € ò	%€Að ò 5ˆØ˜%‘iˆØ˜5‘yˆÜ�{ L°!Õ4ñ5ó    c                  óÀ   — g d¢} | D ]U  }t         j                  j                  d|dz   «      }t         j                  j                  d|dz   «      }t        |||«       ŒW y )N)Úmass_spring_damperÚchaos_pendulumÚdouble_pendulumÚnon_min_pendulumzpydy-example-repor6   r7   )r   r   r   r(   r8   s       r'   Útest_pydy_examplesrD   2   sX   € ò	€Að ò 5ˆÜ—g‘g—l‘lÐ#6¸¸E¹	ÓBˆÜ—w‘w—|‘|Ð$7¸¸U¹ÓCˆÜ�{ L°!Õ4ñ5r>   c                  óL  — t         j                  j                  t        ddd«      } t         j                  j	                  | «      r_g d¢}|D ]U  }t         j                  j                  d|dz   «      }t         j                  j                  d|dz   «      }t        |||«       ŒW y y )Nr
   r   zautolev-tutorial)Útutor1Útutor2Útutor3Útutor4Útutor5Útutor6Útutor7r6   r7   ©r   r   r   r   Úisdirr(   )Údir_pathr9   r:   r;   r<   s        r'   Útest_autolev_tutorialrP   =   sˆ   € ä�w‰w�|‰|œH i°Ø.ó0€Hô 
‡w�w‡}�}�XÔòˆàò 	9ˆAÜŸ'™'Ÿ,™,Ð'9¸1¸u¹9ÓEˆKÜŸ7™7Ÿ<™<Ð(:¸AÀ¹IÓFˆLÜ˜;¨°aÕ8ñ	9ð r>   c                  ó˜  — t         j                  j                  t        ddd«      } t         j                  j	                  | «      r…g d¢}g d¢}g d¢}g d¢}|df|d	f|d
f|dfg}|D ]a  \  }}|D ]W  }t         j                  j                  d||dz   «      }	t         j                  j                  d||dz   «      }
t        |	|
|«       ŒY Œc y y )Nr
   r   zdynamics-online)z1-4z1-5z1-6z1-7z1-8z1-9_1z1-9_2z1-9_3)
z2-1z2-2z2-3z2-4z2-5z2-6z2-7z2-8z2-9Úcircular)z3-1_1z3-1_2z3-2_1z3-2_2z3-2_3z3-2_4z3-2_5z3-3)z4-1_1z4-2_1z4-4_1z4-4_2z4-5_1z4-5_2Úch1Úch2Úch3Úch4r6   r7   rM   )rO   rS   rT   rU   rV   ÚchaptersÚchÚnamer:   r;   r<   s              r'   Útest_dynamics_onlinerZ   K   sÎ   € ä�w‰w�|‰|œH i°Ø-ó/€Hô 
‡w�w‡}�}�XÔÚLˆòˆòˆâDˆØ˜%�L 3¨ ,°°e°¸sÀE¸lÐKˆØ ò 	=‰HˆB�Øò =�Ü Ÿg™gŸl™lÐ+<¸dÀAÈÁIÓN�Ü!Ÿw™wŸ|™|Ð,=¸tÀQÈÁYÓO�Ü˜{¨L¸!Õ<ñ=ñ	=ð r>   c                  óä  — t         st        d«       d} t        | «      }i }i }t        |||«       |d   j	                  |d   «      }|d   j                  |d   «      }|d   j                  |d   «      }|d   j                  |d   «      }|d   j                  «       |d   j                  z  t        |d   «      |d   j                  «       z  |d   j                  z  z   t        |d   «      |d   j                  «       z  |d   j                  z  z   }||z
  j                  «       d	k(  sJ ‚|d
    t        |d   «      z  |d   j                  z  |d   |d   j                  z  z   |d
   t        |d   «      z  |d   j                  z  z   }	||	z
  j                  «       d	k(  sJ ‚|d
   t        |d   «      z  |d   j                  «       z  |d   j                  z  |d
   t        |d   «      z  |d   j                  «       z  |d   j                  z  z
  |d   |d   j                  «       z  |d
   t        |d   «      z  |d   j                  «       z  z   |d   j                  z  z   }
||
z
  j                  «       d	k(  sJ ‚|d
   t        |d   «      |d   j                  «       dz  z  t        |d   «      |d   j                  «       j                  «       z  z   z  |d   j                  z  |d    |d   j                  «       dz  z  d|d
   z  t        |d   «      z  |d   j                  «       z  |d   j                  «       z  z
  |d
   t        |d   «      z  |d   j                  «       j                  «       z  z
  |d   j                  z  z   |d   |d   j                  «       j                  «       z  |d
   t        |d   «      z  |d   j                  «       j                  «       z  z   |d
   t        |d   «      z  |d   j                  «       dz  z  z
  |d
   t        |d   «      z  |d   j                  «       dz  z  z
  |d   j                  z  z   }||z
  j                  «       d	k(  sJ ‚y)a$  Autolev example calculates the position, velocity, and acceleration of a
    point and expresses in a single reference frame::

          (1) FRAMES C,D,F
          (2) VARIABLES FD'',DC''
          (3) CONSTANTS R,L
          (4) POINTS O,E
          (5) SIMPROT(F,D,1,FD)
       -> (6) F_D = [1, 0, 0; 0, COS(FD), -SIN(FD); 0, SIN(FD), COS(FD)]
          (7) SIMPROT(D,C,2,DC)
       -> (8) D_C = [COS(DC), 0, SIN(DC); 0, 1, 0; -SIN(DC), 0, COS(DC)]
          (9) W_C_F> = EXPRESS(W_C_F>, F)
       -> (10) W_C_F> = FD'*F1> + COS(FD)*DC'*F2> + SIN(FD)*DC'*F3>
          (11) P_O_E>=R*D2>-L*C1>
          (12) P_O_E>=EXPRESS(P_O_E>, D)
       -> (13) P_O_E> = -L*COS(DC)*D1> + R*D2> + L*SIN(DC)*D3>
          (14) V_E_F>=EXPRESS(DT(P_O_E>,F),D)
       -> (15) V_E_F> = L*SIN(DC)*DC'*D1> - L*SIN(DC)*FD'*D2> + (R*FD'+L*COS(DC)*DC')*D3>
          (16) A_E_F>=EXPRESS(DT(V_E_F>,F),D)
       -> (17) A_E_F> = L*(COS(DC)*DC'^2+SIN(DC)*DC'')*D1> + (-R*FD'^2-2*L*COS(DC)*DC'*FD'-L*SIN(DC)*FD'')*D2> + (R*FD''+L*COS(DC)*DC''-L*SIN(DC)*DC'^2-L*SIN(DC)*FD'^2)*D3>

    z&Test skipped: antlr4 is not installed.zàFRAMES C,D,F
VARIABLES FD'',DC''
CONSTANTS R,L
POINTS O,E
SIMPROT(F,D,1,FD)
SIMPROT(D,C,2,DC)
W_C_F>=EXPRESS(W_C_F>,F)
P_O_E>=R*D2>-L*C1>
P_O_E>=EXPRESS(P_O_E>,D)
V_E_F>=EXPRESS(DT(P_O_E>,F),D)
A_E_F>=EXPRESS(DT(V_E_F>,F),D)Úframe_cÚframe_fÚpoint_eÚpoint_oÚfdÚdcr   r9   Úframe_dÚré   N)r   r   r   ÚexecÚ
ang_vel_inÚpos_fromÚvelÚaccÚdiffÚxr   Úyr   ÚzÚsimplify)Úautolev_inputÚsympy_inputÚgr9   Úw_c_fÚp_o_eÚv_e_fÚa_e_fÚexpected_w_c_fÚexpected_p_o_eÚexpected_v_e_fÚexpected_a_e_fs               r'   Útest_output_01rz   _   s|  € õ0 ÜÐ5Ô6ð€Mô   Ó.€Kà
€AØ
€AÜˆ�a˜Ôàˆi‰L×#Ñ# A i¡LÓ1€Eàˆi‰L×!Ñ! ! I¡,Ó/€EØˆi‰L×Ñ˜Q˜y™\Ó*€EØˆi‰L×Ñ˜Q˜y™\Ó*€Eð
 ˜‘g—l‘l“n Q y¡\§^¡^Ñ3Ü˜!˜D™'“l 1 T¡7§<¡<£>Ñ1°!°I±,·.±.Ñ@ñAä˜!˜D™'“l 1 T¡7§<¡<£>Ñ1°!°I±,·.±.Ñ@ñA€Nð �NÑ"×,Ñ,Ó.°!Ò3Ð3Ð3à˜‘v�gœc ! D¡'›lÑ*¨1¨Y©<¯>©>Ñ9Ø˜‘f˜Q˜y™\Ÿ^™^Ñ+ñ,à˜‘fœS  4¡›\Ñ)¨!¨I©,¯.©.Ñ8ñ9€Nð �NÑ"×,Ñ,Ó.°!Ò3Ð3Ð3à˜‘fœS  4¡›\Ñ)¨!¨D©'¯,©,«.Ñ8¸¸9¹¿¹ÑGØ˜‘fœS  4¡›\Ñ)¨!¨D©'¯,©,«.Ñ8¸¸9¹¿¹ÑGñHà˜‘v˜a ™gŸl™l›nÑ,Ø˜‘vœc ! D¡'›lÑ*¨1¨T©7¯<©<«>Ñ9ñ:Ø;<¸Y¹<¿>¹>ñJñJ€Nð �NÑ"×,Ñ,Ó.°!Ò3Ð3Ð3à˜‘fœc ! D¡'›l¨1¨T©7¯<©<«>¸1Ñ+<Ñ<Ü! ! D¡'›l¨1¨T©7¯<©<«>×+>Ñ+>Ó+@Ñ@ñAñ BØBCÀIÁ,Ç.Á.ñQà˜#™�w˜q ™wŸ|™|›~¨qÑ0Ñ0Ø˜˜3™‘x¤ A d¡G£Ñ,¨Q¨t©W¯\©\«^Ñ;¸A¸d¹G¿L¹L»NÑJñKà˜‘vœc ! D¡'›lÑ*¨1¨T©7¯<©<«>×+>Ñ+>Ó+@Ñ@ñAàBCÀIÁ,Ç.Á.ñQñQð
 ˜‘v˜a ™gŸl™l›n×1Ñ1Ó3Ñ3Ø˜‘vœc ! D¡'›lÑ*¨1¨T©7¯<©<«>×+>Ñ+>Ó+@Ñ@ñAà˜‘vœc ! D¡'›lÑ*¨1¨T©7¯<©<«>¸1Ñ+<Ñ<ñ=ð ˜‘vœc ! D¡'›lÑ*¨1¨T©7¯<©<«>¸1Ñ+<Ñ<ñ=ð ?@À	¹l¿n¹nñMñM€Nð �NÑ"×,Ñ,Ó.°!Ò3Ð3Ñ3r>   )Ú )r   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.externalr   Úsympy.testing.pytestr   Úsympy.parsing.autolevr   r   Údisabledr   ÚdirnameÚabspathÚrealpathÚ__file__r   r(   r=   rD   rP   rZ   rz   © r>   r'   ú<module>r†      s„   ðÛ 	ç ?Ý (Ý %Ý /á	�xÓ	 €áØ€Hà�7‰7�?‰?Ø‡G�G‡O�O�B—G‘G—O‘O B§G¡G×$4Ñ$4°XÓ$>Ó?Ó@óB€ó8ò*	5ò5ò9ò=ó(S4r>   