
    MZd$                         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 Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$y)    )Floatpi)symbols)ordered)cossin)ImmutableDenseMatrix)ReferenceFrameVectordynamicsymbolsdot)VectorTypeError)xyz)raisesTAc                     t        dt              \  } }}}t        d      \  }}}}}}	|j                  | || j                         |j                  |||j
                         |j                  |||j                         ||j                  z  ||j
                  z  z   |	|j                  z  z   }
t        t        |
j                  |                   ||||||	hk(  sJ t        t        |
j                  |                  |||||	hk(  sJ t        t        |
j                  |                  ||||	hk(  sJ t        t        |
j                  |                  |||	hk(  sJ y )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vs              H/usr/lib/python3/dist-packages/sympy/physics/vector/tests/test_vector.pytest_free_dynamicsymbolsr$      sA   >:JAq!Q%&89Aq!Q1MM!QMM!QMM!Q	!##!##!##Awq,,Q/01aAq!Q5GGGGwq,,Q/01aAq!_DDDwq,,Q/01aAq\AAAwq,,Q/01aAY>>>    c            
      D   t         j                  t         j                  k7  sJ t         j                  t         j                  k7  sJ t         j                  t         j                  k7  sJ t         j                  dz   t         j                  k(  sJ t        t         j                  z  t        t         j                  z  z   t        t         j                  z  z   t        dz  t         j                  z  t        dz  t         j                  z  z   t        dz  t         j                  z  z   } | z   | z
  }t	        t
              sJ t        t         j                        t        k(  sJ t        t         j                        t        k(  sJ t        t         j                        t        k(  sJ t	        | t
              sJ t        | t         j                        t        dz  k(  sJ t        | t         j                        t        dz  k(  sJ t        | t         j                        t        dz  k(  sJ t	        t
              sJ t        t         j                        t        dz  t        z   k(  sJ t        t         j                        t        dz  t        z   k(  sJ t        t         j                        t        dz  t        z   k(  sJ t	        |t
              sJ t        |t         j                        t        t        dz  z
  k(  sJ t        |t         j                        t        t        dz  z
  k(  sJ t        |t         j                        t        t        dz  z
  k(  sJ j                  t               t        t        gt        gt        gg      k(  sJ t        d      }t         j                  dd|t         j                  f      }j                  |      t        t        gt        t        |      z  t        t        |      z  z   gt         t        |      z  t        t        |      z  z   gg      k(  sJ t        d      }t        t         j                  z  t        t         j                  z  z   t        |j                  z  z   }t        d      j                         i k(  sJ j                         t         ik(  sJ |j                         t         t        t         j                  z  t        t         j                  z  z   |t        |j                  z  ik(  sJ t        t         j                  z  t        t         j                  z  z   t        t         j                  z  z   }|j                  t               t        t        t        hk(  sJ t!        t"        fd       y )Nr      qr   Axisc                  &    j                         S N)	applyfunc)v1v3s   r#   <lambda>ztest_Vector.<locals>.<lambda>S   s    bll2. r%   )r   r   r   r   
isinstancer   r   	to_matrixMatrixr   	orientnewr   r   r
   separatefree_symbolsr   	TypeError)v2v4r(   r   v5v6r-   r.   s         @@r#   test_Vectorr;      s   33!##::33!##::33!##::337acc>>	
133133133	B	
AaccAqDH	q!tACCx	'B	bB	bBb&!!!r133<1r133<1r133<1b&!!!r133<1a4r133<1a4r133<1a4b&!!!r133<1a4!8###r133<1a4!8###r133<1a4!8###b&!!!r133<1q!t8###r133<1q!t8###r133<1q!t8###<<?fqcA3_5555A	C!QSS*A<<?fqc()CF
QQZ(?&@()rCF{QQZ'?&@&B C C C C
 	sA	
133133133	B!92%%%;;=QG###;;=Q!##!##q!ACC%8888 
133133133	B??1!Aa(((
9./r%   c                     t        d      \  } }}}t        dd      \  }}}}t        dd      \  }}	}
}t        d      }|j                  dd||j                  g      }|j                  dd||j                  g      }||j                  z  ||j
                  z  z   }||j                  z  |z   }|j                  |      }|j                  |      }| |j                  z  ||j
                  z  z   ||j                  z  z   }|j                  |      ||j                  z  ||z  |j
                  z  z   ||j
                  z  z   k(  sJ |j                  |      ||j                  z  ||z  |j                  z  z   ||j
                  z  z   k(  sJ |j                  |      ||j                  z  ||z  |j                  z  z   ||j
                  z  z   |t        |      z  |z  |j                  z  z
  k(  sJ |j                  |      ||j                  z  ||z   |z  |j
                  z  z   ||j                  z  z   ||j
                  z  z   k(  sJ |j                  |      ||j                  z  ||j                  z  z   ||z  |j                  z  z   ||j
                  z  z   k(  sJ |j                  |      ||j                  z  ||j                  z  z   ||z  |j                  z  z   ||j
                  z  z   |t        |      z  |z  |j                  z  z
  k(  sJ |j                  |      |	|j                  z  ||z  |j
                  z  z   |dz  ||
z  z   |j                  z  z   |
|j
                  z  z   |t        |      z  |z  |z  t        |      |z  |z  z
  |t        |      z  |	z  z
  |j                  z  z   k(  sJ |j                  |      |	|j                  z  d|dz  z  ||
z  z   |j                  z  z   |
||dz  z  z
  |j
                  z  z   |t        |      z  |z  |z  t        |      |z  |z  z
  |t        |      z  |	z  z
  |j                  z  z   k(  sJ |j                  |      |	|j                  z  |t        |      z  |dz  z  |j
                  z  z
  d|dz  z  ||
z  z   |j                  z  z   |
||dz  z  z
  |j
                  z  z   d|z  t        |      z  |z  |z  dt        |      z  |z  |z  z
  |t        |      z  |	z  z
  |j                  z  z   k(  sJ |j                  |      |	|j                  z  |||z   z  |j
                  z  z   |
|j                  z  z   |dz  ||
z  z   |j                  z  z   |
|j
                  z  z   |t        |      z  |z  |z  t        |      |z  |z  z
  |t        |      z  |	z  z
  |j                  z  z   k(  sJ |j                  |      |	|j                  z  |
|j                  z  z   d|dz  z  ||
z  z   |j                  z  z   |
||dz  z  z
  |j
                  z  z   |t        |      z  |z  |z  t        |      |z  |z  z
  |t        |      z  |	z  z
  |j                  z  z   k(  sJ |j                  |      |	|j                  z  |t        |      z  |dz  z  |j
                  z  z
  |
|j                  z  z   d|dz  z  ||
z  z   |j                  z  z   |
||dz  z  z
  |j
                  z  z   d|z  t        |      z  |z  |z  dt        |      z  |z  |z  z
  |t        |      z  |	z  z
  |j                  z  z   k(  sJ |j                  |      ||j                  z  ||z  |z   |j
                  z  z   | |z  |z   |j                  z  z   k(  sJ |j                  |      ||j                  z  ||j
                  z  z   ||j                  z  z   k(  sJ |j                  |      | |z  |z   |j                  z  | |z  |z   |j
                  z  z   ||j                  z  z   k(  sJ |j                  ||      dk(  sJ |j                  ||      |j                  |t        |      z  |j                  z  z
  k(  sJ |j                  ||      ||j                  z  |j
                  z   k(  sJ |j                  ||      dk(  sJ |j                  ||      |j                  |t        |      z  |j                  z  z
  k(  sJ |j                  ||      ||j                  z  |j
                  z   k(  sJ |j                  ||      dk(  sJ |j                  ||      |j                  |t        |      z  |j                  z  z
  k(  sJ |j                  ||      ||j                  z  |j
                  z   k(  sJ |j                  ||      dk(  sJ |j                  ||      |j                  |t        |      z  |j                  z  z
  k(  sJ |j                  ||      |j                  ||j                  z  z   |j
                  z   k(  sJ |j                  ||      dk(  sJ |j                  ||      |j                  |t        |      z  |j                  z  z
  k(  sJ |j                  ||      |j                  ||j                  z  z   |j
                  z   k(  sJ |j                  ||      dk(  sJ |j                  ||      |j                  |t        |      z  |j                  z  z
  k(  sJ |j                  ||      |j                  ||j                  z  z   |j
                  z   k(  sJ |dz  |j
                  z  |dz  |j
                  z  z   |dz  |j
                  z  z   }d|z  }d|z  }|dz  |j
                  z  j                  |j                        j                  |      }|dz  |j
                  z  j                  |j
                        j                  |      }|dz  |j
                  z  j                  |j                        j                  |      }|j                  ||      j                  \  }}t        |j                  ||      j                        dk(  sJ |d   |k(  sJ |d   |k(  sJ |d   t        |||z   |g      k(  sJ |d   t        d|dg      k(  sJ y )	Nzq1 q2 q3 q4   r'   Nr   r)   r   r   )r   r
   r3   r   r   r   dtr   r   diffr   argslenr2   )q1q2q3q4q1dq2dq3dq4dq1ddq2ddq3ddq4ddr>   r   r   r-   r7   r.   r8   r9   r:   n_measya_measyb_measxb_measyb_measzn_compa_comps                               r#   test_Vector_diffsrV   V   s   #M2NBB'q9Cc3+M1=D$dsA	C"acc+A	C"acc+A	accBH	B	accBB	qB	qB	ACC"QSS&2acc6	!B558sQSSy28acc>1C!##I====558sQSSy28acc>1C!##I====558acc	BHqssN2S6  3r7lS013367 8 8 8558acc	R"WOacc$99C!##IEI    558sQSSy39,rCx!##~=acc	IIII558acc	C!##I-S133>qssJSWs*QSS01 2 2 2558qss
S3Y_4Qd8J8 "QSSj),.RL3,>,DB#+-,.03r7lT.A-BEFSS,II J J J 558qss
a#q&j29&<%CCtS!VH$'(ssG+ +.03r7lS.@3.FB#+/,.03r7lT.A/BEFSS.II J J J 558qss
R#b'\CF%:QSS%@@AQE!#dE+./ccD2 259BaK5G5 2vB/#5;a#b'k?!?"  "$&RL4$7 8;<33?? @ @ @ 558qss
SC#I%6%<<tacczIa"t)+qss2359ACCZ@CEBD "%D&(+D,.1"gmc.ADBDFBE "&E'D'*+##C.. / / / 558qss
TACCZ/1sAv:T	3I3 #b36k1QSS89<>RL=!="$'GcMC$7=8:<s2w,;= !<$$ % % % 558qss
R#b'\CF%:QSS%@@4!##:MS!Vb4i/13367:>c1f:L: 2vB/#5;a#b'k?!?"  "$&RL4$7 8;<33?? @ @ @ 558s133w"S&3,!33s3w}acc6IIIII558s133wQSS(3qss72222558C#qss*bfslACC-??#acc'IIII773?a773?accBRL133$66666773?b133hn,,,773?a773?accBRL133$66666773?b133hn,,,773?a773?accBRL133$66666773?b133hn,,,773?a773?accBRL133$66666773?accBHnqss2222773?a773?accBRL133$66666773?accBHnqss2222773?a773?accBRL133$66666773?accBHnqss2222 
QqssRU133Y	Qqss	*BdGdG1uQSSyooacc"''+G1uQSSyooacc"''+G1uQSSyooacc"''+GWWR^((NFFrwwr1~""#q(((!9>>!9>>!97):GDEEEE!97A////r%   c                     t        d      t        d      } t        d      }t        d      \  }}}|z  | j                  z  |j                  z  z   |dz  j                  z  z   j                  d      || j                  z  k(  sJ j                  | d      || j                  z  k(  sJ j                  |d      j                  k(  sJ j                  || d      j                  k(  sJ j                  ||d      j                  k(  sJ j                  |d      d|z  j                  z  k(  sJ t        t        fd       y )	Nr>   r   r   zu1 u2 u3 u4r'   F)
var_in_dcmc                  (    j                         S r+   r@   )r>   u1r"   s   r#   r/   z(test_vector_var_in_dcm.<locals>.<lambda>   s    qvvb!} r%   )r
   r   r   r   r   r@   r   
ValueError)r   r   u2u3u4r>   r[   r"   s        @@@r#   test_vector_var_in_dcmr`      sC   sAsAsA#M2NBB
R!##QSS 2q5133;.A66"aE6*b133h66666"aE6*b133h66666"aE6*acc11166"aE6*acc11166"aE6*acc11166"aE6*a"fqssl:::
:,-r%   c            
      6   t        d      \
  } }}}}}}}}}	t        d      }
d| z  d|z  z   |
j                  z  }||
j                  z  | |z   | |z  z  k7  sJ |j                         }||
j                  z  | |z   | |z  z  k(  sJ |	dz  |dz  z  dt        z  |z  |dz  z  z  |
j                  z  }|j                         }||
j                  z  |	dz  |dz  z  dt        z  |z  |dz  z  z  k(  sJ dd| z  z   ddd| z  z   z  z
  dd| z  z   z  |
j                  z  }|j                         }||
j                  z  dk(  sJ d| z  |dz  z  d|dz  z  z
  d| dz  z  |z  z
  | |z   dz  z  |
j                  z  }|j                         }||
j                  z  d	|z  k(  sJ y )
Nzx, y, z, k, n, m, w, f, s, Ar>   r=   r'         r   )r   r
   r   simplifyr   )r   r   r   knmwr!   sr   r>   test1test2test3test4s                  r#   test_vector_simplifyrp      s   #*+I#J Aq!Q1aAqsAUQU]acc!EACCKQUq1u----NNEACCKQUq1u----TAqD[AFQJA-.!##5ENNEACCKQTAqD[AFQJA,=>???!a%i!q1q5y/)a!a%i8ACC?ENNEACCKA1fq!tma!Q$h&QTA5!a%!CqssJENNEACCKBF"""r%   c                     t        d      \  } }t        t        j                  z  }|j	                  d      t        dd      t        j                  z  k(  sJ t        t        j                  z  d| z  t        j                  z  z   |t        j                  z  z
  }|j	                  d      t        dd      t        j                  z  t        dd      | z  t        j                  z  z   |t        j                  z  z
  k(  sJ |j	                  d| d|di	      t        d
d      t        j                  z  t        dd      t        j                  z  z   t        dd      t        j                  z  z
  k(  sJ y )Nza br'   z3.1416   rc   5gX9v?gͪՖ@)subsz3.1415926536z6.17z5.8973)r   r   r   r   evalfr   r   r   )r   r   r"   s      r#   test_vector_evalfrv      sF   5>DAq
QSSA771:x+acc1111
QSS1q5133;QSS(A771:x+acc1E#qMA4E4KKaRSRURUgUUUU771Aua/70E.!4Lqss4RUZ[acdUehihkhkUk4knst|~  oA  DE  DG  DG  oG  5G  G  G  Gr%   c                  R   t        d      } | j                  | j                  z   }| j                  }|j	                  |      t
        dz  k(  sJ t        d      }|j                  | | j                  t
               | j                  }|j                  }|j	                  |      dk(  sJ y )Nr   r'   r   r   )r
   r   r   r   angle_betweenr   r   )r   r-   r7   r   r.   r8   s         r#   test_vector_anglery      s    sA	
qssB	
BB2a4'''sAMM!QSS"	
B	
BB1$$$r%   c                     t        d      \  } dz  t        j                  z  z  t        j                  z  z   z  | z  t        j                  z  z   j                  t              i      t              dz  t        j                  z  t              z  t        j                  z  z   | z  t              z  t        j                  z  z   k(  sJ j                  z  t        i      dz  t        j                  z  t        t        j                  z  z   z  | z  t        j                  z  z   k(  sJ j                  z  | z  di      dz  t        j                  z  z  t        j                  z  z   t        j                  z   k(  sJ j                  d| di      t        j                  t        j                  z  z   k(  sJ t        t        fd       t        t        fd       y )Nzx y zr'   r=   r   c                  $     j                         S r+   xreplace)r"   s   r#   r/   z&test_vector_xreplace.<locals>.<lambda>   s    ajjl r%   c                  *     j                  g      S r+   r|   )r"   r   r   s   r#   r/   z&test_vector_xreplace.<locals>.<lambda>   s    ajj!Q0 r%   )
r   r   r   r   r   r}   r   r   r   r6   )r   r"   r   r   s    @@@r#   test_vector_xreplacer      s   gGAq!	1qss
QqS133Y1Q,A::q3q6l#s1vqy1333q6ACC'G!A#cRSf*WXWZWZJZ'ZZZZ::qsRj!QTACCZ"qss(%:QqSUQSS[%HHHH::qs1uqk"ad133h1QSS&8133&>>>>::qAaj!QSS1qss7]222
9*+
901r%   c                  ~     t        d      t        d        j                  z  t        t         fd       y )Nr[   r>   c                  (    j                         S r+   rZ   r>   N_v_Ar[   s   r#   r/   z"test_issue_23366.<locals>.<lambda>   s    EJJq"$5 r%   )r   r
   r   r   r   r   s   @@@r#   test_issue_23366r      s/    		BsAqssFE
?56r%   N)%sympy.core.numbersr   r   sympy.core.symbolr   sympy.core.sortingr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.immutabler	   r2   sympy.physics.vectorr
   r   r   r   sympy.physics.vector.vectorr   	sympy.abcr   r   r   sympy.testing.pytestr   simpr   r$   r;   rV   r`   rp   rv   ry   r   r    r%   r#   <module>r      sj    * % & ? C L L 7   ' 3?40nR0j.&#,G	%27r%   