+
    ‹°³jU0  ã                   ó¶   € ^ RI HtHtHt ^ RIHtHt ^ RItR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR# )é    )ÚdynamicsymbolsÚPointÚReferenceFrame)ÚraisesÚignore_warningsNc                  ó&  € \        R 4      w  r\        R ^4      w  r#\        R ^4      w  rE\        R4      p\        R4      pVP                  WbVP                  ,          4       \	        R4      pVP                  RVP                  4      p	V	P                  V^ 4       VP                  V^ 4       V	P                  W†V4      W'P                  ,          8X  g   Q hVP                  WfP                  4       V	P                  W†V4      VP                  W'P                  ,          ,           8X  g   Q hV	P                  WwP                  4       V	P                  W†V4      VP                  VP                  ,           W'P                  ,          ,           8X  g   Q hR# ©úq q2ÚNÚBÚOÚPN)
r   r   Úset_ang_velÚzr   Ú	locatenewÚxÚset_velÚv1pt_theoryÚy©
ÚqÚq2ÚqdÚq2dÚqddÚq2ddr   r   r   r   s
             Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/physics/vector/tests/test_point.pyÚtest_point_v1pt_theorysr      s  € Ü˜6Ó"�E€AÜ˜V QÓ'�G€BÜ˜v qÓ)�I€CÜ�sÓ€AÜ�sÓ€AØ‡M�M�!˜!Ÿ#™#•XÔÜˆc‹
€AØ	�‰�C˜Ÿ™Ó€AØ‡I�Iˆa�„OØ‡I�Iˆa�„OØ�=‰=˜˜qÓ! R¯#©#¥XÔ-Ð-Ð-Ø‡I�Iˆa—‘ÔØ�=‰=˜˜qÓ! Q§S¡S¨2·±­8¥^Ô3Ð3Ð3Ø‡I�Iˆa—‘ÔØ�=‰=˜˜qÓ! Q§S¡S¨1¯3©3¥Y°·c±cµÕ%9Ô9Ð9Ò9ó    c                  ó  € \        R 4      w  r\        R ^4      w  r#\        R ^4      w  rE\        R4      p\        R4      pVP                  WbVP                  ,          4       \	        R4      pVP                  RVP                  4      p	V	P                  V^ 4       VP                  V^ 4       V	P                  W†V4      V^,          ) VP                  ,          WGP                  ,          ,           8X  g   Q hV	P                  WsVP                  ,          4       V	P                  W†V4      V^,          ) VP                  ,          WGP                  ,          ,           WWP                  ,          ,           8X  g   Q hVP                  WcVP                  ,          4       V	P                  W†V4      WR^,          ,
          VP                  ,          W2,          V,           VP                  ,          ,           WWP                  ,          ,           8X  g   Q hR# r	   )
r   r   r   r   r   r   r   r   Úa1pt_theoryr   r   s
             r   Útest_point_a1pt_theorysr"      ss  € Ü˜6Ó"�E€AÜ˜V QÓ'�G€BÜ˜v qÓ)�I€CÜ�sÓ€AÜ�sÓ€AØ‡M�M�!˜!Ÿ#™#•XÔÜˆc‹
€AØ	�‰�C˜Ÿ™Ó€AØ‡I�Iˆa�„OØ‡I�Iˆa�„OØ�=‰=˜˜qÓ! r¨1¥u X°·±¥^°c¿C¹CµiÕ%?Ô?Ð?Ð?Ø‡I�Iˆa�q—s‘s•ÔØ�=‰=˜˜qÓ! r¨1¥u X°·±¥^°c¿C¹CµiÕ%?À$ÏÉÅ*Õ%LÔLÐLÐLØ‡I�Iˆa�q—s‘s•ÔØ�=‰=˜˜qÓ! t°!­e¥|°q·s±sÕ&:¸c½hÈ½nÐPQ×PSÑPSÕ=SÕ&SØ#§c¡c�zõ'*ô +ð +ò +r   c                  ól  € \        R 4      p \        R ^4      p\        R4      pVP                  RRWP                  .4      p\	        R4      pVP                  R^ 4      pVP                  V^ 4       VP                  WBV4      ^ 8X  g   Q hVP                  RVP                  4      pVP                  WBV4      WP                  ,          VP                  ,          8X  g   Q hVP                  W"P                  4       VP                  WBV4      VP                  WP                  ,          ,           8X  g   Q hR# ©r   r   r   ÚAxisr   r   N)
r   r   Ú	orientnewr   r   r   r   Úv2pt_theoryr   r   )r   r   r   r   r   r   s         r   Útest_point_v2pt_theorysr(   *   së   € Ü�sÓ€AÜ	˜˜QÓ	€BÜ�sÓ€AØ	�‰�C˜ !§S¡S Ó*€AÜˆc‹
€AØ	�‰�C˜Ó€AØ‡I�Iˆa�„OØ�=‰=˜˜qÓ! QÔ&Ð&Ð&Ø	�‰�C˜Ÿ™Ó€AØ�=‰=˜˜qÓ! b¯3©3¥h°·±¥nÔ5Ð5Ð5Ø‡I�Iˆa—‘ÔØ�=‰=˜˜qÓ! Q§S¡S¨2·±­8¥^Ô3Ð3Ò3r   c                  óö  € \        R 4      p \        R ^4      p\        R ^4      p\        R4      pVP                  RRWP                  .4      p\	        R4      pVP                  R^ 4      pVP                  V^ 4       VP                  WSV4      ^ 8X  g   Q hVP                  WTP                  4       VP                  WSV4      V^,          ) VP                  ,          W$P                  ,          ,           8X  g   Q hR# r$   )r   r   r&   r   r   r   r   Úa2pt_theoryÚset_posr   r   )r   r   r   r   r   r   r   s          r   Útest_point_a2pt_theorysr,   9   sÇ   € Ü�sÓ€AÜ	˜˜QÓ	€BÜ
˜˜aÓ
 €CÜ�sÓ€AØ	�‰�C˜ !§S¡S Ó*€AÜˆc‹
€AØ	�‰�C˜Ó€AØ‡I�Iˆa�„OØ�=‰=˜˜qÓ! QÔ&Ð&Ð&Ø‡I�Iˆa—‘ÔØ�=‰=˜˜qÓ! r¨1¥u f°·±¥^°s¿c¹cµkÕ%AÔAÐAÒAr   c                  óð  € \        R 4      w  r\        R ^4      w  r#\        R ^4      w  rE\        R4      p\        R4      pVP                  V^VP                  ,          4       \	        R4      pVP                  RWP                  ,          WP                  ,          ,           4      p	V	P                  V4      WP                  ,          WP                  ,          ,           8X  g   Q hV	P                  WrVP                  ,          W7P                  ,          ,           4       V	P                  V4      W'P                  ,          W7P                  ,          ,           8X  g   Q hVP                  V^ 4       VP                  V4      ^ 8X  g   Q hV	P                  W†V4      RV ,          V,           VP                  ,          WWP                  ,          ,           RV,          VP                  ,          ,           8X  g   Q hVP                  RRWP                  .4      p\	        R4      pVP                  R^
VP                  ,          4      p	VP                  V^VP                  ,          4       VP                  V4      ^VP                  ,          8X  g   Q hV	P                  W†V4      RV^,          ,          VP                  ,          ^
V,          VP                  ,          ,           8X  g   Q hVP                  V^VP                  ,          4       \	        R4      pVP                  RWP                  ,          WP                  ,          ,           4      p	V	P                  WrVP                  ,          W7P                  ,          ,           4       VP                  V^ 4       V	P                  W†V4      W'P                  ,          W7P                  ,          ,           ^V ,          VP                  ,          ,
          8X  g   Q hR# )	r
   r   r   r   r   r%   Niçÿÿÿéöÿÿÿ)r   r   r   r   r   r   r   Úpos_fromr   Úvelr!   r   r&   r*   r   r   s
             r   Útest_point_funcsr1   G   s®  € Ü˜6Ó"�E€AÜ˜V QÓ'�G€BÜ˜v qÓ)�I€CÜ�sÓ€AÜ�sÓ€AØ‡M�M�!�Q˜Ÿ™•WÔÜˆc‹
€AØ	�‰�C˜ŸS™S� 2¯©¥8Õ+Ó,€AØ�:‰:�a‹=˜A§¡�G b¯3©3¥hÕ.Ô.Ð.Ð.Ø‡I�Iˆa�a—c‘c•˜C§#¡#�IÕ%Ô&Ø�5‰5�‹8�rŸC™C•x #¯©¥)Õ+Ô+Ð+Ð+Ø‡I�Iˆa�„OØ�5‰5�‹8�qŒ=Ðˆ=Ø�=‰=˜˜qÓ! s¨Q¥w°¥}¸¿¹Õ&;¸tÇsÁs½lÕ&JØ # b¥¨A¯C©CÕ/õ'0ô 1ð 1ð 1ð 	
�‰�C˜ !§S¡S Ó*€AÜˆc‹
€AØ	�‰�C˜˜aŸc™c�Ó"€AØ‡I�Iˆa��Q—S‘S•ÔØ�5‰5�‹8�q˜1Ÿ3™3•wÔÐÐØ�=‰=˜˜qÓ! c¨B°­E¥k°Q·S±SÕ%8¸BÀ½HÈÏÉÕ;KÕ%KÔKÐKÐKà‡M�M�!�Q˜Ÿ™•WÔÜˆc‹
€AØ	�‰�C˜ŸS™S� 2¯©¥8Õ+Ó,€AØ‡I�Iˆa�a—c‘c•˜C§#¡#�IÕ%Ô&Ø‡I�Iˆa�„OØ�=‰=˜˜qÓ! R¯#©#¥X°·c±cµ	Õ%9¸AÀ½EÀAÇCÁC½KÕ%GÔGÐGÒGr   c                  ó8  € \        R 4      p \        R4      pVP                  RRWP                  .4      p\	        R4      pVP                  R^
VP                  ,          ^VP                  ,          ,           4      pVP                  V4      ^
VP                  ,          ^VP                  ,          ,           8X  g   Q hVP                  R^
VP                  ,          ^VP                  ,          ,           4      pVP                  V4      ^
VP                  ,          ^VP                  ,          ,           8X  g   Q hVP                  V4      ^
VP                  ,          ^
VP                  ,          ,           ^VP                  ,          ,           ^VP                  ,          ,           8X  g   Q hVP                  V4      RVP                  ,          ^
VP                  ,          ,
          ^VP                  ,          ,
          ^VP                  ,          ,
          8X  g   Q hR# )	r   r   r   r%   r   r   ÚQNr.   )	r   r   r&   r   r   r   r   r/   r   )r   r   r   r   r   r3   s         r   Útest_point_posr4   g   sa  € Ü�sÓ€AÜ�sÓ€AØ	�‰�C˜ !§S¡S Ó*€AÜˆc‹
€AØ	�‰�C˜˜aŸc™c� A¨¯©¥GÕ+Ó,€AØ�:‰:�a‹=˜B §¡�H q¨1¯3©3¥wÕ.Ô.Ð.Ð.Ø	�‰�C˜˜aŸc™c� A¨¯©¥GÕ+Ó,€AØ�:‰:�a‹=˜B §¡�H q¨1¯3©3¥wÕ.Ô.Ð.Ð.Ø�:‰:�a‹=˜B §¡�H r¨A¯C©C¥xÕ/°!°a·c±cµ'Õ9¸AÀÇÁ½GÕCÔCÐCÐCØ�:‰:�a‹=˜C !§#¡#�I¨¨Q¯S©S­Õ0°1°q·s±sµ7Õ:¸QÀÇÁ½WÕDÔDÐDÒDr   c                  ó°  aaa€ \        R 4      p \        R4      o\        R4      o\        R4      w  opSP                  V SSP                  ,          WP
                  ,          ,           4       SP                  V S4      SP                  8X  g   Q hSP                  V SV4      SP                  V P
                  38X  g   Q h\        \        VVV3R l4       R# )r   ÚAÚpzu1, u2c                  ó(   <€ SP                  S S4      # ©N)Úpartial_velocity)r6   r7   Úu1s   €€€r   Ú<lambda>Ú-test_point_partial_velocity.<locals>.<lambda>€   s   ø€ ˜q×1Ñ1°!°RÔ8r   N)	r   r   r   r   r   r   r:   r   Ú
ValueError)r   Úu2r6   r7   r;   s     @@@r   Útest_point_partial_velocityr@   s   s¢   ú€ ä�sÓ€AÜ�sÓ€Aäˆc‹
€Aä˜HÓ%�F€Bˆà‡I�Iˆa��a—c‘c•˜B§¡�HÕ$Ô%à×Ñ˜a Ó$¨¯©Ô+Ð+Ð+Ø×Ñ˜a  RÓ(¨Q¯S©S°!·#±#¨JÔ6Ð6Ð6Ü
Œ:Ö8Ö9r   c                  ó²  aaaa€ \        R 4      w  r\        R4      o\        R4      o\        R4      o\        R4      oSP                  SV SP                  ,          4       \        \        VV3R l4       SP                  SVSP                  ,          4       SP                  S4      VSP                  ,          8X  g   Q h\        \        VV3R l4       R# )úq1 q2r   r   r3   r   c                  ó&   <€ SP                  S 4      # r9   ©r0   )r   r3   s   €€r   r<   Ú test_point_vel.<locals>.<lambda>‰   s   ø€  §¡ a¤r   c                  ó&   <€ SP                  S 4      # r9   rD   )r   r   s   €€r   r<   rE   Œ   s   ø€  §¡ q¤r   N)
r   r   r   r+   r   r   r>   r   r   r0   )Úq1r   r   r   r   r3   s     @@@@r   Útest_point_velrH   ‚   s•   û€ Ü˜GÓ$�F€BÜ�sÓ€AÜ�sÓ€AÜˆc‹
€AÜˆc‹
€AØ‡I�Iˆa��a—c‘c•ÔÜ
Œ:Õ(Ô)Ø‡I�Iˆa��a—c‘c•ÔØ�5‰5�‹8�r˜AŸC™C•xÔÐÐÜ
Œ:Õ)Ö*r   c                  óÐ  aaa€ \         P                  p \        R 4      w  r\        R4      o\        R4      o\        R4      p\        R4      pVP	                  W1SP
                  ,          4       VP                  SVSP                  ,          4       VP                  S4      VP                  V 4      SP
                  ,          VSP                  ,          ,           8X  g   Q h\        R4      pVP	                  W1SP
                  ,          4       \        R4      oSP	                  WRSP                  ,          4       \        \        VV3R l4       \        \        VV3R l4       R	# )
rB   r   r   r   r3   ÚP1ÚP2c                  ó&   <€ SP                  S 4      # r9   rD   )r   rK   s   €€r   r<   Ú%test_auto_point_vel.<locals>.<lambda>œ   ó   ø€  §¡ q¤	r   c                  ó&   <€ SP                  S 4      # r9   rD   ©r   rK   s   €€r   r<   rM   ž   s   ø€ ˜rŸv™v aœyr   N)r   Ú_tr   r   r+   r   r   r   r0   Údiffr   r   r>   )	ÚtrG   r   r   r3   rJ   r   r   rK   s	         @@@r   Útest_auto_point_velrT   Ž   sî   ú€ Ü×Ñ€AÜ˜GÓ$�F€BÜ�sÓ€AÜ�sÓ€AÜˆc‹
€AÜˆc‹
€AØ‡I�Iˆa�a—c‘c•ÔØ‡I�Iˆa��a—c‘c•ÔØ�5‰5�‹8�r—w‘w˜q“z A§C¡CÕ'¨"¨q¯s©s­(Õ2Ô2Ð2Ð2Ü	ˆt‹€BØ‡J�Jˆq�q—s‘s•(ÔÜ	ˆt‹€BØ‡J�Jˆr˜Ÿ™•8ÔÜ
Œ:Õ)Ô*ä
Œ:Õ(Ö)r   c                  óê  € \         P                  p \        R 4      w  r\        R4      p\        R4      pVP	                  W1VP
                  ,          4       \        R4      pVP                  WBVP                  ,          4       VP	                  W1VP                  ,          4       \        R4      pVP                  WQVP                  ,          4       \        R4      pVP                  V^
V,          VP                  ,          4       VP                  V4      ^
VP                  V 4      ,          VP                  ,          WP                  V 4      ,           VP                  ,          ,           8X  g   Q hR# )rB   r   r   rJ   rK   ÚP3N)r   rQ   r   r   r   r   r+   r   r   r0   rR   )rS   rG   r   r   r   rJ   rK   rV   s           r   Ú'test_auto_point_vel_multiple_point_pathrW       sô   € Ü×Ñ€AÜ˜GÓ$�F€BÜ�sÓ€AÜˆc‹
€AØ‡I�Iˆa�a—c‘c•ÔÜ	ˆt‹€BØ‡J�Jˆq�q—s‘s•(ÔØ‡J�Jˆq�q—s‘s•(ÔÜ	ˆt‹€BØ‡J�Jˆr˜Ÿ™•8ÔÜ	ˆt‹€BØ‡J�Jˆr�2˜•7˜QŸS™S•=Ô!Ø�6‰6�!‹9˜˜RŸW™W Q›Z�¨!¯#©#Õ-°·g±g¸a³jµÀAÇCÁCÕ0GÕGÔGÐGÒGr   c                  óŽ  € \         P                  p \        R 4      w  rp\        R4      p\        R4      pVP	                  WCVP
                  ,          4       \        R4      pVP                  WRVP                  ,          4       VP                  V4      VP                  V 4      VP                  ,          W4P
                  ,          ,           8X  g   Q hVP                  V4      W4P
                  ,          8X  g   Q hVP	                  WCVP                  ,          4       VP                  V4      W4P                  ,          8X  g   Q hR# )z
q1, q2, u1r   rJ   N)r   rQ   r   r   r   r   r+   r   r0   rR   r   )rS   rG   r   r;   r   r   rJ   s          r   Útest_auto_vel_dont_overwriterY   ¯   sÝ   € Ü×Ñ€AÜ Ó-�J€BˆBÜ�sÓ€AÜˆd‹€AØ‡I�Iˆa�a—c‘c•ÔÜ	ˆt‹€BØ‡J�Jˆq�q—s‘s•(ÔØ�6‰6�!‹9˜Ÿ™ ›
 Q§S¡SÕ(¨2·±­8Õ3Ô3Ð3Ð3Ø�5‰5�‹8�rŸC™C•xÔÐÐØ‡J�Jˆq�q—s‘s•(ÔØ�6‰6�!‹9˜ŸS™S�Ô Ð Ò r   c                  óP  aaa€ \        R 4      w  r\        R4      o\        R4      o\        R4      pVP                  SV SP                  ,          4       \        R4      oSP                  VSP                  4       \        \        VV3R l4       \        \        VV3R l4       R# )rB   r   ÚSr   rJ   c                  ó&   <€ SP                  S 4      # r9   rD   )r   rJ   s   €€r   r<   ÚRtest_auto_point_vel_if_tree_has_vel_but_inappropriate_pos_vector.<locals>.<lambda>Ä   rN   r   c                  ó&   <€ S P                  S4      # r9   rD   )rJ   r[   s   €€r   r<   r]   Å   rN   r   N)	r   r   r   r   r   r+   r   r   r>   )rG   r   r   r   rJ   r[   s      @@@r   Ú@test_auto_point_vel_if_tree_has_vel_but_inappropriate_pos_vectorr_   ¼   ss   ú€ Ü˜GÓ$�F€BÜ�sÓ€AÜ�sÓ€AÜˆc‹
€AØ‡I�Iˆa��a—c‘c•ÔÜ	ˆt‹€BØ‡J�Jˆq�!—#‘#ÔÜ
Œ:Õ)Ô*Ü
Œ:Õ)Ö*r   c            
      ó–  € \         P                  p \        R 4      w  rr4\        R4      p\        R4      pVP	                  WSVP
                  ,          4       \        R4      pVP                  WbVP                  ,          4       VP	                  WQVP                  ,          4       \        R4      pVP                  WqVP                  ,          4       \        R4      p	V	P                  V^
V,          VP                  ,          4       \        R4      p
V
P                  W‘VP
                  ,          4       \        R4      pVP	                  WTVP                  ,          4       \        R4      pVP                  W²VP                  ,          4       V
P                  WÁVP
                  ,          W%P                  ,          ,           4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R	4       \        \        4      ;_uu_ 4        V
P                  V4      VP                  V 4      VP
                  ,          WEP                  ,          ,           ^VP                  V 4      ,          VP                  ,          ,           8X  g   Q h R
R
R
4       R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     R
# ; i)zq1 q2 u1 u2r   r   rJ   rK   rV   ÚP4r   ÚO1ÚerrorN)r   rQ   r   r   r   r   r+   r   r   ÚwarningsÚcatch_warningsÚsimplefilterr   ÚUserWarningr0   rR   )rS   rG   r   r;   r?   r   r   rJ   rK   rV   ra   r   rb   s                r   Ú!test_auto_point_vel_shortest_pathrh   Ç   s½  € Ü×Ñ€AÜ# MÓ2�N€BˆBÜ�sÓ€AÜˆc‹
€AØ‡I�Iˆa�a—c‘c•ÔÜ	ˆt‹€BØ‡J�Jˆq�q—s‘s•(ÔØ‡J�Jˆq�q—s‘s•(ÔÜ	ˆt‹€BØ‡J�Jˆr˜Ÿ™•8ÔÜ	ˆt‹€BØ‡J�Jˆr�2˜•7˜QŸS™S•=Ô!Ü	ˆt‹€BØ‡J�Jˆr˜Ÿ™•8ÔÜˆc‹
€AØ‡I�Iˆa�a—c‘c•ÔÜ	ˆt‹€BØ‡J�Jˆq�q—s‘s•(ÔØ‡J�Jˆr˜Ÿ™•8˜b§3¡3�hÕ&Ô'Ü	×	 Ò	 ×	"Õ	"Ü×Ò˜gÔ&Üœ[×)Õ)Ø—6‘6˜!“9 §¡¨£
¨Q¯S©SÕ 0°2¿¹µ8Õ ;¸aÀ"Ç'Á'È!Ã*½nÈqÏsÉsÕ>RÕ RÔRÐRÑR÷ *÷ 
#Ñ	"ç)×)ú÷ 
#×	"Ð	"ús%   Ç%.J7ÈA>J$	ÊJ7Ê$J4Ê/J7Ê7K	c                  óà  aa€ \         P                  p \        R 4      w  rr4\        R4      o\        R4      p\        R4      pVP	                  SVSP
                  ,          4       \        R4      oSP                  WbSP
                  ,          W5P                  ,          ,           4       \        \        VV3R l4       SP                  VRWP
                  34       SP                  S4      WBP                  V 4      ,           SP
                  ,          VP                  V 4      VP                  ,          ,           W1P                  V 4      ,          VP                  ,          ,
          8X  g   Q hR# )z	q q1 q2 ur   r   r   r   c                  ó&   <€ SP                  S 4      # r9   rD   )r   r   s   €€r   r<   Ú6test_auto_point_vel_connected_frames.<locals>.<lambda>é   s   ø€ ˜qŸu™u Qœxr   r%   N)r   rQ   r   r   r   r   r+   r   r   r>   Úorientr0   rR   r   )	rS   r   rG   r   Úur   r   r   r   s	          @@r   Ú$test_auto_point_vel_connected_framesrn   à   sò   ù€ Ü×Ñ€AÜ! +Ó.�L€Aˆ2Ü�sÓ€AÜ�sÓ€AÜˆc‹
€AØ‡I�Iˆa��Q—S‘S•ÔÜˆc‹
€AØ‡I�Iˆa�a—c‘c•˜B§¡�HÕ$Ô%Ü
Œ:Õ'Ô(Ø‡H�HˆQ�˜ŸC™C˜Ô!Ø�5‰5�‹8˜ŸG™G A›J�¨!¯#©#Õ-°·±¸³
¸Q¿S¹SÕ0@Õ@À2ÏÉÈqË	Å>ÐTU×TWÑTWÕCWÕWÔWÐWÒWr   c                  óú  aa€ \        R 4      w  r\        R4      o\        R4      o\        R4      p\        R4      p\        R4      pVP                  SVSP                  ,          4       VP                  SVSP
                  ,          4       VP                  SVSP                  ,          4       SP                  W SP                  ,          4       SP                  W0SP
                  ,          4       SP                  W@SP                  ,          4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R4       \        \        VV3R l4       RRR4       R#   + '       g   i     R# ; i)	zq ur   r   r   r3   ÚRrc   c                  ó&   <€ SP                  S 4      # r9   rD   ©r   r   s   €€r   r<   ÚCtest_auto_point_vel_multiple_paths_warning_arises.<locals>.<lambda>ü   s   ø€  A§E¡E¨!¤Hr   N)r   r   r   r   r   r   r   r+   rd   re   rf   r   rg   )r   rm   r   r3   rp   r   r   s        @@r   Ú1test_auto_point_vel_multiple_paths_warning_arisesrt   í   sò   ù€ Ü˜%Ó �D€AÜ�sÓ€AÜˆc‹
€AÜˆc‹
€AÜˆc‹
€AÜˆc‹
€AØ‡I�Iˆa��Q—S‘S•ÔØ‡I�Iˆa��A—C‘C•ÔØ‡I�Iˆa��Q—S‘S•ÔØ‡I�Iˆa�Q—S‘S•ÔØ‡I�Iˆa�Q—S‘S•ÔØ‡I�Iˆa�Q—S‘S•ÔÜ	×	 Ò	 ×	"Õ	"Ü×Ò˜gÔ&ÜŒ{Õ,Ô-÷ 
#×	"×	"Ò	"ús   Ä3,E)Å)E:	c                  ó|  aa€ \        R 4      p \        R4      p\        R4      o\        R4      p\        R4      oV P                  SSP                  4       VP	                  V SP                  4       SP	                  VSP
                  4       VP	                  SSP                  4       VP	                  VSP                  SP
                  ,           4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R4       \        \        VV3R l4       RRR4       R#   + '       g   i     R# ; i)r   rJ   rK   rV   r   rc   c                  ó&   <€ SP                  S 4      # r9   rD   rP   s   €€r   r<   Ú5test_auto_vel_cyclic_warning_arises.<locals>.<lambda>  s   ø€  B§F¡F¨1¤Ir   N)r   r   r   r   r+   r   r   rd   re   rf   r   rg   )r   rJ   rV   r   rK   s      @@r   Ú#test_auto_vel_cyclic_warning_arisesrx   þ   sÊ   ù€ Üˆc‹
€AÜ	ˆt‹€BÜ	ˆt‹€BÜ	ˆt‹€BÜ�sÓ€AØ‡I�Iˆa�—‘ÔØ‡J�Jˆq�!—#‘#ÔØ‡J�Jˆr�1—3‘3ÔØ‡J�Jˆr�1—3‘3ÔØ‡J�Jˆr�1—3‘3˜Ÿ™•9ÔÜ	×	 Ò	 ×	"Õ	"Ü×Ò˜gÔ&ÜŒ{Õ-Ô.÷ 
#×	"×	"Ò	"ús   Ã4,D*Ä*D;	c                  ó(  € \        R 4      p \        R4      p\        R4      p\        R4      p\        R4      pV P                  WDP                  4       VP	                  WP                  4       VP	                  WP
                  4       VP	                  W$P                  4       VP	                  W4P                  VP
                  ,           4       \        P                  ! RR7      ;_uu_ 4       p\        P                  ! R4       VP                  V4       \        VR,          P                  4      P                  RR	4      p\        VR,          P                  \         4      '       g   Q hR
V9   g   Q h RRR4       R#   + '       g   i     R# ; i)r   rJ   rK   rV   r   T©ÚrecordÚalwaysÚ
Ú z€Kinematic loops are defined among the positions of points. This is likely not desired and may cause errors in your calculations.Néÿÿÿÿ)r   r   r   r   r+   r   r   rd   re   rf   r0   ÚstrÚmessageÚreplaceÚ
issubclassÚcategoryrg   )r   rJ   rK   rV   r   ÚwÚmsgs          r   Ú test_auto_vel_cyclic_warning_msgr‡     s  € Üˆc‹
€AÜ	ˆt‹€BÜ	ˆt‹€BÜ	ˆt‹€BÜ�sÓ€AØ‡I�Iˆa—‘ÔØ‡J�Jˆq—#‘#ÔØ‡J�Jˆr—3‘3ÔØ‡J�Jˆr—3‘3ÔØ‡J�Jˆr—3‘3˜Ÿ™•9ÔÜ	×	 Ò	 ¨$×	/Õ	/°1Ü×Ò˜hÔ'Ø
�‰ˆqŒ	Ü�!�B•%—-‘-Ó ×(Ñ(¨¨sÓ3ˆÜ˜!˜B�%Ÿ.™.¬+×6Ò6Ð6Ð6ð Rð  VYô  Yð  	Yñ  Y÷ 
0×	/×	/Ò	/ús   Ã/BF Æ F	c                  óÞ  € \        R 4      p \        R4      p\        R4      p\        R4      pVP                  W P                  4       VP                  W P                  4       VP                  W P                  4       VP                  W0P                  4       \        P                  ! RR7      ;_uu_ 4       p\        P                  ! R4       VP                  V 4       \        VR,          P                  4      P                  RR4      p\        VR,          P                  \         4      '       g   Q hR	V9   g   Q hR
V9   g   Q hRV9   g   Q h RRR4       R#   + '       g   i     R# ; i)r   r   r   r3   Trz   r|   r}   r~   ÚVelocityz'automatically calculated based on pointzfVelocities from these points are not necessarily the same. This may cause errors in your calculations.Nr   )r   r   r   r   r   r+   r   rd   re   rf   r0   r€   r�   r‚   rƒ   r„   rg   )r   r   r   r3   r…   r†   s         r   Ú'test_auto_vel_multiple_path_warning_msgrŠ     s  € Ü�sÓ€AÜˆc‹
€AÜˆc‹
€AÜˆc‹
€AØ‡I�Iˆa—‘ÔØ‡I�Iˆa—‘ÔØ‡I�Iˆa—‘ÔØ‡I�Iˆa—‘ÔÜ	×	 Ò	 ¨$×	/Õ	/°1Ü×Ò˜hÔ'Ø	�‰ˆaŒÜ�!�B•%—-‘-Ó ×(Ñ(¨¨sÓ3ˆÜ˜!˜B�%Ÿ.™.¬+×6Ò6Ð6Ð6Ø˜SÔ Ð Ð Ø8¸CÔ?Ð?Ð?ØwÐ{~Ô~Ð~Ñ~÷ 
0×	/×	/Ò	/ús   Â8BEÅE,	c                  ó0  € \        R 4      w  r\        R^4      w  r#\        R4      p\        R4      p\        R4      pVP                  WDP                  V 4       VP	                  WBVP                  ,          4       VP                  WUP                  V4       VP	                  WSVP                  ,          4       \        R4      pVP                  V^ 4       \        R4      pVP                  WuP                  4       VP                  V^ 4       VP                  V^ 4       \        R4      p	V	P                  W†P                  4       V	P                  V^ 4       V	P                  P                  4       p
V	P                  V4      W%P                  ,          W#,           VP                  ,          ,           8X  g   Q hW©n	        V	P                  W…V4       V	P                  V4      W%P                  ,          W#,           VP                  ,          ,           8X  g   Q hR# )	úq1:3zu1:3r6   r   ÚCÚAmÚBmÚCmN)r   r   Úorient_axisr   r   r   r   r+   r   Ú	_vel_dictÚcopyr0   r   r'   )rG   r   r;   r?   r6   r   r�   rŽ   r�   r�   Útemps              r   Útest_auto_vel_derivativer•   1  st  € Ü˜FÓ#�F€BÜ˜F AÓ&�F€BÜ�sÓ€AÜ�sÓ€AÜ�sÓ€AØ‡M�M�!—S‘S˜"ÔØ‡M�M�!˜!Ÿ#™#•XÔØ‡M�M�!—S‘S˜"ÔØ‡M�M�!˜!Ÿ#™#•XÔä	ˆt‹€BØ‡J�Jˆq�!ÔÜ	ˆt‹€BØ‡J�Jˆr—3‘3ÔØ‡J�Jˆq�!ÔØ‡J�Jˆq�!ÔÜ	ˆt‹€BØ‡J�Jˆr—3‘3ÔØ‡J�Jˆq�!ÔØ�<‰<×ÑÓ€DØ�6‰6�!‹9˜Ÿc™c� R¥W°·±¥OÕ3Ô4Ð4Ð4Ø„LØ‡N�N�2˜!ÔØ�6‰6�!‹9˜Ÿc™c� R¥W°·±¥OÕ3Ô4Ð4Ò4r   c                  ó¨   € \        R 4      p \        R4      pVP                  V ^ 4       VP                  V 4      ^ V P                  ,          8X  g   Q hR# )r   r   N)r   r   r   Úaccr   rr   s     r   Útest_auto_point_acc_zero_velr˜   K  s@   € Ü�sÓ€AÜˆc‹
€AØ‡I�Iˆa�„OØ�5‰5�‹8�q˜1Ÿ3™3•wÔÐÒr   c                  óö  € \         P                  p \        R 4      p\        R4      p\        R4      pVP                  W"P                  V4       \        R4      pVP                  V^ 4       \        R4      pVP                  WCP                  4       VP                  V4      VP                  V 4      ^,          ) VP                  ,          VP                  V ^4      VP                  ,          ,           8X  g   Q hR# )rG   r   r6   r   r   N)r   rQ   r   r‘   r   r   r   r+   r   r—   rR   r   )rS   rG   r   r6   r   r   s         r   Útest_auto_point_acc_compute_velrš   Q  s²   € Ü×Ñ€AÜ	˜Ó	€BÜ�sÓ€AÜ�sÓ€AØ‡M�M�!—S‘S˜"Ôäˆc‹
€AØ‡I�Iˆa�„OÜˆc‹
€AØ‡I�Iˆa—‘ÔØ�5‰5�‹8˜Ÿ™ ›
 a�Ð'¨!¯#©#Õ-°·±¸¸1³ÀÇÁÕ0CÕCÔCÐCÒCr   c                  ó  € \        R 4      w  r\        R ^4      w  r#\        R ^4      w  rE\        R4      p\        R4      p\        R4      pVP                  WfP                  V 4       VP                  WwP                  V4       \	        R4      p	V	P                  V^ 4       \	        R4      p
V
P                  W—P                  4       V
P                  V^ 4       V
P                  V^ 4       \	        R4      pVP                  W¨P                  4       VP                  V^ 4       V
P                  P                  4       VP                  P                  4       rÜV
P                  P                  4       VP                  P                  4       rþV^,          ) VP                  ,          WGP                  ,          ,           W#,           ^,          VP                  ,          ,
          WE,           VP                  ,          ,           pVP                  V4      V8X  g   Q hWÍuV
n        Vn        WïuV
n
        Vn
        V
P                  W–V4       VP                  W¦V4       V
P                  W–V4       VP                  W¦V4      V8X  g   Q hR# )rŒ   r6   r   r�   rŽ   r�   r�   N)r   r   r‘   r   r   r   r+   r   r’   r“   Ú	_acc_dictr   r—   r'   r*   )rG   r   r;   r?   Úv1Úv2r6   r   r�   rŽ   r�   r�   ÚBm_vel_dictÚCm_vel_dictÚBm_acc_dictÚCm_acc_dictÚchecks                    r   Útest_auto_acc_derivativer¤   ^  sÛ  € ô ˜FÓ#�F€BÜ˜F AÓ&�F€BÜ˜F AÓ&�F€BÜ�sÓ€AÜ�sÓ€AÜ�sÓ€AØ‡M�M�!—S‘S˜"ÔØ‡M�M�!—S‘S˜"Ôä	ˆt‹€BØ‡J�Jˆq�!ÔÜ	ˆt‹€BØ‡J�Jˆr—3‘3ÔØ‡J�Jˆq�!ÔØ‡J�Jˆq�!ÔÜ	ˆt‹€BØ‡J�Jˆr—3‘3ÔØ‡J�Jˆq�!Ôð  "Ÿ|™|×0Ñ0Ó2°B·L±L×4EÑ4EÓ4G�Ø!Ÿ|™|×0Ñ0Ó2°B·L±L×4EÑ4EÓ4G�Ø�1�WˆH�q—s‘s�N˜R§#¡#�XÕ%¨­°Q­¸¿¹Õ(<Õ<ÀÅÈ1Ï3É3½ÕN€EØ�6‰6�!‹9˜ÔÐÐØ!,Ð€B„L�"”,Ø!,Ð€B„L�"”,Ø‡N�N�2˜!ÔØ‡N�N�2˜!ÔØ‡N�N�2˜!ÔØ�>‰>˜" Ó# uÔ,Ð,Ò,r   )Úsympy.physics.vectorr   r   r   Úsympy.testing.pytestr   r   rd   r   r"   r(   r,   r1   r4   r@   rH   rT   rW   rY   r_   rh   rn   rt   rx   r‡   rŠ   r•   r˜   rš   r¤   © r   r   Ú<module>r¨      s‰   ðß FÑ Fß 8Û ò:ò$+ò&4òBòHò@
Eò:ò
+ò*ò$Hò!ò	+òSò2Xò.ò"/òYò$ò$5ò4òDô -r   