K i JddlZddlmZmZddlmZddlmZddlm Z edZ e sdZ ejjejjejjejjeZddZd Zd Zd Zd Zd Zy)N)cossin) import_module)skip) parse_autolevantlr4Tc Vtjjtdd|}tjjtdd|}t |5}t |d}dddt |5}t |D]P\}}|jdrn: jd|} |j| jk(sJRdddy#1swY|xYw#t$r&d|zdz} t| j|d zwxYw#1swYyxYw) Nautolev test-examplesT)include_numeric# z mismatch in z in line no: {0}) ospathjoinFILE_DIRopenr enumerate startswithsplitrstrip ExceptionAssertionErrorformat) in_filename out_filename test_name in_file_pathcorrect_file_pathfgenerated_codeidxline1line2msgs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/parsing/tests/test_autolev.py_test_examplesr(s#77<<)_ +-L Xy/%13 l @q&q$?@  8A#A, 8JC$ 8&,,T237||~777  8 8 8@@ 8$y03EE$SZZA%677 8 8 8s0C!9%D7C-D!C*-/DDD(cHgd}|D]}|dz}|dz}t|||y)N) ruletest1 ruletest2 ruletest3 ruletest4 ruletest5 ruletest6 ruletest7 ruletest8 ruletest9 ruletest10 ruletest11 ruletest12.al.py)r(li in_filepath out_filepaths r'test_rule_testsr=&s8 %A5%i 5y {L!45cgd}|D]U}tjjd|dz}tjjd|dz}t|||Wy)N)mass_spring_damperchaos_pendulumdouble_pendulumnon_min_pendulumzpydy-example-repor6r7)rrrr(r8s r'test_pydy_examplesrD2sX A5ggll#6E B ww||$7UC {L!45r>cLtjjtddd}tjj |r_gd}|D]U}tjjd|dz}tjjd|dz}t |||Wyy)Nr r zautolev-tutorial)tutor1tutor2tutor3tutor4tutor5tutor6tutor7r6r7rrrrisdirr()dir_pathr9r:r;r<s r'test_autolev_tutorialrP=sww||Hi.0H ww}}X  9A'',,'91u9EK77<<(:AIFL ; a 8 9r>ctjjtddd}tjj |rgd}gd}gd}gd}|df|d f|d f|d fg}|D]a\}}|D]W}tjjd||d z} tjjd||d z} t | | |Ycyy)Nr r zdynamics-online)z1-4z1-5z1-6z1-7z1-8z1-9_1z1-9_2z1-9_3) z2-1z2-2z2-3z2-4z2-5z2-6z2-7z2-8z2-9circular)z3-1_1z3-1_2z3-2_1z3-2_2z3-2_3z3-2_4z3-2_5z3-3)z4-1_1z4-2_1z4-4_1z4-4_2z4-5_1z4-5_2ch1ch2ch3ch4r6r7rM) rOrSrTrUrVchapterschnamer:r;r<s r'test_dynamics_onlinerZKsww||Hi-/H ww}}XLD%L3,e sElK  =HB = ggll+cts tdd}t|}i}i}t||||dj |d}|dj |d}|dj |d}|dj|d}|dj|djzt|d|djz|djzzt|d|djz|djzz}||z jd k(sJ|d  t|dz|d jz|d |d jzz|d t|dz|d jzz} || z jd k(sJ|d t|dz|djz|d jz|d t|dz|djz|d jzz |d |djz|d t|dz|djzz|d jzz} || z jd k(sJ|d t|d|djd zzt|d|djjzzz|d jz|d  |djd zzd |d zt|dz|djz|djzz |d t|dz|djjzz |d jzz|d |djjz|d t|dz|djjzz|d t|dz|djd zzz |d t|dz|djd zzz |d jzz} || z jd k(sJy)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.zFRAMES 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_cframe_fpoint_epoint_ofddcrr9frame_drN)rrrexec ang_vel_inpos_fromvelaccdiffxryrzsimplify) autolev_input sympy_inputgr9w_c_fp_o_ev_e_fa_e_fexpected_w_c_fexpected_p_o_eexpected_v_e_fexpected_a_e_fs r'test_output_01rz_s|0  56 M .K A Aa iL # #AiL 1E iL ! !!I, /E iL  Qy\ *E iL  Qy\ *E gllnQy\^^3!D'l1T7<<>1!I,..@A!D'l1T7<<>1!I,..@AN N " , , .! 33 3vgc!D'l*1Y<>>9fQy\^^+,fS4\)!I,..89N N " , , .! 33 3fS4\)!D',,.89GfS4\)!D',,.89GHvaglln,vc!D'l*1T7<<>9:;>JJN N " , , .! 33 3fc!D'l1T7<<>1+<<!!D'l1T7<<>+>+>+@@ABBCI,..Q#wqw||~q003xAdG ,QtW\\^;AdGLLNJKvc!D'l*1T7<<>+>+>+@@ABCI,..QQ vaglln1133vc!D'l*1T7<<>+>+>+@@Avc!D'l*1T7<<>1+<<=vc!D'l*1T7<<>1+<<=?@ lnnM MN N " , , .! 33 3r>))r(sympy.functions.elementary.trigonometricrrsympy.externalrsympy.testing.pytestrsympy.parsing.autolevrrdisabledrdirnameabspathrealpath__file__rr(r=rDrPrZrzr>r'rs ?(%/ x  H 77??GGOOBGGOOBGG$4$4X$>?@ B8* 55 9=(S4r>