
    oVh3                    6   d dl mZ d dl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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mZ d d	lmZ d d
lmZ d dlmZm Z 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- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dl*mCZC d dlDmEZE  ed      \  ZFZGZHZIZJ edd      ZKd ZLd  ZMd! ZNd" ZOd# ZPd$ ZQd% ZRd& ZSd' ZTd( ZUd) ZVd* ZWd+ ZXd, ZYd- ZZd. Z[d/ Z\d0 Z]d1 Z^d2 Z_d3 Z`d4 Zae<d5        Zbd6 Zce<d7        Zdd8 Zed9 Zfd: Zgd; Zhd< Zid= Zjd> Zkd? Zld@ ZmdA ZndB ZodC ZpdD ZqdE ZrdF ZsdG ZtdH ZudI ZvdJ ZwdK ZxdL ZydM ZzdN Z{dO Z|dP Z}dQ Z~dR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zy)    )Add)Basic)Mod)Mul)	FloatIIntegerRationalcompnanoopizoo)Pow)S)DummySymbolsymbols)sympify)	factorial)imresign)explog)floor)Maxsqrt)atancossin)Integral)Poly)	FiniteSet)
distributeevaluate)	unchanged)permutations)XFAILraiseswarns)SymPyDeprecationWarning)verify_numerically)asin)productz	a,c,x,y,zbTpositivec                 B    | |k(  xr | j                   |j                   k(  S N)_precar0   s     J/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_arit.pysame_and_same_precr9   #   s    6(agg((    c                      t        t              t        k7  sJ t        j                  t        dd       t        t              t        k7  sJ y Nr      )r   xseries r:   r8   	test_bug1rA   (   s2    a5A::HHQ1a5A::r:   c                  z   t         t        z  } | t         t        z  k(  sJ t         t        z  t        z  t         t        dz  z  k(  sJ t         t        z  t        z  t        z   t        t         t        dz  z  z   k(  sJ t         t        z  t        z  t        z
  t         t         t        dz  z  z   k(  sJ t        ddd      }|j                  J t        ddd      }|j
                  J t        dd      }|j                  sJ t        dd      }|j                  sJ t        ddd	      }|j                  J y )
N   r>   TF)complexreal)rD   	imaginaryrE   rF   )rE   rF   )r7   r0   cr   is_imaginaryis_real
is_complex)er>   s     r8   test_SymbolrN   .   s   	!A!8O8Q3q5AadF??Q3q519AadF
"""Q3q519Qq!tV###sDu-A>>!!!sDE2A99sA<<<sd#A<<<s%0A<<r:   c                  N	   t        d      } t        t        z  }|t        t        z  k(  sJ t        t        z  t        t        z  z   }|dt        z  t        z  k(  sJ t        t        z  t        t        z  z   t        t        z  z   | t        z  t        z  z   }|dt        z  t        z  k(  sJ t        t        z  t        t        z  z   t        t        z  z   | t        z  t        z  z   t        z   }|t        dt        z  t        z  z   k(  sJ t        t        z   }|dt        z  k(  sJ t        t        z   t        z   }|t        dt        z  z   k(  sJ t        t        t        z  z   t        z   t        t        z  z   }|dt        z  dt        dz  z  z   k(  sJ t        t        d      z   t        t        z  z   t        z   t        t        z  z   | z   }|ddt        z  z   dt        dz  z  z   k(  sJ t        t        t        z  z   t        z   t        t        z  z   | z  }|ddt        z  dt        dz  z  z   z  k(  sJ t        t        z  t        z  t        t        z  t        z  z   t        t        z  t        z  z   | z  }|dt        z  t        z  t        z  k(  sJ t        t        z  t        z  t        t        z  t        z  z   t        t        z  t        z  z   | z  t        d      t        z  t        z  t        z  z
  }|t        d      k(  sJ t        d      t        t        z
  z  }|t        d      k(  sJ t        t        z  t        z
  t        t        z  z
  t        z   }|t        d      k(  sJ t        t        z  t        | z  z   }|t        t        z  t        dz  z   k(  sJ t        t        z  }|t        t        dz  z  k(  sJ t        dz  dz  }|d	t        z  k(  sJ dt        dz  dz  z   }|dt        z   k(  sJ dt        z
  dz
  }|t         k(  sJ dt        z  dz  }|d	t        z  k(  sJ dt        z  dz  }|t        dz  k(  sJ dt        dz  z  }|dt        dz  z  k(  sJ d
t        z    }|dt        z
  k(  sJ t        j
                  d
t        z   z  }|t        j
                  t        dz  z   k(  sJ y )N   rC            r   2      r=   )r
   r7   r0   rI   r   Half)prM   s     r8   
test_arit0rY   A   s   A	!A!8O8	!ac	A!A::	!ac	AaC!A#a%A!A::	!ac	AaC!A#a%!#AAaCE	>>	AA!8O8	A	AAaC<<	AaC!acA!a1f	HQK!A#!AaC'!+AAaC!AqD&    	
QqS1qs	AA1Q31a4<    	
1Q1Q1Q	!A1Qq==	
1Q1Q1Q	!HRLN1$4Q$66Aa!eA	!a!A#A	!ad
A!ad
??	!A!b'	>>	!AA!8O8	AaCE	AA::	A	A7N7	!AA!8O8	!AAB<<	1a4AAqD	>>
a%AQ;;	AA1r:   c                  *   t         t        z  } | t         t        dz  z  k(  sJ t         t        z  t        dz  z   } | t         t        dz  z  t        d      dz  t        z  z   k(  sJ dt        z
  t        dz
  z  } | dt         z   dt        z   dz  z  k(  sJ y )NrU   rC   r=   )r7   r0   rI   r
   rM   s    r8   test_divr\   s   s    	!A!b'	>>	!ac	A!b'	HQKM!O++++	
QQAaR2(b)))))r:   c            	      "   t        d      } t        d      }t        d      }t        t        z  }|t        dz  k(  sJ t        t        z  t        z  }|t        dz  k(  sJ t        t        z  t        z  t        t        d      z  z  }|t        dz  k(  sJ t        t        z  t        z  t        t        d      z  z  t        t        d      z  z
  }|t        d      k(  sJ t        t        t        z
  z  }|t        d      k(  sJ t        t        d      z   t        z
  t        z  }|t        d      k(  sJ t        t        z   t        z   |z  }|t        t        z   t        z   dz  k(  sJ |j	                         dt        z  t        z  dt        z  t        z  z   dt        z  t        z  z   t        dz  z   t        dz  z   t        dz  z   k(  sJ t        t        z   |z  }|t        t        z   dz  k(  sJ |j	                         dt        z  t        z  t        dz  z   t        dz  z   k(  sJ t        t        z   | |z  z  }|t        t        t        z         k(  sJ |j	                         t        t        t        z         k(  sJ || |z  z  }|t        d      k(  sJ |t        z  t        z  |t        z  t        z  z
  }|t        d      k(  sJ |t        z  t        z  |t        z  t        z  z   }|dt        z  t        z  t        d      z  k(  sJ |j                  t              dt        z  t        d      z  k(  sJ |j                  t              dt        z  t        d      z  k(  sJ t        t        dz  z  }|t        t        dz  z  k(  sJ t        ddt        d      z   z        dddt        j                  z  z   z  t        j                  z  k(  sJ t        d	      }t        d
      }||z  dz  j	                         |dz  |dz  z  k(  sJ ||z  dz  j	                         |dz  |dz  z  k(  sJ |dz  d|z  dz  z  j	                         d|dz  z  k(  sJ |dz  d|z  dz  z  j	                         d|dz  z  k(  sJ |dz  d|z  dz  z  j	                         |dz  t        dd      z  k(  sJ |dz  d|z  dz  z  j	                         |dz  t        dd      z  k(  sJ t        d	d      }t        d
d      }|||t        ||z         z   z  t        z   z  j	                  d      |t        z  |||t        ||z         z   z  z  z  k(  sJ |||t        ||z         z   z  t        z   z  j	                         |t        z  |||z  |t        |      t        |      z  z  z  z  z  k(  sJ t        dd      }t        dd      }	t        dd      }
t        t        d|      sJ t        t        d|      sJ d|	z  d|	z  k(  sJ d|	z  dk(  sJ d|
z  dk(  sJ y )Nr=   rC   rP         	   r   r>   y   rQ   irU   FzerodeepnevenkToodd)r
   r7   r0   rI   expandr   diffr   rW   r   r   zr'   r   )n1n2n5rM   ri   r>   rb   _x_yrl   rm   s              r8   test_pow_aritrx   |   s   	!B	!B	!B	!A199	!AA199	!Aa!nA199	!Aa!nq(1+~-A	AE
A	
Xa[1	q A	
QRAQQ88:1Q1Q1Q.A51<q!tCCCC	
QAQ
??88:1QA1,,,,	
Q"R%AQU88:a!e$$$
RUAQ<<	!A!AA	!A!AA!Ad1g66!9!DG###66!9!DG###	!Q$A!b'	>>1tAw; QAqvvI%6$????sAsAqS1H!Q$A+---qS2I1b51b5=000qD!A#O##%ad222qD"Q$!$$&#1*444qD!A#$$&!Q$!R*@@@@qD"Q$"%%'1a4(2r2B+BBBB 
%	 B	%	 BQQU^$q()11u1=
Ab1q3q1u:~&''( ( (a#a!e*n%)*224
Ab2q5c!fSVm,,--. . . 	sAsAsAS"a   S"a   7ad??7a<<7b==r:   c                  F   t          t        dd      z  t         t        dd      z  k7  sJ t          t        dd      z  t         t        dd      z   k7  sJ t          dz  t        dd      z  t          t        dd      z  dz  k7  sJ t        t         dz        t         k7  sJ y )NrC   r^   rP   rR   r=   )r>   r
   r   r@   r:   r8   	test_pow2rz      s     B!Q1hq!n#4444B!QAx1~$5#5555R!Ghq!n$1"x1~)=(AAAA1:??r:   c                  z    t        d      dz  dt        d      z  k(  sJ t        d      dz  t        d      k(  sJ y )NrC   r^   rQ   )r   r@   r:   r8   	test_pow3r|      s:    7A:T!W$$$7A:a   r:   c            	         dddt        d      dz  dt        d      dz  t        d      dz  ffD ]  \  } }}}t        t        |       ||      |k(  sJ t        t        |       t        |      |      |k(  sJ t        t        |       |t        |            |k(  sJ t        t        |       t        |      t        |            |k(  rJ  t        t        d      t        d	      t        d            d
k(  sJ t        t        t        t              t        t        z  t        z  k(  sJ t        t        d        t        t        d        y )N)rV        i  )rV   rc   r   im  )皙	@g @gffffff?g@mGd?r^   rC   rP   r_           d(	 r=   c                  .    t        t        d      dd      S )NrV   13r   powr   r@   r:   r8   <lambda>ztest_mod_pow.<locals>.<lambda>   s    c!A$c2 r:   c                  .    t        t        d      dd      S )NrV   r~   497r   r@   r:   r8   r   ztest_mod_pow.<locals>.<lambda>   s    c!A$E2 r:   )r   r   r>   rb   rr   r*   	TypeError)stuvs       r8   test_mod_powr      s   (*;/!A$q&!QqT!VQqT"W1MO *
1a1Q4A!###1Q41q!Q&&&1Q4AaD!Q&&&1Q41qt$)))* qtQ{^QqT*a///q!Q<1a46!!!
923
923r:   c                     dt         t        d      z  z  t        j                  t         z  k(  sJ dt         t        d      z  dz  z  t        j                  t         dz  z  k(  sJ ddt        d      z  z  t        j                  k7  sJ ddt        z  z   dt        ddt        z  z
        t        t
        z  z   z  z  t        j                  k(  sJ ddt        z  z   dt        ddt        z  z
        t        t
        z  z   z  z  t        j                  k(  sJ ddt        z  z   dt        ddt        z  z
  d      dz  t        t
        z  t        d      z  dz  z   z  z  dk(  sJ ddt        z  z   dt        ddt        z  z   d      dz  z  z  dk(  sJ 	 t        j                         } | j                         \  }}|rn+t        | dt        |        t        |      t        z  t
        z  z   j                         z  z  t        j                        sJ y )NrC   r^   r=   rc   rV   r`   )rb   r   r   Exp1r   r   r>   _randomas_real_imagr-   r   ri   )r0   ris      r8   
test_pow_Er      s   qQx=AFFAI%%%qQxz?affqsm+++qRy>QVV###!Gq#b1Q3h-!B$./0AFF:::!Gq#b1Q3h-!B$./0AFF:::!Gq#b1Q3h*1,qtCF{1}<=>!CCC!Gq#a!A#gq/!+,-222 IIK~~1	 
 a!S!WtAwqy|%;$>$>$@"@A166JJJr:   c                  >    dt        dd      z  t        d      k(  sJ y )NrV   r=   rC   )r
   r   r@   r:   r8   test_pow_issue_3516r      s    hq!nQ'''r:   c            	         dD ]r  } dD ]k  }| t         z  }t        dd|z  dz         D ]K  }t        ||      }||z  |j                         |j                         z  z
  j                  dd      dk(  rKJ  m t t        d	d
      }dt        z  t         z  |z  ddt        dd
      z  z  t         t        z  |z  z  k(  sJ t        dd      }d|z  t         z  |z  ddt        dd
      z  z  t         |z  |z  z  k(  sJ t         t         t         t         dg}t        dd
      }d|z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ t         t         t         dg}t        dd
      }d|z  t          |z  z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ |j                  d       dt         z  |z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ |j                  d       dt         z  |z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ t         t         dg}t        dd
      }d|z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ |j                  d       d|z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ |j                  d       d|z  }t        |ddi|z  |k(  sJ t        | |z  |k(  sJ t        t        dt        d
d      d      t         t               t         k(  sJ t        t         t        t         t        j                  d      z        t        t               t         z  k(  sJ y )N)ra   rU   rC   )r^   rV   rP   r=   rV   rC   g|=)chopr   rR   r^   r   TrH   r&   Frc   r_   rU   ra   r&   )r   ranger
   ri   r>   r   r   appendr   r   rW   r   )mdr0   r   rM   r   argsanss           r8   test_pow_imr      s    C 	CA!A1acAg& CQN1qssuacce|+..qu.=BBBC	CC 	AAaCEA:1hq!n,,acAX5555		&BbDFQ;!Ax1~--qtai7777q!Q?DAA
Q$C%u%q(C///:q=Cq!Q<DAA
Q$Qw,C%u%q(C///:q=CKKOQ3(C%u%q(C///:q=CKKOa4!)C%u%q(C///:q=Cq!9DAA'C%u%q(C///:q=CKKOq&C%u%q(C///:q=CKKO'C%u%q(C///:q=Cs2x1~61=BBBqQ//0DGAI===r:   c                      t        d      t        z  t        z  dk(  sJ t        t        d      t        z  t        z  j                        t        d      t        t        hk(  sJ y r<   )r   r   r>   setr   r@   r:   r8   test_real_mulr   '  sN    8b=1!!!a2!''(U1Xr1,====r:   c                     t        dd      } t        dd      }t        dd      }| |z  || z  k7  sJ | |z  |z  ||z  | z  k7  sJ | t        z  |z  dz  |z  dt        z  | z  |z  |z  k(  sJ | t        z  |z  dz  |z  dt        z  |z  | z  |z  k7  sJ | t        z  |z  dz  |z  d| z  |z  |z  t        z  k(  sJ | |z   || z   k(  sJ | |z   |z  || |z   z  k7  sJ || |z   z  |z  ||z  | |z   z  k7  sJ | | z  | dz  k(  sJ | |z   | |z   z  | |z   dz  k(  sJ | dz  | z  d	k(  sJ | | z  d	k(  sJ | | dz  z  d	| z  k(  sJ | d	| z   z  | d	| z   z  k(  sJ t        | |z   d| |z   z  z   j                        | |d| |z   z  hk(  sJ y )
NAFcommutativeBCr^   rC   rU   r=   )r   r0   r   r   r   r   r   s      r8   
test_ncmulr   ,  s   s&As&As&AQ3!A#::Q3q5AaCE>>Q3q5719!Aa	!!!Q3q5719!Aa	!!!Q3q5719!Aa	!!!q5AE>>E191q5	!!!a!e9Q;!A#q1u+%%%Q3!Q$;;EAE?q1uqj(((b519>>Q3!8O8ad8qs??a!e91q5	!!!A1q5	!''(	
Aq!a%y  r:   c                     t        dd      } t        | t              r| j                  dk(  r| j                  dk(  sJ t        ddd      } t        | t               r| j
                  dk(  sJ t        dd      } | t        j                  u sJ t        ddd      } t        | t               r| j
                  dk(  sJ t        dd      } | t        j                  u sJ t        ddd      } t        | t              r| j
                  dk(  sJ y )Nr=   rC   Fr   r=   rC   r   )r   r=   )
r   
isinstancer
   rX   qr   r   Zeror   One)r   s    r8   test_mul_add_identityr   H  s    Aq	Aa"qssaxACC1H<<Aq5!Aa!&&F"222Aq	A;;Aq5!Aa!&&F"222Aq	A::Aq5!Aa!&&F"222"2r:   c                  Z   t        dd      } t        dd      }t        dd      }t        d      }t        d      }t        d      }| d	z  |d	z  z  |d	z  | d	z  z  k7  sJ | d
z  |z  || d	z  z  k7  sJ d	| z  d	|z  z  d	| |z   z  k7  sJ d	| z  d	|z  z  d	|z  z  d	| |z   |z   z  k7  sJ d	| z  d	d	| z  z  z  d	d| z  z  k(  sJ d	| z  d	d	| z  z  z  d	| z  z  d	d| z  z  k(  sJ t        |       t        |      z  t        |      t        |       z  k7  sJ t        |       t        |      z  t        |      z  t        |      t        |       z  t        |      z  k7  sJ t        |       t        |      z  t        |      z  t        | |z   |z         k7  sJ | |z  | |z  z  | ||z   z  k7  sJ | |z  | |z  z  | |z  z  | ||z   |z   z  k7  sJ | dz  | dz  z  | dz  k(  sJ | dz  | dz  z  | d	z  z  | dz  k(  sJ | |z  | d|z  z  z  | d|z  z  k(  sJ | |z  | d|z  z  z  | |z  z  | d|z  z  k(  sJ y )Nr>   Fr   rb   rr   r7   r0   rI   rC   ra   r^   rV   rR   r`   rP   r_   )r   r   )r>   rb   rr   r7   r0   rI   s         r8   
test_ncpowr   W  s   s&As&As&AsAsAsAqD1a4=QTAqDM)))rE191a4   a419AE
"""a419QT>QQ^+++a4AaC=A!H$$$a4AaC=AQqS)))q6#a&=CF3q6M)))q6#a&=Q3q6#a&=Q#7777q6#a&=Q3q1uqy>111a419AE
"""a419QT>QQ^+++a4191a419QT>QT!!!a4AaC=A!H$$$a4AaC=AQqS)))r:   c                      t        d      } | dz  |  dz  k7  sJ | dz  |  dz  k(  sJ | dz  |  dz  k7  sJ | dz  |  dz  k(  sJ | dz  |  dz  k7  sJ | dz  |  dz  k(  sJ | dz  |  dz  k(  sJ | d	z  |  d	z  k7  sJ d| z  dz  d
| z  dz  k(  sJ y )Nr>   r=   rC   r^   rV   rP   r_         ra   r   r>   s    r8   test_powerbugr   p  s    sAa4QB7??a4QB7??a4QB7??a4QB7??a4QB7??a4QB7??c6qb3Yc6qb3YaC!81qy   r:   c                     t        d      } t        d      }t        t        t        |       t        |            sJ t        t        d| z  d|z        sJ | dz  | dz  z  | dz  k(  sJ d| z  d| z  z  d| z  k(  sJ | |z  | d|z  z  z  | d|z  z  k(  sJ t	        d      t	        d      z  dk(  sJ d| z  dd| z  z  z  dd| z  z  k(  sJ t	        d      dt        dd      z  z  dt        dd      z  z  d	t        dd      z  k(  sJ | t        d       t        d      z  z  | z  | | t        d       t        d      z  z  z  z  t        d      k(  sJ y )
Nr>   rb   rC   r^   rP   r_   r=   rV   
   )r   r'   r   r   r   r
   r   r   )r>   rb   s     r8   test_Mul_doesnt_expand_expr     sn   sAsAS#a&#a&)))S!Q$1%%%a4191a4191q6!ac(?a!A#h&&&747?aa4AaC=A!H$$$71hq!n$$QA%66"hq!n:LLLLQA!AaSV8CF?&;$;<
JJJr:   c                  <   t        dd      } t        dd      }t        dd      }t        dd	      }t        d
dd      }t        dd      }t        dd      }t        ddd      }| dz  j                  J |dz  j                  J |dz  j                  du sJ |dz  j                  du sJ t        | z  |z  j                  J |dz  j                  du sJ |dz  dz  j                  du sJ d| z  j                  J d| dz  z  j                  J d| z  |z  j                  du sJ d| z  |z  dz  j                  du sJ d| z  |z  dz  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ t        | d| z  d      j                  J t        dt        j
                  d      j                  J dt        |       z  j                  J d| |z  z  j                  J dddt        ddd      z  z  z  }t        ||d      }	|	j                  sJ t        dd      }
t        dd      }|
|z  j                  J t        dt        dt        ddd      d      d      }|j                  dusJ y )Nrl   Tintegerri   nrFrationalir
irrationalnzr   rf   rM   rj   rm   rn   2)primerk   r^   rC   rU   r=   r          @  xqyq)r   
is_integerr>   r   r   rW   r   r   )rl   ri   r   r   r   rM   rm   i2r   r   r   r   e_20161s                r8   test_Mul_is_integerr     s   sD!AsD!A	u	%B		&B	d	/BsAsA	4d	+BaC###qD$$$qD%%%qD%%%aCE%%%aCt###qDF$&&&aC###adF&&&!GAI!!T)))aCE!G4'''aCE!G'''aC###aCu$$$bD%%%q!A#&11999r166E*55===d1gI!!)))adF&&&	1aQu----AAq5!A<<< 
t	$B	t	$BrE%%%"S3qU3UCUSGT)))r:   c                     t        d      } t        dd      }t        dd      }t        dd      }t        dd	      }t        d
dd      }| j                  J | j                  du sJ d|z  j                  du sJ | j                  du sJ ||z   j                  du sJ ||z   j                  du sJ || z   j                  J ||| z  z   j                  J ||dz  z   j                  J ||dz  z   j                  J ||dz  z   j                  du sJ dt        d      z   t        d       dz   z  j                  dusJ ddt        d      z   t        d       dz   z  z   j                  dusJ y )Nr>   rl   Tr   ri   nkFr   r   r   r   rC   r^   r=   )r   r   r   )r>   rl   ri   r   r   r   s         r8   test_Add_Mul_is_integerr     s   sAsD!AsD!A	e	$B	u	%B	d	/BC###Cu$$$aCt###B??d"""F%'''E%%%E%%%!G'''!G'''1H  (((1H  E)))a[DG8a<(44EAAAT!WQx!|,,88EEEr:   c                  B   t        ddd      } t        |       j                  du sJ | t        |       z  j                  J | t        |       z  j                  du sJ dt        |       z  j                  du sJ t        |       t	        |       z  j                  J t        |       t        |       z  j                  du sJ | t        |       z  t	        |       z  j                  J t        |       dz
  j                  du sJ t        |       t	        |       z   j                  dusJ d| z   j                  du sJ d| dz  z   d| z   d| z
  z  z   j                  J t        d      d| z   z  j                  du sJ t        d      d| z   z  d| z
  z  j                  du sJ y )	Nr>   TF)extended_realfinitei   C   r=   rC   )r   r!   	is_finiter   r   r    r   r   s    r8   test_Add_Mul_is_finiter     s   s$u5Aq6t###c!fH'''d1gI  E)))QK""d***F3q6M$$,,,F3q6M$$,,,c!fHSVO&&...FRK""d***FSVO&&d222E%%%1HAA&11999GQUO&&%///GQUOQU#..%777r:   c                     t        dd      } t        dd      }t        dd      }t        dd      }t        dd	      }d
| z  j                  du sJ d
| z  j                  du sJ d| z  j                  J d| z  j                  J |dz  j                  J |dz  j                  J |dz  j                  J d
|z  j                  du sJ d
|z  j                  du sJ d
|z  j                  du sJ d
|z  j                  du sJ | j                  du sJ | j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  |z  j                  du sJ ||z  |z  j                  du sJ ||z  | z  j                  du sJ ||z  | z  j                  du sJ | d
z  j                  J |d
z  j                  du sJ |d
z  j                  du sJ | |z  j                  J | | z  j                  J | | |z   z  j                  du sJ | | |z   z  j                  J | |z  j                  J | | z  j                  J | | |z   z  j                  du sJ | | |z   z  j                  J |d
z  d
z  j                  sJ |d
z  dz  j                  du sJ d
|d
z  z  j                  du sJ d
|z  j                  J y )Nr>   Tr   rb   rl   rn   ri   r   rj   rC   Fr^   )r   is_evenis_oddr   )r>   rb   rl   ri   r   s        r8   test_Mul_is_even_oddr     sw   sD!AsD!AsAsAsAaC==D   aC<<5   aC==   aC<<aC###aC==   aC<<aC==D   aC<<5   aC==D   aC<<5   B<<5   B;;$aC==E!!!aC<<4aC==D   aC<<5   aCE??d"""aCE>>U"""aCE??d"""aCE>>U""" aC###aCu$$$aCt###aC==   aC==   q1uI$&&&q1uI&&&aC<<aC<<q1uI&&&q1uI%%% qDFqDFu$$$adF??e###aC<<r:   c                      t        dd      } t        dd      }t        dd      }| |z  ||z   z  j                  du sJ || z  | |z   z  j                  du sJ y )Nr>   Tr   rb   rl   rn   r   r   r>   rb   rl   s      r8   1test_evenness_in_ternary_integer_product_with_oddr   !  sh    
 	sD!AsD!AsAaCQK  D(((aCQK  D(((r:   c                      t        dd      } t        dd      }t        dd      }| |z  ||z   z  j                  J y Nr>   Tr   rb   r   rj   r   r>   rb   r   s      r8   2test_evenness_in_ternary_integer_product_with_evenr   -  sD    sD!AsD!AsAaCQK  (((r:   c                      t        dd      } t        dd      }t        dd      }| |z  ||z   z  j                  du sJ || z  | |z   z  j                  du sJ y )Nr>   Tr   rb   rl   rn   Fr   r   r   s      r8   0test_oddness_in_ternary_integer_product_with_oddr   4  sh    
 	sD!AsD!AsAaCQK5(((aCQK5(((r:   c                      t        dd      } t        dd      }t        dd      }| |z  ||z   z  j                  J y r   r   r   s      r8   1test_oddness_in_ternary_integer_product_with_evenr   @  sD    sD!AsD!AsAaCQK'''r:   c                     t        d      } t        dd      }t        ddd      }||z  j                  du sJ | t        z  j                  J | |z  j                  J |t        z  j                  du sJ t        dd	      }t        |z  j                  J t        d
d      }t        dd      }||z  j                  du sJ t        ddd      }||z  j                  du sJ y )Nr>   ri   Tr   r   r   nonzeroFr   r   rr   re   r   rH   )rF   r   )r   is_rationalr   is_zero)r>   ri   r   r   rr   r   bis          r8   test_Mul_is_rationalr   G  s    sAsD!AsD$/AaC$$$bD%%%aC$$$bD&&&sT"AqD%%% 	sAsd#AaC$$$	tD	1BbD>>T!!!r:   c                      t        d      } t        dd      }t        dd      }||z   j                  du sJ | t        z   j                  J | |z   j                  J |t        z   j                  du sJ y )Nr>   ri   Tr   r   F)r   r   r   )r>   ri   r   s      r8   test_Add_is_rationalr   \  s    sAsT"AsT"AE$&&&F'''E&&&F5(((r:   c                     t        dd      } t        dd      }t        dd      }t        dd      }|d	z   j                  du sJ |d	z   j                  d
u sJ | d	z   j                  du sJ | d	z   j                  d
u sJ |dz
  j                  d
u sJ |dz
  j                  du sJ | dz
  j                  d
u sJ | dz
  j                  du sJ ||z   j                  du sJ ||z   j                  d
u sJ ||z   j                  d
u sJ ||z   j                  du sJ ||z   |z   j                  du sJ ||z   |z   j                  d
u sJ ||z   | z   |z   j                  J ||z   | z   |z   j                  J y )Nr>   Tr   rl   rn   ri   r   rj   rR   F   )r   r   r   )r>   rl   ri   r   s       r8   test_Add_is_even_oddr   g  s   sD!AsAsAsAE??d"""E>>U"""BFt###BF??e###Fu$$$F??d"""BG%%%BGt###E??d"""E>>U"""E??e###E>>T!!!EAI$&&&EAI&&&EAIM""***EAIM!!)))r:   c                  p
   t        dd      } t        ddd      }t        dd      }d	|z  }|j                  r|j                  du r|j                  du sJ t        d
d      }t        dd      }t        dd      }t        dd      }|j                  du sJ | j                  du sJ d	|z  j                  du sJ d	|z  j	                         du sJ d	|z  j                  du sJ |j                  du sJ | j                  du sJ d	|z  j                  du sJ ||z  j                  du sJ d	|z  |z  j                  du sJ | |z  j                  du sJ ||z  |z  j                  du sJ |j                  du sJ | j                  J d	|z  j                  du sJ |j                  J | j                  du sJ d	|z  j                  J ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  |z  j                  du sJ ||z  |z  j                  J | |z  |z  j                  J | |z  |z  j                  du sJ d|z  |z  |z  j                  du sJ d|z  |z  |z  j                  J ||z  |z  |z  j                  du sJ | |z  j                  J ||z  |z  | z  |z  j                  J |j                  du sJ | j                  du sJ d	|z  j                  du sJ |j                  du sJ | j                  du sJ d	|z  j                  du sJ ||z  j                  du sJ d	|z  |z  j                  du sJ | |z  j                  du sJ | |z  |z  j                  du sJ |j                  J | j                  du sJ d	|z  j                  J |j                  du sJ | j                  J d	|z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  |z  j                  J ||z  |z  j                  du sJ | |z  |z  j                  du sJ | |z  |z  j                  J d|z  |z  |z  j                  J d|z  |z  |z  j                  du sJ ||z  |z  |z  j                  J | |z  j                  J ||z  |z  | z  |z  j                  J y )Nr>   TrG   rb   F)r   rD   rr   re   rC   negnegativeposr1   nnegnonnegativenposnonpositive   )r   is_Mulis_positiveis_negative_eval_is_extended_negative)r>   rb   rr   rM   r   r  r  r  s           r8   test_Mul_is_negative_positiver    s   sAs%6AsA	!A88.1==E3III

&C

&C&d+D&d+D??d"""D&&&cE$&&&cE--/5888cE%'''??e###D%%%cE%'''G  D(((cE#I""d***DH!!U***GAI""e+++u$$$E&&&dF5(((###E%'''dF'''I""***H!!)))H!!U***H!!U***H!!)))HTM&&%///HTM&&...E#IdN''///E#IdN''5000tGCK))U222tGCK))111HSL**e333cE&&&IcM!OC,,444??e###D%%%cE%'''??d"""D&&&cE$&&&G  E)))cE#I""e+++DH!!T)))DHQJ##u,,,###E%'''dF'''u$$$E&&&dF5(((I""e+++H!!U***H!!)))H!!)))H!!U***HTM&&...HTM&&%///E#IdN''5000E#IdN''///tGCK))111tGCK))U222HSL**222cE&&&IcM!OC,,444r:   c                     t        dd      } t        dd      }t        dd      }t        dd      }| |z  j                  du sJ | |z  j                  du sJ | |z  j                  J | |z  j                  J ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  j                  J | |z  j
                  du sJ | |z  j                  du sJ | |z  j                  J | |z  j                  J y )	Nr7   Tr  r0   rI   r  r   F)r   is_nonnegativer  r   r
  is_nonpositiver7   r0   rI   r   s       r8   test_Mul_is_negative_positive_2r    s@   s%As%As%As%AaC4'''aC%%%aC==   aC$$$aC4'''aC%%%aC==   aC$$$aC4'''aC%%%aC==   aC$$$r:   c                  .	   t        dd      } t        dd      }t        dd      }t        dd	      }t        d
d      }|j                  du sJ | j                  du sJ d|z  j                  du sJ |j                  du sJ | j                  du sJ d|z  j                  du sJ ||z  j                  du sJ d|z  |z  j                  du sJ | |z  j                  du sJ |j                  J | j                  du sJ d|z  j                  J |j                  du sJ | j                  J d|z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  |z  j                  J ||z  |z  j                  du sJ | |z  |z  j                  du sJ | |z  |z  j                  J d|z  |z  |z  j                  J d|z  |z  |z  j                  du sJ ||z  |z  |z  j                  J | |z  j                  J ||z  |z  | z  |z  j                  J |j                  du sJ | j                  du sJ d|z  j                  du sJ |j                  du sJ | j                  du sJ d|z  j                  du sJ ||z  j                  du sJ d|z  |z  j                  du sJ | |z  j                  du sJ |j                  du sJ | j                  J d|z  j                  du sJ |j                  J | j                  du sJ d|z  j                  J ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  |z  j                  du sJ ||z  |z  j                  J | |z  |z  j                  J | |z  |z  j                  du sJ d|z  |z  |z  j                  du sJ d|z  |z  |z  j                  J ||z  |z  |z  j                  du sJ | |z  j                  J ||z  |z  | z  |z  j                  J y )Nr>   TrG   rl   r   ri   r1   r   r  r   r  FrC   r  r   r  r  r>   rl   ri   r   r   s        r8   #test_Mul_is_nonpositive_nonnegativer    s   sAsT"AsT"As%As%At###B%'''aC4'''u$$$B$&&&aC5(((aC4'''aCE!!T)))BqD  E)))###B$&&&aC'''t###B&&&aC4'''aC4'''aC4'''aC'''aC'''aC4'''aCE!!)))aCE!!T)))BqDF""d***BqDF""***qDF1H$$,,,qDF1H$$,,,aCE!G##+++aC'''aCE!GAI%%---u$$$B$&&&aC5(((t###B%'''aC4'''aC5(((aCE!!U***BqD  D(((t###B&&&aC4'''###B$&&&aC'''aC'''aC'''aC4'''aC4'''aC'''aCE!!T)))aCE!!)))BqDF""***BqDF""d***qDF1H$$,,,qDF1H$$,,,aCE!G##t+++aC'''aCE!GAI%%---r:   c                  $
   t        dd      } t        dd      }t        dd      }t        dd	      }t        d
d      }|dz
  j                  du sJ |dz   j                  J | dz
  j                  J | dz   j                  du sJ ||z
  j                  du sJ ||z   j                  J | |z
  j                  J | |z   j                  du sJ ||z
  dz
  j                  du sJ ||z   dz   j                  J | |z
  dz
  j                  J | |z   dz   j                  du sJ d|z  d|z  z   dz   j                  du sJ ||z   j                  J ||z   j                  du sJ ||z   j                  du sJ ||z   j                  J ||z
  j                  du sJ ||z   j                  J | |z
  j                  J | |z   j                  J ||z
  |z   dz   j                  du sJ ||z   |z   dz   j                  J | |z
  |z   dz   j                  J | |z   |z   dz   j                  J || z   j                  J || z   |z
  j                  J |dz
  j                  du sJ |dz   j                  J | dz
  j                  J | dz   j                  du sJ ||z
  j                  du sJ ||z   j                  J | |z
  j                  J | |z   j                  du sJ ||z
  dz
  j                  du sJ ||z   dz   j                  J | |z
  dz
  j                  J | |z   dz   j                  du sJ d|z  d|z  z   dz   j                  du sJ ||z   j                  J ||z   j                  du sJ ||z   j                  du sJ ||z   j                  J ||z
  j                  J ||z   j                  J | |z
  j                  J | |z   j                  du sJ ||z
  |z
  dz
  j                  J ||z   |z
  dz
  j                  J | |z
  |z
  dz
  j                  J | |z   |z
  dz
  j                  du sJ || z   j                  J || z   |z
  j                  J dt        d      z
  t        d       dz  t        d      dz  z
  dz  z   }|j                  sJ t        dt        d      z         t        ddt        d      z  z         z   t        ddt        d      z  z         z
  }|j                  sJ y )Nr>   TrG   rl   r   ri   r1   r   r  r   r  rC   r  rP   {   Fra   rc   r   r=   r^   r_   )r   r  r
  r   r   )r>   rl   ri   r   r   rr   s         r8   test_Add_is_negative_positiver  a  s<   sAsT"AsT"As%As%AE$&&&F'''BF'''BH!!U***E$&&&E&&&BF'''BF5(((EAI""d***EBJ##+++BFQJ##+++BFSL%%...qD3q5L2**e333E&&&E$&&&E%'''E&&&E%'''E&&&BF'''BF'''EAIM&&%///EAIM&&...BFQJN''///BFQJN''///E&&&EAI""***E%'''F'''BF'''BH!!T)))E%'''E&&&BF'''BF4'''EAI""e+++EBJ##+++BFQJ##+++BFSL%%---qD3q5L2**d222E&&&E%'''E$&&&E&&&E&&&E&&&BF'''BF5(((EAIM&&...EAIM&&...BFQJN''///BFQJN''5000E&&&EAI""***	d1g$r(1tAwqy014	4A999Qa[DQtAwY//$rAd1gI~2FFA999r:   c                     t        dd      } t        dd      }t        dd      }t        dd	      }t        d
d      }|dz
  j                  J |dz   j                  du sJ | dz
  j                  du sJ | dz   j                  J ||z
  j                  J ||z   j                  J | |z
  j                  J | |z   j                  du sJ ||z
  dz
  j                  J ||z   dz   j                  J | |z
  dz
  j                  J | |z   dz
  j                  du sJ d|z  d|z  z   dz
  j                  du sJ ||z   j                  J ||z   j                  du sJ ||z   j                  du sJ ||z   j                  J ||z
  j                  du sJ ||z   j                  J | |z
  j                  J | |z   j                  du sJ ||z
  |z   dz   j                  J ||z   |z   dz   j                  J | |z
  |z   dz   j                  J | |z   |z   dz   j                  du sJ || z   j                  J || z
  |z
  j                  J |dz
  j                  J |dz   j                  du sJ | dz
  j                  du sJ | dz   j                  J ||z
  j                  du sJ ||z   j                  J | |z
  j                  J | |z   j                  J ||z
  dz   j                  du sJ ||z   dz   j                  J | |z
  dz
  j                  J | |z   dz
  j                  du sJ d|z  d|z  z
  dz   j                  du sJ ||z   j                  J ||z   j                  du sJ ||z   j                  du sJ ||z   j                  J ||z
  j                  du sJ ||z   j                  J | |z
  j                  J | |z   j                  du sJ ||z
  |z
  dz
  j                  du sJ ||z   |z
  dz
  j                  J | |z
  |z
  dz
  j                  J | |z   |z
  dz
  j                  J || z
  j                  J || z   |z   j                  J y )Nr>   TrG   rl   r   ri   r1   r   r  r   r  rC   r  FrP   r  ra   r  r  s        r8   #test_Add_is_nonpositive_nonnegativer    s   sAsT"AsT"As%As%AE!!)))F""e+++BF""d***BH$$,,,E!!)))E!!)))BF""***BF""d***EAI%%---EBJ&&...BFQJ&&...BFSL((D000qD3q5L2--555E!!)))E!!T)))E!!U***E!!)))E!!T)))E!!)))BF""***BF""e+++EAIM))111EAIM))111BFQJN**222BFQJN**e333E!!)))EAI%%---E!!)))F""d***BF""e+++BH$$,,,E!!T)))E!!)))BF""***BF""***EAI%%---EBJ&&...BFQJ&&...BFSL((E111aC#a%K",,444E!!)))E!!U***E!!T)))E!!)))E!!U***E!!)))BF""***BF""d***EAIM))U222EAIM))111BFQJN**222BFQJN**222E!!)))EAI%%---r:   c                  >   t        d      } t        dd      }t        ddd      }t        ddd      }|d	z  j                  du sJ |d
z  j                  J |dz   d
z  j                  du sJ |dz  j                  J d	|z  j                  J d	| z  j                  J d	|z  j                  du sJ d	| z  j                  J d	|z  j                  du sJ d	| z  j                  du sJ | d	z  j                  J d	| z  j                  J ||z  j                  du sJ || z  j                  J || z  j                  J | |z  j                  J |||z  z  j                  du sJ || |z  z  j                  J t        d      j                  du sJ t        d      j                  du sJ t        dd	d      j                  du sJ t        ddd      j                  du sJ t        dd
d      j                  du sJ t        t        j
                  dd      j                  du sJ t        dt        j
                  d      j                  du sJ t        dt        j
                  d      j                  du sJ t        dt        j
                  d      j                  du sJ t        t        j
                  d
d      j                  du sJ d|z  j                  sJ t        ddd      } | d	z  j                  J t        dd      } d| dz   z  j                  du sJ d|  dz
  z  j                  du sJ d| dz   z  j                  du sJ | d	z  d	z  j                  J t        dd      }|dz  d	z  j                  sJ |dz  dz  j                  sJ |dz  dz  j                  J d	|z  j                  J d	|d	z  z  j                  du sJ t        dd      }||z  j                  J t        ddd      }||z  j                  du sJ y )Nr>   rl   Tr   ri   r   r  r   r   r2   rC   ra   r=   FrU   r^   333333?r   r   rV   )rE   r   r1   rj   rQ      rm   rn   )ro   r   )r   r   r   r   r   rW   )r>   rl   ri   r   rm   s        r8   test_Pow_is_integerr!    s   sAsD!AsDd3AsD40AqD$$$G'''UbM%%...G'''qD$$$G'''qD$$$G'''qD$$$G5(((qD$$$qD$$$qD$$$G'''qD$$$qD$$$!H  D(((1I!!)))7&&&8%'''q!e$//4777q!e$//4777q"u%00E999qvvq5)44===q!&&5)44===q!&&5)44===q!&&5)44<<<qvvrE*55===!G 	su-AqD$$$ 	sT"Aq1uI!!U***rAvJ""e+++AJ""e+++qDF&&& 	sAqDFqDFqDG'''aC###adF%'''sAaC###sD)AaCu$$$r:   c                     t        dd      } t        dd      }| dz  j                  du sJ | dz  j                  du sJ | | z  j                  J || z  j                  du sJ | t        dd      z  j                  J |t        dd      z  j                  du sJ t        d	t        d      z
        j                  d
u sJ t        dd      }||z  j                  J t        |z  j
                  du sJ t         |z  j
                  du sJ d|z  j                  J dt        z  j                  d
u sJ dt         z  j                  d
u sJ |dz  j
                  du sJ |dz  j
                  d
u sJ || z  j                  J t        dd      }t        dd      }t        dd      }||z  j
                  du sJ ||z  j
                  d
u sJ ||z  j                  J |d|z  z  j
                  du sJ t        dd      } t        dd      }t        | |z        j                  d      t        j                  u sJ | |z  j                  du sJ t        dd      }t        |      t        z  j
                  du sJ t        t        |            j                  J t        dd      }t        |      j                  J t        t        |            j                  J t        dd
      }t        |      j                  J t        dd      }t        |      j                  J t        t               j                  d
u sJ t        dd      }d|dz
  z  j                  J d|dz
  z  j
                  J ddlm} t        d	      }  |d
      5  | j                  du sJ 	 d d d        t!        | d	      }	 |d
      5  |	j                  d
u sJ 	 d d d        y # 1 sw Y   8xY w# 1 sw Y   y xY w)Nr>   TrG   rb   r1   rC   r^   r=   rU   Fr   rH   rM   rj   rm   rn   rl   r   rV   r  )rD   rI   ri   r   r   r   )r   rK   r
   r   r   is_extended_realr   rp   r   r   r   r   rJ   sympy.core.parametersr&   r  r   )
r>   rb   r   rM   rm   rl   rI   ri   r&   fs
             r8   test_Pow_is_realr&  L  s   sAsT"AqD>>T!!!qD>>T!!!qD>>!!!qD>>T!!!x1~&&...x1~&&$...T!W%%...sd#AqD>>!!!qD""d***R!G%%---qD>>!!!qD>>U"""rE??e###qD""d***qD""e+++qD>>!!!sAsAsD!AqD""d***qD""e+++qD>>!!!!H&&$...s%As%Aad8??4?(AFF222qD>>T!!!sd#AFAI''4///s1v;##+++sD!Aq6>>!!!s1v;&&&sU#Aq6>>!!!s%Aq6>>!!!8u$$$sD!AqsG$$$qsG%%--- /	"A	% %}}$$$% 	Ar
A	% '~~&&&' '	% %' 's   O%
O1%O.1O:c                  p    t        ddd      } | t        t        z  t        |       z  z  j                  sJ y )Nrl   Tr   )r   r   r   r   rK   )rl   s    r8   test_real_Powr(    s0    sD$/A"SV%%%%r:   c                     t        dd      } t        dd      }t        dd      }t        dd	      }t        d
d      }| dz  j                  J |dz  j                  du sJ | | z  j                  J || z  j                  J | |z  j                  J ||z  j                  J || z  j                  J ||z  j                  du sJ || z  j                  J ||z  j                  du sJ t        |       dz  j                  du sJ t        |      dz  j                  du sJ t        |       | z  j                  J t        |      |z  j                  J t        |       t        |       z  j                  J t        |      t        |      z  j                  du sJ dt        |       z  j                  J dt        |      z  j                  J dt        |       z  j                  J dt        |      z  j                  du sJ dt        j
                  z  j                  du sJ d|dz
  z  j                  J y )NxeTr   xrrG   rX   r1   ri   r   r   r   rC   r=   )r   r   r!   r   r   Pi)r*  r,  rX   ri   r   s        r8   test_Pow_is_finiter.    sp   	D	)B	4	 BsT"AsT"AsD!AE$$$E$$$F%%%F%%%F%%% F%%%rE$$$rE$$$rE$$$rE$$$GQJ!!T)))GQJ!!T)))GRK""***GRK""*** GSW''///GSW''4///c"gI  (((c"gI  (((c"gI  (((c"gI  D(((addF%%%qsG&&&r:   c                     t        d      } t        dd      }t        dd      }t        ddd      }t        d	dd
      }d|z  j                  sJ d|z  j                  sJ d||z
  z  j                  sJ |dz  j                  du sJ |dz  j                  du sJ d|z  j                  J | dz  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  J ||z  j                  J || z  j                  J || z  j                  J |dz  j                  du sJ |dz  j                  du sJ d|z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  J ||z  j                  J || z  j                  J || z  j                  J y )Nr>   rl   Trj   ri   rn   r   r  rX   r  rU   rC   Fr^   )r   r   r   )r>   rl   ri   r   rX   s        r8   test_Pow_is_even_oddr0    s   sAsAsAsDd3AsD40A!G!G1q5M!!!!qD>>T!!!qD>>U"""qD>>!!!qD>>!!!qD>>!!!qD>>U"""qD>>T!!!qD>>U"""qD>>!!!qD>>!!!qD>>!!!qD>>!!!qD>>!!!qD>>!!!qD==E!!!qD==D   qD==   qD==   qD==D   qD==E!!!qD==D   qD==   qD==   qD==   qD==   qD==   qD==   r:   c                     t        dd      } t        ddd      }t        dd      }t        dd	      }t        d
      }d| z  j                  du sJ d| z  j                  J d|z  j                  du sJ d|z  j                  du sJ |dz  j                  du sJ |dz  j                  du sJ || z  j                  du sJ | | z  j                  J | |z  j                  du sJ | |z  j                  du sJ d| z  j                  du sJ d| z  j                  J d|z  j                  du sJ d|z  j                  du sJ |dz  j                  du sJ |dz  j                  du sJ || z  j                  du sJ | | z  j                  J | |z  j                  du sJ | |z  j                  du sJ d|z  j                  J d|z  j                  J y )Nr   TrG   rl   r  ri   rj   r   rn   r>   rC   ra   F)r   r
  r  )r   rl   ri   r   r>   s        r8   test_Pow_is_negative_positiver2    sM   sAsD40AsAsAsAqD%%%!G  (((!G  D(((!G  E)))qD%%%G  D(((qD%%%R!G  (((R!G  D(((R!G  E)))qD&&&!G  (((!G  E)))!G  D(((qD&&&G  E)))qD&&&R!G  (((R!G  E)))R!G  D(((qD%%%qD%%%r:   c            #      r   t        dd      } | dz  }|j                  sJ |j                  du sJ |j                  du sJ t	        ddd      j                  du sJ t	        ddd      j                  sJ t	        dt
        d      j                  sJ t	        dd	d      j                  du sJ t	        dt
         d      j                  du sJ t	        ddd      j                  du sJ t        d
d      }t	        |d      j                  du sJ t	        dt
        d      j                  du sJ t	        dt
         d      j                  sJ t	        t        j                  t
        d      j                  sJ t	        t        j                  t
         d      j                  du sJ t        j                  }d}d}d }dd|dd| dddt        z  t         dz  t        dz  dt        z   t
        t
         t        gd||||||||||||||g|||||||||||||||gd||||||||||||||gd||||||||||||||g| ||||||||||||||gd||||||||||||||gd||||||||||||||gdt        z  ||||||||||||||gt         dz  ||||||||||||||gt        dz  ||||||||||||||gdt        z   ||||||||||||||gt
        ||||||||||||||gt
         ||||||||||||||gt        ||||||||||||||gg}d } ||       t        dd      \  }	}
t        dd      \  }}t        dd      \  }}t        dd      \  }}t        dd      \  }}t        dd      \  }}t        dd      \  }}t        dd      \  }}t        dd      \  }}t        d       \  }}t        d!d      \  }}t        d"d#      \  }} t        d$dd%      \  }!}"t        d&d'      \  }#}$t        d(d)      \  }%}&t        d*d+      \  }'}(t        d,d-      \  })}*d|	||||||||||||!|#|%|'|)g|
|||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g||||||||||||||||||g| |||||||||||||||||g|"|||||||||||||||||g|$|||||||||||||||||g|&|||||||||||||||||g|(|||||||||||||||||g|*|||||||||||||||||gg}+ ||+       |	|	z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  J ||z  j                  J |!|!z  j                  J |#|#z  j                  du sJ |%|%z  j                  du sJ |'|'z  j                  J |)|)z  j                  J y ).Nrr   Tre   rC   Fr   r   r^   rc   r7   z**r=   rU   ra   c                     t        | d         }t        d|      D ]G  }| |   d   }t        d|      D ].  }| d   |   }| |   |   }t        ||d      j                  |u r.J  I y )Nr   r=   Fr   )lenr   r   r   )tableri   rowbasecolr   r   s          r8   
test_tablez$test_Pow_is_zero.<locals>.test_tableF  s    aMA; 	IC:a=DQ{ IAhsm*S/4u5==HHH	I	Ir:   zzo, zo2zzf, zf2r   zwf, wf2r   zxf, xf2rG   zyf, yf2zaf, af2r1   zbf, bf2r  zcf, cf2r   zdf, df2r  zzi, zi2zwi, wi2zxi, xi2r+  zyi, yi2)rf   r   zai, ai2extended_positivezbi, bi2)extended_nonnegativezci, ci2)extended_negativezdi, di2)extended_nonpositive)r   r   r
  r  r   r   r   rW   r   r   r   ),rr   rM   r7   hTFN
pow_iszeror:  zozo2zfzf2wfwf2xfxf2yfyf2afaf2bfbf2cfcf2dfdf2zizi2wiwi2xixi2yiyi2aiai2r   bi2cici2didi2pow_iszero_syms,                                               r8   test_Pow_is_zerori    sg	   sA	1A999==E!!!==E!!!q!e$,,555q!e$,,,,q"u%----q"u%--666q2#&..%777q!e$,,555sAq!9%%%q"u%--666q2#&....qvvrE*2222qvvsU+33u<<< 	
AAAA 
AAr2bAqbd1Q3qs2rc#FAAAAAAAFAAAAAAAFAAAAAAAFAAAAAAAF2AAAAAAAFAAAAAAAFAAAAAAAF	AAAAAAAAF
AAAAAAAAF
A#AAAAAAAF
A#AAAAAAAFAAAAAAAF#AAAAAAAF
AAAAAAAFJ$I z id+GB i-GBi.GBid+GBi.GBi$/GBiT2GBi$/GBiT2GB i GBie,GBit4GBie4@GBi48GBid;GBi48GBid;GB 
bBr"R2bBr"R2bA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA
q!Q1aAq!Q1aAqA%N* ~ "H&&&"H&&&"H&&&"H&&&"H&&&"H%%%"H%%%"H&&&"H%%%"H%%%"H%%%"H%%%"H%%%"H&&&"H&&&"H%%%"H%%%r:   c                  h   t        dd      } t        ddd      }t        ddd      }t        dd	      }t        d
d      }| d|z  z  j                  du sJ d| z  j                  du sJ d| z  j                  J d|z  j                  du sJ d|z  j                  du sJ |dz  j                  du sJ |dz  j                  J ||z  j                  du sJ || z  j                  J || z  j                  du sJ || z  j                  du sJ | | z  j                  J | |z  j                  J d| z  j                  du sJ d| z  j                  J d|z  j                  du sJ d|z  j                  du sJ |dz  j                  J |dz  j                  J || z  j                  J | | z  j                  J | |z  j                  J | dz  j                  du sJ t	        dd      }|dz  j                  du sJ |dz  j                  du sJ |dz  j                  du sJ t
        |z  j                  du sJ t        t
              |z  j                  du sJ | |z  j                  du sJ | |z  j                  du sJ | |z  j                  J | |z  j                  J y )Nr>   TrG   rl   r  lr  ri   rj   r   rn   rV   rC   ra   Fr   rH   r^   )r   r  r
  r  r   r   r   )r>   rl   rk  ri   r   r   s         r8   #test_Pow_is_nonpositive_nonnegativerl    sN   sAsDd3AsD40AsAsA!H$$,,,qD  D(((!G##+++!G##t+++!G##u,,,qD  D(((G##+++qD  D(((qD  (((qD  D(((qD%%%R!G##+++R!G##+++qD  E)))!G##+++!G##u,,,!G##t+++qD  (((G##+++qD  (((R!G##+++R!G##+++ qD  D(((t$AqD  D(((qD  E)))qD  E)))qD  D(((FAI%%---R!G##t+++R!G##t+++R!G##+++R!G##+++r:   c                     t        dd      } t        dd      }t        dd      }t        dd      }t        d	      }t        j                  du sJ t        j                  d
u sJ t         j                  du sJ t         j                  d
u sJ dt        z  j                  du sJ dt        z  j                  d
u sJ t        t        z  j                  d
u sJ t        t        z  j                  du sJ ||t        z  z   }t        ddd
      }||z  j                  J |d|z  z  j                  J ||z  j                  J |d|z  z  j                  J |dz  j                  d
u sJ |dz  j                  sJ |dz  j                  d
u sJ |dz  j                  d
u sJ |dz  j                  d
u sJ |dz  j                  d
u sJ |dz  j                  d
u sJ |dz  j                  d
u sJ |dz  j                  du sJ |dz  j                  d
u sJ |dz  j                  sJ | |z  j                  J | |z  j                  J ||z  j                  J ||z  j                  J ||z  j                  d
u sJ ||z  j                  du sJ | |z  |z  j                  d
u sJ | |z  |z  j                  du sJ t        dd
d      }t        ddd      }t        dd      }	||z  j                  J ||z  j                  d
u sJ |	|z  j                  J t        dd
d      }
t        ddd      }t        dd      }	||
z  j                  d
u sJ ||
z  j                  J |	|
z  j                  J y )Nr   TrG   rX   r1   i1rH   r   r>   Fr^   jr   rC   rU   rV   rP   r   rE   rD   r7   )rE   r   r0   ni)rF   rD   )r   r   rJ   rK   rL   )r   rX   rn  r   r>   rM   ro  r   r7   r0   rq  s              r8   test_Mul_is_imaginary_realrr    s   sAsT"A		%B		%BsA>>T!!!99B$$$B<<5   aC%%%aC==E!!!aC&&&aC==D   	
QqSAsDu-AqD>>!!!!H%%%qD&&&!H""***rE5(((qDqD%'''qD%'''qD%'''rE??e###qD>>U"""qD>>U"""qD>>T!!!qD>>U"""qDbD&&&bD>>!!!bD&&&bD>>!!!rE5(((rE??d"""bDG!!U***bDG$$$ 
5$	/Bst,AsArE??"""bD>>U"""bD>>!!!	t	4Bst,AsArE??e###bD>>!!!bD>>!!!r:   c                  T   t        ddd      \  } }t        dddd      \  }}t        dddd      \  }}t        d	dddd
      \  }}| |z  j                  du sJ | |z  j                  du sJ | |z  j                  du sJ | |z  j                  du sJ ||z  j                  J ||z  j                  J ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ ||z  j                  du sJ t        ddd      }t        dd      }	t        dd      }
t        dd      }t	        ||	|
d      }t	        |	||
d      }t	        ||	|
|d      }t	        |	||
|d      }t	        ||
d      }t	        ||
|d      }|j                  J |j                  J |j                  J |j                  J |j                  J |j                  J |j                  J |j                  J y )Nzxz, yzT)rf   antihermitianzxf, yfF)	hermitianrt  r   zxh, yh)ru  rt  r   zxa, ya)ru  rt  rf   r   r7   )ru  rf   r0   )ru  rI   r   )rt  r   )r   is_hermitianis_antihermitianr   r   )xzyzrM  rO  xhyhxayar7   r0   rI   r   e1e2e3e4e5e6s                     r8    test_Mul_hermitian_antihermitianr    s   XD=FBXeDQFBXUDQFBXdW[\FBrE4'''rE##t+++rE4'''rE##t+++rE'''rE##+++rE4'''rE##u,,,rE5(((rE##t+++rE4'''rE##u,,,sd/Asd#Ase$As$'A	Q1u	%B	Q1u	%B	Q1a%	(B	Q1a%	(B	QE	"B	Q1u	%B??"""??"""&&&&&&&&&&&&&&&&&&r:   c                      t         t        z   j                  du sJ t         dz   j                  du sJ t        dd      t	        d      z
  j                  du sJ y )NFr=   r^   rQ   T)r>   rb   is_comparabler
   r   r@   r:   r8   test_Add_is_comparabler  .  sU    E  E)))E  E)))QNT!W$33t;;;r:   c                      t         t        z  j                  du sJ t         dz  j                  du sJ t        d      t	        dd      z  j                  du sJ y NFrC   r=   r^   Tr>   rb   r  r   r
   r@   r:   r8   test_Mul_is_comparabler  4  sU    aC%'''aC%'''GHQN"11T999r:   c                      t         t        z  j                  du sJ t         dz  j                  du sJ t        t	        dd            j                  du sJ y r  r  r@   r:   r8   test_Pow_is_comparabler  :  sQ    qD5(((qD5(((!Q //4777r:   c                      t        dd      t        d      z
  } | j                  du sJ | j                  du sJ t        dz
  } | j                  du sJ | j                  du sJ y )Nr=   r^   rQ   FT)r
   r   r
  r  r   r[   s    r8   test_Add_is_positive_2r  @  sg    Aa A==E!!!==D   
QA==D   ==E!!!r:   c                      t        dd      } | j                  du sJ | j                  du sJ | dz   j                  du sJ | dz   j                  du sJ y )Nr   Tr   Fr=   )r   is_irrationalr   r   s    r8   test_Add_is_irrationalr  J  sb    st$A??d"""==E!!!E  D(((E%'''r:   c                      t        dddd      } | j                  du sJ t        dt        t        d      } | j                  J t        t	        d      t        t        d      } | j                  J y )Nr=   rC   r^   Fr   )r   r  r   r   r   exprs    r8   test_Mul_is_irrationalr  T  sp    q!Q'D&&&q!Q'D### tAw1u-D%%%r:   c                  T     G d dt               } t        d       | d      z  dk(  sJ y )Nc                       e Zd ZdZd Zy)&test_issue_3531.<locals>.MightyNumericr@   c                      y)N	somethingr@   selfothers     r8   __rtruediv__z3test_issue_3531.<locals>.MightyNumeric.__rtruediv__f  s    r:   N)__name__
__module____qualname__	__slots__r  r@   r:   r8   MightyNumericr  c  s    		r:   r  r=   r   r  )tupler   )r  s    r8   test_issue_3531r  `  s,      1:mF++{:::r:   c                  V     G d d      }  |        }t        d      }||z  ||z  k(  sJ y )Nc                       e Zd Zd Zd Zd Zy)test_issue_3531b.<locals>.Fooc                     d| _         y )N      ?field)r  s    r8   __init__z&test_issue_3531b.<locals>.Foo.__init__n  s	    DJr:   c                 ,    | j                   |z  | _         y r4   r  r  s     r8   __mul__z%test_issue_3531b.<locals>.Foo.__mul__q  s    e+DJr:   c                 ,    || j                   z  | _         y r4   r  r  s     r8   __rmul__z&test_issue_3531b.<locals>.Foo.__rmul__t  s    +DJr:   N)r  r  r  r  r  r  r@   r:   r8   Foor  m  s    		,	,r:   r  r>   r   )r  r%  r>   s      r8   test_issue_3531br  l  s2    , , 	AsAQ3!A#::r:   c                  b    t        d      } t        dd      }d| z  |z   }|d| z  z   }||k(  sJ y )Nr7   r0   Tr1   rC   r   )r7   r0   rM   r%  s       r8   	test_bug3r  {  s<    sAsT"A	!aA	AaCA6M6r:   c                  d   t        dddd      } t        dddd      }t        ddd      }| dk7  sJ | j                  t         u sJ | j                  dk(  sJ |dk7  sJ |j                  t        u sJ |j                  d	k(  sJ |d
k7  sJ |j                  t        u sJ |j                  dk(  sJ y )Nr   r^   rC   Fr   r=   r_   )r   r^   rC   )r=   r^   rC   r`   )r^   rC   )r   r   r   funcr   )r7   r0   rI   s      r8   test_suppressed_evaluationr    s    Aq!e$AAq!e$AAq5!A6M666S==66Y6M666S==66Y6M666S==66Vr:   c                  R   t        t        t        d      } t        t        t        d      }t        ||d      }t        | | d      }|j	                  d      j
                  t        k(  sJ |j	                  d      j                  dt        t        fk(  sJ |j	                         j
                  t        k(  sJ |j	                         j                  dt        t        d      fk(  sJ |j	                  d      j
                  t        k(  sJ |j	                  d      j                  | dt        j                  z  fk(  sJ |j	                         j
                  t        k(  sJ |j	                         j                  dt        j                  z  t        t        d      fk(  sJ y )NFr   rg   rC   rV   )
r   r>   r   rb   doitr  r   r   r   r   r  s       r8   test_AssocOp_doitr    sE   Aa% AAa% AAa% AAa% A66u6""c)))66u6""q1g---668==C668==QAaM)))66u6""c)))66u6""q!AEE'l222668==C668==QquuWc!Ah////r:   c                      t               t        t        t              t        t              g} t        t
        fD ],  }| D ]%  }t        t        d      5   ||d       d d d        ' . y # 1 sw Y   4xY w)NF)test_stacklevelr=   )r   r#   r>   r$   r   r   r+   r,   )nonexprtypobjs      r8   test_Add_Mul_Expr_argsr    sj    wQ
IaL1GSz  	C.F C 	 s   
A))A2c                  N   t         dz   j                         dt         dz   ffk(  sJ t         dz   j                         dt         dz   ffk(  sJ t         dz   j                         dt         dz   ffk(  sJ t         dz
  j                         dt         dz
  ffk(  sJ t         dz
  j                         dt         dz
  ffk(  sJ t         dz
  j                         dt         dz
  ffk(  sJ t        dd      } | dz   j                         d| dz   ffk(  sJ | dz   j                         d| dz   ffk(  sJ | dz   j                         d| dz   ffk(  sJ | dz
  j                         d| dz
  ffk(  sJ | dz
  j                         d| dz
  ffk(  sJ | dz
  j                         d| dz
  ffk(  sJ y )Nr=   rC   r^   ri   Tr   )r>   as_coeff_mulr   )ri   s    r8   test_Add_as_coeff_mulr    s   E!a!a%]222E!a!a%]222E!a!a%]222E!a!a%]222E!a!a%]222E!a!a%]222sD!AE!a!a%]222E!a!a%]222E!a!a%]222E!a!a%]222E!a!a%]222E!a!a%]222r:   c                  4   t        t        t        z         j                         dt        t        t        z         ffk(  sJ t        t        t        t        t        z         z         t        t        t        t              t        t              z  z         k7  sJ y )Nr=   )r   r>   rb   r  r@   r:   r8   #test_Pow_as_coeff_mul_doesnt_expandr    se    q1u:""$SQZM(::::q3q1u:~#a#a&Q-&7"8888r:   c                  n    t        ddd      } t        d| d      }t        |      t        d      k(  sJ y )Nra   rc   Fr   rU   r   )r   int)r  expr1s     r8   test_issue_24751r    s5    r2&DD5)Eu:\****r:   c                     t        t        j                        t        d      z  dt        d      z  dz  k(  sJ t        j                  t        d      z  t        d      z  t        d      k(  sJ t        d      dz  t        d      z  t        d      k(  sJ t        d      t        d      z  dz  t        d      k(  sJ t        d      t        dd      z  dk(  sJ y )Nr_   rC   r^   rQ   )r   r   rW   r
   r@   r:   r8   test_issue_3514_18626r    s    <$q'!Qa[]22266$q'>$q'!T!W,,,719T!WQ'''747?1Q'''7HQN"a'''r:   c                     t        j                  t              t        fk(  sJ t        j                  t              t        fk(  sJ t        j                  t        t        z  t
        z        t        t        z  t
        z  fk(  sJ t        j                  t        t        z  t
        z        t        t        z  t
        z  j                  k(  sJ t        j                  t        t        z   t
        z         t        t        z   t
        z   j                  k(  sJ t        j                  t        t        z   t
        z         t        t        z   t
        z   fk(  sJ t        j                  t        t        z   t
        z        t        t        z   t
        z  fk(  sJ t        j                  t        t        z   t
        z        t        t        z   t
        z  fk(  sJ y r4   )r   	make_argsr>   r   rb   rr   r   r@   r:   r8   test_make_argsr    s0   ==t###==t###==1QAaCE8+++==1QAaCE<<///==Q#A	'7'7777==Q#A	|333==!a%!$!a%!555==!a%!$!a%!555r:   c                      dt         z  dt         z  z  dt         z  k7  sJ t        dd      } d| z  d| z  z  d| z  k(  sJ y )Nra   rc   r_   r   r=   r   )r>   r   r  s    r8   test_issue_5126r    sJ    7B7?ad"""sAA7B7?ad"""r:   c                      t         j                  t         j                  }} | |z  j                         | |fk(  sJ t         j                  t         j                  }} | |z  j                         | |fk(  sJ y r4   )r   r   r   as_content_primitiverW   )rI   rX   s     r8   "test_Rational_as_content_primitiver    sb    55!&&qAaC%%'Aq611166155qAaC%%'Aq6111r:   c                     t         dz   j                         dt         dz   fk(  sJ dt         z  dz   j                         ddt         z  dz   fk(  sJ dt         z  dz   j                         dt         dz   fk(  sJ dt         z  dz   j                         dt         dz   fk(  sJ dt         z  dt        z  z   j                         ddt         z  dt        z  z   fk(  sJ dt         z  dt        z  z   j                         dt         t        z   fk(  sJ dt         z  dt        z  z   j                         dt         dt        z  z   fk(  sJ dt         z  dt         z  t        z  t        dz  z  z   j                         ddt         z  dt         z  t        z  t        dz  z  z   fk(  sJ dt         z  dt         z  t        z  t        dz  z  z   j                         ddt         z  t         t        z  t        dz  z  z   fk(  sJ dt         z  dt         z  t        z  t        dz  z  z   j                         ddt         z  dt         z  t        z  t        dz  z  z   fk(  sJ dt         z  dz  dt        z  dz  z   j                         t	        dd      dt         z  dt        z  z   fk(  sJ dt         z  dz  dt        z  z   j                         t	        dd      dt         z  dt        z  z   fk(  sJ dt         z   t        z   } d| z  j                         j                         d| fk(  sJ d	| z  j                         j                         dd	| z  fk(  sJ | d
z  } d| z  j                         j                         d| fk(  sJ y )NrC   r=   r^   r_   rV   r`         @g      @r   rU   )r>   r  rb   rr   r
   rp   rX   s    r8   test_Add_as_content_primitiver    s*   E'')aQZ777aC!G))+1Q37|;;;aC!G))+1q5z999aC!G))+1q5z999aC!A#I++-!QqS1Q3Y???aC!A#I++-!QU;;;aC!A#I++-!Q1W===aC!A#a%1*224AaC!A#a%1*<L8MMMMaC!A#a%1*224AaC!A#ad(N8KKKKaC!A#a%1*224AaC!A#a%1*<L8MMMMaCEAaCEM//1	!Q1qs#$ $ $aCECEM//1	!Q1s1u%& & & 	
A	AaC<<>..0QF:::E>>002q"Q$i???GAaC<<>..0QF:::r:   c                  4   dt         z  j                         dt         fk(  sJ t         ddt         z  z   z  j                         dt         dt         z   z  fk(  sJ t         ddt        z  z   z  dt         z  dz   dz  z  j                         dt         dt        z   z  t         dz   dz  z  fk(  sJ ddt         z  z   dz  ddt         z  z   z  t        j                  z   j                         t        j                  dt         dz   dz  z  dt         z  dz   z  dz   fk(  sJ y )NrC   r=   r^      r_      )r>   r  rb   r   rW   r@   r:   r8   test_Mul_as_content_primitiver    s   aC%%'Aq6111q1Q3wK--/Aq!a%y>AAAq1Q3wK1q1$::<	QAYAz!"# # #1WqL!ac'"QVV+AAC	
QUQJ!a(1,-. . .r:   c                  >   t         t        z  j                         dt         t        z  fk(  sJ dt         z  dz   t        z  j                         dt        dt         dz   d      t        z  fk(  sJ dt         z  dz   dz  j                         dt         dz   dz  fk(  sJ y )Nr=   rC   Fr   r^   rQ   )r>   rb   r  r   r@   r:   r8   test_Pow_as_content_primitiver    s    qD&&(Q1I555qS1WqL..0	
SQUe,q012 2 2qS1WqL..0QQ
OCCCr:   c                  Z    t        ddt        z   d      } d| z   j                  d| fk(  sJ y )NrC   r=   Fr   )r   r>   r   )r   s    r8   test_issue_5460r    s.    AA'AE<<Aq6!!!r:   c                  p    t         t        z  j                  du sJ t         t        z  j                  du sJ y NF)r   r   r  r
  r@   r:   r8   test_product_irrationalr    s2    bD5(((bD&&&r:   c                      t         t        dt        z   z  z  j                         t         t        dz  t        z   z  k(  sJ y )Nr=   rC   )r>   rb   rp   r@   r:   r8   test_issue_5919r  "  s1    q!a%yM!!#q!Q$(|333r:   c            	      X!   t        t        d      j                  t         u sJ t        t        z  t        j
                  u sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        t        d	dd
            t         k(  sJ dt        z  t        dt              k(  sJ t        dz  t        t        d      k(  sJ t        t        z  t        t        t              k(  sJ t        t        z  j                  t        dt        di      dk(  sJ t        t        d      t        u sJ t        dt              t        u sJ t        t        t              t        u sJ t        dt              dk(  sJ t        t              5  t        t        d       d d d        t        dd      } t        ddd      }t        |z  t        z  j                  t         u sJ | | z  | z  j                  t         u sJ | |z  | z  dk(  sJ d| z  |z  | z  dk(  sJ t        d      dz  }t        dz
  dz  t        dt        z  dz   |z
  d      k(  sJ t        dd      d|z
  k(  sJ t        dd      t        d      k(  sJ t        dd      }t        |d      r|j                  sJ t        dd      }t        |d      r|j                  sJ t        dt!        dd            }t        |d      r|j                  sJ t        t!        dd      d      }t        |d      r|j                  sJ t        t!        dd      t!        dd            }t        |d      r|j"                  sJ t%        d      }t%        d      }| | ||fD ]?  }| | ||fD ]2  }t'        ||z  |j)                         |j)                         z        r2J  A t+        d      D ]Y  }t+        d      D ]I  }	t        |ft        |	fg}
t        dt        z  t        z   d      j                  |
      d|z  |	z   dz  k(  rIJ  [ t        dd      }t        t        t        |      |      t        t        |      k(  sJ t        t        t        |       |      t        t         |      k(  sJ t        t        t        d|z        |      t        t        |      k(  sJ t        t        t        d|z         |      t        t         |      k(  sJ t        t        t        |      d|z        t        t        |      k(  sJ t        t        t        |       d|z        t        t        |       k(  sJ d D ]  }d D ]  }t+        d      D ]x  } t        t        t        |      |      j                  t        | i      | |z  |z  k(  sJ t        t        t        |       |      j                  t        | i      | |z   |z  k(  rxJ    t        dt%        d      z  t%        d            dt%        d      z  dt%        d      z  z
  k(  sJ t-        d!d"      }t        d|dz         dk(  sJ t        d|dz         |dz   k(  sJ t        d| dz
        | dz
  k(  sJ t        d| dz
        dk(  sJ t        |dz   |dz         dk(  sJ t        | dz
  |dz         |dz   k(  sJ t        |dz   | dz
        | dz
  k(  sJ t        | dz
  | dz
        dk(  sJ t        |dz   |dz
        j                  t         u sJ t-        d#dd      }t/        t         d|      sJ t-        d#d$      }t        d|      dk(  sJ t        dz   dz  t        t        d      k(  sJ t        d%z   dz  t        dt        z  d      k(  sJ t        t	        d&      dz  z
  dz  t        t        t	        d      dz  z   d      k(  sJ t        dt        z  t        z   dt        z        }t        d't        z  dt        z  z   dt        z        }d(}t1        |j2                  d   |j2                  d   z
  j                  t        dt        di            |k  sJ t1        |j2                  d   |j2                  d   z
  j                  t        dt        di            |k  sJ t        dz   t        z  dt        z  k(  sJ t        t        z   t        z  t        t        z  k(  sJ t        t        z   dz   t        z  t        dz   t        z  k(  sJ |dt        z  z   dz   dt        z  z  t        |t        z   dz   dt        z        k(  sJ d)t        z  d*t        z  z   dt        z  z  dt        d+t        z  t              z  k(  sJ dt        z  dt        z  z  t        dt        z  dt        z         k(  sJ dt        z  dt        z  t        z  z  dt        z  t        dt              z  k(  sJ dt        z  d,t        z  t        z  z  t        t        dd,t        z        z  k(  sJ d+t        z  dt        z  t        z  z  dt        z  t        d-t              z  k(  sJ d+t        z  d,t        z  t        z  z  t        t        d+d,t        z        z  k(  sJ d+t        z  d.t        z  t        z  z  t        t        d+d.t        z        z  k(  sJ d)t        z  dt        z  z  dt        d+t        z  t              z  k(  sJ d)t        z  d/t        z  z  dt        dt        z  dt        z        z  k(  sJ d)t        z  d/t        z  t        z  z  dt        z  t        ddt        z        z  k(  sJ dt        z  dt        z  z  t        k(  sJ dt        z  dz   t        dz   z  dk(  sJ t        t        dz   z  t        dz   z  t        dz   t        t        d      z  k(  sJ t        d0t        z  d't        z        d't        d1t        z  t              z  k(  sJ t        d2d      }d|z  t        z  d|z  t        z  z  |t        dt        z  dt        z        z  k(  sJ t        d|z  d      dk(  sJ t        d#dd      }t5        |      |z  dk(  sJ t5        |dz         |z  dk(  sJ t5        |dz         |dz   z  j                  t         u sJ t5        d3d
      d4z  d3k(  sJ t        d#d$      }t5        |dz
        |z  |dz
  k(  sJ t5        |dz
        | z  dk(  sJ t5        dd
      dz  j7                         dk(  sJ t        d#dd5      }t5        |dz
        |z  dk(  sJ t        d#d6      }t        |d      dk(  sJ t        d#d7      }t        |d      dk(  sJ t        d8z  d9z  j2                  d   d9k(  sJ t        t        t        dz   d      dz   d      t        t        d      k(  sJ t        d:d      }t        t        |dz   d      |dz   z  d      t        ||dz   z  d      k(  sJ t        t        |dz   d      dz  d      dk(  sJ t-        d;dd      \  }}t        d|z  d      t        |d      k(  sJ t        d<|z  |z  d      dt        d|z  |z  d      z  k(  sJ t        d<|z  d      dk(  sJ t        t        t              j9                  t:              t        t        t;        t        t        z        z  z
  k(  sJ t        t        t        t              z
  t        z  j9                  t:              t;        t        t        z        k(  sJ dd=lm} dd>l m!} t-        d?d      \  }} ||||kD  f|df      tD        z  dz  sJ tG         | ||||kD  f|df      tD        z              }|j                  ddi        | ||||kD  f|df      tD        d@z  z        jH                   ddAl%m&} t        dBt        |d      z  d      dCt        dt        |d      z  d      z  k(  sJ t-        dDd      }t/        t         |d      sJ t        d|z  d      t        |d      k(  sJ t/        t         dt        z  d      sJ y # 1 sw Y   xY w)ENr=   rP   r^   rC   rc   rU   ra   r   Fr   r   rl   Tr   r   r  gffffff
@r  gffffff
gffffff?g?r  g333333?rR   r   r~   rV   r`   r   rG   )r   ra   rC   rV   rX   r1   ri   )r         @!   g?g+=r   r  r_   gףp=
?   gzG?rS   g      @rT   r   izF  i{F  )	compositero   rj   rn   ip  i  x1zi jrQ   )sinh)	Piecewisezx_r y_r      )phi      @r   r>   )'r   r>   r  r   r   r   typerb   subsr   r*   ZeroDivisionErrorr   r   r   is_Floatr
   is_Rationalr   r-   ri   r   r   r'   absr   r   r  rewriter   %sympy.functions.elementary.hyperbolicr  $sympy.functions.elementary.piecewiser  rr   r   r   	sympy.abcr  )rl   r   point3rM   r2r3r   ro  rv   rw   repsr   rX   ri   r7   r0   epsr  r  r  x_ry_rr  r  r]  s                            r8   test_Modr  &  s   q!9>>S   7affq!9>>r1:??q":r2;"CU+,333q5C1Iq5C1Iq5C1IE<<Aq!%***sA;#q#;#sC=Cq!9>>	!	" Aq	 	sD!AsD40AqD1H??c!!!GaK$$$a4!8q==qD19q=A 3Z!^FGq=C1q6 115555tQ<1v:%%%sA;%*$$$CA2;1::%%CA2;1::%%C!R!A2;1::%%HRc"A2;1::%%HRhq"o.A2;1==(( 
aB	aBcB3B <#sB# 	<A%a!eQSSUQSSU];;;	<< Ah A( 	ABGaW%DqsQw?''-!B$)q@@@	AA 	sAs1ay!Aq	)))Aq	z1aR+++s1ac{A#a)+++Aqs|Q3r1:---s1ay!A##a)+++Aq	z2a4 SAYJ... G 	GA1X G3q!9a(--q!f5!a%1DDDC1I:q)..1v6AE(Q,FFFG	GG qay$q'"aQi!DG)&;;;;d#Aq!a%=Ar1q5>QU"""q1"q&>aR!V###rA26?b   q1ua!e!!!rAvq1uQ&&&q1uqb1f!a'''rAvrAv"$$$q1ua!e!!S((( 	TD1AS!Q4 Aq!9>> EQ;#a)###Gq=C1aL((("bLAQ1b[!!4444BqD1HbdACECEM3q5!A
Cq	AFF1I%++Q1aL9:S@@@q	AFF1I%++Q1aL9:S@@@EQ;!a%EQ;!a%EAI?q1uk)))!GaKAaC CA	1Q3$7777qD2a4KAaC Ac!A#qkM111 qDRT?s1Q3!}n,,,rEbd2g#b&Q"2222rEc!eBh2c#tAv&6#6666bDRT"WRB
!2222bDSU2X"SDF^"3333bDSU2X"SDF^"3333qDQqS>Qs1Q3{]***qDSUqQqS!A#...qDRT!V!C1Q3K///rEadr!!!aC!GA!###q1uI!a% QUC1I$5555s1uc!eC1aL 0000sD!AaCEac!e#ac1Q3-///qsA;! 	sD40AQ<!q   QUa1$$$a!eA&,,333 UU+e3u<<<s$AQUa1q5(((QUqb B&&&a%(1,224999sd-AQUa1$$$ 	sAq!9>>sAq!9>> tGCKa C''' s1q5!}q !$Aq	111	d	#Bs261~rAv&*c"b1f+q.AAAAs261~a#q((( 5$6DAqqsA;#a)###qs1ua=Ac!A#a%mO+++qsA;! q!9U#q1U1Q3Z<'7777Q]A&&u-qs;;; ;>yt,HCsC#I&d4q8A===tIsC#I.d<q@ABDIIq#hCs#c4[	1AI	=>FF s3sA;#sC3sA;,C'DDDD	d	#BS"a   qtQ<3r1:%%%S!A#q!!!I s   ABBAB)c            	         t        t        t        ddd      d      t              sJ t        t        ddd      d      t        t        dd      d      k(  sJ t        t        ddd      d      d	k(  sJ t        t        d
ddz  d      d      t	        d
ddz  d      k(  sJ t        t        dddz  d      d      t	        dddz  d      k(  sJ t        t        dddz  d      d      t	        dddz  d      k(  sJ t        ddd      } t        d| d      } t        | d      dk(  sJ t        d| d      } t        | d      dk(  sJ t        d| d      } t        | d      dk(  sJ t        d| d      } t        | d      dk(  sJ t        d| d      } t        | d      dk(  sJ t        ddd      } t        | dd      } t        | d      dk(  sJ t        | dd      } t        | d      dk(  sJ t        | dd      } t        | d      dk(  sJ t        | dd      } t        | d      dk(  sJ t        | dd      } t        | d      dk(  sJ t        ddd      } t        | | d      } t        | d      dk(  sJ t        | | d      } t        | d      dk(  sJ t        | | d      } t        | d      d k(  sJ t        | | d      } t        | d      d!k(  sJ t        | | d      } t        | d      d"k(  sJ y )#NrC   Fr   r^   rV   r~   r   r   r=   l    .Wv r`   i@B l    J)l   [, r  i  l   ;xc}l   1{0I iM  i+  l     g i  r   iW  i}  i`F  i     i  i8>  i$  ild  ig  i  )r   r   r   r	   r   r  s    r8   test_Mod_Powr    sH   c#aU3Q7AAAs1b5)3/3s1bz33GGGGs1kE2A6!;;;s;559&AK5() ) )s;S59&AKS() ) )s;S59%@KS'( ( ( q!e$Dq$'DtUr!!!q$'DtUt###q$'DtUu$$$q$'DtUu$$$q$'DtUt###q!e$DtQ'DtUr!!!tQ'DtUs"""tQ'DtUt###tQ'DtUu$$$tQ'DtUu$$$q!e$DtTE*DtUs"""tTE*DtUt###tTE*DtUu$$$tTE*DtUu$$$tTE*D tUt###r:   c                  ,   t        dd      } t        dd      }t        ddd      }t        t        t              j                  J t        | |      j                  J t        t        |      j                  J t        | |      j                  sJ y )NrX   Tr   q1q2r   )r   r   r>   rb   r   )rX   r
  r  s      r8   test_Mod_is_integerr    s    sD!A	d	#B	dD	1Bq!9'''q":  (((q":  (((q":    r:   c                     t        dd      } t        ddd      }| dz  j                  sJ t        | d      j                  sJ t        | |      j                  sJ t        | |       j                  sJ t        ||       j                  J y )Nri   Tr   rl   r  r^   rc   )r   r  r   r  )ri   rl   s     r8   test_Mod_is_nonposnegr    s    sD!AsD40AaCq":$$$$q!9####q1":$$$$q!9##+++r:   c                  &   t        dd      } | | dz  z   }|j                  |dz   j                  cxk(  r| dz   j                  k(  sJ  J t        dd      }t        d      | z  j                  du sJ t        d      | z  |z  j                  du sJ y )Nr   Fr   rC   r=   r   )r   is_commutativer   )r   eqr   s      r8   test_issue_6001r  '  s    s&A	
QTB 		a		
Q	 	 	 	s&A GAI%%...GAIaK''5000r:   c                  V   ddl m}  t        dd      }t        d      }|j                  sJ |j                  J t        j
                  j                  J ||z  j                  du sJ ||z  j                  J d|z  |z  j                  du sJ d|z  j                  du sJ d|z  j                  dusJ  | d      |z  j                  du sJ t        d	d      }||z  dz  |dz  |dz  z  k(  sJ d|z  dz  d
|dz  z  k(  sJ ||z  |z  j                         ||z  ||z  z  k(  sJ y )Nr   )
polar_liftrX   T)polarr>   rC   ra   r   rV   )$sympy.functions.elementary.complexesr  r   is_polarr   r   rp   )r  rX   r>   r   s       r8   
test_polarr  9  sP   ?s$AsA:::::55>>!!!qD??d"""qD??"""qS1H$&&&aC>>T!!!qD??$&&&rN1&&$...s$AaC!8q!tad{"""aC!8q1a4xqS1H!Q$A+---r:   c                  x    t        ddd      t        j                  }} | |k7  sJ || k7  sJ | |k(  rJ || k(  rJ y )Nr=   rC   Fr   )r   r   r   r6   s     r8   test_issue_6040r  M  sH    q!e$aeeqA6M66M6Q<Q<r:   c                     t        j                  t        t        d      t        t        d            t        j                  t        t        d      t        t        d             k(  sJ t        j                  t        t        d      t        t        d            dk(  sJ t        j                  t        dt              t	        dt        f            dk7  sJ y )Nr=   rC   r   )r   comparer   r>   	frozensetr@   r:   r8   test_issue_6082r  U  s    ==QC1I.c!QiQ++, , , ==QC1I.!333==QIq!f$56!;;;r:   c                     t         dz  t         z  t         dz  k(  sJ t         t         dz  z  t         dz  k(  sJ t         t         dz  z  t         dz  k(  sJ t         dz  t         dz  z  t         dz  k(  sJ ddt         z  z  dt         z  z  ddt         z  z  k(  sJ dt         z  ddt         z  z  z  ddt         z  z  k(  sJ dt         z  ddt         z  z  z  ddt         z  z  k(  sJ ddt         z  z  ddt         z  z  z  ddt         z  z  k(  sJ y )	Nr   r  r  r  g      ?r  r  rC   r   r@   r:   r8   test_issue_6077r   _  s   c6!8q#vQV8q$wQV8q#vc6!S&=AsF"""s1u:ad?a#a%j(((a4CE
?a$q&k)))a4CE
?a#a%j(((s1u:a#a%j AAJ...r:   c                      t        dd      } t        dd      \  }}t        dd      }|t        z  t         u sJ ||z  t        z  t        u sJ | t        z  t        u sJ |t        z  t        t        z  k7  sJ y )NrX   Tr1   zn,mr   x_imrH   )r   r   r   )rX   ri   r   r"  s       r8   test_mul_flatten_oor#  k  st    d#A54(DAq6T*DR4B3;;Q3r6R<<R42::7ad??r:   c                      t         t        t         z  z   } t         t        t         z  z
  }| |z   t        u sJ | |z
  t        u sJ t        ddd      } | | z   dk(  sJ y )NrC   r^   Fr   r   )r   r   r   r   r6   s     r8   test_add_flattenr%  u  s\    
QrT	A
QrT	Aq5C<<q5C<< 	Aq5!Aq5B;;r:   c                  |   dt         z  t        t        z  z  dz  j                  d      dt          t        t        z  z  dz  z  j                  d      k(  sJ t        dd      \  } }}d|z  |z  d	z  d
||z  d	z  z  k(  sJ d|z  |z  d	z  d||z  d	z  z  k(  sJ d|z  |z  dz  d||z  dz  z  k(  sJ t	        dt         z        dt	        t                z  k(  sJ t	        dt         z        dt	        t               z  k(  sJ dt         z  t        z  | z  |z  dz  dt         dz  z  t        dz  z  | |z  dz  z  k(  sJ y )Nra   r   rC   gu溆a"@zA,B,CFr   r   r^   g       @       g       rV   r  r  )r>   rb   ri   r   r   r   s      r8   test_issue_5160_6087_6089_6090r(    sK   T!Q$Y"vr!Q$wn'<&?&?&BBBBg51GAq!qDFQ;#qsQh,&&&E!Ga<41q=(((qDFQ;!QqS1H*$$$Q<3tQBx<'''A;#d1g+%%%qDF1HQJ?a1fQTk1Q3(2222r:   c            	      
   t        t        t        d                  t        t        d            k(  sJ t        t        dz        dz  dk(  sJ t        t	        dd            t        d      k(  sJ t        t	        dd            t        d      k(  sJ t        t	        d	d            d
k(  sJ t        t	        dd            dk(  sJ t        t	        dd            dk(  sJ t        t	        dd            dk(  sJ t        t	        d	d            d
k(  sJ t        t	        dd            dk(  sJ t        t	        dd      t	        dd            sJ t        t	        dd      t	        dd            sJ t        dt        d      z         dk(  sJ t        t        dz        dk(  sJ t        dt        dz  z         dk(  sJ t        t        ddd            t        d      k(  sJ t        t        ddd            t        d      k(  sJ t        t        dt	        dd      z   d            dk(  sJ t        t        d        t        t        d        t        dt        d      dz  z   t        d      dz  z         dk(  sJ y ) Nr   r   rC   z#1.123456789012345678901234567890e20 l   
^8a z#1.123456789012345678901234567890e25l   y_2U*20)z#1.123456789012345678901234567890e35l    0c3@dWfXtD
 123456789012345678901234567890e5l   @/c |,0z	123000e-2z1230.00123000e212300000r=   z.9999999999999999999999999g@xDr   g333333?ra   Fr   gr   z.99999999999999999c                       t        t              S r4   )floatr>   r@   r:   r8   r   z&test_float_int_round.<locals>.<lambda>  s
    eAh r:   c                  *    t        t        d            S )NrU   )r/  r   r@   r:   r8   r   z&test_float_int_round.<locals>.<lambda>  s    eDHo r:   l   
>V3&Z
 l   
>V3&Z
 )r  r/  r   r   r   r	   r9   r
   r   r*   r   r    r!   r@   r:   r8   test_float_int_roundr1    s   uT"X3tBx=000r4x=2"""u:B?@!"# # #u:B?@&'( ( ( u:B?@,- - -u7<=+, , ,5>CD  5>CD"# # # 5>CD,- - -5;R@A+, , ,eK3U9b5IJJJeJr2E*b4IJJJq8899:a???r$w<1q2d7{q   s3U+,G<<<s3U+,G<<<s1u1266GHAMMM
9&'
9-.#c!fai/#a&!);<  r:   c            
          t        j                  dt        dd      z  t        t        dd       t        dd      d      g      t        dd      dt        dd      z  gg d fk(  sJ y )Nr^   r=   r`   rC   Fr   rU   )r   flattenr
   r   r@   r:   r8   test_issue_6611ar4    si    ;;8Aq>)Xa^OXa^e<> ?
1a.2A.	/T:; ; ;r:   c                     t         dz   } t        | dd      } t        | dd      } t        | j                   t         dz   k(  sJ t         dz  } t        | dd      } t        | dd      } t        | j                   dt         z  k(  sJ t        dt         dz
  d      } d| z  t        dt         dz
  d      k(  sJ |  t        dt         dz
  d      k(  sJ y )	Nr=   rC   Fr   rP   rQ   ra   r   )r>   r   r   r   r  s    r8   test_denest_add_mulr7    s    	
QB	RU	#B	RU	#B=AE!!!	
1B	RU	#B	RU	#B=AaC	RQ	'BR43r1q5511113#aQ////r:   c                      t        t        t        z  dz        } | dz  t        z  | z  t        z  | z  t        z  | dz  z  t        dz  t        z  k(  sJ y )Nr^   rC   )r   r   r   r>   rb   r  s    r8   test_mul_coeffr9    sL     	AbDFAa46!8A:a<>!Q$!Q$q&(((r:   c                     t        dd      } t        d      }t        dd      }t        dd      }t        d      }| |z  |z  }|j                  J |j                  J | |z  }|j                  J |j                  du sJ | |z  |z  }|j                  du sJ |j                  J | |z  |z  |z  }|j                  J |j                  J d }t        g dgd	z   D ]i  \  }}t        d
|      }	t        d|      }
t	        |	|
d      } ||	|
|       t        d|      }	t        d|      }
t	        |
|	d      } ||	|
|       k d }t        g dgd	z   D ]m  \  }}t        d
|d      }	t        d|d      }
t	        |	|
d      } ||	|
|       t        d
|d      }	t        d|d      }
t	        |
|	d      } ||	|
|       o y )NTF)rE   rf   r+  rp  rH   c                 f   | j                   r'|j                  r|j                  r|j                   sJ y |j                  J |j                  r*| j                   r|j                   sJ |j                   J y y |j                  du r,| j                   |j                   J y |j                   du sJ y y r  r   r   r#  rr   r0   rM   s      r8   testz%test_mul_zero_detection.<locals>.test  s    99%%!))33)%%---{{9999$999,,, % %99$99,,,99---	 &r:   )TFNrC   rr   r<  r%  r;  r   r   c                 r    | j                   r|j                  s|j                  J y |j                  du sJ y )NTr<  r=  s      r8   r>  z%test_mul_zero_detection.<locals>.test	  s5    99Q[[%%---%%---r:   )r   r   r0   )r   r   )r   rJ   r#  r/   r   )r   r   rI   c2r   rM   r>  izibrr   r0   s              r8   test_mul_zero_detectionrC    s   	Du	%BD!A5$'A	E4	(BA
1QA>>!!!%%%
1A>>!!!&&&
1QA>>U"""%%%
 	1Qr	A>>!!!%%%." /023 B#r"#b!1u%Q1$##b!1u%Q1. /023 B#r6#b51u%Q1#r6#b51u%Q1r:   c                      t        d      } t        d      }t        | |d      }|j                  J |j                  J t        || d      }|j                  J |j                  J y )NTre   Fr;  r   )r   r   is_extended_positiverv  )zerinfrM   s      r8   test_Mul_with_zero_infiniterH  	  sv    
T
C
u
CCu%A!!)))>>!!!Cu%A!!)))>>!!!r:   c                     t        d      \  } }t        d| z  z   d| z  t        z   z  t        u sJ |t        z
  |t        z
  z  t        u sJ d| |z   z  d| |z
  z  z   d| |z   z  d| |z
  z  z
  z  }|j	                  ||       t        u sJ y )Na br^   r=   )r   r   r   r   r  )r7   r0   r  s      r8   #test_Mul_does_not_cancel_infinitiesrK  ,	  s    5>DAq1Q3Y1s#+++Va"f#%%%qsGa1g1Q3!QqS' 12D99Q?c!!!r:   c                  Z   t        d      \  } }dt        z   t        z  j                  sJ | |z   t         z  j                  sJ | dz   t        z  j                  sJ dt        z   t        z  j
                  du sJ dt        z   t        z  }dt        z
  |z  j                         t        u sJ y )NrJ  r=   F)r   r   r   r	  r   r   rp   )r7   r0   rr   s      r8   %test_Mul_does_not_distribute_infinityrM  5	  s    5>DAqUBJUbSM!!!!UCKUBJ!!U***	
Q
AUAI2%%%r:   c            
         t        dt        t        z   g t        j                  u sJ t        dt        t
        z   g t        j                  u sJ t        dt        t        dt        dz  z  t        dt
        f      z   g t        j                  u sJ t        dt        t        t        t        dt
        f      z   g t        j                  u sJ y )Nr   r=   rC   )	r   r7   r   r   NaNr   r"   r>   r   r@   r:   r8   !test_Mul_does_not_let_0_trump_infrP  ?	  s    AG&&&AF%%%A1a4!Q4456!&&@@@AQ2J//01QVV;;;r:   c                  L   ddl m}  t        dt        d      z         t        ddt        d      z  z         z   t        ddt        d      z  z         z
  }|j                  du sJ t	        d      }|j                  du sJ d	d
 | dt
        z  dz        z  t        d      z   z  t        dt
        z  dz        z  t        dt
        z  dz        z  t        d      d
dt        dt
        z  dz        d	z  z  z   z  z
  }|j                  dusJ t	        d      }|j                  du sJ y )Nr   )tanr=   r^   r   r_   Fz-2**(1/3)*(3*sqrt(93) + 29)**2 - 4*(3*sqrt(93) + 29)**(4/3) +
        12*sqrt(93)*(3*sqrt(93) + 29)**(1/3) + 116*(3*sqrt(93) + 29)**(1/3) +
        174*2**(1/3)*sqrt(93) + 1678*2**(1/3)rC   rc      Z      rV   Ta,  9*(3*sqrt(93) + 29)**(2/3)*((3*sqrt(93) +
        29)**(1/3)*(-2**(2/3)*(3*sqrt(93) + 29)**(1/3) - 2) - 2*2**(1/3))**3 +
        72*(3*sqrt(93) + 29)**(2/3)*(81*sqrt(93) + 783) + (162*sqrt(93) +
        1566)*((3*sqrt(93) + 29)**(1/3)*(-2**(2/3)*(3*sqrt(93) + 29)**(1/3) -
        2) - 2*2**(1/3))**2)(sympy.functions.elementary.trigonometricrR  r   r
  r   r   r    )rR  rr   s     r8   test_issue_8247_8354rW  G	  s   <Qa[DQtAwY//$rAd1gI~2FFA==E!!!	 1 	2A ==E!!!	2c"R%(md1g%&s2b58}4SBr]BQaBrE"Hq((()	*A==$$$	  	 A
 ==E!!!r:   c                      t        dd      \  } }| |z   j                  sJ dt        z  dt        z   dz  z   }|j                  J y )Nzx yTre   ra   r=   rC   )r   r   r   )r>   rb   rM   s      r8   test_Add_is_zerorY  Z	  sJ    5t$DAqE??? 	1AzA99r:   c                  b    t        t              dz  j                         t        t        fk(  sJ y )NrC   )r!   r   r   r   r@   r:   r8   test_issue_14392r[  c	  s%    HaK%%'C:555r:   c                      t        t        t              t        t        z  t        t        z  fk(  sJ t        t        d      t        dz  t        dz  fk(  sJ t        dt              dt        z  dt        z  fk(  sJ y )Nr^   )divmodr>   rb   r@   r:   r8   test_divmodr^  g	  sb    !Q<AqD!a%=(((!Q<AqD!a%=(((!Q<AqD!a%=(((r:   c                     t         t        z   t          t        z  k(  sJ t          t        z   t         t        z  k(  sJ dt         z   dt         z  k(  sJ dt         z   dt         z  k(  sJ dt         z   dt         z  k(  sJ dt         z   dt         z  k(  sJ t        d      5  t         t        z    } | j                  r| j                  dt         t        z   fk(  sJ 	 d d d        t        d      5  t         t        z    } | j                  r| j                  dt         t        z   fk(  sJ 	 d d d        y # 1 sw Y   WxY w# 1 sw Y   y xY w)Nr  r  r   r'  FrU   )r>   rb   r%   r	  r   r&   r6  s    r8   test__neg__r`  m	  s.   qS6aRT>>RT7ac>>T7c!eU8r!tT7c!eU8r!t	E	 41uXyyRWWQU33334 
% 41uXyyRWWQU33334 44 44 4s   "9D2/9D>2D;>Ec                  >    t        t        t        d      t        u sJ y )Nr   )r   r   r   r@   r:   r8   test_issue_18507rb  |	  s    sCs"""r:   c                  d    t        t        t         t        t         d      } | j                  J y )NFr   )r   r0   r   r   r[   s    r8   test_issue_17130rd  	  s(    Ar1qb5)A99r:   c                  ,   t          t        t        t        d            t         t	        t        d            z  z   t        t        t        d            dz  t	        t        d            dz  z         z        z  t        z  } | j                  d      sJ y )NrP   rC   )r   r   r   r.   r   r   r   roundr[   s    r8   test_issue_21034rg  	  sj    	
347a47m+T"T!W+q.2d1g;PQ>2Q-RRSSTVVA771::r:   c                     ddl m}  ddlm}m}m}  |d      } |d|      } |d|g      \  }} ||       ||      z   }| d|z  k(  sJ t        t        z   }| d|z  k(  sJ  | dd	      }	|	t        z   }| d|z  k(  sJ t        t        |	t        f      D ]  }
t        |
d
di}| d|z  k(  rJ  d	t        dt        t        d      z  dt        z  d	z   k(  sJ y )Nr   )AccumBounds)TensorIndexTypetensor_indicestensor_headsLr   zA BrU   r=   rC   r&   Fr   rV   )
!sympy.calculus.accumulationboundsri  sympy.tensor.tensorrj  rk  rl  r   r>   r(   r   )ri  rj  rk  rl  rm  r   r   r   rM   r7   r   s              r8   test_issue_22021rp  	  s    =QQAsAAs#DAq	!qtA2A::aA2A::AqA	AA2A::c1a[) &&rRTzz SAq5))QqS1W444r:   c                  @    t         t        z   t         t        z  k(  sJ y r4   )r   r>   r@   r:   r8   test_issue_22244rr  	  s    U8s1ur:   c                     ddl m}  t        dd      } | t        t         dggdz   D ]e  \  }}||cxk(  rdk(  rn n|t        |z  z   }|d|z   z  t
        j                  u sJ || z  t
        j                  u sJ t        t        ||      reJ  dt        t        t        z  z   z  t
        j                  u sJ t        d      D cg c]  }t        dd	       c}\  }}d|t        |z  z   z  t
        j                  u sJ ddt        |z  z   z  t
        j                  u sJ d|t        dz  z   z  t
        j                  u sJ y c c}w )
Nr   )cartesrM   Tr=  r^   rC   r=   )infiniter   )sympy.utilities.iterablesrt  r   r   r   r   ComplexInfinityr   r'   r   r   r   )rt  rM   r7   r0   r   _r   s          r8   test_issue_22453ry  	  s6   0sd+A"rc1q() $1;Q;!G1q5zQ.....1"ua###$ b1R4i=AFF""">CAhGE4t4GDAqa!A#g;!&&   a!A#g;!&&   a!A#g;!&&    Hs   Ec                      dt         dz
  z  j                         ddt         dz
  z  fk(  sJ dt         dz   z  j                         ddt         dz   z  fk(  sJ y )Nr   rC   r=   )r>   r  r@   r:   r8   test_issue_22613r{  	  sX    AJ,,.1a!a%j/AAAAJ,,.1a!a%j/AAAr:   c                      t        ddt        d      dz  z  z  t        z  dz        ddt        d      dz  z  z  t        t               z  dz  k(  sJ y )Nr   r^   rV   rC   rR   rQ   )r   r   r   r@   r:   r8   test_issue_25176r}  	  sO    1qtAv;q "#qQqT!V}T1"X'=a'????r:   N)sympy.core.addr   sympy.core.basicr   sympy.core.modr   sympy.core.mulr   sympy.core.numbersr   r   r	   r
   r   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr   r  r   r   r   &sympy.functions.elementary.exponentialr   r   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   r   rV  r   r    r!   sympy.integrals.integralsr"   sympy.polys.polytoolsr#   sympy.sets.setsr$   r$  r%   r&   sympy.core.exprr'   rv  r(   sympy.testing.pytestr)   r*   r+   sympy.utilities.exceptionsr,   sympy.core.randomr-   r.   	itertoolsr/   r7   rI   r>   rb   rr   r0   r9   rA   rN   rY   r\   rx   rz   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.  r0  r2  ri  rl  rr  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(  r1  r4  r7  r9  rC  rH  rK  rM  rP  rW  rY  r[  r^  r`  rb  rd  rg  rp  rr  ry  r{  r}  r@   r:   r8   <module>r     s    "       " 6 6 & > ? ? = 5 @ E E . & % 6 % 2 5 5 > 0 9 $1aA
3)
 &/d*EP!

4K$(.>b>
83*2!K'*TF48&: z ) )) ) )("*)*@d5N%,Z.zQhL.^E%P='@&
)'X1!h$&Nz&z1,h<"~#'L<:8"(	&	;03(9+(6#2;8.D"
'4u"p2$j!,1$.(<	/ 3"J;0 )FR
""&<"&6)4#

5(!"B
@r:   