
    sg2                       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 Zwy)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         j                         }t        ||       t        | fi ||k(  sJ t	        ||      | k(  sJ y)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        Q/var/www/html/venv/lib/python3.12/site-packages/sympy/printing/tests/test_repr.pysTr;   $   sQ     xxz[$  F***%%%    c                 V     G d dt               } t         | t                    dk(  sJ y )Nc                      e Zd Zd Zy)test_printmethod.<locals>.Rc                D    d|j                  | j                  d         z  S )Nzfoo(%s)r   )_printargs)selfprinters     r:   
_sympyreprz&test_printmethod.<locals>.R._sympyrepr7   s    w~~dii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   s'    <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 y )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   <   sw    q1u-.A'+ZZZZA'+ZZZZu5VD  IE  E  E  Er<   c                 |    ddl m}  ddlm} | |fD ])  } |t	        d       }t        t        |            |k(  r)J  y )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   sA    ""Cj )77#$E$K D((()r<   c                     t         t        d      t              d       t        t        d      d       t        t        t              d       t        t        d       y )NfzFunction('f')(Symbol('x'))zFunction('f')zsin(Symbol('x'))r   )r;   r	   rK   r   rI   r<   r:   test_Functionrb   K   s>    }x}Q56x}o&s1v!"sENr<   c                 j    t        t        t              d       t        t        t        d      d       y )NzHeaviside(Symbol('x'))rO   z"Heaviside(Symbol('x'), Integer(1)))r;   r   rK   rI   r<   r:   test_Heavisiderd   T   s"    y|-.yA<=r<   c                 r    t        t        dd      d       t        t        t        dd      dd      d       y )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   s0    uQ{56wuQ{Aq!I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        j0                  d       y )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   `   sJ   qyy)q% q||\"qvvsOq}}m$q12qvv qqzz4quueq5!q}}m$quulqttTNqvv|q{{K q(qzz:qzz:q{{K q{{K qwwq~~~&r<   c                 .    t        t        d      d       y )N   z
Integer(4))r;   r   rI   r<   r:   test_Integerr   {   s    wqz< r<   c                 :    t        t        t        d      gd       y )Nr   z[Symbol('x'), Integer(4)])r;   rK   r   rI   r<   r:   	test_listr      s    71:3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         } y )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	T
3B
QAJ'(Z]aa	c 	35(T/"
3B
QAJ'(*y  }A  +A  	BBr<   c                     t        t        dd      d       t        t        dd      d       t        t        dd      d       y )Nr      zMutableDenseMatrix(0, 3, [])r   zMutableDenseMatrix(4, 0, [])zMutableDenseMatrix([]))r;   r   rI   r<   r:   test_empty_Matrixr      s5    tAqz12tAqz12tAqz+,r<   c                 \    t        t        dd      d       t        t        dd      d       y )NrO   r   zRational(1, 3)zRational(-1, 3))r;   r   rI   r<   r:   test_Rationalr      s$    x1~'(xA)*r<   c                    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       y )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      s    uV=>u\q!#IJu#,79u"+35 uVr"$DEu\R(-/u#r279u"b135 u"B'35r<   c                 r    t        t        d       t        t        d       t        t        dd      d       y )NSymbol('x')zSymbol('y')rK   T)negativezSymbol('x', negative=True))r;   rK   rW   r   rI   r<   r:   test_Symbolr      s(    q-q-vcD!#?@r<   c                     t        ddd      } d}d}t        |       ||fv sJ t        t        |       t              | k(  sJ y )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      sI    sQ*A	4B	4B8Bxa#!###r<   c                     t        t        d      d       t        t        dd      d       t        t        dd      d       t        t        dd      d       t        t        dd	      d       y )
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      sX    vc{M"vcu%'GHvcq!#CDvct$&EFvcq!#BCr<   c                 2    t        t        dd      d       y )NrK   T)evenzWild('x', even=True))r;   r   rI   r<   r:   	test_Wildr      s    tCd34r<   c                 ^    t        d      } t        | dt        | j                        z         y )NdzDummy('d', dummy_index=%s))r   r;   strdummy_index)r   s    r:   
test_Dummyr      s$    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 y )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      s`    c4 AU1X	3c!--6H	HB	3c!--6H	HB8Bxr<   c                     t        dd      } | j                         }t        |      dt        |j                        z  k(  sJ y )NnTr   zDummy('n', dummy_index=%s))r   as_dummyr%   r   r   )r   r   s     r:   test_Dummy_from_Symbolr      sC    sD!A	

A 
)C,>>? ? ?r<   c                 R    t        t        fd       t        t        t        fd       y )Nz(Symbol('x'),)z(Symbol('x'), Symbol('y')))r;   rK   rW   rI   r<   r:   
test_tupler      s    t1v+,r<   c                 .    t        t        d      d       y )NwzWildFunction('w'))r;   r
   rI   r<   r:   test_WildFunctionr      s    |C-.r<   c                 &    t        t        d        y )Nc                 $    t        t        d      S )Ngarbage)method)r%   rK   rI   r<   r:   <lambda>ztest_settins.<locals>.<lambda>   s    eAi8 r<   )r   	TypeErrorrI   r<   r:   test_settinsr      s    
98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 y )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      se    qAvaxMN1a4'+gggg7vF  KS  S  S  Sr<   c                     t        t        d            } t        | d       t        t        dd            } t        | d       y )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      s6    Q Aq
VWR$Aq
WXr<   c                     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 y )	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      sl    c2s#A&'+NNNNeR'*+/````gr#w,Q/04ssssr<   c                     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 y )	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      sl    sB$Q'(,PPPPub%(+,0bbbbw3-a015uuuur<   c                 d    t        dt              \  } }}t        d|dz  z  |z  dz         dk(  sJ y )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     s7    5"oGAq!1a4A"zzzzr<   c                 v    t        dt              \  } }}t        d|dz  z  |z  dz   ||dz  z
  z        dk(  sJ y )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     sQ    E2GAq!!AqD&(Q,QT*+  0f  f  f  fr<   c                     t        t        j                  t                    dk(  sJ t        t        j                  t        t        t
                    dk(  sJ y )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     sO    q!";< < <q!512IJ J Jr<   c                 "   t        t        j                  t                    dk(  sJ t        t        t           j                  t                    dk(  sJ t        t        j                  t              j                  t                    dk(  sJ y )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A$$Q'(23 3 3q!//23^_ _ _r<   c                     t        ddgt              }  t        j                  t              ddg      }t        dk7  r!t        |       dk(  sJ t        |      dk(  sJ y t        |       dk(  sJ t        |      dk(  sJ y )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Ry4444Ry4444Ry3333Ry3333r<   c                 f    t        t        t        t        dz  dz   t                          dk(  sJ y )NrN   rO   z/FiniteExtension(Poly(x**2 + 1, x, domain='ZZ')))r%   r.   r,   rK   rI   r<   r:   test_FiniteExtensionr   '  s0    adQh!2349: : :r<   c                     t        t        t        dz  dz   t                    } t        dk7  rd}nd}t	        | j
                        |k(  sJ y )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   ,  sD    QTAXq)*Aw`_$$$r<   c                 T    t        t              dk(  sJ t        t              dk(  sJ y )Nr   r   )r%   r   r   rI   r<   r:   test_BooleanAtomr   4  s&    ;&   <7"""r<   c                 8    t        t        j                  d       y )NIntegers)r;   r   r   rI   r<   r:   test_Integersr   9      qzz:r<   c                 8    t        t        j                  d       y )Nrv   )r;   r   rv   rI   r<   r:   test_Naturalsr   =  r   r<   c                 8    t        t        j                  d       y )Nrw   )r;   r   rw   rI   r<   r:   test_Naturals0r   A  s    q{{K r<   c                 8    t        t        j                  d       y )Nry   )r;   r   ry   rI   r<   r:   
test_Realsr   E  s    qwwr<   c                     t        dd      } t        d| |       }t        d| |       }t        |d       t        ||z  d       t        ||z   d       y )	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qs  q  rq1u  s  tr<   c                 8    t        t        dd            dk(  sJ y )NrO   rN   zCycle(1, 2))r%   r    rI   r<   r:   
test_Cycler   R  s    
 q!...r<   c                 N   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        y # 1 sw Y   y xY w)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		! 4&33#( 
;q!Q"$BKP#3 	4 4 4s   ABB$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 y )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8t	
AA83333	
Aq!A8     
QFA8BBBBr<   c                 n    ddl m} m} t               }t	        |      dk(  sJ | |h}t	        |      dv sJ y )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  s:    A8w	
AA8SSSSr<   c                 8    t        t        j                  d       y )NzQ.even)r;   r   r   rI   r<   r:   test_Predicater  z  s    qvvxr<   c                 T    t        t        j                  t        d            d       y )Nr  z%AppliedPredicate(Q.even, Symbol('z')))r;   r   r   r   rI   r<   r:   test_AppliedPredicater  }  s    qvvfSkC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 J J " < < & 4 A 8 = - / ; 9 2 ! )   = = = ' 7u~1 cl^ " C  &"-E)>
K'6!5B-+
5(A$D5=
 ?-
/:SYtv{
f
J_4:
%#
!t/	4CTEr<   