
    oVh(                         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  ed
      Zd Z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)raises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)cls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              V/home/dcms/DCMS/lib/python3.12/site-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>Q   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                  z   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   z
  j                  |      j                         d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   z
  j                  |      j                         d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
   r4   r   r   r   dtr   r   expresssimplifydiffr   argslenr3   )q1q2q3q4q1dq2dq3dq4dq1ddq2ddq3ddq4ddr?   r   r   r.   r8   r/   r9   r:   r;   n_measya_measyb_measxb_measyb_measzn_compa_comps                               r$   test_Vector_diffsrY   T   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 EE!HQSS2c"g:c1f#4QSS#88Ac1fH
4=< r#q&y(!##-.122c"gc1A#1E	#b'	#c2s2wJtO2,-.SS111 23:71:hhjAN N N 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,;= !<$$ % % % EE!HQSS2c"g:c1f#4QSS#8848C36BtG+QSS01482c1f94Dacc3IJ2c"gc)#-#b'	#c0AACGD)*+##.. / 18
88:K K K 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,   rC   )r?   u1r#   s   r$   r0   z(test_vector_var_in_dcm.<locals>.<lambda>   s    qvvb!} r&   )r
   r   r   r   r   rC   r   
ValueError)r   r   u2u3u4r?   r^   r#   s        @@@r$   test_vector_var_in_dcmrc      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   rB   r   )r   r   r   knmwr"   sr   r?   test1test2test3test4s                  r$   test_vector_simplifyrr      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   rf   5gX9v?gͪՖ@)subsz3.1415926536z6.17z5.8973)r   r   r   r   evalfr   r   r   )r   r   r#   s      r$   test_vector_evalfrx      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.   r8   r   r/   r9   s         r$   test_vector_angler{      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$   r0   z&test_vector_xreplace.<locals>.<lambda>   s    ajjl r&   c                  *     j                  g      S r,   r~   )r#   r   r   s   r$   r0   z&test_vector_xreplace.<locals>.<lambda>   s    ajj!Q0 r&   )
r   r   r   r   r   r   r   r   r   r7   )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,   r]   r?   N_v_Ar^   s   r$   r0   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&   c                     t        d      \  } }}}}}t        d      }| |j                  z  ||j                  z  z   ||j                  z  z   }||j                  z  ||j                  z  z   ||j                  z  z   }t        | |z  | |z  | |z  g||z  ||z  ||z  g||z  ||z  ||z  gg      }	|j                  |      j                  |      |	k(  sJ ||z  j                  |      |	k(  sJ t        || z  ||z  ||z  g|| z  ||z  ||z  g|| z  ||z  ||z  gg      }
|j                  |      j                  |      |
k(  sJ ||z  j                  |      |
k(  sJ y Nr   r?   )r   r
   r   r   r   r3   outerr2   )r   r   r   r    r!   r"   r?   r.   r8   v1v2v2v1s              r$   test_vector_outerr      s   12Aq!Q1sA	
133133133	B	
133133133	BAaC1ac?aC1ac?aC1ac?$ %D 88B<!!!$,,,Gq!T)))AaC1ac?aC1ac?aC1ac?$ %D 88B<!!!$,,,Gq!T)))r&   c                     t        d      \  } }}}}}t        d      }| |j                  z  ||j                  z  z   ||j                  z  z   }||j                  z  ||j                  z  z   ||j                  z  z   }||z   ||z   k(  sJ ||z
  | |z   k(  sJ ||z  ||z  k(  sJ ||z  |j                  |      k(  sJ ||z  |j                  |      k(  sJ y r   )r   r
   r   r   r   cross)	r   r   r   r    r!   r"   r?   r.   r8   s	            r$   test_overloaded_operatorsr     s    12Aq!Q1sA	
133133133	B	
133133133	B7b2g7rcBh7b2g7bhhrl"""7bhhrl"""r&   N)&sympy.core.numbersr   r   sympy.core.symbolr   sympy.core.sortingr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.immutabler	   r3   sympy.physics.vectorr
   r   r   r   sympy.physics.vector.vectorr   	sympy.abcr   r   r   sympy.testing.pytestr   r   r%   r<   rY   rc   rr   rx   r{   r   r   r   r    r&   r$   <module>r      sk    * % & ? C L L 7   '3?40nQ0h.&#,G	%27*"
#r&   