
    g2                       U 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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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' d dl(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dlm2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? d dl@mAZA d dlBmCZC  ed          \  ZDZEde2iZFdeGd<    eHdeF           dOd ZId! ZJd" ZKd# ZLd$ ZMd% ZNd& ZOd' ZPd( ZQd) ZRd* ZSd+ ZTd, ZUd- ZVd. ZWd/ ZXd0 ZYd1 ZZd2 Z[d3 Z\d4 Z]d5 Z^d6 Z_d7 Z`d8 Zad9 Zbd: Zcd; Zdd< Zed= Zfd> Zgd? Zhd@ ZidA ZjdB ZkdC ZldD ZmdE ZndF ZodG ZpdH ZqdI ZrdJ ZsdK ZtdL ZudM ZvdN ZwdS )P    )annotations)Any)GROUND_TYPES)raiseswarns_deprecated_sympy)Q)FunctionWildFunction)AlgebraicNumberFloatIntegerRational)S)DummySymbolWildsymbols)sympify)Abs)rootsqrt)sin)	Heaviside)falsetrue)Matrixones)MatrixSymbol)ImmutableDenseMatrix)CyclePermutation)Str)PointEllipse)srepr)ringfieldZZQQlexgrlexPoly)DMP)FiniteExtensionx,yr"   zdict[str, Any]ENVzfrom sympy import *Nc                    |t           }n)t                                           }t          ||           t          | fi ||k    sJ t	          ||          | k    sJ dS )z
    sT := sreprTest

    Tests that srepr delivers the expected string and that
    the condition eval(srepr(expr))==expr holds.
    N)r0   copyexecr%   eval)exprstringimport_stmtkwargsENV2s        Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/printing/tests/test_repr.pysTr;   $   sp     xxzz[$    F****%%%%%%    c                 r     G d dt                     } t           | t                              dk    sJ d S )Nc                      e Zd Zd ZdS )test_printmethod.<locals>.Rc                H    d|                     | j        d                   z  S )Nzfoo(%s)r   )_printargs)selfprinters     r:   
_sympyreprz&test_printmethod.<locals>.R._sympyrepr7   s    w~~dil;;;;r<   N)__name__
__module____qualname__rE    r<   r:   Rr?   6   s#        	< 	< 	< 	< 	<r<   rJ   zfoo(Symbol('x')))r   r%   x)rJ   s    r:   test_printmethodrL   5   sT    < < < < <C < < < 1;;,,,,,,,r<   c                    t          t          t          z   d           t          t          dz  dz   d          dk    sJ t          t          dz  dz   d          dk    sJ t          t	          d	d
          d          dk    sJ d S )NzAdd(Symbol('x'), Symbol('y'))      r*   orderz-Add(Pow(Symbol('x'), Integer(2)), Integer(1))oldz-Add(Integer(1), Pow(Symbol('x'), Integer(2)))z	x + 3 - 2Fevaluatenonez:Add(Symbol('x'), Integer(3), Mul(Integer(-1), Integer(2)))r;   rK   yr%   r   rI   r<   r:   test_AddrX   <   s    q1u-...A'''+ZZZZZA'''+ZZZZZu555VDDD  IE  E  E  E  E  E  Er<   c                     ddl m}  ddlm} | |fD ]6} |t	          d           }t          t          |                    |k    sJ 7d S )Nr   )Add)Mulzx:256)sympy.core.addrZ   sympy.core.mulr[   r   r4   r%   )rZ   r[   opr5   s       r:   #test_more_than_255_args_issue_10259r_   C   sy    """"""""""""Cj ) )r77##$E$KK  D((((() )r<   c                    t           t          d          t                    d           t          t          d          d           t          t          t                    d           t          t          d           d S )NfzFunction('f')(Symbol('x'))zFunction('f')zsin(Symbol('x'))r   )r;   r	   rK   r   rI   r<   r:   test_Functionrb   K   sa    }x}}Q5666x}}o&&&s1vv!"""sENNNNNr<   c                     t          t          t                    d           t          t          t          d          d           d S )NzHeaviside(Symbol('x'))rO   z"Heaviside(Symbol('x'), Integer(1)))r;   r   rK   rI   r<   r:   test_Heavisiderd   T   s8    y||-...yA<=====r<   c                     t          t          dd          d           t          t          t          dd          dd          d           d S )Nr   zPoint2D(Integer(0), Integer(0))   rO   z@Ellipse(Point2D(Integer(0), Integer(0)), Integer(5), Integer(1)))r;   r#   r$   rI   r<   r:   test_Geometryrg   Y   sU    uQ{{5666wuQ{{Aq!!IK K K K Kr<   c                    t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j	        d           t          t          j
        d	           t          t          j        d
           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           t          t          j        d           d S )NCatalanzoo
EulerGammaEGoldenRatioTribonacciConstantzRational(1, 2)Ioonanz-oozInteger(-1)z
Integer(1)piz
Integer(0)	ComplexesEmptySequenceEmptySetNaturals	Naturals0	RationalsRealsUniversalSet)r;   r   ri   ComplexInfinityrk   Exp1rm   rn   HalfImaginaryUnitInfinityNaNNegativeInfinityNegativeOneOnePiZerors   rt   ru   rv   rw   rx   ry   rz   rI   r<   r:   test_Singletonsr   `   s   qy)q%   q|\"""qvsOOOq}m$$$q1222qv   qqz4queq5!!!q}m$$$qulqtTNNNqv|q{K   q(((qz:qz:q{K   q{K   qwq~~&&&&&r<   c                 @    t          t          d          d           d S )N   z
Integer(4))r;   r   rI   r<   r:   test_Integerr   {   s    wqzz<     r<   c                 N    t          t          t          d          gd           d S )Nr   z[Symbol('x'), Integer(4)])r;   rK   r   rI   r<   r:   	test_listr      s#    71::344444r<   c            	     \   t           dft          dffD ]\  } }t           | t          dz  dgt          t          t          z   gg          d|z             t           |             d|z             t           | t          dz  dgt          t          t          z   gg          d|z             d S )NMutableDenseMatrixr   rO   zM%s([[Symbol('x'), Integer(1)], [Symbol('y'), Add(Symbol('x'), Symbol('y'))]])z%s([]))r   r   r;   rK   rW   )clsnames     r:   test_Matrixr      s    347KMc6de B B	T
33B
QAJ'((Z]aa	c 	c 	c 	3355(T/"""
33B
QAJ'((*y  }A  +A  	B  	B  	B  	BB Br<   c                     t          t          dd          d           t          t          dd          d           t          t          dd          d           d S )Nr      zMutableDenseMatrix(0, 3, [])r   zMutableDenseMatrix(4, 0, [])zMutableDenseMatrix([]))r;   r   rI   r<   r:   test_empty_Matrixr      sS    tAqzz1222tAqzz1222tAqzz+,,,,,r<   c                 ~    t          t          dd          d           t          t          dd          d           d S )NrO   r   zRational(1, 3)zRational(-1, 3))r;   r   rI   r<   r:   test_Rationalr      s:    x1~~'(((xA)*****r<   c                 2   t          t          dd          d           t          t          dd          d           t          t          dd	          d
           t          t          dd          d           t          t          dd          d           t          t          dd          d           t          t          dd          d
           t          t          dd          d           t          t          dd          d           d S )Nz1.23r   )dpszFloat('1.22998', precision=13)z
1.23456789	   z$Float('1.23456788994', precision=33)z1.234567890123456789   z.Float('1.234567890123456789013', precision=66)z0.60038617995049726   z*Float('0.60038617995049726', precision=53)   )	precision!   B   5   )r;   r   rI   r<   r:   
test_Floatr      sD   uV=>>>u\q!!!#IJJJu#,,,79 9 9u"+++35 5 5 uVr"""$DEEEu\R(((-/ / /u#r22279 9 9u"b11135 5 5 u"B''35 5 5 5 5r<   c                     t          t          d           t          t          d           t          t          dd          d           d S )NSymbol('x')zSymbol('y')rK   T)negativezSymbol('x', negative=True))r;   rK   rW   r   rI   r<   r:   test_Symbolr      sF    q-q-vcD!!!#?@@@@@r<   c                     t          ddd          } d}d}t          |           ||fv sJ t          t          |           t                    | k    sJ d S )NrK   r   rO   )r   integerz)Symbol('x', integer=True, negative=False)z)Symbol('x', negative=False, integer=True))r   r%   r4   r0   )rK   s1s2s      r:   test_Symbol_two_assumptionsr      sb    sQ***A	4B	4B88Bxa#!######r<   c                 8   t          t          d          d           t          t          dd          d           t          t          dd          d           t          t          dd          d           t          t          dd	          d           d S )
NrK   r   F)commutativezSymbol('x', commutative=False)r   TzSymbol('x', commutative=True)rO   )r;   r   rI   r<   r:   ,test_Symbol_no_special_commutative_treatmentr      s    vc{{M"""vcu%%%'GHHHvcq!!!#CDDDvct$$$&EFFFvcq!!!#BCCCCCr<   c                 D    t          t          dd          d           d S )NrK   T)evenzWild('x', even=True))r;   r   rI   r<   r:   	test_Wildr      s&    tCd344444r<   c                 n    t          d          } t          | dt          | j                  z             d S )NdzDummy('d', dummy_index=%s))r   r;   strdummy_index)r   s    r:   
test_Dummyr      s3    c

Aq
&Q]););
;<<<<<r<   c                     t          dd          } | t          t          |                     k    sJ dt          | j                  z  }dt          | j                  z  }t          |           ||fv sJ d S )Nr   T)nonzeroz(Dummy('d', dummy_index=%s, nonzero=True)z(Dummy('d', nonzero=True, dummy_index=%s))r   r4   r%   r   r   )r   r   r   s      r:   test_Dummy_assumptionr      sz    c4   AU1XX	3c!-6H6H	HB	3c!-6H6H	HB88Bxr<   c                     t          dd          } |                                 }t          |          dt          |j                  z  k    sJ d S )NnTr   zDummy('n', dummy_index=%s))r   as_dummyr%   r   r   )r   r   s     r:   test_Dummy_from_Symbolr      s`    sD!!!A	

A 
 
)C,>,>>? ? ? ? ? ?r<   c                 j    t          t          fd           t          t          t          fd           d S )Nz(Symbol('x'),)z(Symbol('x'), Symbol('y')))r;   rK   rW   rI   r<   r:   
test_tupler      s0    t1v+,,,,,r<   c                 @    t          t          d          d           d S )NwzWildFunction('w'))r;   r
   rI   r<   r:   test_WildFunctionr      s!    |C-.....r<   c                 2    t          t          d            d S )Nc                 .    t          t          d          S )Ngarbage)method)r%   rK   rI   r<   r:   <lambda>ztest_settins.<locals>.<lambda>   s    eAi888 r<   )r   	TypeErrorrI   r<   r:   test_settinsr      s    
98899999r<   c                     t          dt          dz  z  t          z  d           t          dt          dz  z  t          z  d          dk    sJ t          t	          dd          d	          d
k    sJ d S )Nr   z:Mul(Integer(3), Pow(Symbol('x'), Integer(3)), Symbol('y'))rR   rP   z:Mul(Integer(3), Symbol('y'), Pow(Symbol('x'), Integer(3)))z(x+4)*2*x*7FrS   rU   zFMul(Add(Symbol('x'), Integer(4)), Integer(2), Symbol('x'), Integer(7))rV   rI   r<   r:   test_Mulr      s    qAvaxMNNN1a4'''+ggggg777vFFF  KS  S  S  S  S  S  Sr<   c                     t          t          d                    } t          | d           t          t          dd                    } t          | d           d S )NrN   zJAlgebraicNumber(Pow(Integer(2), Rational(1, 2)), [Integer(1), Integer(0)])r   zKAlgebraicNumber(Pow(Integer(-2), Rational(1, 3)), [Integer(1), Integer(0)]))r   r   r;   r   )as    r:   test_AlgebraicNumberr      sR    Q  Aq
VWWWR$$Aq
WXXXXXr<   c                 J   t          t          dt          t                    d                   dk    sJ t          t          dt          t
                    d                   dk    sJ t          t          dt          d         t                    d                   dk    sJ d S )	NrK   r   z!PolyRing((Symbol('x'),), ZZ, lex)r/   z/PolyRing((Symbol('x'), Symbol('y')), QQ, grlex)x,y,ztz=PolyRing((Symbol('x'), Symbol('y'), Symbol('z')), ZZ[t], lex))r%   r&   r(   r*   r)   r+   rI   r<   r:   test_PolyRingr      s    c2s##A&''+NNNNNeR''*++/`````gr#w,,Q/004sssssssr<   c                 J   t          t          dt          t                    d                   dk    sJ t          t          dt          t
                    d                   dk    sJ t          t          dt          d         t                    d                   dk    sJ d S )	NrK   r   z"FracField((Symbol('x'),), ZZ, lex)r/   z0FracField((Symbol('x'), Symbol('y')), QQ, grlex)r   r   z>FracField((Symbol('x'), Symbol('y'), Symbol('z')), ZZ[t], lex))r%   r'   r(   r*   r)   r+   rI   r<   r:   test_FracFieldr      s    sB$$Q'((,PPPPPub%((+,,0bbbbbw3--a0115uuuuuuur<   c                 z    t          dt                    \  } }}t          d|dz  z  |z  dz             dk    sJ d S )Nr/   r   rN   rO   zVPolyElement(PolyRing((Symbol('x'), Symbol('y')), ZZ, lex), [((2, 1), 3), ((0, 0), 1)]))r&   r(   r%   )rJ   rK   rW   s      r:   test_PolyElementr     sE    5"ooGAq!1a4A"zzzzzzzr<   c                     t          dt                    \  } }}t          d|dz  z  |z  dz   ||dz  z
  z            dk    sJ d S )Nr/   r   rN   rO   ztFracElement(FracField((Symbol('x'), Symbol('y')), ZZ, lex), [((2, 1), 3), ((0, 0), 1)], [((1, 0), 1), ((0, 2), -1)]))r'   r(   r%   )FrK   rW   s      r:   test_FracElementr     si    E2GAq!!AqD&(Q,QT*++  0f  f  f  f  f  f  fr<   c                     t          t          j        t                              dk    sJ t          t          j        t          t          t
                              dk    sJ d S )Nz1FractionField(FracField((Symbol('x'),), QQ, lex))rP   z?FractionField(FracField((Symbol('x'), Symbol('y')), QQ, grlex)))r%   r)   
frac_fieldrK   rW   r+   rI   r<   r:   test_FractionFieldr     sq    q!!"";< < < <q!511122IJ J J J J Jr<   c                 `   t          t          j        t                              dk    sJ t          t          t                                       t                              dk    sJ t          t          j        t                                        t                              dk    sJ d S )Nz%GlobalPolynomialRing(ZZ, Symbol('x'))z(GlobalPolynomialRing(ZZ[x], Symbol('y'))zTGlobalPolynomialRing(FractionField(FracField((Symbol('x'),), QQ, lex)), Symbol('y')))r%   r(   old_poly_ringrK   rW   r)   r   rI   r<   r:   test_PolynomialRingBaser     s    !!$$%%/0 0 0 0A$$Q''((23 3 3 3q!!//2233^_ _ _ _ _ _r<   c                 >   t          ddgt                    }  t          j        t                    ddg          }t          dk    r,t          |           dk    sJ t          |          dk    sJ d S t          |           dk    sJ t          |          dk    sJ d S )NrO   rN   flintzDMP_Python([1, 2], ZZ)zDUP_Flint([1, 2], ZZ))r-   r(   r   rK   r   r%   )p1p2s     r:   test_DMPr     s    	aVRB		!		aV	$	$BwRyy44444Ryy4444444Ryy33333Ryy3333333r<   c                     t          t          t          t          dz  dz   t                                        dk    sJ d S )NrN   rO   z/FiniteExtension(Poly(x**2 + 1, x, domain='ZZ')))r%   r.   r,   rK   rI   r<   r:   test_FiniteExtensionr   '  sH    adQh!2!233449: : : : : :r<   c                     t          t          t          dz  dz   t                              } t          dk    rd}nd}t	          | j                  |k    sJ d S )NrN   rO   r   zPExtElem(DMP_Python([1, 0], ZZ), FiniteExtension(Poly(x**2 + 1, x, domain='ZZ')))zOExtElem(DUP_Flint([1, 0], ZZ), FiniteExtension(Poly(x**2 + 1, x, domain='ZZ'))))r.   r,   rK   r   r%   	generator)Aanss     r:   test_ExtensionElementr   ,  sY    QTAXq))**Aw`_$$$$$$r<   c                 n    t          t                    dk    sJ t          t                    dk    sJ d S )Nr   r   )r%   r   r   rI   r<   r:   test_BooleanAtomr   4  s6    ;;&    <<7""""""r<   c                 :    t          t          j        d           d S )NIntegers)r;   r   r   rI   r<   r:   test_Integersr   9      qz:r<   c                 :    t          t          j        d           d S )Nrv   )r;   r   rv   rI   r<   r:   test_Naturalsr   =  r   r<   c                 :    t          t          j        d           d S )Nrw   )r;   r   rw   rI   r<   r:   test_Naturals0r   A  s    q{K     r<   c                 :    t          t          j        d           d S )Nry   )r;   r   ry   rI   r<   r:   
test_Realsr   E  s    qwr<   c                     t          dd          } t          d| |           }t          d| |           }t          |d           t          ||z  d           t          ||z   d           d S )	Nr   Tr   r   BzLMatrixSymbol(Str('A'), Symbol('n', integer=True), Symbol('n', integer=True))zMatMul(MatrixSymbol(Str('A'), Symbol('n', integer=True), Symbol('n', integer=True)), MatrixSymbol(Str('B'), Symbol('n', integer=True), Symbol('n', integer=True)))zMatAdd(MatrixSymbol(Str('A'), Symbol('n', integer=True), Symbol('n', integer=True)), MatrixSymbol(Str('B'), Symbol('n', integer=True), Symbol('n', integer=True))))r   r   r;   )r   r   r   s      r:   test_matrix_expressionsr   I  s    T"""AS!QAS!QAq
XYYYqs  q  r  r  rq1u  s  t  t  t  t  tr<   c                 L    t          t          dd                    dk    sJ d S )NrO   rN   zCycle(1, 2))r%   r    rI   r<   r:   
test_Cycler   R  s+    
 q!......r<   c                    d} t           t          dd          dd          d| d           t           t          dd          dd          d	| d
           t                      5  t          j        }dt          _        t           t          dd          dd          d|            |t          _        d d d            d S # 1 swxY w Y   d S )Nz+from sympy.combinatorics import PermutationrO   rN   r   r   zPermutation([0, 2, 1, 4, 3])F)perm_cycliczPermutation(1, 2)(3, 4)T)r;   r!   r   print_cyclic)r7   old_print_cyclics     r:   test_Permutationr  Z  s   ?K{1aA >Y^____{1aA 9;TXYYYY		!	! 4 4&3#( 
;q!Q""$BKPPP#3 	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   'ACC	Cc                     ddl m} m}m} i }t	          |          dk    sJ | |i}t	          |          dk    sJ | |||i}t	          |          dv sJ | ||ii}t	          |          dk    sJ d S )Nr   )rK   rW   zz{}z{Symbol('x'): Symbol('y')})z4{Symbol('x'): Symbol('y'), Symbol('y'): Symbol('z')}z4{Symbol('y'): Symbol('z'), Symbol('x'): Symbol('y')}z){Symbol('x'): {Symbol('y'): Symbol('z')}})	sympy.abcrK   rW   r  r%   )rK   rW   r  r   s       r:   	test_dictr  e  s    !!!!!!!!!!
A88t	
AA8833333	
Aq!A88      
QFA88BBBBBBBr<   c                     ddl m} m} t                      }t	          |          dk    sJ | |h}t	          |          dv sJ d S )Nr   )rK   rW   zset())z{Symbol('x'), Symbol('y')}z{Symbol('y'), Symbol('x')})r  rK   rW   setr%   )rK   rW   ss      r:   test_setr
  s  sa    A88w	
AA88SSSSSSSr<   c                 :    t          t          j        d           d S )NzQ.even)r;   r   r   rI   r<   r:   test_Predicater  z  s    qvxr<   c                 d    t          t          j        t          d                    d           d S )Nr  z%AppliedPredicate(Q.even, Symbol('z')))r;   r   r   r   rI   r<   r:   test_AppliedPredicater  }  s)    qvfSkkCDDDDDr<   )N)x
__future__r   typingr   sympy.external.gmpyr   sympy.testing.pytestr   r   sympy.assumptions.askr   sympy.core.functionr	   r
   sympy.core.numbersr   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r   r   r   sympy.core.sympifyr   $sympy.functions.elementary.complexesr   (sympy.functions.elementary.miscellaneousr   r   (sympy.functions.elementary.trigonometricr   'sympy.functions.special.delta_functionsr   sympy.logic.boolalgr   r   sympy.matrices.denser   r   "sympy.matrices.expressions.matexprr   sympy.matrices.immutabler   sympy.combinatoricsr    r!   r"   sympy.geometryr#   r$   sympy.printingr%   sympy.polysr&   r'   r(   r)   r*   r+   r,   sympy.polys.polyclassesr-   sympy.polys.agca.extensionsr.   rK   rW   r0   __annotations__r3   r;   rL   rX   r_   rb   rd   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  rI   r<   r:   <module>r(     s|   " " " " " " "       , , , , , , ? ? ? ? ? ? ? ? # # # # # # 8 8 8 8 8 8 8 8 J J J J J J J J J J J J " " " " " " < < < < < < < < < < < < & & & & & & 4 4 4 4 4 4 A A A A A A A A 8 8 8 8 8 8 = = = = = = - - - - - - - - / / / / / / / / ; ; ; ; ; ; 9 9 9 9 9 9 2 2 2 2 2 2 2 2 ! ! ! ! ! ! ) ) ) ) ) ) ) )             = = = = = = = = = = = = = = = = = = ' ' ' ' ' ' 7 7 7 7 7 7wu~~1 cl " " " " C      & & & &"- - -E E E) ) )  > > >
K K K' ' '6! ! !5 5 5B B B- - -+ + +
5 5 5(A A A$ $ $D D D5 5 5= = =
     ? ? ?- - -
/ / /: : :S S SY Y Yt t tv v v{ { {
f f f
J J J_ _ _4 4 4: : :
% % %# # #
    ! ! !  t t t/ / /	4 	4 	4C C CT T T  E E E E Er<   