§
    OŠtj÷  ã            	       ó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                             e j                             e j                             e j                             e¦  «        ¦  «        ¦  «        ¦  «        Zdd	„Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )é    N)ÚcosÚsin)Úimport_module)Úskip)Úparse_autolevÚantlr4TÚ c           	      óÀ  — t           j                             t          dd| ¦  «        }t           j                             t          dd|¦  «        }t	          |¦  «        5 }t          |d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          |¦  «        5 }t          |¦  «        D ]Ÿ\  }}|                     d¦  «        r n„	 |                     d¦  «        |         }	| 	                    ¦   «         |	 	                    ¦   «         k    sJ ‚Œe# t          $ r. d|z   dz   }
t          |
                     |d	z   ¦  «        ¦  «        ‚w xY wd d d ¦  «         d S # 1 swxY w Y   d S )
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/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/parsing/tests/test_autolev.pyÚ_test_examplesr)      sñ  € å”7—<’<¥¨)°_Ø +ñ-ô -€LåœŸš¥X¨y¸/Ø%1ñ3ô 3Ðå	ˆlÑ	Ô	ð @˜qÝ& q¸$Ð?Ñ?Ô?ˆð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ 
ÐÑ	 Ô	 ð 	8 AÝ# A™,œ,ð 	8ð 	8‰JˆC�Ø×Ò Ñ$Ô$ð Ø�ð8Ø&×,Ò,¨TÑ2Ô2°3Ô7�Ø—|’|‘~”~¨¯ª©¬Ò7Ð7Ð7Ð7Ð7øÝð 8ð 8ð 8Ø$ yÑ0Ð3EÑE�Ý$ S§Z¢Z°°A±Ñ%6Ô%6Ñ7Ô7Ð7ð8øøøð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s=   ÁA<Á<B ÂB Â,EÃADÄ
EÄ8EÅEÅEÅEc                  óN   — g d¢} | D ]}|dz   }|dz   }t          |||¦  «         Œd S )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>   &   sU   € ð	%ð 	%ð 	%€Að ð 5ð 5ˆØ˜%‘iˆØ˜5‘yˆÝ�{ L°!Ñ4Ô4Ð4Ð4ð5ð 5ó    c                  óÆ   — g d¢} | D ]Y}t           j                             d|dz   ¦  «        }t           j                             d|dz   ¦  «        }t          |||¦  «         ŒZd S )N)Úmass_spring_damperÚchaos_pendulumÚdouble_pendulumÚnon_min_pendulumzpydy-example-repor7   r8   )r   r   r   r)   r9   s       r(   Útest_pydy_examplesrE   2   sw   € ð	ð 	ð 	€Að ð 5ð 5ˆÝ”g—l’lÐ#6¸¸E¹	ÑBÔBˆÝ”w—|’|Ð$7¸¸U¹ÑCÔCˆÝ�{ L°!Ñ4Ô4Ð4Ð4ð5ð 5r?   c                  óV  — t           j                             t          ddd¦  «        } t           j                             | ¦  «        r`g d¢}|D ][}t           j                             d|dz   ¦  «        }t           j                             d|dz   ¦  «        }t          |||¦  «         ŒZd S d S )Nr   r   zautolev-tutorial)Útutor1Útutor2Útutor3Útutor4Útutor5Útutor6Útutor7r7   r8   ©r   r   r   r   Úisdirr)   )Údir_pathr:   r;   r<   r=   s        r(   Útest_autolev_tutorialrQ   =   sµ   € åŒw�|Š|�H i°Ø.ñ0ô 0€Hõ 
„w‡}‚}�XÑÔð 9ðð ð ˆàð 	9ð 	9ˆAÝœ'Ÿ,š,Ð'9¸1¸u¹9ÑEÔEˆKÝœ7Ÿ<š<Ð(:¸AÀ¹IÑFÔFˆLÝ˜;¨°aÑ8Ô8Ð8Ð8ð9ð 9ð	9ð 	9r?   c                  óž  — t           j                             t          ddd¦  «        } t           j                             | ¦  «        r„g d¢}g d¢}g d¢}g d¢}|df|d	f|d
f|dfg}|D ]e\  }}|D ][}t           j                             d||dz   ¦  «        }	t           j                             d||dz   ¦  «        }
t          |	|
|¦  «         Œ\Œdd S d S )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Úch4r7   r8   rN   )rP   rT   rU   rV   rW   ÚchaptersÚchÚnamer;   r<   r=   s              r(   Útest_dynamics_onliner[   K   s  € åŒw�|Š|�H i°Ø-ñ/ô /€Hõ 
„w‡}‚}�XÑÔð =ØLÐLÐLˆðð ð ˆðð ð ˆàDÐDÐDˆØ˜%�L 3¨ ,°°e°¸sÀE¸lÐKˆØ ð 	=ð 	=‰HˆB�Øð =ð =�Ý œgŸlšlÐ+<¸dÀAÈÁIÑNÔN�Ý!œwŸ|š|Ð,=¸tÀQÈÁYÑOÔO�Ý˜{¨L¸!Ñ<Ô<Ð<Ð<ð=ð=ð =ð	=ð 	=r?   c                  ót  — t           st          d¦  «         d} t          | ¦  «        }i }i }t          |||¦  «         |d                              |d         ¦  «        }|d                              |d         ¦  «        }|d                              |d         ¦  «        }|d                              |d         ¦  «        }|d                              ¦   «         |d         j	        z  t          |d         ¦  «        |d                              ¦   «         z  |d         j        z  z   t          |d         ¦  «        |d                              ¦   «         z  |d         j        z  z   }||z
                       ¦   «         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
                       ¦   «         d	k    sJ ‚|d
         t          |d         ¦  «        z  |d                              ¦   «         z  |d         j	        z  |d
         t          |d         ¦  «        z  |d                              ¦   «         z  |d         j        z  z
  |d         |d                              ¦   «         z  |d
         t          |d         ¦  «        z  |d                              ¦   «         z  z   |d         j        z  z   }
||
z
                       ¦   «         d	k    sJ ‚|d
         t          |d         ¦  «        |d                              ¦   «         dz  z  t          |d         ¦  «        |d                              ¦   «                              ¦   «         z  z   z  |d         j	        z  |d          |d                              ¦   «         dz  z  d|d
         z  t          |d         ¦  «        z  |d                              ¦   «         z  |d                              ¦   «         z  z
  |d
         t          |d         ¦  «        z  |d                              ¦   «                              ¦   «         z  z
  |d         j        z  z   |d         |d                              ¦   «                              ¦   «         z  |d
         t          |d         ¦  «        z  |d                              ¦   «                              ¦   «         z  z   |d
         t          |d         ¦  «        z  |d                              ¦   «         dz  z  z
  |d
         t          |d         ¦  «        z  |d                              ¦   «         dz  z  z
  |d         j        z  z   }||z
                       ¦   «         d	k    sJ ‚dS )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   r:   Úframe_dÚré   N)r   r   r   ÚexecÚ
ang_vel_inÚpos_fromÚvelÚaccÚdiffÚxr   Úyr   ÚzÚsimplify)Úautolev_inputÚsympy_inputÚgr:   Ú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_01r{   _   sì  € õ0 ð 7ÝÐ5Ñ6Ô6Ð6ð€Mõ   Ñ.Ô.€Kà
€AØ
€AÝˆ�a˜ÑÔÐàˆiŒL×#Ò# A i¤LÑ1Ô1€EàˆiŒL×!Ò! ! I¤,Ñ/Ô/€EØˆiŒL×Ò˜Q˜yœ\Ñ*Ô*€EØˆiŒL×Ò˜Q˜yœ\Ñ*Ô*€Eð
 ˜”g—l’l‘n”n Q y¤\¤^Ñ3Ý˜!˜Dœ'‘l”l 1 T¤7§<¢<¡>¤>Ñ1°!°I´,´.Ñ@ñAå˜!˜Dœ'‘l”l 1 T¤7§<¢<¡>¤>Ñ1°!°I´,´.Ñ@ñA€Nð �NÑ"×,Ò,Ñ.Ô.°!Ò3Ð3Ð3Ð3à˜”v�g�c ! D¤'™lœlÑ*¨1¨Y¬<¬>Ñ9Ø˜”f˜Q˜yœ\œ^Ñ+ñ,à˜”f�S  4¤™\œ\Ñ)¨!¨I¬,¬.Ñ8ñ9€Nð �NÑ"×,Ò,Ñ.Ô.°!Ò3Ð3Ð3Ð3à˜”f�S  4¤™\œ\Ñ)¨!¨D¬'¯,ª,©.¬.Ñ8¸¸9¼¼ÑGØ˜”f�S  4¤™\œ\Ñ)¨!¨D¬'¯,ª,©.¬.Ñ8¸¸9¼¼ÑGñHà˜”v˜a œgŸlšl™nœnÑ,Ø˜”v�c ! D¤'™lœlÑ*¨1¨T¬7¯<ª<©>¬>Ñ9ñ:Ø;<¸Y¼<¼>ñJñJ€Nð �NÑ"×,Ò,Ñ.Ô.°!Ò3Ð3Ð3Ð3à˜”f�c ! D¤'™lœl¨1¨T¬7¯<ª<©>¬>¸1Ñ+<Ñ<Ý! ! D¤'™lœ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¼NÑJñKà˜”v�c ! D¤'™lœlÑ*¨1¨T¬7¯<ª<©>¬>×+>Ò+>Ñ+@Ô+@Ñ@ñAàBCÀIÄ,Ä.ñQñQð
 ˜”v˜a œgŸlšl™nœn×1Ò1Ñ3Ô3Ñ3Ø˜”v�c ! D¤'™lœlÑ*¨1¨T¬7¯<ª<©>¬>×+>Ò+>Ñ+@Ô+@Ñ@ñAà˜”v�c ! D¤'™lœlÑ*¨1¨T¬7¯<ª<©>¬>¸1Ñ+<Ñ<ñ=ð ˜”v�c ! D¤'™lœlÑ*¨1¨T¬7¯<ª<©>¬>¸1Ñ+<Ñ<ñ=ð ?@À	¼l¼nñMñM€Nð �NÑ"×,Ò,Ñ.Ô.°!Ò3Ð3Ð3Ð3Ð3Ð3r?   )r	   )r   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.externalr   Úsympy.testing.pytestr   Úsympy.parsing.autolevr   r   Údisabledr   ÚdirnameÚabspathÚrealpathÚ__file__r   r)   r>   rE   rQ   r[   r{   © r?   r(   ú<module>r†      s,  ðØ 	€	€	€	à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø (Ð (Ð (Ð (Ð (Ð (Ø %Ð %Ð %Ð %Ð %Ð %Ø /Ð /Ð /Ð /Ð /Ð /à	ˆ�xÑ	 Ô	 €àð Ø€HàŒ7�?Š?Ø„G‡O‚O�B”G—O’O B¤G×$4Ò$4°XÑ$>Ô$>Ñ?Ô?Ñ@Ô@ñBô B€ð8ð 8ð 8ð 8ð*	5ð 	5ð 	5ð5ð 5ð 5ð9ð 9ð 9ð=ð =ð =ð(S4ð S4ð S4ð S4ð S4r?   