
    Qi'                        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-.                                \  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$ ZFd%S )&    )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   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          | |                                          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 d S )N      )r"   xizjykr   doitr   r   zerov1v2s     v/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/vector/tests/test_vector.py
test_crossr2      s   	
q139q=	 B	
q137	QS1W	$BR==E!#ac'ACF13J"6AC!#ac'8IACPQPSG8STTTTTTR==136!#:!#ac13#>!#ac'ACPQPSUVPVJBVXYX[A[#[[[[[R==ACF13J13$qs(AC713qs7QSaZ;OQRQT:TTTTTTR==U2r]]N****R==5R==(FK777777    c                  P   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 d S )N)
r"   r&   r'   r(   r)   r*   r+   r   r   r-   r.   s     r1   test_cross_xfailr5   %   sm    	
q139q=	 B	
q137	QS1W	$BR==5R==(FK777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          | |                                          t           j        dz  t           j        t           j        dz  z  z   k    sJ t          ||                                           t           j        dz  t           j        t           j        dz  z  z   k    sJ t          | |          t          ||           k    sJ d S Nr$   )	r"   r&   r'   r(   r)   r*   r+   r   r,   r.   s     r1   test_dotr8   ,   s<   	
q139q=	 B	
q137	QS1W	$Br2;;#ac!#gQqs
2ACGac!#g4EAC4OPPPPPPr2;;a!#ac1f*!44444r2;;a!#ac1f*!44444r2;;#b"++%%%%%%r3   c                  j   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 |                                |                                k    sJ dS )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9999=QF""""	
1qsQqSB	
1qsQ1	q	 B8888;;==BKKMM))))))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        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        t          t                    u sJ |                    |           j        t          t                    u sJ d S r7   )r"   r'   kindr   r    r)   r+   r&   r*   r(   r   _kind_dispatcherr   r   r,   r   r   r   
projectionr.   s     r1   	test_kindrE   C   s   38z*------38z*------38z*------38z!!!!38z!!!!38z!!!!
Jz,B,BCCzR\G]G]]]]]q!#;;z*555555	
q139q=	 B	
q137	QS1W	$B7j,,,,,,7j,,,,,,G>Z
333333r2;;z*555555R==$
:(>(>>>>>R!Z
%;%;;;;;Q Jz$:$:::::<<
: 6 6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 d S )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!#qsmmY/////	
q139q=	 B	
q137	QS1W	$Bc"bkk9----- 	QS!#!AyyyA	
1Ba5:%%%%beY'''''''r3   c                  ^   t          t          t                    sJ t          t          k    sJ t          t          k    sJ t          t          k    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k    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                     t                    t          k    sJ                     t                    t          k    sJ                     t                    t          k    sJ t                              |           t          dz  k    sJ t                              |           t          dz  k    sJ t                              |           t          dz  k    sJ |                    t                    t          dz  t          z   k    sJ |                    t                    t          dz  t          z   k    s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                     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           d S )Nr   r$   rG   c                  .                          d          S NrG   )outerr/   s   r1   <lambda>ztest_vector.<locals>.<lambda>   s    bhhqkk r3   c                  .                          d          S rR   )dotrT   s   r1   rU   ztest_vector.<locals>.<lambda>   s    bffQii 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$$$$$666666666666q5FKv{?av{?a;!K<6;&&&&	
1qsQqSB	
Aa!Q$q&1a46	!B	bB	
RB	
QBb)$$$$$7fk!!!!r!!!!66!99>>>>66!99>>>>66!99>>>>55991559915599166!991q    66!991q    66!991q    7b2g7bBGn$$$$r6R!Vb)$$$$$>Q!!!!b&!!!!!b)$$$$$b&!!!!!fk:.....fk6*****b1fj)))))<<??fqcA3_555555<Aq6!!!!=QF""""=Q1aA.....R%%++++Qr!t####Q??aR%%++++Q$$3333
9))))***
9''''(((((r3   c                  H   t           j                                        dk    sJ t           j                                        t           j        k    sJ t                                          dk    sJ t
                                          dk    sJ t                                          dk    sJ t                                          t          k    sJ t
                                          t
          k    sJ t                                          t          k    sJ t          t          z  } |                                 t          t          t          dz            z  t          z  k    sJ |                                 t          t          dz            k    sJ t          t          z  t          t
          z  z   t          t          z  z   }|                                t          t          dz  t          dz  z   t          dz  z             k    sJ |                                ||                                z  k    sJ t          t
          z   }|                                t          d          dz  t          j        z  t          d          dz  t          j        z  z   k    sJ d S )Nr   rG   r$   )r   r-   	magnitude	normalizer'   r)   r+   rL   r   rX   rY   r"   r>   s      r1   test_vector_magnitude_normalizerd      s   ;  ""a'''';  ""fk1111;;==A;;==A;;==A;;==A;;==A;;==A	
QB<<>>aQT

lA-----<<>>T!Q$ZZ''''	
1qsQqSB<<>>T!Q$A+1"4555555<<>>R",,..00000	
QB<<>>d1ggai_Q	13>>>>>>>r3   c                     t          d          \  } }}}dt          z  dt          z  z   t          z  }|t          z  t          t          z   t          t          z  z  k    sJ t	          |          }|t          z  t          t          z   t          t          z  z  k    s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          |          |	                                k    sJ t	          t          j                  t          j        k    sJ d S )
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      sc   &&JAq!QUQU]aEAI1q5QU+++++UOOEAI1q5QU+++++>>x....TAqD[AFQJA-.!3EUOOEAI1a4!Q$;!b&1*q!t*;<====!a%i!q1q5y/)a!a%i8A=EUOOEAI!1fq!tma!Q$h&QTA5!a%!CqHEUOOEAI"q&    	QA1q AA;;1SRT]]A--q0B699999A;;!**,,&&&&FK  FK//////r3   c                     dt           z                      t                    du sJ t                               t                     du sJ t          d          t          d          z   t          t          d          dz             z  } | t           z                      dt           z            du sJ | t           z                      dt           z            du sJ t                              dt          dz  t          j                  }|j                             t          j                  du sJ |j                             t          j                   du sJ d S )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77	d477Q;///AaC<<!$$$$aC<<!%%%% 	
#r!tQS))AC<<$$$$C<<%%%%%%r3   c                      t           t          z  dt           z   t          z  z   dt          z  z                                   t            t          z  dt           z
  t          z  z   dt          z  z   k    sJ d S )NrG   r$   )r   r'   r)   r+   	conjugate r3   r1   test_vector_conjugaterz      sZ    aC1q5!)Oac!,,..1"Q$!a%2BQqS2HHHHHHHr3   c                  "   t                               t          j                  dk    sJ t          j                            t                     dk    sJ t           t          j        z  dk    sJ t                               t                     dk    sJ t                               t                    dk    sJ t                               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k    sJ t                              t                    dk    sJ t                              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k    sJ t
                              t                    dk    sJ t
                              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            d S )Nr   rG   c                  6    t                               d          S rR   )r+   rW   ry   r3   r1   rU   z!test_vector_dot.<locals>.<lambda>  s    aeeAhh r3   )r'   rW   r   r-   r)   r+   r   r]   ry   r3   r1   test_vector_dotr}      s   55"""";??1""""v{?a5588q====5588q====5588q====q5A::::q5A::::q5A::::5588q====5588q====5588q====q5A::::q5A::::q5A::::5588q====5588q====5588q====q5A::::q5A::::q5A::::
9&&'''''r3   c                  L   t                               t          j                  t          j        k    sJ t          j                            t                     t          j        k    sJ t                               t                     t          j        k    sJ t                               t                    t
          k    sJ t                               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                              t                     t
           k    sJ t                              t                    t          j        k    sJ t                              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
                              t                     t          k    sJ t
                              t                    t            k    sJ t
                              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
                              d          t          t
          d          k    sJ d S rR   )r'   r   r   r-   r)   r+   r   ry   r3   r1   test_vector_crossr     s   776;6;....;Q6;....771::$$$$771::????771::!q5FKq5A::::q5QB;;;;771::!771::$$$$771::????q5QB;;;;q5FKq5A::::771::????771::!771::$$$$q5A::::q5QB;;;;q5FK771::q!$$$$$$r3   c                     t           t          z   t          z   } dt           z  dt          z  z   }dt           z  dt          z  z   }|                     |           t           t          z   t          z   k    sJ |                     |          t	          dd          t
          j         z  t	          dd          t
          j        z  z   t	          dd          t
          j        z  z   k    sJ |                     | d          t          j        k    sJ |                     |d          t	          dd          k    sJ |                    |           t          j	        k    sJ |                    | d          t          j
        k    sJ d S )Nr%   r:   r      T)scalar)r'   r)   r+   rD   r   r"   r   Oner   r-   Zeror>   s      r1   test_projectionr   *  sB   	
QB	
1qsB	
1qsB==A	))))==Aqs 2Xa^^AC5G G(STVW..YZY\J\ \\\\\==D=))QU2222==D=))Xa^^;;;;==++++==D=))QV333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                    |                    t                    cxk    rxt          |t                                                    cxk    rLt           | t                    t                    t          j        z  dt          z  t          j        z  z   k    sn 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 d S )Nfr$   rP   )
r   rL   r"   r'   r)   r+   r
   r   r,   r   )r   ro   s     r1   test_vector_diff_integrater   6  s   A	!QS1a48ac!Aaz11Q44**+Q$qs(+368!#X+>?@ B  B B B B BAJJ!&&)) 0 0 0 0z!Q'7'7'<'<'>'> 0 0 0 0!a  !#%!AC/0 0 0 0 0 0QNNx!a00!#5adA#$'/A&;< < < < < < <r3   c                  ^    t          t          d            t          t          d            d S )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FK88 r3   )r   
ValueErrorr]   ry   r3   r1   test_vector_argsr   A  s0    
://000
98899999r3   c                  L    ddl m}  d} | t          j                  |k    sJ d S )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 5::r3   c                  L   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        du sJ |                    |          j        du sJ d S )	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	
131313	B	
131313	B<4<5    FF2JJ!T))))HHRLL#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 9 9 9 9 9 ? ? ? ? ? ? ? ? . . . . . . C C C C C C              0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 ' ' ' ' ' ' ( ( ( ( ( ( & & & & & & & & & & & & JsOO
..

1a
''

1a8 8 8 8 8 8& & &* * *< < <8( ( ( 8) 8) 8)v? ? ?.0 0 08& & &I I I
( ( (:% % %8	4 	4 	4= = =: : :
  - - - - -r3   