U
    L?h‡R  ã                   @   sZ  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZ d d	lmZ d d
lmZ edƒ\Z Z!Z"Z#Z$edƒZ%e% &dde e%j'g¡Z(e( &dde!e(j)g¡Z*e* &dde"e*j+g¡Z,dd„ Z-dd„ Z.dd„ Z/dd„ Z0dd„ Z1dd„ Z2dd„ Z3dd „ Z4d!d"„ Z5d#d$„ Z6d%d&„ Z7d'S )(é    )Úpi)ÚS)Úsymbols)Úsqrt)ÚcosÚsin)ÚIntegral)ÚDyadicÚPointÚReferenceFrameÚVector)	ÚcrossÚdotÚexpressÚtime_derivativeÚkinematic_equationsÚouterÚpartial_velocityÚget_motion_paramsÚdynamicsymbols)Útrigsimp)Úraiseszq1 q2 q3 q4 q5ÚNÚAÚAxisÚBÚCc                   C   sÊ   t tjtjƒdkst‚t tjtjƒdks,t‚t tjtjƒdksBt‚t tjtjƒdksXt‚t tjtjƒdksnt‚t tjtjƒdks„t‚t tjtjƒdksšt‚t tjtjƒdks°t‚t tjtjƒdksÆt‚d S )Né   r   )r   r   ÚxÚAssertionErrorÚyÚz© r"   r"   ú[/var/www/html/venv/lib/python3.8/site-packages/sympy/physics/vector/tests/test_functions.pyÚtest_dot   s    r$   c                   C   sd  t tjtjƒttƒkst‚t tjtjƒttƒ ks6t‚t tjtj	ƒdksLt‚t tjtjƒttƒksft‚t tjtjƒttƒks€t‚t tjtj	ƒdks–t‚t tj	tjƒdks¬t‚t tj	tjƒdksÂt‚t tj	tj	ƒdksØt‚t
t tjtjtj ƒƒtdƒtttd  ƒ kst‚t
t tjtjtj ƒƒt
t tjtj tjƒƒksDt‚t tjtjƒttƒks`t‚t tjtjƒdksxt‚t tjtj	ƒttƒks”t‚t tjtjƒttƒttƒ ks¸t‚t tjtjƒttƒksÔt‚t tjtj	ƒttƒ ttƒ ksút‚t tj	tjƒttƒ ttƒ ks t‚t tj	tjƒttƒks<t‚t tj	tj	ƒttƒttƒ ks`t‚d S )Nr   r   é   é   )r   r   r   r   r   Úq1r   r    r   r!   r   r   r   r   Úq3Úq2r"   r"   r"   r#   Útest_dot_different_frames%   s(    66$&&r*   c                   C   sÜ   t tjtjƒdkst‚t tjtjƒtjks.t‚t tjtjƒtj ksHt‚t tjtjƒtj ksbt‚t tjtjƒdksxt‚t tjtjƒtjkst‚t tjtjƒtjks¨t‚t tjtjƒtj ksÂt‚t tjtjƒdksØt‚d S ©Nr   )r   r   r   r   r    r!   r"   r"   r"   r#   Ú
test_cross>   s    r,   c                   C   sÚ  t tjtjƒttƒtj ks t‚t tjtjƒt	tƒtj ks@t‚t tjtjƒttƒ tj t	tƒtj  kspt‚t tjtjƒt	tƒ tj ks’t‚t tjtjƒttƒtj ks²t‚t tjtjƒt	tƒtj ttƒtj  ksàt‚t tjtjƒtjksøt‚t tjtjƒtj kst‚t tjtjƒdks,t‚t tjtjƒttƒtj ksNt‚t tjtjƒt	tƒtj kspt‚t tjtjtj ƒttƒtj t	tƒtj  ks¦t‚t tjtj tjƒttƒ tj t	tƒtj  ksÞt‚t tjt
jƒttƒt
j ks t‚t tjt
jƒttƒ t
j t	tƒt
j  ks2t‚t tjt
jƒt	tƒ t
j ksVt‚t t
jtjƒttƒ t
j kszt‚t t
jtjƒ t
¡ ¡ ttƒt
j t	tƒt
j  ks´t‚t t
jtjƒt	tƒt
j ksÖt‚d S r+   )r   r   r   r   r   r'   r!   r   r    r   r   r(   r   Úsimplifyr"   r"   r"   r#   Útest_cross_different_framesL   s&      0" .""68"2$$:r.   c                     s¢  t dƒ} | j| j ‰ˆˆB ‰ tdƒ‰tdƒ‰ˆ ˆ @ tˆ ˆ ƒksBt‚ˆ ˆ@ tˆ ˆƒksXt‚ˆˆ @ tˆˆ ƒksnt‚ˆ ˆ@ tˆ ˆƒks„t‚ˆˆ @ tˆˆ ƒksšt‚ˆ ˆ@ tˆ ˆƒks°t‚ˆˆ @ tˆˆ ƒksÆt‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ˆˆ@ tˆˆƒks&t‚ˆˆ@ tˆˆƒks>t‚ˆˆ@ tˆˆƒksVt‚tt‡fdd„ƒ tt‡fd	d„ƒ tt‡fd
d„ƒ tt‡fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ ˆ ˆA t	ˆ ˆƒksðt‚ˆˆ A t	ˆˆ ƒkst‚ˆ ˆA t	ˆ ˆƒks t‚ˆˆ A t	ˆˆ ƒks8t‚ˆˆ A t	ˆˆ ƒksPt‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ˆˆA t	ˆˆƒks°t‚ˆˆA t	ˆˆƒksÈt‚ˆˆA t	ˆˆƒksàt‚tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ tt‡ fd d„ƒ tt‡ fd!d„ƒ tt‡ fd"d„ƒ ˆˆB t
ˆˆƒks&t‚ˆˆB t
ˆˆƒks>t‚ˆˆB t
ˆˆƒksVt‚tt‡fd#d„ƒ tt‡fd$d„ƒ tt‡fd%d„ƒ tt‡fd&d„ƒ d'S )(zUTest that the output of dot, cross, outer functions match
    operator behavior.
    r   r   c                      s   t ˆ tjƒS ©N©r   r   ÚZeror"   ©Údr"   r#   Ú<lambda>u   ó    z%test_operator_match.<locals>.<lambda>c                      s   t tjˆ ƒS r/   r0   r"   r2   r"   r#   r4   v   r5   c                      s
   t ˆ dƒS r+   ©r   r"   r2   r"   r#   r4   w   r5   c                      s
   t dˆ ƒS r+   r6   r"   r2   r"   r#   r4   x   r5   c                      s   t ˆ tjƒS r/   r0   r"   ©Úvr"   r#   r4   |   r5   c                      s   t tjˆ ƒS r/   r0   r"   r7   r"   r#   r4   }   r5   c                      s
   t ˆ dƒS r+   r6   r"   r7   r"   r#   r4   ~   r5   c                      s
   t dˆ ƒS r+   r6   r"   r7   r"   r#   r4      r5   c                      s
   t ˆ ˆ ƒS r/   ©r   r"   r2   r"   r#   r4   ‚   r5   c                      s
   t ˆ ˆƒS r/   r9   r"   ©r3   Úzerodr"   r#   r4   ƒ   r5   c                      s
   t ˆˆ ƒS r/   r9   r"   r:   r"   r#   r4   „   r5   c                      s   t ˆ tjƒS r/   ©r   r   r1   r"   r2   r"   r#   r4   Š   r5   c                      s   t tjˆ ƒS r/   r<   r"   r2   r"   r#   r4   ‹   r5   c                      s
   t ˆ dƒS r+   r9   r"   r2   r"   r#   r4   Œ   r5   c                      s
   t dˆ ƒS r+   r9   r"   r2   r"   r#   r4      r5   c                      s   t ˆ tjƒS r/   r<   r"   r7   r"   r#   r4   ‘   r5   c                      s   t tjˆ ƒS r/   r<   r"   r7   r"   r#   r4   ’   r5   c                      s
   t ˆ dƒS r+   r9   r"   r7   r"   r#   r4   “   r5   c                      s
   t dˆ ƒS r+   r9   r"   r7   r"   r#   r4   ”   r5   c                      s
   t ˆ ˆ ƒS r/   ©r   r"   r2   r"   r#   r4   —   r5   c                      s
   t ˆ ˆƒS r/   r=   r"   r:   r"   r#   r4   ˜   r5   c                      s
   t ˆˆ ƒS r/   r=   r"   r:   r"   r#   r4   ™   r5   c                      s
   t ˆ ˆƒS r/   r=   r"   ©r3   r8   r"   r#   r4   š   r5   c                      s
   t ˆˆ ƒS r/   r=   r"   r>   r"   r#   r4   ›   r5   c                      s
   t ˆ ˆƒS r/   r=   r"   ©r3   Úzerovr"   r#   r4   œ   r5   c                      s
   t ˆˆ ƒS r/   r=   r"   r?   r"   r#   r4      r5   c                      s
   t ˆˆ ƒS r/   r=   r"   r?   r"   r#   r4   ž   r5   c                      s   t ˆ tjƒS r/   ©r   r   r1   r"   r2   r"   r#   r4   Ÿ   r5   c                      s   t tjˆ ƒS r/   rA   r"   r2   r"   r#   r4       r5   c                      s
   t ˆ dƒS r+   r=   r"   r2   r"   r#   r4   ¡   r5   c                      s
   t dˆ ƒS r+   r=   r"   r2   r"   r#   r4   ¢   r5   c                      s   t ˆ tjƒS r/   rA   r"   r7   r"   r#   r4   ¦   r5   c                      s   t tjˆ ƒS r/   rA   r"   r7   r"   r#   r4   §   r5   c                      s
   t ˆ dƒS r+   r=   r"   r7   r"   r#   r4   ¨   r5   c                      s
   t dˆ ƒS r+   r=   r"   r7   r"   r#   r4   ©   r5   N)r   r   r    r   r	   r   r   r   Ú	TypeErrorr   r   )r   r"   )r3   r8   r;   r@   r#   Útest_operator_matchc   sz    rC   c                   C   sR  t tdƒtƒtdƒkst‚t tjtƒtjks0t‚t tjtƒt	t
ƒtj tt
ƒtj  ks\t‚t tjtƒttƒtt
ƒ tj t	tƒtj  ttƒt	t
ƒ tj  ks¦t‚t tjtƒtt
ƒ t	tƒ tj ttƒtj  t	tƒt	t
ƒ tj  ksòt‚t tjtƒt	tƒtj ttƒtj  ks t‚t tjtƒttƒ tj t	tƒtj  ksPt‚t tjtƒtjksht‚t tjtƒtjks€t‚t tjtƒtjks˜t‚t tjtƒtjks°t‚t tjtƒtjksÈt‚t tjtƒt	tƒtj ttƒtj  ksöt‚t tjtƒttƒtj t	tƒtj  ks$t‚t tjtƒt	t
ƒtj tt
ƒtj  ksRt‚t tjtƒttƒtt
ƒ tj t	tƒtj  ttƒt	t
ƒ tj  ksžt‚t tjtƒtt
ƒ t	tƒ tj ttƒtj  t	tƒt	t
ƒ tj  ksìt‚t tjtƒtjkst‚t tjtƒtjkst‚t tjtƒtjks4t‚t tjtƒt	tƒtj ttƒtj  ksbt‚t tjtƒttƒtj t	tƒtj  kst‚t tjtƒtjks¨t‚t tjtƒt	tƒtj ttƒt	tƒ tj  ttƒttƒ tj  ksôt‚t tjtƒttƒtj t	tƒt	tƒ tj  ttƒt	tƒ tj  ks@t‚t tjtƒttƒtj t	tƒtj  ksnt‚t tjtƒt	tƒt	t
ƒ ttƒttƒ tt
ƒ  tj ttƒt	tƒ tj  tt
ƒt	tƒ ttƒttƒ t	t
ƒ  tj  ksòt‚t tjtƒttƒt	t
ƒ ttƒtt
ƒ t	tƒ  tj t	tƒt	tƒ tj  ttƒtt
ƒ ttƒt	tƒ t	t
ƒ  tj  ksvt‚t tjtƒtt
ƒ t	tƒ tj ttƒtj  t	tƒt	t
ƒ tj  ksÄt‚t tjtƒt	tƒtj ttƒtj  ksòt‚t tjtƒttƒ tj t	tƒtj  ks"t‚t tjtƒtjks:t‚t tjtƒtjksRt‚t tjtƒtjksjt‚t tjtƒtjks‚t‚t tjtƒtjksšt‚t tjtƒt	tƒtj ttƒtj  ksÈt‚t tjtƒttƒtj t	tƒtj  ksöt‚t tjtƒt	t
ƒtj tt
ƒtj  ks$t‚t tjtƒttƒtt
ƒ tj t	tƒtj  ttƒt	t
ƒ tj  kspt‚t tjtƒtt
ƒ t	tƒ tj ttƒtj  t	tƒt	t
ƒ tj  ks¾t‚t tjtƒt	tƒtj ttƒtj  ksìt‚t tjtƒttƒ t	tƒ tj t	tƒt	tƒ tj  ttƒtj  ks:t‚t tjtƒttƒttƒ tj ttƒt	tƒ tj  t	tƒtj  ks†t‚t tjtƒtjksžt‚t tjtƒt	tƒtj ttƒtj  ksÌt‚t tjtƒttƒ tj t	tƒtj  ksüt‚t tjtƒtjk	st‚t tjtƒtjk	s,t‚t tjtƒtjk	sDt‚t tjtƒt	t
ƒtj tt
ƒtj  k	srt‚t tjtƒtjk	sŠt‚t tjtƒtt
ƒ tj t	t
ƒtj  k	sºt‚t tjtƒt	tƒt	t
ƒ ttƒttƒ tt
ƒ  tj ttƒt	t
ƒ ttƒtt
ƒ t	tƒ  tj  tt
ƒt	tƒ tj  k
s>t‚t tjtƒttƒ t	tƒ tj t	tƒt	tƒ tj  ttƒtj  k
sŒt‚t tjtƒtt
ƒt	tƒ ttƒttƒ t	t
ƒ  tj ttƒtt
ƒ ttƒt	tƒ t	t
ƒ  tj  t	tƒt	t
ƒ tj  kst‚t tjtƒt	t
ƒtj ttƒtt
ƒ tj  tt
ƒt	tƒ tj  ks\t‚t tjtƒt	tƒtj ttƒtj  ksŠt‚t tjtƒtt
ƒtj ttƒt	t
ƒ tj  t	tƒt	t
ƒ tj  ksÖt‚t tjtƒt	t
ƒtj tt
ƒtj  kst‚t tjtƒtjkst‚t tjtƒtt
ƒtj t	t
ƒtj  ksJt‚t tjtƒtjksbt‚t tjtƒtjkszt‚t tjtƒtj  kržtjks¤n t‚tjt t	tƒtj ttƒtj  tƒ ¡ ksÖt‚tjt ttƒtj t	tƒtj  tƒ ¡ kst‚tjt t	tƒtj ttƒt	tƒ tj  ttƒttƒ tj  tƒ ¡ ksXt‚tjt ttƒtj t	tƒt	tƒ tj  ttƒt	tƒ tj  tƒ ¡ ks¨t‚tjt ttƒtj t	tƒtj  tƒ ¡ ksÚt‚tjt t	tƒtj ttƒtj  tƒ ¡ kst‚tjt ttƒ tj t	tƒtj  tƒ ¡ ks@t‚tjt t	tƒtj ttƒtj  tƒ ¡ ksrt‚tjt ttƒtj t	tƒtj  tƒ ¡ ks¤t‚tjt t	t
ƒtj tt
ƒtj  tƒ ¡ ksÖt‚tjt ttƒtt
ƒ tj t	tƒtj  ttƒt	t
ƒ tj  tƒ ¡ ks&t‚tjt tt
ƒ t	tƒ tj ttƒtj  t	tƒt	t
ƒ tj  tƒ ¡ ksxt‚tjt t	tƒtj ttƒtj  tƒ ¡ ksªt‚tjt ttƒ t	tƒ tj t	tƒt	tƒ tj  ttƒtj  tƒ ¡ ksüt‚tjt ttƒttƒ tj ttƒt	tƒ tj  t	tƒtj  tƒ ¡ ksLt‚tjt t	tƒtj ttƒtj  tƒ ¡ ks~t‚tjt ttƒ tj t	tƒtj  tƒ ¡ ks²t‚tjt t	t
ƒtj tt
ƒtj  tƒ ¡ ksät‚tjt tt
ƒ tj t	t
ƒtj  tƒ ¡ kst‚tjt t	t
ƒtj ttƒtt
ƒ tj  tt
ƒt	tƒ tj  tƒ ¡ ksht‚tjt t	tƒtj ttƒtj  tƒ ¡ ksšt‚tjt tt
ƒtj ttƒt	t
ƒ tj  t	tƒt	t
ƒ tj  tƒ ¡ ksêt‚tjt t	t
ƒtj tt
ƒtj  tƒ ¡ kst‚tjt tt
ƒtj t	t
ƒtj  tƒ ¡ ksNt‚d S r+   )r   r   r   r   r   r1   r   r   r   r   r(   r   r!   r    r)   r'   r   r-   r"   r"   r"   r#   Útest_express¬   sj   ,,ÿ
.ÿ
.0...,ÿ.ÿ..,ÿ,ÿ.
,ÿ,þÿ

,ÿ,þÿ
.ÿ.0...,ÿ.ÿ. ÿÿÿÿ.0.0
,,ÿþÿ

:ÿ

,,ÿþÿ
,ÿ.,ÿ..*22(ÿÿ(ÿÿ224222(ÿÿ*ÿÿ2ÿÿÿÿÿÿ2424(ÿÿ2(ÿÿ2rD   c                     sÒ  t dƒ} tdƒ}tddƒ}|  dd|| jg¡‰ | j| jB }t|ˆ ƒ| | j| jB  | | j| jB   kslt‚| jˆ jB }t|| ƒ| | jˆ jB  ks˜t‚t|ˆ ƒ| | jˆ jB  ks¸t‚| jˆ jB }t|| ƒ|| jˆ jB  ksât‚t|ˆ ƒ| | jˆ jB  kst‚| jˆ jB }t|| ƒdks$t‚t|ˆ ƒ| | jˆ jB  ksFt‚tdƒ\}}}	}
tddƒ\}}}}tddƒ\}}}}ˆ  d	d|
ˆ jg¡‰|| j }|| j |	ˆ j  }|| j || j  |	| j  }tˆ jˆƒdksàt‚tˆ jˆƒ| ˆ j ksþt‚tˆ jˆƒ|ˆ j kst‚t|ˆ ƒ|| j ks4t‚t|ˆƒ| t|ƒ | | j |t	|ƒ | | j  || j  ks|t‚t|| ƒ|| j |	| ˆ j  |ˆ j  ks®t‚t|ˆƒ|| j || | j  |t|ƒ | | j  |ˆ j  |	| ˆ j  kst‚t|ˆ ƒ|| | | j | | | | j  || j  ksDt‚t|ˆƒ| | j| jB  t|ƒ| | j| jB   || j| jB   t|ƒ| | j| jB   ks¦t‚t
t‡ ‡fd
d„ƒ t
t‡ ‡fdd„ƒ d S )Nr   Úqr   r   r   r   zq1 q2 q3 q4r%   r   c                      s   t ˆ jˆddS )Nç      à?©Úorder©r   r   r"   ©r   r   r"   r#   r4   }  r5   z&test_time_derivative.<locals>.<lambda>c                      s   t ˆ jˆddS )NéÿÿÿÿrG   rI   r"   rJ   r"   r#   r4   ~  r5   )r   r   Ú	orientnewr!   r   r   r    r   r   r   r   Ú
ValueError)r   rE   Zqdr3   Zd1Zd2Zd3r'   r)   r(   Úq4Úq1dÚq2dÚq3dZq4dZq1ddZq2ddZq3ddZq4ddÚv1Úv2Zv3r"   rJ   r#   Útest_time_derivativeV  sn    
ÿ
  ""
ÿÿ2ÿÿÿÿÿÿÿÿrT   c                  C   s  t j} tdƒ\}}}tdƒ\}}}tdƒ\}}}	tdƒ\}
}t dƒ\}}}t ddƒ\}}}t ddƒ\}}}|tj |tj  |tj  }|tj |tj  |	tj  }|tj |tj  |tj  }|tj |tj  |tj  }|tj |tj  |tj  }|tj |tj  |tj  }ttdd	ks2t‚tt|d
dd|fksNt‚tt|d
|||fksjt‚tt|dd|||  fksŠt‚tt|||
dd|||| |
   fks¶t‚tt|||
d}d|||  ||
  | 	| |
¡ f}||ksöt‚tt|||
d}t
|| |
| fƒtj t
|| |
| fƒtj  t
|| |
| fƒtj  }|||| f}||ksdt‚tt|d|||  || d  d fkst‚tt||||
|d||||   ||  | |
 || d  d  || |
  ||
d  d  | |||    | 	| |
¡ fkst‚tt||||
|d||||   ||  | |
 | || d  d  || |
  ||
d  d  | |||    fksŒt‚tt|tj |tj |tj |
|d}t
|| || fƒ}|tj || tj |t
|| | |
| fƒ tj f}||kst‚d S )Nzs1 s2 s3zS1 S2 S3zS4 S5 S6zt1 t2za b cr   r%   )Úframe)r   r   r   )Úpositionr   )Úvelocity)rW   rV   Ú
timevalue1)Úacceleration)rY   rW   rV   rX   Z
timevalue2)r   Z_tr   r   r   r    r!   r   r   Úsubsr   )ÚtÚs1Ús2Zs3ZS1ZS2ZS3ZS4ZS5ZS6Út1Út2ÚaÚbÚcÚadZbdÚcdZa2dZb2dZc2dZv0Zv01rR   rS   Zv2dZv2ddZanswerZanswer_expectedZintegral_vectorÚi1r"   r"   r#   Útest_get_motion_methods  s’     ÿ
"*ÿ
ÿ
  ÿ$ÿÿ
þÿþ
  ÿ
ÿÿþÿþ
  ÿÿrf   c               	      sZ  t dƒ\‰ ‰‰‰t ddƒ\} }}}t dƒ\‰‰‰tˆˆˆgˆˆˆgddƒ}|tˆˆˆgˆˆˆgddƒkslt‚tˆˆˆgˆ ˆˆˆgdƒ}|dˆ  ˆ d	ˆ ˆ  d	ˆ ˆ  | dˆ  ˆ d	ˆ ˆ  d	ˆ ˆ  | dˆ  ˆ d	ˆ ˆ  d	ˆ ˆ  | d	ˆ ˆ d	ˆ ˆ  d	ˆ ˆ  |  gks,t‚tt‡ ‡‡‡‡‡fd
d„ƒ tt‡ ‡‡‡‡‡‡fdd„ƒ tt‡ ‡‡‡‡‡‡fdd„ƒ tt‡ ‡‡‡‡fdd„ƒ tt‡ ‡‡‡‡fdd„ƒ tt‡ ‡‡‡fdd„ƒ tt‡ ‡‡‡‡‡‡fdd„ƒ tt‡ ‡‡‡‡‡‡fdd„ƒ tt‡ ‡‡‡‡‡fdd„ƒ tdddgˆ ˆˆgdƒtjtjtjgksVt‚d S )Nzq0 q1 q2 q3r   zu1 u2 u3Úbodyi9  Z313Ú
quaterniong      à¿rF   c                      s   t ˆˆˆgˆ ˆˆgdƒS ©Nrh   ©r   r"   ©Úq0r'   r)   Úu1Úu2Úu3r"   r#   r4   Å  r5   ztest_kin_eqs.<locals>.<lambda>c                      s   t ˆˆˆgˆ ˆˆˆgddƒS )Nrh   Z123rj   r"   ©rl   r'   r)   r(   rm   rn   ro   r"   r#   r4   Æ  r5   c                      s   t ˆˆˆgˆ ˆˆˆgdƒS )NZfoorj   r"   rp   r"   r#   r4   Ç  r5   c                      s   t ˆˆ ˆˆˆgdƒS ri   rj   r"   ©rl   r'   r)   r(   rm   r"   r#   r4   È  r5   c                      s   t ˆgˆ ˆˆˆgdƒS ri   rj   r"   rq   r"   r#   r4   É  r5   c                      s   t ˆˆˆgˆ dƒS ri   rj   r"   )rl   rm   rn   ro   r"   r#   r4   Ê  r5   c                      s   t ˆˆˆgˆ ˆˆˆgdƒS )Nrg   rj   r"   rp   r"   r#   r4   Ë  r5   c                      s   t ˆˆˆgˆ ˆˆˆgdƒS )NÚspacerj   r"   rp   r"   r#   r4   Ì  r5   c                      s   t ˆˆˆgˆ ˆˆgddƒS )Nrg   Z222rj   r"   rk   r"   r#   r4   Í  r5   r   rr   )r   r   r   r   rM   rB   r   r1   )Zq0drO   rP   rQ   ZkeZkdsr"   rp   r#   Útest_kin_eqsº  s*    "(&&&ýrs   c               	      s  t dƒ\} }}‰}}t dƒ\}}tdƒ}tdƒ‰ˆ dd| ˆjg¡}| dd||jg¡}	|	 dd||	jg¡}
|
 ˆˆ|	j ||	j  ||	j  ¡ td	ƒ}| 	ˆ||	j ||j|	jA   ¡ | 
d
||	j ¡‰ ˆ  |ˆ|
¡ ˆ  ˆ¡| ˆ¡|
 ˆ¡g‰ˆ||||g‰tˆˆˆƒ| |	j ||	j d|	jt|ƒ|	j t|ƒ|	j  gddd|	jt|ƒ|	j t|ƒ|	j  g|	j|	j|	jddggksˆt‚tdƒ}tdƒ}||j ||j  }t|f||f|ƒ|j|jggksÒt‚tt‡ ‡‡fdd„ƒ tt‡‡‡fdd„ƒ d S )Nzq1 q2 q3 u1 u2 u3zu4, u5Úrr   ÚYr   ÚLÚRr   ÚDmcr   r   r   c                      s   t ˆ  ˆ¡ˆˆƒS r/   )r   Úvelr"   )rx   r   Úu_listr"   r#   r4   ï  r5   z'test_partial_velocity.<locals>.<lambda>c                      s   t ˆˆˆ ƒS r/   )r   r"   )r   rm   Úvel_listr"   r#   r4   ð  r5   )r   r   r   rL   r!   r   r    Zset_ang_velr
   Zset_velZ	locatenewZv2pt_theoryry   Z
ang_vel_inr   r   r   r   r   rB   )r'   r)   r(   rn   ro   Zu4Zu5rt   ru   rv   rw   r   r   r   r8   r"   )rx   r   rm   rz   r{   r#   Útest_partial_velocityÑ  s4    &"
4&þÿ
&r|   c                  C   s€   t dƒ} t ddd}t ddd}t ddd	\}}t d
dd}| jd ksJt‚|jsTt‚|js^t‚|| || ksrt‚|js|t‚d S )NÚf1Úf2T)ÚrealÚf3)Zpositivezf4,f5F)ZcommutativeÚf6)Úinteger)r   Zis_realr   Zis_positiveÚ
is_integer)r}   r~   r€   Zf4Zf5r   r"   r"   r#   Útest_dynamicsymbolsò  s    

r„   N)8Zsympy.core.numbersr   Zsympy.core.singletonr   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.integrals.integralsr   Zsympy.physics.vectorr	   r
   r   r   Zsympy.physics.vector.functionsr   r   r   r   r   r   r   r   r   Zsympy.simplifyr   Zsympy.testing.pytestr   r'   r)   r(   rN   Zq5r   rL   r!   r   r   r   r    r   r$   r*   r,   r.   rC   rD   rT   rf   rs   r|   r„   r"   r"   r"   r#   Ú<module>   s4   ,I ++9!