
    oVh'                        d dl mZmZmZmZmZ d dlmZmZ d dl	m
Z
mZ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 d d
lmZ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 dl(m)Z) d dl*m+Z+ d dl&m,Z,  e"d      Z-e-j]                         \  Z/Z0Z1 ed      \  Z2Z3Z4d Z5e,d        Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd  ZBd! ZCd" ZDd# ZEd$ ZFy%)&    )RationalSAddMulI)simplifytrigsimp)
DerivativeFunctiondiff)pi)symbols)sqrt)cossin)Integral)ImmutableDenseMatrix)Vector
BaseVector	VectorAdd	VectorMul
VectorZero
CoordSys3D)CrossDotcross)raises)
VectorKind)
NumberKind)XFAILCza b cc                  >   t         j                  t        z  t         j                  t         j                  z  t        z  z   } t         j                  t        z  t         j
                  t        z  z   t         j                  t        z  z   }t        | |      t        t         j                  t         j                  z  t         j                  dz  t         j                  z  z   t         j                  t         j                  z  t         j
                  t         j                  z  z   t         j                  t         j                  z  z         k(  sJ t        | |      j                         t         j                  dz  t         j                  z  t         j                   t         j                  z  t         j                  z  z   t         j                  t         j
                  z  t         j                  t         j                  dz  z  z
  t         j                  z  z   k(  sJ t        | |      t         j                  dz  t         j                  z  t         j                   t         j                  z  t         j                  z  z   t         j                  t         j
                  z  t         j                  t         j                  dz  z  z
  t         j                  z  z   k(  sJ t        | |      t        ||        k(  sJ t        | |      t        ||       z   t        j                  k(  sJ y )N      )r"   xizjykr   doitr   r   zerov1v2s     N/home/dcms/DCMS/lib/python3.12/site-packages/sympy/vector/tests/test_vector.py
test_crossr2      s   	
q1339q=	 B	
q1337	QSS1W	$BR=E!##acc'ACCF133J"6ACC!##acc'8IACCPQPSPSG8STTTTR=1336!##:!##acc133#>!##acc'ACCPQPSPSUVPVJBVXYX[X[A[#[[[[R=ACCF133J133$qss(ACC7133qss7QSSaZ;OQRQTQT:TTTTTR=U2r]N***R=5R=(FKK777    c                  j   t         j                  t        z  t         j                  t         j                  z  t        z  z   } t         j                  t        z  t         j
                  t        z  z   t         j                  t        z  z   }t        | |      t        ||       z   t        j                  k(  sJ y )N)
r"   r&   r'   r(   r)   r*   r+   r   r   r-   r.   s     r1   test_cross_xfailr5   %   sn    	
q1339q=	 B	
q1337	QSS1W	$BR=5R=(FKK777r3   c                      t         j                  t        z  t         j                  t         j                  z  t        z  z   } t         j                  t        z  t         j
                  t        z  z   t         j                  t        z  z   }t        | |      t        t         j                  t         j                  z  t         j                  dz  t         j                  z  z   t         j                  t         j                  z  t         j
                  t         j                  z  z   t         j                  t         j                  z  z         k(  sJ t        | |      j                         t         j                  dz  t         j
                  t         j                  dz  z  z   k(  sJ t        ||       j                         t         j                  dz  t         j
                  t         j                  dz  z  z   k(  sJ t        | |      t        ||       k(  sJ y Nr$   )	r"   r&   r'   r(   r)   r*   r+   r   r,   r.   s     r1   test_dotr8   ,   sC   	
q1339q=	 B	
q1337	QSS1W	$Br2;#acc!##gQqss
2ACCGacc!##g4EACC4OPPPPr2;a!##acc1f*!4444r2;a!##acc1f*!4444r2;#b"+%%%r3   c                  D   dt         z  } | t         dz  k(  sJ | j                  t         dik(  sJ dt        z  dt         z  z   dt        z  z   }dt        z  dt         z  z   t        z   dt        z  z   t        z   }||k(  sJ |j	                         |j	                         k(  sJ y)zq
    Test whether the Vector framework confirms to the hashing
    and equality testing properties of SymPy.
    r%         r$   N)r)   
componentsr'   r+   __hash__r/   r0   v3s      r1   test_vector_sympyr@   5   s    
 
1B199==QF"""	
1qsQqSB	
1qsQ1	q	 B8O8;;=BKKM)))r3   c                     t         j                  j                  t        t              u sJ t         j
                  j                  t        t              u sJ t         j                  j                  t        t              u sJ t         j                  j                  t        u sJ t         j                  j                  t        u sJ t         j                  j                  t        u sJ t        j                  t        t        t                    t        t              u sJ t        dt         j                        j                  t        t              u sJ t         j                  t        z  t         j                  t         j                  z  t
        z  z   } t         j                  t        z  t         j                  t
        z  z   t         j                  t        z  z   }| j                  t        t              u sJ |j                  t        t              u sJ | |z   j                  t        t              u sJ t        | |      j                  t        t              u sJ t        | |      j                         j                  t        t              u sJ t        | |      j                  t        t              u sJ t!        d|       j                  t        t              u sJ t#               j                  t        t              u sJ | j%                  |      j                  t        t              u sJ |j%                  |       j                  t        t              u sJ y r7   )r"   r'   kindr   r    r)   r+   r&   r*   r(   r   _kind_dispatcherr   r   r,   r   r   r   
projectionr.   s     r1   	test_kindrE   C   sV   3388z*----3388z*----3388z*----3388z!!!3388z!!!3388z!!!
Jz,BCzR\G]]]]q!##;z*5555	
q1339q=	 B	
q1337	QSS1W	$B77j,,,,77j,,,,G>>Z
3333r2;z*5555R=$$
:(>>>>R!!Z
%;;;;Q  Jz$::::<
: 6666==!!Z
%;;;;==!!Z
%;;;;r3   c                     t        t        t        j                  t        j                        t
              sJ t        j                  t        z  t        j                  t        j                  z  t        z  z   } t        j                  t        z  t        j                  t        z  z   t        j                  t        z  z   }t        t        | |      t
              sJ t        t        j                  t        j                  t        j                  g      j                  }t        g d      }||z  }|d   j                  t               k(  sJ t        |d   t
              sJ y )N)   r$   r%   r   )
isinstancer   r"   r'   r)   r   r&   r(   r*   r+   MatrixTrB   r   )r/   r0   Eaavs        r1   test_vectoraddrN   _   s    c!##qssmY///	
q1339q=	 B	
q1337	QSS1W	$Bc"bk9--- 	QSS!##!!AyA	
1Ba5::%%%beY'''r3   c                  B
   t        t        t              sJ t        t        k7  sJ t        t        k7  sJ t        t        k7  sJ t        t        z
  t
        j                  k(  sJ t        t
        j                  z   t        k(  sJ t        t
        j                  z
  t        k(  sJ t
        j                  dk7  sJ t
        j                   t
        j                  k(  sJ t        t        z  t        t        z  z   t        t        z  z   t        dz  t        z  t        dz  t        z  z   t        dz  t        z  z   } | z   }dz  }t        t        z  }t        t              sJ z
  t
        j                  k(  sJ t
        j                  z   k(  sJ j                  t              t        k(  sJ j                  t              t        k(  sJ j                  t              t        k(  sJ t        j                  |       t        dz  k(  sJ t        j                  |       t        dz  k(  sJ t        j                  |       t        dz  k(  sJ |j                  t              t        dz  t        z   k(  sJ |j                  t              t        dz  t        z   k(  sJ |j                  t              t        dz  t        z   k(  sJ | z   | z   k(  sJ | z
  d| z
  z  k(  sJ t        z  t        z  k(  sJ t        |t              sJ |j                  t        k(  sJ |j                  t        k(  sJ t        |t
              sJ t        |t              sJ t        |t
              sJ t        t
        j                  t              sJ t        t
        j                  t
              sJ t        dz  t              sJ j!                  t"              t%        t        gt        gt        gg      k(  sJ t        j&                  t        dik(  sJ |j&                  t        t        ik(  sJ j&                  t        t        t        t        t        t        ik(  sJ t        t
        j                        k(  sJ t        t              t        z  k(  sJ t        dt              t        k(  sJ t        t
        j                        k(  sJ t        dt
        j                        t
        j                  k(  sJ t)        t*        fd       t)        t*        fd       y )Nr   r$   rG   c                  &     j                  d      S NrG   )outerr/   s   r1   <lambda>ztest_vector.<locals>.<lambda>   s    bhhqk r3   c                  &     j                  d      S rR   )dotrT   s   r1   rU   ztest_vector.<locals>.<lambda>   s    bffQi r3   )rH   r'   r   r)   r+   r   r-   rL   bcr   rW   r   base_vectormeasure_numberr   	to_matrixr"   rI   r<   r   	TypeError)r0   r?   v4v5r/   s       @r1   test_vectorr`   o   s   a$$$6M66M66M6q5FKKv{{?av{{?a;;!KK<6;;&&&	
1qsQqSB	
Aa!Q$q&1a46	!B	bB	
RB	
QBb)$$$7fkk!!!r!!!66!9>>66!9>>66!9>>55915591559166!91q   66!91q   66!91q   7b2g7bBGn$$$r6R!Vb)$$$>>Q!!!b&!!!b)$$$b&!!!fkk:...fkk6***b1fj)))<<?fqcA3_5555<<Aq6!!!==QF"""==Q1aA....R%+++Qr!t###Q?aR%+++Q$333
9)*
9'(r3   c                     t         j                  j                         dk(  sJ t         j                  j                         t         j                  k(  sJ t        j                         dk(  sJ t
        j                         dk(  sJ t        j                         dk(  sJ t        j                         t        k(  sJ t
        j                         t
        k(  sJ t        j                         t        k(  sJ t        t        z  } | j                         t        t        t        dz        z  t        z  k(  sJ | j                         t        t        dz        k(  sJ t        t        z  t        t
        z  z   t        t        z  z   }|j                         t        t        dz  t        dz  z   t        dz  z         k(  sJ |j                         ||j                         z  k(  sJ t        t
        z   }|j                         t        d      dz  t        j                  z  t        d      dz  t        j
                  z  z   k(  sJ y )Nr   rG   r$   )r   r-   	magnitude	normalizer'   r)   r+   rL   r   rX   rY   r"   r>   s      r1   test_vector_magnitude_normalizerd      s   ;;  "a''';;  "fkk111;;=A;;=A;;=A;;=A;;=A;;=A	
QB<<>aQT
lA----<<>T!Q$Z'''	
1qsQqSB<<>T!Q$A+1"45555<<>R",,.0000	
QB<<>d1gai_Q	133>>>>r3   c                     t        d      \  } }}}dt        z  dt        z  z   t        z  }|t        z  t        t        z   t        t        z  z  k7  sJ t	        |      }|t        z  t        t        z   t        t        z  z  k(  sJ |j	                         t	        |      k(  sJ | dz  |dz  z  dt
        z  |z  |dz  z  z  t        z  }t	        |      }|t        z  | dz  |dz  z  dt
        z  |z  |dz  z  z  k(  sJ ddt        z  z   dddt        z  z   z  z
  ddt        z  z   z  t        z  }t	        |      }|t        z  dk(  sJ dt        z  t        dz  z  dt        dz  z  z
  dt        dz  z  t        z  z
  t        t        z   dz  z  t        z  }t	        |      }|t        z  dt        z  k(  sJ t        t              t        t              z   dz  t        z  t        z
  }t        |      dt        t        t
        dz  z         dz  z  t        z  d	t        z  z   k(  sJ t        |      |j                         k(  sJ t	        t        j                        t        j                  k(  sJ y )
Nz
A, s, k, mrG   r$   r:   r%   r   rP   )r   rL   rX   r'   r   r   r   r   r)   r	   r   r-   )	Asr+   mtest1test2test3test4vs	            r1   test_vector_simplifyrp      s'   &JAq!QUQU]aEAI1q5QU++++UOEAI1q5QU++++>>x...TAqD[AFQJA-.!3EUOEAI1a4!Q$;!b&1*q!t*;<===!a%i!q1q5y/)a!a%i8A=EUOEAI!1fq!tma!Q$h&QTA5!a%!CqHEUOEAI"q&   	QA1q AA;1SRT]A--q0B69999A;!**,&&&FKK FKK///r3   c                  t   dt         z  j                  t              du sJ t         j                  t               du sJ t        d      t        d      z   t        t        d      dz         z  } | t         z  j                  dt         z        du sJ | t         z  j                  dt         z        du sJ t        j                  dt        dz  t        j                        }|j                   j                  t        j                        du sJ |j                   j                  t        j                         du sJ y )Nr$   FT   r%   D)r'   equalsr)   r   r"   orient_new_axisr   r+   )rh   rs   s     r1   test_vector_equalsrv      s    aC<<?e###88A;$ 
a47	d47Q;//AaC<<!$$$aC<<!%%% 	
#r!tQSS)ACC<<$$$CC<<%%%r3   c                      t         t        z  dt         z   t        z  z   dt        z  z   j	                         t          t        z  dt         z
  t        z  z   dt        z  z   k(  sJ y )NrG   r$   )r   r'   r)   r+   	conjugate r3   r1   test_vector_conjugaterz      sN    aC1q5!)Oac!,,.1"Q$!a%2BQqS2HHHHr3   c                  ^   t         j                  t        j                        dk(  sJ t        j                  j                  t               dk(  sJ t         t        j                  z  dk(  sJ t         j                  t               dk(  sJ t         j                  t              dk(  sJ t         j                  t
              dk(  sJ t         t         z  dk(  sJ t         t        z  dk(  sJ t         t
        z  dk(  sJ t        j                  t               dk(  sJ t        j                  t              dk(  sJ t        j                  t
              dk(  sJ t        t         z  dk(  sJ t        t        z  dk(  sJ t        t
        z  dk(  sJ t
        j                  t               dk(  sJ t
        j                  t              dk(  sJ t
        j                  t
              dk(  sJ t
        t         z  dk(  sJ t
        t        z  dk(  sJ t
        t
        z  dk(  sJ t        t        d        y )Nr   rG   c                  ,    t         j                  d      S rR   )r+   rW   ry   r3   r1   rU   z!test_vector_dot.<locals>.<lambda>  s    aeeAh r3   )r'   rW   r   r-   r)   r+   r   r]   ry   r3   r1   test_vector_dotr}      s   55""";;??1"""v{{?a558q==558q==558q==q5A::q5A::q5A::558q==558q==558q==q5A::q5A::q5A::558q==558q==558q==q5A::q5A::q5A::
9&'r3   c                     t         j                  t        j                        t        j                  k(  sJ t        j                  j                  t               t        j                  k(  sJ t         j                  t               t        j                  k(  sJ t         j                  t              t
        k(  sJ t         j                  t
              t         k(  sJ t         t         z  t        j                  k(  sJ t         t        z  t
        k(  sJ t         t
        z  t         k(  sJ t        j                  t               t
         k(  sJ t        j                  t              t        j                  k(  sJ t        j                  t
              t         k(  sJ t        t         z  t
         k(  sJ t        t        z  t        j                  k(  sJ t        t
        z  t         k(  sJ t
        j                  t               t        k(  sJ t
        j                  t              t          k(  sJ t
        j                  t
              t        j                  k(  sJ t
        t         z  t        k(  sJ t
        t        z  t          k(  sJ t
        t
        z  t        j                  k(  sJ t
        j                  d      t        t
        d      k(  sJ y rR   )r'   r   r   r-   r)   r+   r   ry   r3   r1   test_vector_crossr     s   776;;6;;...;;Q6;;...771:$$$771:??771:!q5FKKq5A::q5QB;;771:!771:$$$771:??q5QB;;q5FKKq5A::771:??771:!771:$$$q5A::q5QB;;q5FKK771:q!$$$r3   c                     t         t        z   t        z   } dt         z  dt        z  z   }dt         z  dt        z  z   }| j                  |       t         t        z   t        z   k(  sJ | j                  |      t	        dd      t
        j                   z  t	        dd      t
        j                  z  z   t	        dd      t
        j                  z  z   k(  sJ | j                  | d      t        j                  k(  sJ | j                  |d      t	        dd      k(  sJ |j                  |       t        j                  k(  sJ |j                  | d      t        j                  k(  sJ y )Nr%   r:   r      T)scalar)r'   r)   r+   rD   r   r"   r   Oner   r-   Zeror>   s      r1   test_projectionr   *  s   	
QB	
1qsB	
1qsB==A	)))==Aqss 2Xa^ACC5G G(STVW.YZY\Y\J\ \\\\==D=)QUU222==D=)Xa^;;;==+++==D=)QVV333r3   c                     t        d      }  | t              t        j                  z  t        dz  t        j                  z  z   t        j
                  z
  }t        |t              t         | t              t        j                  z  t        dz  t        j                  z  z   dt        j
                  z  z   t              k(  sJ t        |t              |j                  t              cxk(  rlt        |t              j                         cxk(  rJt         | t              t              t        j                  z  dt        z  t        j                  z  z   k(  sJ  J t        |t              t         | t              t              t        j                  z  t        t        dz  t              t        j                  z  z   t        dt              t        j
                  z  z   k(  sJ y )Nfr$   rP   )
r   rL   r"   r'   r)   r+   r
   r   r,   r   )r   ro   s     r1   test_vector_diff_integrater   6  s`   A	!QSS1a48acc!Aaz1Q4**+Q$qss(+368!##X+>?@ B B B BAJ!&&) 0z!Q'7'<'<'> 0!a !##%!ACC/0 1 0 1 0QNx!a0!##5adA#$'/A&;< < = <r3   c                  H    t        t        d        t        t        d        y )Nc                  "    t        dt              S )Nr%   )r   r"   ry   r3   r1   rU   z"test_vector_args.<locals>.<lambda>B  s    z!Q/ r3   c                  6    t        dt        j                        S )Nr   )r   r   r-   ry   r3   r1   rU   z"test_vector_args.<locals>.<lambda>C  s    jFKK8 r3   )r   
ValueErrorr]   ry   r3   r1   test_vector_argsr   A  s    
:/0
989r3   c                  J    ddl m}  d} | t        j                        |k(  sJ y )Nr   )sreprzCoordSys3D(Str('C'), Tuple(ImmutableDenseMatrix([[Integer(1), Integer(0), Integer(0)], [Integer(0), Integer(1), Integer(0)], [Integer(0), Integer(0), Integer(1)]]), VectorZero())).i)sympy.printing.reprr   r"   r'   )r   ress     r1   
test_sreprr   F  s%    )GC :r3   c                     ddl m}   | d      }d|j                  z  d|j                  z  z   d|j                  z  z   }d|j                  z  d|j                  z  z
  d|j                  z  z   }|j
                  du sJ |j                  du sJ |j                  |      j                  du sJ |j                  |      j                  du sJ y )	Nr   r   r"   r%   r:   r;   TF)	sympy.vectorr   r'   r)   r+   	is_Vector	is_scalarrW   r   )r   r"   r/   r0   s       r1   test_scalarr   N  s    '3A	
133133133	B	
133133133	B<<4<<5   FF2J!!T)))HHRL##u,,,r3   N)G
sympy.corer   r   r   r   r   sympy.simplifyr   r	   sympy.core.functionr
   r   r   sympy.core.numbersr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.integrals.integralsr   sympy.matrices.immutabler   rI   sympy.vector.vectorr   r   r   r   r   sympy.vector.coordsysrectr   r   r   r   sympy.testing.pytestr   sympy.vector.kindr   sympy.core.kindr    r!   r"   base_vectorsr'   r)   r+   rL   rX   rY   r2   r5   r8   r@   rE   rN   r`   rd   rp   rv   rz   r}   r   r   r   r   r   r   ry   r3   r1   <module>r      s    / / - < < ! % 9 ? . C  0 1 1 ' ( & & sO
..
1a
'
1a8 8 8&*<8( 8)v?.08&I
(:%8	4=:
-r3   