o
    *ήc$                     @   s   d dl mZ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 d dlmZmZmZ d d	lmZ d
e_edZdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"dd Z#dd Z$dS )    )Floatpi)symbols)ordered)cossin)ImmutableDenseMatrix)ReferenceFrameVectordynamicsymbolsdot)VectorTypeError)xyz)raisesTAc                  C   s  t dtd\} }}}td\}}}}}}	|| || j ||||j ||||j ||j ||j  |	|j  }
tt|
	| ||||||	hksNJ tt|
	||||||	hks`J tt|
	|||||	hksqJ tt|
	||||	hksJ d S )Nz
A, B, C, D)clsza, b, c, d, e, f)
r   r	   r   orient_axisr   r   r   setr   free_dynamicsymbols)r   BCDabcdefv r!   M/tmp/pip-target-vg8gfxp4/lib/python/sympy/physics/vector/tests/test_vector.pytest_free_dynamicsymbols   s   &$"$r#   c                     sb  t jt jksJ t jt jksJ t jt jksJ t jd t jks"J tt j tt j  tt j   td t j td t j  td t j  }  |   |  }t tsUJ t t jtks_J t t jtksiJ t t jtkssJ t| tszJ t| t jtd ksJ t| t jtd ksJ t| t jtd ksJ ttsJ tt jtd t ksJ tt jtd t ksJ tt jtd t ksJ t|tsJ t|t jttd  ksJ t|t jttd  ksJ t|t jttd  ksJ  t ttgtgtggksJ t	d}t 
dd|t jf} |ttgtt| tt|  gt t| tt|  ggksHJ td}tt j tt j  t|j  }td i ksfJ   t  iksqJ | t tt j tt j  |t|j iksJ tt j tt j  tt j  }|t ttthksJ tt fdd d S )Nr      qr   Axisc                      s
     S N)	applyfuncr!   v1v3r!   r"   <lambda>S   s   
 ztest_Vector.<locals>.<lambda>)r   r   r   r   
isinstancer
   r   	to_matrixMatrixr   	orientnewr   r   r	   separatefree_symbolsr   	TypeError)v2v4r%   r   v5v6r!   r)   r"   test_Vector   sN   *$0r8   c                  C   s	  t d\} }}}t dd\}}}}t dd\}}	}
}td}|dd||jg}|dd||jg}||j ||j  }||j | }||}||}| |j ||j  ||j  }||||j || |j  ||j  kstJ ||||j || |j  ||j  ksJ ||||j || |j  ||j  |t| | |j  ksJ ||||j || | |j  ||j  ||j  ksJ ||||j ||j  || |j  ||j  ksJ ||||j ||j  || |j  ||j  |t| | |j  ksJ |||	|j || |j  |d ||
  |j  |
|j  |t| | | t|| |  |t| |	  |j  ksUJ |||	|j d|d  ||
  |j  |
||d   |j  |t| | | t|| |  |t| |	  |j  ksJ |||	|j |t| |d  |j  d|d  ||
  |j  |
||d   |j  d| t| | | dt| | |  |t| |	  |j  ksJ |||	|j |||  |j  |
|j  |d ||
  |j  |
|j  |t| | | t|| |  |t| |	  |j  ks2J |||	|j |
|j  d|d  ||
  |j  |
||d   |j  |t| | | t|| |  |t| |	  |j  ksyJ |||	|j |t| |d  |j  |
|j  d|d  ||
  |j  |
||d   |j  d| t| | | dt| | |  |t| |	  |j  ksJ ||||j || | |j  | | | |j  ksJ ||||j ||j  ||j  ksJ ||| | | |j | | | |j  ||j  ks(J |	||dks3J |	|||j|t| |j  ksHJ |	||||j |j ksYJ |	||dksdJ |	|||j|t| |j  ksyJ |	||||j |j ksJ |	||dksJ |	|||j|t| |j  ksJ |	||||j |j ksJ |	||dksJ |	|||j|t| |j  ksJ |	|||j||j  |j ksJ |	||dksJ |	|||j|t| |j  ksJ |	|||j||j  |j ks#J |	||dks.J |	|||j|t| |j  ksCJ |	|||j||j  |j ksWJ |d |j |d |j  |d |j  }d| }d| }|d |j 
|j	|}|d |j 
|j	|}|d |j 
|j	|}|	||j\}}t|	||jdksJ |d |ksJ |d |ksJ |d t||| |gksJ |d td|dgksJ d S )	Nzq1 q2 q3 q4   r$   Nr   r&   r   r   )r   r	   r0   r   r   r   dtr   r   diffr   argslenr/   )q1q2q3q4q1dq2dq3dq4dq1ddq2ddq3ddq4ddr:   r   r   r*   r4   r+   r5   r6   r7   n_measya_measyb_measxb_measyb_measzn_compa_compr!   r!   r"   test_Vector_diffsV   sH  

00 
.:2,,
, ,,

4 @.@*"*"*"*(*(*(*  rR   c                     s  t d t d} t d}td\}}}| | j | j  |d  j  j dd|| j ks6J j| dd|| j ksEJ j| dd jksRJ j|| dd jks_J j||dd jkslJ j| ddd|  j ks}J tt fdd	 d S )
Nr:   r   r   zu1 u2 u3 u4r$   F)
var_in_dcmc                      s     S r'   r<   r!   r:   u1r    r!   r"   r,          z(test_vector_var_in_dcm.<locals>.<lambda>)r	   r   r   r   r   r<   r   
ValueError)r   r   u2u3u4r!   rU   r"   test_vector_var_in_dcm   s   &"r\   c               
   C   s  t d\
} }}}}}}}}}	td}
d|  d|  |
j }||
j@ | | | |  ks,J | }||
j@ | | | |  ks?J |	d |d  dt | |d   |
j }| }||
j@ |	d |d  dt | |d   ksqJ dd|   ddd|     dd|    |
j }| }||
j@ dksJ d|  |d  d|d   d| d  |  | | d  |
j }| }||
j@ d	| ksJ d S )
Nzx, y, z, k, n, m, w, f, s, Ar:   r9   r$         r   )r   r	   r   simplifyr   )r   r   r   knmwr   sr   r:   test1test2test3test4r!   r!   r"   test_vector_simplify   s   *2.>rk   c                  C   s   t d\} }ttj }|dtddtj ksJ ttj d|  tj  |tj  }|dtddtj tdd|  tj  |tj  ksIJ |jd| d|did	td
dtj tddtj  tddtj  ksnJ d S )Nza br$   z3.1416   r^   5gX9v?gͪՖ@)subsz3.1415926536z6.17z5.8973)r   r   r   r   evalfr   r   r   )r   r   r    r!   r!   r"   test_vector_evalf   s   
"<Nrp   c                  C   sj   t d} | j| j }| j}||td ksJ t d}|| | jt | j}|j}||dks3J d S )Nr   r$   r   r   )r	   r   r   r   angle_betweenr   r   )r   r*   r4   r   r+   r5   r!   r!   r"   test_vector_angle   s   rr   c                     sZ  t d\} d tj  tj   |  tj    titd tj t tj  |  t tj  ksFJ   tid tj ttj   |  tj  ksfJ   |  did tj  tj  tj ksJ  d| ditjtj  ksJ tt	 fdd tt	 fdd d S )Nzx y zr$   r9   r   c                      s      S r'   xreplacer!   )r    r!   r"   r,      s    z&test_vector_xreplace.<locals>.<lambda>c                      s     gS r'   rs   r!   r    r   r   r!   r"   r,      s    )
r   r   r   r   r   rt   r   r   r   r3   )r   r!   ru   r"   test_vector_xreplace   s   .P@<&rv   c                      s4   t dtd  j tt fdd d S )NrV   r:   c                      s     S r'   rT   r!   r:   N_v_ArV   r!   r"   r,      rW   z"test_issue_23366.<locals>.<lambda>)r   r	   r   r   r   r!   r!   rw   r"   test_issue_23366   s   
ry   N)%sympy.core.numbersr   r   sympy.core.symbolr   sympy.core.sortingr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.immutabler   r/   sympy.physics.vectorr	   r
   r   r   sympy.physics.vector.vectorr   	sympy.abcr   r   r   sympy.testing.pytestr   simpr   r#   r8   rR   r\   rk   rp   rr   rv   ry   r!   r!   r!   r"   <module>   s(    7U	
