
    oVh0                    (   d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ 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mZmZmZmZm Z m!Z!m"Z"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l0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZCmDZD d dlEmFZFmGZG d dlHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dlQmRZR d dlSmTZT d dlUmVZV d dlWmXZX d dlYmZZZm[Z[m\Z\m]Z] d dl^m_Z_ d dl`maZa d dl`Z`d dlm Z   e9d d!"      Zb ece       Zd ece      Zed# Zfd$ Zgd% Zhd& Zid' Zjd( Zkd) Zld* Zmd+ Znd, Zod- Zpd. Zqd/ Zrd0 Zsd1 Ztd2 Zud3 Zvd4 Zwd5 ZxeVd6        Zyd7 Zzd8 Z{d9 Z|d: Z}d; Z~d< Zd= Zd> Zd? Zd@ Ze\dA        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` Zda Zdb Zdc Zdd Zde ZeVdf        Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp ZeZdq        Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    N)Sum)
EulerGammaCatalanTribonacciConstantGoldenRatio)Tuple)	unchanged)	fuzzy_not)Mul)mpf_normseterrIntegerIpicompRationalEnanooAlgebraicNumberNumberFloatzooequal_valued
int_valued	all_close)	igcdigcdexigcd2igcd_lehmerilcminteger_nthrootisqrtinteger_logmod_inverse)Pow)GeGtLeLtS)DummySymbol)sympify)	factorial)floor)	fibonacci)explog)sqrtcbrt)cossin)	RealField)latex)srepr)simplify)PythonRational)conserve_mpmath_dps)permutations)XFAILraises_both_exp_powwarns_deprecated_sympy)Add)mpf)numberstF)realc                 B    | |k(  xr | j                   |j                   k(  S N)_precabs     M/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_numbers.pysame_and_same_precrP   /   s    6(agg((    c                      t        d       t        t        d        t        d       t        j                  t        j                  z  t        j
                  u sJ y )NT)dividec                  D    t         j                  t         j                  z  S rJ   )r,   Zero rQ   rO   <lambda>ztest_seterr.<locals>.<lambda>6   s    qvvaff} rQ   F)r   rA   
ValueErrorr,   rU   NaNrV   rQ   rO   test_seterrrZ   4   s;    
$
:,-
%66AFF?aee###rQ   c                     t         j                  } t        dd      }t        dd      }| | z  dk(  sJ | |z  t         j                  k(  sJ | |z  t        dd      k(  sJ || z  t        dd      k(  sJ ||z  dk(  sJ ||z  t        dd	      k(  sJ || z  t        dd      k(  sJ ||z  t        dd      k(  sJ ||z  dk(  sJ t        d
      }|dz  dk(  sJ |dz  j	                  d      dk(  sJ |dz  j	                  d      dk(  sJ t        dd      }t        t        z  t        u sJ t        t        z  t        u sJ dt        z  t        u sJ |dz  t        u sJ t        dd      }t        dd      }||z  }t        |t        |      z  d      }||k(  r|j                  |j                  k(  sJ t        dd      }||z  }t        t        |      |z  d      }||k(  r|j                  |j                  k(  sJ t         j                  }	|	t        d      z  dk(  sJ t        dd      t        d      z  dk(  sJ t        d      t        dd      z  dk(  sJ t        dd      j                  t        d            dk(  sJ t        d      j                  t        d            t        d      k(  sJ d t        d      z  t        d      k(  sJ t        d!      }t        d      }
t        ||
z        t        k(  sJ ||
z  t        d      k(  sJ t        d      t        dd      z  t        dd      k(  sJ t        d!d      t        d      z  t        dd      k(  sJ t        d      dz  dk(  sJ t        d      j                  t        d"            t        d      k(  sJ t        d"      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ y )#N         i{F  r   i     	   i g@皙?              g333333?      ?皙?pT)infinitei  )   z.36z8.36皙?      ?      ?      ?1.5z2.75z1.25g      @   
   )r,   Halfr   r   roundr.   r   r   r   rK   rU   float__rmod__r   type)xyzrM   rg   rfmanssrN   s              rO   test_modr~   ;   s   	AAAEAq5A::q5AFF??q5HQ&&&&q5HQN"""q5A::q5HQ&&&&q5HQ&&&&q5HQ&&&&q5A::c
AFs??E==###G??2#%%%sT"A7c>>8s??r6S==q5C<< 	bAeQA	AA
HQK
#C8399,,,faA	AA
a
#C8399,,,	AuQx<3 Aq>E#J&$...:A&$...Aq>""5<0D888<  v/5=@@@%,%-///
A
AA;'!!!q5GAJ1:A&(1a.888Aq>GAJ&(1a.8881:s"""1:wr{+wqz9992;?gaj(((
?gaj(((rQ   c            	      f   t        d      } t        t        d      t        d            t        dd      k(  sJ t        t        d       t        d            t        dd      k(  sJ t        t        j                  t        j
                        t        dd      k(  sJ t        t        d        t        t        d	        t        t        d      d      t        dd      k(  sJ t        dt        d            t        dd      k(  sJ t        d
      | z  d
| z  cxk(  rt        d
| z        k(  sJ  J t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            d   dk(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d             k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      t        d            d   d!k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d"            k(  sJ t        dt        d            t        t        d      t        d"            k(  sJ t        t        d      d      t        t        d#      t        d"            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      t        d            d$k(  sJ t        t        d      t        d            t        t        d%      t        d"            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      t        d            t        t        d      t        d            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        dt        d            t        t        d      t        d            k(  sJ t        t        d      d      d$k(  sJ t        dt        d            d&k(  sJ t        t        d      d      d'k(  sJ t        dt        d            d   dk(  sJ t        t        d      d      d'k(  sJ t        dt        d            t        t        d(      t        d"            k(  sJ t        t        d      d      t        t        d      t        d            k(  sJ t        t        t        d      d            d)k(  sJ t        t        t        d      t        d                  d*k(  sJ t        t        t        d      d            d+k(  sJ t        t        t        d      t        d                  d,k(  sJ t        t        dt        d                  d-k(  sJ t        t        t        d      d            d.k(  sJ t        t        dt        d                  d/k(  sJ t        d0t        d            d1k(  sJ t        t        d0      t        d            d1k(  sJ t        t        d0      d      d1k(  sJ t        t        d      t        j                  t        j                  fk(  sJ t        t        j                  d      t        j                  t        j                  fk(  sJ t        dt        j                        t        j                  t        j                  fk(  sJ d2t        fd2t        fd3d4d5g}t        d6      }|D cg c]  }t        t        t        |             }}t        dd7      D cg c]  }t        |t               c}|k(  sJ d8d9d3d2t         fd2t         fg}|D cg c]  }t        t        t        |             }}t        dd7      D cg c]  }t        |t                c}|k(  sJ t        dd7      D cg c]  }t        ||        c}|k(  sJ d: }d;D ]3  }d<D ],  }t        t        |      t        |             |||      k(  r,J  5 y c c}w c c}w c c}w c c}w c c}w )=Nrv         r_   r]   r   c                  R    t        t        j                  t        j                        S rJ   )divmodr,   rU   rV   rQ   rO   rW   ztest_divmod.<locals>.<lambda>   s    fQVVQVV&< rQ   c                  R    t        t        j                  t        j                        S rJ   )r   r,   OnerU   rV   rQ   rO   rW   ztest_divmod.<locals>.<lambda>   s    fQUUAFF&; rQ   i   2z3/21z1/20z3.5z2.rn   z1/36z1/1020.1   0.1rc   rl   0.5333333?z0.34z1/6   z0.5)r   UUUUUU?35)r   r   )r   rf   15z(6, 0.2)z(10, 0.166666666666667)z	(11, 0.2)z(3, 0.0333333333333333)z(4, 0.166666666666667)z(1, 0.0333333333333333)z(2, 0.1))r   r_   )r   r   )r   r_   )r   rc   infr\   )r   r   )r   r   c           	          t        t        t        | |            D cg c]  \  }}|r|n
t        |       c}}      S c c}}w rJ   )tuple	enumerater   int)rM   rN   ijs       rO   rW   ztest_divmod.<locals>.<lambda>   s4    iqRS>UVdaAq3q61VW Vs   ?
)r]         @g      @r   rb   g      )rc          @g      @r   g       g      )r.   r   r,   r   rU   r   rA   ZeroDivisionErrorr1   strr   rY   rs   r   maprange)rv   r|   OOr   ANSdmodrM   rN   s           rO   test_divmodr      s
   sA!B%1%1+---1R5&!A$5Q<///!&&!%% E!QK///
<=
;<!B%uQ{***"aduQ{***T7A:q1E$q&M11111!C&!E(#uQsVQuX'>>>>!E(AcF#uQsVQuX'>>>>!C&!E(#uQsVQtW'====!E(AcF#uQsVQuX'>>>>!C&!E(#uQsVQsV'<<<<!E(AcF#uQsVQuX'>>>>!C&!F)$agqv(>>>>!C&!D'"1%+++!E(AcF#uQsVQuX'>>>>!C&!afaf 5555!QsVafaf 5555!C&#%#%"9999#qv%#%"9999#qv%#%"9999!E(AeH%qvqv)>>>>!E(AeH%qvqx)@@@@!E(AeH%qvqx)@@@@!E(AeH%qvqx)@@@@!E(AeH%a(B...!E(AeH%qvqx)@@@@!E(A%#%"9999!QuX%#%"9999!E(C E!C&!D'$::::#qx E!C&!D'$::::!E(C E!C&!D'$::::#qx E!C&!E($;;;;!E(AeH%111!E(AeH%qw$)@@@@!E(AeH%qvqx)@@@@!E(A%#%"9999!QuX%#$"8888!E(C E!C&!E($;;;;#qx E!C&!E($;;;;#qx E!C&!E($;;;;!E(AeH%qvqx)@@@@!E(A%#%"9999!QuX%##"7777!E(C H,,,#qx H,,,!E(A(***!QuXq!R'''!E(C H,,,#qx E!D'1T7$;;;;!E(C E!C&!E($;;;;vafc"#z111vah%)*.GGGGvah$%444vah%)*.GGGGvc1U8$%)AAAAvah$%)BBBBvc1U8$%333"adw&&&!B%1')))!B%w&&&"a=QUUAEEN***!%%quu~---!QUUquu~---8b"Xvvv
6C	uB),
-A5UA
-C
-#(Q<0aF1bM0C777GVb2#YbS	
:C),
-A5UA
-C
-$)"aL1qF1rcN1S888$)"aL1qF1rcN1S888 XD0 4, 	4A!A$!%a333	44 .0
-11s   < v,v$ v$v)v.c                      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        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        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        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        d
d      dk(  sJ t        d
d	      dk(  sJ t        g d dk(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t	        d      D ]   t        t         fd        t	        d      D ]   t        t         fd        y )Nr   r_   ro   r   r   rc   r]      r   r\   rp         rp   c                      t               S rJ   r   rV   rQ   rO   rW   ztest_igcd.<locals>.<lambda>   s    df rQ   c                      t        d      S Nrc   r   rV   rQ   rO   rW   ztest_igcd.<locals>.<lambda>   
    d1g rQ   c                      t        dd       S Nr   r   rV   rQ   rO   rW   ztest_igcd.<locals>.<lambda>   s    tAt} rQ   c                      t        dd      S Nr_   g@r   rV   rQ   rO   rW   ztest_igcd.<locals>.<lambda>       tAs| rQ   )ǧF@r_   r   c                      t          S rJ   r   argss   rO   rW   ztest_igcd.<locals>.<lambda>       4; rQ   )r_   rc   Nc                      t          S rJ   r   r   s   rO   rW   ztest_igcd.<locals>.<lambda>   r   rQ   )r   rA   	TypeErrorrX   r?   r   s   @rO   	test_igcdr      s   1:??1:??1:??1:??1:??1:??1:??A;!2;!B<1A;!2;!1:??1:??2;!2;!A;!B<1"$$$
9n%
9o&
:,-
:+,]+ 0z./0\* 0z./0rQ   c                      t        d      t        d      }} t        | |      dk(  sJ t        d      }t        | |z  ||z        |k(  sJ t        | ddz        dk(  sJ t        dd      t        dd      k(  sJ y )N'  '  r_   d   rp     rc   )r2   r    )rM   rN   cs      rO   test_igcd_lehmerr      s    UYu-qA q!!!!#AqsAaC A%%%q"d(#q(((q!Aq 1111rQ   c                      t        ddz  dz
  ddz  dz
        dk(  sJ t        t        d            t        t        d            }} t        | |      dk(  sJ y )Nrc   r   r_   c   r   r   )r   r   r2   rL   s     rO   
test_igcd2r     sX    C!QUQY'1,,,y #i&6"7qAA;!rQ   c                     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        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        g d	 d
k(  sJ t        t        d        t        t        d        t        t        d        y )Nr   r_   rc   r         ro   8   r   <   c                      t        dd      S )Ng333333 @ro   r!   rV   rQ   rO   rW   ztest_ilcm.<locals>.<lambda>  s    tC| rQ   c                      t        dd      S )Nr   gffffff@r   rV   rQ   rO   rW   ztest_ilcm.<locals>.<lambda>  r   rQ   c                      t        d      S )Nr   r   rV   rQ   rO   rW   ztest_ilcm.<locals>.<lambda>  r   rQ   )r!   rA   rX   r   rV   rQ   rO   	test_ilcmr   	  s    1:??1:??1:??1:??1:??1:??1:1:"$$$
:+,
:+,
9o&rQ   c                      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        dd
      dk(  sJ y )Nrc   r\   )r   r_   r_   rp   r   )r   r_   rc   r   i  )ir_   r]   r   )r   r   r   r_   )r_   r   r_   )r   rV   rQ   rO   test_igcdexr     sg    !Q<:%%%"b>Z'''#t+++!Q<9$$$!Q<9$$$rQ   c                    | j                   | j                  t        | j                         t        | j                        f|j                   |j                  t        |j                         t        |j                        fk(  S rJ   )rg   qru   rL   s     rO   _strictly_equalr      sT    CCd133iacc+CCd133iacc+, ,rQ   c                       d      t         j                  u sJ   d      t         j                  u sJ   d      t         j                  u sJ   d      t         j                  u sJ   d      t         j                  u sJ t	        d      }t        |  d            sJ t        |  d            sJ t        |  t        d                  sJ t        |  |            sJ t        t         fd       y	)
z=
    Tests that are common between Integer and Rational.
    r   r_   r   r   z-1rp   10c                  &      t        d            S )Nrv   )r.   )clss   rO   rW   z$_test_rational_new.<locals>.<lambda>6  s    c&+. rQ   N)	r,   rU   r   NegativeOner   r   r   rA   r   )r   r   s   ` rO   _test_rational_newr   %  s     q6QVVq6QUU??r7amm###s8quut9%%%A1c$i(((1c$i(((1c#b'l+++1c!f%%%
9./rQ   c                      t        t               t        t        d      t        j                        sJ t        t        d      t        d            sJ t        t        d        t        t        d            dk(  sJ y)z&
    Test for Integer constructor
    ?g      %@rp   c                      t        d      S )Nz10.5r   rV   rQ   rO   rW   z"test_Integer_new.<locals>.<lambda>A  s
    wv rQ   z1.99999999999999999999r_   N)r   r   r   r,   rU   rA   rX   r   rV   rQ   rO   test_Integer_newr   9  s_     w73<00074='"+666
:./8M*+q000rQ   c                     t        t               t        j                  } | t        t	        d      d      k(  sJ | t        t	        d      t	        d            k(  sJ | t        dt	        d            k(  sJ | t        t        j                        k(  sJ dt        | |       k(  sJ t        dd      t        t        j                  t        dd            k(  sJ t        dd      t        dt        dd            k(  sJ t        dd      }t        d      |k(  sJ t        d       |k(  sJ t        d      j                  d      |k(  sJ t        dd	      j                  d      |k(  sJ t        d
      j                  d      |k(  sJ t        dd      t        dd      k(  sJ t        dd      t        dd      k(  sJ t        t        d            t        j                  k(  sJ t        d      t        d      k(  sJ t        d      t        d      k(  sJ t        d      t        dd      k(  sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        t        j                  d            j                  d      t        j                  d      k(  sJ t        t        d        t        t        d        	 ddl}t        |j                  dd            t        j                  k(  sJ 	 t        t        dd            t        dd      k(  sJ t!               5  t        ddd      j"                  dk(  sJ 	 ddd       t!               5  t        ddd      }ddd       j"                  dk(  sJ |j$                  dk(  sJ t        j&                  dd      t        dd      k(  sJ y# t        $ r Y w xY w# 1 sw Y   xY w# 1 sw Y   lxY w)z("
    Test for Rational constructor
    r_   rc   r\   r]   z3/4z-3/4z.76r      z19/25      ?g      @re   z1e2/1e-2r   z1 234  z1/1 234r   r   r   c                      t        d      S )Nz3**3r   rV   rQ   rO   rW   z#test_Rational_new.<locals>.<lambda>c  s    hv. rQ   c                      t        d      S )Nz	1/2 + 2/3r   rV   rQ   rO   rW   z#test_Rational_new.<locals>.<lambda>d  s    h{3 rQ   Nr   )gcdr   r   r^   )r   r   r,   rq   r   limit_denominatorr   ComplexInfinityr   evalfrA   r   	fractionsFractionImportErrorr=   rC   r   rg   from_coprime_ints)n1n3_4r   ns       rO   test_Rational_newr   E  sx    x 	
B'!*a(((('!*gaj1111!WQZ((((!&&!!!!R    Aq>Xaffhq!n====Aq>Xa!Q8888Aq>DE?d"""V$$$E?,,Q/4777B--a0D888G..q1T999Cx1~---Asx1~---E#J166)))J8E?222G...I(1d"3333B?a/////Aq>Q.....BHHSM"((-#>>>
9./
934	**1a01QVV;;; N1a()Xa^;;;		! ,1!$&&!+++,		! #Q"#33!8O833"99%%a+x1~===  
, ,# #s*   2O 7O(O"	OOO"O+c                      dD ]D  } dD ]=  }t        | |      j                         t        | d|      j                         k(  r=J  F t        dd      t        dd      k(  sJ y )N)rn   rl   rc   /r   100r_      )r   as_numer_denom)rg   r   s     rO   test_issue_24543r   y  sq     _  	_AAq>002h!}6M6\6\6^^^^	__ E5!Xa%5555rQ   c                  l   t        d      t        j                  u sJ t        d      j                  t        u sJ t        d      j                  t        u sJ t        dd      j                  t
        u sJ t        d      j                  t        u sJ t        d      t        j                  u sJ t        d      j                  t        u sJ t        d	      j                  t        u sJ t        d
      j                  t
        u sJ t        d      j                  t        u sJ t        t        d        t        t        d        t        dd      } t        |       | u sJ g d}t        t         t        t        t        g}t        ||      D ]%  \  }} t        |      | u rJ |t        |      | f        y)z&"
    Test for Number constructor
    r_   rc   ir^   r\   g333333@r   r   z-622z5/3z5.3c                      t        d      S )Nr7   )r   rV   rQ   rO   rW   z!test_Number_new.<locals>.<lambda>  s
    ve} rQ   c                       t        t              S rJ   )r   r7   rV   rQ   rO   rW   z!test_Number_new.<locals>.<lambda>  s
    fSk rQ   r   z-infr   iNFz+infN)r   r,   r   	__class__r   r   r   rA   rX   r   r   r   zip)rM   uvr   s       rO   test_Number_newr    ss   
 !9!9')))$<!!W,,,!Q<!!X---#;  E)))#;!%%#;  G+++&>##w...%=""h...%=""e+++
:,-
9)*AA!9>>-A	bS#r2AAq	 11ayA~06!9a00~1rQ   c                  &   t        d      t        d      } t        d      }| k  sJ | k  sJ |k  sJ | |kD  sJ | |k\  sJ t        t        fd       t        t        fd       t        t        fd       t        t        fd       y )Nr_   rc   r   c                  *     t         j                  k  S rJ   r,   rY   r   s   rO   rW   z!test_Number_cmp.<locals>.<lambda>      b155j rQ   c                  *     t         j                  k  S rJ   r  r  s   rO   rW   z!test_Number_cmp.<locals>.<lambda>      bAEEk rQ   c                  *     t         j                  kD  S rJ   r  r  s   rO   rW   z!test_Number_cmp.<locals>.<lambda>  r  rQ   c                  *     t         j                  k\  S rJ   r  r  s   rO   rW   z!test_Number_cmp.<locals>.<lambda>  r  rQ   )r   rA   r   )n2n3r   s     @rO   test_Number_cmpr    s    	B	B	B7N78O87N77N78O8
9()
9)*
9()
9)*rQ   c                  V   t        dd      t        dd      } t        dd      }t        dd      }t        d      }t        d      }t        d      }t        d      }||k  sJ ||k  sJ ||k  sJ ||k  sJ ||kD  sJ dz   | z  dk  sJ |z   |z  dk  sJ ||k  sJ | |k  sJ | k  sJ |kD  sJ |k  rJ t        d      dkD  rJ t        d      dk  sJ t        t        fd	       t        t        fd
       t        t        fd       t        t        fd       y )Nr_   r]   r\   rc   r   r   r   r   c                  *     t         j                  k  S rJ   r  r  s   rO   rW   z#test_Rational_cmp.<locals>.<lambda>  r  rQ   c                  *     t         j                  k  S rJ   r  r  s   rO   rW   z#test_Rational_cmp.<locals>.<lambda>  r  rQ   c                  *     t         j                  kD  S rJ   r  r  s   rO   rW   z#test_Rational_cmp.<locals>.<lambda>  r  rQ   c                  *     t         j                  k\  S rJ   r  r  s   rO   rW   z#test_Rational_cmp.<locals>.<lambda>  r  rQ   )r   rA   r   )r  r  n4n5n6n7n8r   s          @rO   test_Rational_cmpr    s>   	!QB	!QB	!QB	!RB	!B	!B	!B	"B7N77N77N77N77N7FR<!"WbLA7N77N77N77N7Bw;q !!B<!
9()
9)*
9()
9)*rQ   c                     d } ddt         j                  fdt        d      fg}dt         j                  fdt        d      ft         j                  t        d      fg}|D ])  \  }}||k(  du sJ ||k7  du sJ ||k(  du sJ ||k7  du r)J  |D ])  \  }}||k(  du sJ ||k7  du sJ ||k(  du sJ ||k7  du r)J  t         j                  j                  sJ t        d      t        d      z  } | |j	                         t        d	            sJ  | t
        d
z  j	                         t        d            sJ t        d      t        d      z  } | |j	                         t        d            sJ t        d      t        d      k(  du sJ d}t        d      }t        d      }t        d      }	t        dt        d      ddf      }
t        |      }||cxk(  r|
cxk(  r|cxk(  rt        d      k(  sJ  J t        d      j                  |k(  sJ |	j                  |k(  sJ t        dt        d      dd
f      t         j                  u sJ t        dt        d      ddf      t         j                  u sJ t        dt        d      ddf      t         j                  u sJ t        dt        d      df      t        d      k(  sJ t        dt        d      df      t        d      k(  sJ t        dt        d      df      t        d      k(  sJ t        t        d        t        d      j                  du sJ t        d      j                  du sJ t        d      j                  du sJ t        d      j                   du sJ t        d      j                  du sJ t        d      j"                  J t        d      j$                  J t        d      j&                  J t)        d      j+                  d       j$                  J t)        d      j+                  d       j&                  J d! } |t
                |dt
        z          |t-        d"d#             d$}t/        t        d%d&      t        d'd&            sJ t/        t        t1        |      d&      t        |d&            sJ t/        t        |d&      t        t3        |      d(            sJ t/        t        t3        |            t        |d&            sJ t/        t        |      t        |d&            sJ t        d)d*      j4                  d+k(  sJ t        d,d*      j4                  d+k(  sJ t        d)d*      d)k7  sJ t7        t        d-d&            d)k(  sJ t        t        d.        t        d/      t        d0      k(  sJ t1        d1      t1        d2      k(  sJ t9        d/      t9        d0      k(  sJ t        d3      t        d4      k(  sJ t        t        d5        t        d6      t        d7      k(  sJ t        t        d8        t        t        d9        t        t        d:        t        t        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        t        dA        t        t        dB        t        t        dC        t        t        dD        t        d      }t        dE      |k(  sJ t        dF      |k(  sJ t        dG      |k(  sJ t        dH      |k(  sJ t        d      |k(  sJ t        d      |k(  sJ t        dd&      t        dId&      k(  sJ t        d      t        dJ      k(  sJ t        t         j                        |k(  sJ t        t         j:                        t        dJ      k(  sJ t        t=        j>                  dK      d      t        d<d      k(  sJ t        t=        j>                  dL            t         j                  u sJ t        t=        j>                  dM            t         j                  u sJ t        t=        j>                  dN            t         j                  u sJ dOjA                  t        dP            dQk(  sJ dRjA                  t        t        j*                  dS      dS            dTk(  sJ t        dU      t        dU      k(  sJ t        dUdV      t        dUdV      k(  sJ t        t         j:                  dWz  d X      }t        t         j:                  dWz  dX      }t        t         j:                  dWz  dY      }t        t         j:                  dWz  dZY      }|j                  |j                  k(  sJ |j                  |j                  k(  rJ |j                  |j                  k(  rJ t        t        d[        t        t        d\        t        t        d]        t        t        d^        t/        t        t
        d_      t        j                  d_            sJ t/        t        tB              tC        j                               sJ g d`}tD        tD         tF        tD        tD        g}tI        ||      D ]  \  }}t        |      |u rJ  y )aNc                 @    t        d      }| | |z
  cxk  xr |k  S c S )Nz1.0E-15r   )rM   rN   rG   s      rO   eqztest_Float.<locals>.eq  s%    )QUQrQ   )r   rb   r   rb   TFrc   r\   r   r   z0.31830988618379067r]   r   r   re   )r      33ffL 5   )r   13333333333333r%  r&  )r   0x13333333333333r%  r&  )r   26666666666666i6   r$  r%  r&  g333333?8r   r_   r   c                      t        dd      S )N)r   ro   r_   r\    r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>  s    u\26 rQ   z0.0rd   c                     | j                         | k(  du sJ | j                         | k7  du sJ | | j                         k(  du sJ | | j                         k7  du sJ y NFT)r   rM   s    rO   teqztest_Float.<locals>.teq  sb    	Q5(((	Q4'''QWWY5(((QWWY4'''rQ   rf   evaluatel   
>V3&Z
 r   r/  12r         ?   L   r   z.12500000000000001c                      t        dd      S )Nr7  r/  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>1  s    u%7< rQ   z123 456.123 456z123456.123456z123 456123456z .3e2z0.3e2c                      t        d      S )Nz1  2r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>9  
    uV} rQ   z	1_23.4_56z123.456c                      t        d      S )N1_r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>?  
    uT{ rQ   c                      t        d      S )N1__2r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>@  r=  rQ   c                      t        d      S )N_1r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>A  r@  rQ   c                      t        d      S )N_infr"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>B  r=  rQ   r   z.125z.100z2.0r   c                      t        dd      S )Nz12.3d-4r/  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>J  s    uY3 rQ   c                      t        dd      S )Ng(@r/  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>K  s    uT2 rQ   c                      t        d      S )N.r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>L  s
    uSz rQ   c                      t        d      S )Nz-.r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>M  r@  rQ   z-0z.0z-.0z-0.0r   r   r   r   Infinityz	-Infinityz{:.3f}gs	M@z4.237z{:.35f}(   z%3.14159265358979323846264338327950288z0.73908513321516064100000000   rp   dps	precisionr*  c                      t        ddd      S )N1.23r\   rp   rP  rR  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>u      uVbA rQ   c                      t        ddd      S )NrT  r/  rp   rU  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>v      uVrB rQ   c                      t        ddd      S )NrT  r\   r/  rU  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>w  rV  rQ   c                      t        ddd      S )NrT  r/  rU  r"  rV   rQ   rO   rW   ztest_Float.<locals>.<lambda>x  rX  rQ       r  )%r,   rU   r   is_zeror   r   r   _mpf_rY   rL  NegativeInfinityrA   rX   	is_finiteis_negativeis_positiveis_infinite
is_integeris_rationalis_irrationalr5   r   r7   rP   r   r   rK   rs   r   r   decimalDecimalformatr   r   r   r  )r#  equal_pairsunequal_pairsp1p2rM   rE   x_strx_0xstrx2_strx_hexx_decr3  r   zerorN   rg   r   r  r  s                       rO   
test_Floatrs    s	    
 		
AFF	eAhK 
aff	
E!H	
qM
  #BbT!!!bU"""bT!!!bU"""	#
   "BbU"""bT!!!bU"""bT!!!	" 66>>>aE!HAaggiq"""rRx %(=">???aE!HAaggir###bEQrUNu$$$
(C01E45G12F1c*+S"56E#JEG;u;;s;;;;; :s"""<<3!SVT2&'155000!SVT2&'1::555!SVT2&'1+=+====!SVT"#uQx///!SVT"#uQx///!SVT"#uQx///
:67<!!T)))<##u,,,<##u,,,<##u,,,<4'''
 8&&&8'''8!!)))799R=$$,,,799R=&&...( G"IC% ! 	AeBmU4_===eGAJ3U1b\BBBeArlE#a&",=>>>eCFmU1b\:::eAha555 r?  B&&&b>2%%%r?d"""+R01T999
:<= "#u_'====9!2222%&(?*CCCC>U7^+++
:,- y!1111 :*+
:,-
:*+
:,- r?eBl***dA...b!,,,uS!},,,
:34
:./
:)*
:*+<D;$;$<4=D   :8tB<5b>)))8uSz!!!=D   <5:%%%'+uT1~==='(AEE111,-;;;-.!2D2DDDD??5?+w666E"$$r(B/0/0 0 0 /0,-. . ./4,b12 2 2
 	aeeBhBAaeeBhBAaeeBh"%AaeeBh"%A77aggww!''!!!ww!''!!! :AB
:BC
:AB
:BC eBmRXXb\:::eGngmmo>>> 	.A	bS#r2AAq	 1Qx1}}rQ   c                     t        d      t         j                  k(  du sJ t         j                  t        d      k(  du sJ t        d      t         j                  k(  du sJ t         j                  t        d      k(  du sJ y )Nrb   Fr   )r,   falserV   rQ   rO   test_zero_not_falserv    sl    cFagg%'''GGqv%'''aDAGGO%%%GGqtO%%%rQ   c                  v   dd l } d| j                  _         | j                         }t	        |d      t	        |j
                  d      cxk(  rt        j                  d      k(  sJ  J d| j                  _        t	        |d      t	        |j
                  d      cxk(  rt        j                  d      k(  sJ  J y )Nr   r   rd   )mpmathmprP  r   r   r]  r   )rx  mp_pis     rO   test_float_mpfr{    s    FIIMFIIKEekk3 7H288C=HHHHHFIIMekk3 7H288C=HHHHHrQ   c                       t        d      t        j                  d            } t        | d      t        j                  d      k(  sJ y )Nr   rO  )r9   r   r   r   )repis    rO   test_Float_RealElementr~    s:    9bhhsm,D srxx},,,rQ   c                      t        t        j                  d            } t        t	        |       t	        | d            sJ y )N   r/  )r   r   r   rP   r   )r}   s    rO   'test_Float_default_to_highprec_from_strr    s.    BHHSMAeAha555rQ   c                  <    t        d      } | dz  j                  sJ y )Ng	@rc   )r   is_Floatr2  s    rO   test_Float_evalr    s    c
AqD???rQ   c                  d   t        dd      } t        dd      }| | z
  dk(  sJ | |  z   dk(  sJ t        j                  | z   | z
  dk(  sJ t        j                  | z   |  z   dk(  sJ ||z
  dk(  sJ || z   dk(  sJ t        j                  |z   |z
  dk(  sJ t        j                  |z   | z   dk(  sJ y )Nrf   rp   r   r   )r   r,   rU   rL   s     rO   test_Float_issue_2107r    s    c2AeRAq5A::8q==66A:>Q66A:!!!!q5A::8q==66A:>Q66A:!!!!rQ   c                      ddl m}  dt        d      z
  } | |      }|j                         |k(  sJ |j	                  |      j                         dk(  sJ y )Nr   )to_number_fieldr_   rc   )sympy.polys.numberfieldsr  r5   as_exprminpolyexpand)r  rM   rN   s      rO   test_issue_14289r    sO    8	DGAA99;!99Q< A%%%rQ   c                  >    t        d      } t        d      }| |k(  sJ y )N)r   1Lr   r_   )r   r   r   r_   r"  rL   s     rO   test_Float_from_tupler    s!    oAnA6M6rQ   c                     t         dk7  sJ dt         z  t         u sJ dt         k7  sJ t         t          k7  sJ t         t        d      dz  k7  sJ t         dz   t         u sJ dt         z   t         u sJ dt         z  dz   t         u sJ t        j                  t         z  dk(  sJ t        j                  t          z  t         u sJ t          dz  t          u sJ t         t         z   t         u sJ t          t         dz  z   t          u sJ dt         z  dk(  sJ dt          z  dk(  sJ dt         z  dk(  sJ t         dz  t        u sJ dt         z  t        u sJ t         t         z  t        u sJ t         t          z  t        u sJ t          t         z  t        u sJ t          t          z  t        u sJ t         t         z
  t        u sJ t         t          z
  t         u sJ t          t         z
  t          u sJ t          t          z
  t        u sJ t         t          z   t        u sJ t          t         z   t        u sJ t         t         z   t         u sJ t          t         z   t        u sJ t         t          z   t        u sJ t          t          z   t          u sJ t         t         z  t         u sJ t          t         z  t          u sJ t         t          z  t          u sJ t          t          z  t         u sJ t         dz  t         u sJ t          dz  t          u sJ dt         z  dk(  sJ dt          z  dk(  sJ t         dz  t        u sJ t          dz  t        u sJ dt         z  t        u sJ dt          z  t        u sJ t         dz   t         u sJ t          dz   t          u sJ dt         z   t         u sJ dt          z   t          u sJ t         dz
  t         u sJ t          dz
  t          u sJ dt         z
  t          u sJ dt          z
  t         u sJ t         dz  t         u sJ t          dz  t          u sJ t         dz  t          u sJ t          dz  t         u sJ t         dz  t         u sJ t          dz  t          u sJ t         dz  t          u sJ dt         z  dk(  sJ dt          z  dk(  sJ dt         z  dk(  sJ dt          z  dk(  sJ dt         z  t         u sJ dt          z  t          u sJ dt         z  t          u sJ dt          z  t         u sJ dt         z   t         u sJ dt         z
  t          u sJ dt         z   t         u sJ dt         z
  t          u sJ dt          z   t          u sJ dt          z
  t         u sJ dt          z   t          u sJ dt          z
  t         u sJ t        d      t         z   t         u sJ t        d      t         z
  t          u sJ t         t
        z  t          t
        z  k(  sJ t          t
        z  t         t
        z  k(  sJ t         t        d      z  t        k(  rt         t        d      z  t         u sJ t          t        d      z  t        k(  rt          t        d      z  t          u sJ t         t        d      z  t        k(  rt         t        d      z  t         u sJ t          t        d      z  t        k(  rt          t        d      z  t          u sJ t         t        d	      z  t        k(  rt         t        d	      z  t          u sJ t          t        d	      z  t        k(  rt          t        d	      z  t         u sJ t         t        d	      z  t        k(  rt         t        d	      z  t          u sJ t          t        d	      z  t        k(  rt          t        d	      z  t         u sJ t         t        d      z   t        k(  rt         t        d      z   t         u sJ t          t        d      z   t        k(  rt          t        d      z   t          u sJ t         t        d      z
  t        k(  rt         t        d      z
  t         u sJ t          t        d      z
  t        k(  rt          t        d      z
  t          u sJ t        d      t         z  t        k(  rt        d      t         z  t         u sJ t        d      t          z  t        k(  rt        d      t          z  t          u sJ t        d      t         z  dk(  sJ t        d      t          z  dk(  sJ t        d	      t         z  t        k(  rt        d	      t         z  t          u sJ t        d	      t          z  t        k(  rt        d	      t          z  t         u sJ t        d	      t         z  dk(  sJ t        d	      t          z  dk(  sJ t        d      t         z   t         u sJ t        d      t          z   t          u sJ t        d      t         z
  t          u sJ t        d      t          z
  t         u sJ t         t        t               k(  sJ t         t        t               k7  d
u sJ t        t        t                     t        u sJ t          t        t                k(  sJ t          t        t                k7  d
u sJ t        t        t                      t        u sJ t        d      t        u sJ t        dz  t        u sJ dt        z  t        u sJ t        t         z  t        u sJ t        t          z  t        u sJ t        t         z  t        u sJ t        t          z  t        u sJ t        t         z   t        u sJ t        t          z   t        u sJ t        t         z
  t        u sJ t        t          z
  t        u sJ t          t        j                  z  t        u sJ t         t        z  t        u sJ t          t        z  t        u sJ t         t        z  t        u sJ t          t        z  t        u sJ t         t        z   t        u sJ t          t        z   t        u sJ t         t        z
  t        u sJ t          t        z
  t        u sJ t        j                  t         z  t        u sJ t         j                  d
u sJ t        t         t              d
u sJ t        j                  t         z  dk(  sJ t        j                   t         z  dk(  sJ t        j                  t          z  dk(  sJ t        j                   t          z  dk(  sJ t        j                  t         z  t         u sJ t        j                   t         z  t          u sJ t        j                  t          z  t          u sJ t        j                   t          z  t         u sJ t        j                  t        z  t        u sJ t        j                  t          z
  t         u sJ t        j                  t        z   t        u sJ t        j                  t        z
  t        u sJ t        t        j                  z
  t        u sJ t        t        j                  z  t        u sJ t          t        j                  z
  t          u sJ y )Nr_   rv   r\   rc   r   r   r   r   Fr   r         )r   r.   r,   rq   r   r   rs   rF  _ninfru   r   rU   is_Rational
isinstancer   r   rV   rQ   rO   test_Infinityr    sS   7N7R42::7N7"99a6R<<r6R<<R4!8r>>662:??66RC=B3q5RC<<7b==3R=RCR4199rc7a<<R41996S==r6S==b5C<<rc6S==3r6S==3s7c>>7c>>8r>>38s??3"98s??38s??7b==38s??8s??3"9b5B;;3r6bS==rc6bS==3s7b==a42::3q5RC<<R4199bS5A::a43;;3q5C<<R43;;bS5C<<6R<<37rc>>r6R<<s7rc>>6R<<37rc>>r6bS==s7b==a42::3q5RC<<b5RC<<3r6R<<a42::3q5RC<<b5RC<<R4199bS5A::b5A::rc6Q;;R42::bS5RC<<b5RC<<rc6R<<r6R<<r6bS==7b==7rc>>s7rc>>s7b==8s??8r>>Q4"9??Q4"9a4B3q5==3q5BqD==eAh;$BuQxKB#6663uQx<5 rc%(ls%:::eAh;$BuQxKB#6663uQx<5 rc%(ls%:::eBi<5 brls%:::3uRy=D rc%)m%:::eBi<5 brls%:::3uRy=D rc%)m%:::a=D b58m%:::3q>U"eAhB3'>>>a=D b58m%:::3q>U"eAhB3'>>>8B;$E!HRKB#6668RC<5 eAhsls%:::8B;!8RC<19R<5 eBils%:::9bS=D eBim%:::9R<19bS=A8b=B8rc>bS   8b=RC8rc>Rr??%)O%%%b	?e###3%*C5":%'''rc
u$$$<3s7c>>8s??r6S==s7c>>r6S==s7c>>8s??"98s??"93<3c6S==3s7c>>c6S==3s7c>>8s??398s??3966B;#>>U"""b(#u,,,558q==EE6"9>>55"9>>EE62#:??558r>>EE6"955"9EE62#:55955B3;"553;#553;#;#quu93;2#rQ   c                     t        d      } t        | z  t        k7  sJ t        t        dz
  z  t        u sJ t        dt        z
  z  t         u sJ t         | z  t         k7  sJ t         t        dz
  z  t         u sJ t         dt        z
  z  t        u sJ dt        j                  z  t        j                  u sJ t        t
        z
  t        j                  u sJ t        t        z   t        j                  u sJ t        dz  t        j                  u sJ t        t
        z  t        j                  u sJ t        t        z  t        j                  u sJ t        t        j                  z  t        j                  u sJ t         t
        z   t        j                  u sJ t         t        z
  t        j                  u sJ t         t        j                  z  t        j                  u sJ t         dz  t        j                  u sJ t         t
        z  t        j                  u sJ t         t        z  t        j                  u sJ t         t        j                  z  t        j                  u sJ t        t               t        u sJ t        d t        t         t        j                  fD              sJ t         dz  t         u sJ t         dz  t        u sJ t        t        j                        t        u sJ y )Nrv   r_   r   r   c              3   P   K   | ]  }t          |z  t        j                  u    y wrJ   )r   r,   rY   ).0r   s     rO   	<genexpr>z"test_Infinity_2.<locals>.<genexpr>{  s     ;Qax155 ;s   $&r\   rc   )
r.   r   r   r,   rY   rF  r  absallr   rv   s    rO   test_Infinity_2r  b  sO   sAa42::rAv;"q2v;2#C7rc>>C"q&>bS   C!b&>R;!%%9:a4155==d7aeee8quuquu93:3;!%%3quu93q5AEE>>3t8quu3u93quu9s8r>>;2sAEE*:;;;;C!8s??C!8r>>q  !R'''rQ   c                     t        d      t        z  t        u sJ t        d      t        z  t        u sJ t        d      t        z  t        u sJ t        d      t        z  t        u sJ t        t        d      z  t        u sJ t        t        d      z  t        u sJ t        t        d      z  t        u sJ t        t        d      z  t        u sJ y r   )r   rF  r   r  rV   rQ   rO   test_Mul_Infinity_Zeror    s    8D=C8E>S   8D=C8E>S   a=Cq>S   a=Cq>S   rQ   c                     dt         j                  z  t        u sJ dt        d      z  t        u sJ dt         j                  z  t        u sJ dt        d      z  t        u sJ t         j                  dz  t        u sJ t        d      dz  t        u sJ dt         j                  z  t        u sJ dt        d      z  t        u sJ y )Nr_   r   r   )r,   rU   r   r   r   rV   rQ   rO   test_Div_By_Zeror    s    QVV8s??U1X:QVV8s??U1X:66!8s??8A:aff9eAh;#rQ   c                     t         t        kD  sJ t         t        k  rJ t        d      t         k  sJ t        t        kD  sJ t        t        k  rJ t        d      t        k  sJ t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d	        t	        t
        d
        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t	        t
        d        t         t          kD  rt         t          k\  sJ t         t          k  dk(  rt         t          k  dk(  sJ t          t         k  rt          t         k  sJ t          t         kD  dk(  rt          t         k\  dk(  sJ t         t         k  dk(  sJ t         t         kD  dk(  sJ t          t          kD  dk(  rt          t          k  dk(  sJ t         t         k\  r+t         t         k  rt          t          k\  rt          t          k  sJ t          t         k  dk(  sJ t         t        kD  dk(  sJ t          t         k\  sJ t         t        k  sJ t        d      } t        ddd      }| t         k  t        | t               k(  sJ |t         k  r|t          kD  r|t         k  r
|t          k\  sJ t         |kD  r!t         |k\  rt         |k  dk(  rt         |k  dk(  sJ t          |kD  dk(  r!t          |k\  dk(  rt          |k  r
t          |k  sJ t         | k  t        t         |       k(  rt         | kD  t        t         |       k(  sJ t         | k  t        t         |       k(  rt         | k\  t        t         |       k(  sJ t          | k  t        t          |       k(  rt          | kD  t        t          |       k(  sJ t          | k  t        t          |       k(  rt          | k\  t        t          |       k(  sJ y )Nr   c                      t         t        k  S rJ   r   r   rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  
    b1f rQ   c                      t         t        k  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  
    bAg rQ   c                      t         t        kD  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t         t        k\  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t          t        k  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>      rcAg rQ   c                      t          t        k  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>      rcQh rQ   c                      t          t        kD  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t          t        k\  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t         t        k  S rJ   r   r   rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  
    a"f rQ   c                      t         t        k  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  
    a2g rQ   c                      t         t        kD  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t         t        k\  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t         t         k  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>      a2#g rQ   c                      t         t         k  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>      aB3h rQ   c                      t         t         kD  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   c                      t         t         k\  S rJ   r  rV   rQ   rO   rW   z+test_Infinity_inequations.<locals>.<lambda>  r  rQ   Frv   rN   TfiniterH   )r   r   r3   rF  rA   r   r.   r*   r(   r)   r'   )rv   rN   s     rO   test_Infinity_inequationsr    s|   7N7R=r7R<<"99r	?r7T>>
9n%
9o&
9n%
9o&
9o&
9&'
9o&
9&'
9n%
9o&
9n%
9o&
9o&
9&'
9o&
9&'8rc	!!"HB2#I%#77738r	!!C"HRC2I%#777GGC2#I%bSB3Y5$8888bbSRCZRCB3J>>C4%KU"""I%34%<<::sAs4d+AFr!Ry   r6a2#g!r'aB3h666bAg26e"3qU8JJJC!GB3!8"52#'rcQhNNFr"ay b1fB%:::!G2q	!rQw2b!9&<<<C!GB3
"aBsAJ'>>>C1HRC#"b"aj(@@@(@rQ   c                  V   t         t         u sJ t         dk7  sJ dt         z  t         u sJ dt         k7  sJ t          t         u sJ t        t        d      dz  k7  sJ dt         z   t         u sJ dt         z  dz   t         u sJ t          dz  t         u sJ t         t         z   t         u sJ t          t         dz  z   t         u sJ dt         z  t         u sJ t        t        d        t        t        d        t        t        d	        t        t        d
        t        t        d        t        t        d        t        t        d        t        t        d        t         dz  dk(  sJ dt         z  t         u sJ t        t         dd      dz  dk(  sJ ddt        j                  t        j                  t        d      fD ]h  } | t         z   t         u sJ | t         z
  t         u sJ t         | z   t         u sJ t         | z
  t         u sJ | t         z  t         u sJ t         | z  t         u rhJ  y )Nr_   rv   r\   rc   r  r   c                      t         dkD  S r   r   rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  
    cAg rQ   c                      t         dk  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  r  rQ   c                      t         dk\  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  
    cQh rQ   c                      t         dk  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  r  rQ   c                      dt         k  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  
    a#g rQ   c                      dt         kD  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  r  rQ   c                      dt         k  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  
    a3h rQ   c                      dt         k\  S r   r  rV   rQ   rO   rW   ztest_NaN.<locals>.<lambda>  r  rQ   r   Fr4  r   )
r   r   r.   rA   r   r&   r,   r   r   r   )r   s    rO   test_NaNr    s   #::!8O8S5C<<8O843;;as7c>>S51946S==94#r(?c!!!S5C<<
9o&
9o&
9&'
9&'
9o&
9o&
9&'
9&'6Q;;c6S==sA&)Q...QUUAMM584 3w#~~3w#~~Qw#~~Qw#~~u||1u||rQ   c                  @   t        t        j                  t              du sJ t        t        j                  t              du sJ t        t        j
                  t              du sJ t        j                  j                  du sJ t        j                  j                  du sJ t        j
                  j                  du sJ t        j                  j                  du sJ t        t        j                  t              du sJ t        t        j                  t              du sJ t        t        j
                  t              du sJ t        j                  j                  dusJ t        j                  j                  dusJ t        j
                  j                  dusJ y )NTF)
r  r,   rY   r   rL  r^  	is_numberr   r   rd  rV   rQ   rO   test_special_numbersr    sH   aeeV$,,,ajj&)T111a((&1T99955??d"""::4'''''4///&&$...aeeX&%///ajj(+u444a(((3u<<<55D(((::!!---))555rQ   c                     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        dd      dk(  sJ t        dd      dk(  sJ t        dd	z  d	      d
k(  sJ t        dd	z  dz   d	      dk(  sJ t        dd	z  dz
  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        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        ddz  d      dk(  sJ t        ddz  dz   d      dk(  sJ t        ddz  dz
  d      dk(  sJ d	dz  } t        | d      dk(  sJ t        | dz   d      dk(  sJ t        | dz
  d      dk(  sJ dd z  }|dz  }t        |d      |d!fk(  sJ t        |dz   d      |d"fk(  sJ t        |dz
  d      |dz
  d"fk(  sJ t        dd#      dk(  sJ t        t        t        d            d$      \  }}|d#z  d%k(  sJ |rJ t        dd#      dk(  sJ t        t        d&d      d         t        u sJ y )'Nr_   rc   r_   Tr^   rc   Tr_   Fr]   {   r   )r  T)r  F)z   Fr   r   Tr\   r   )r   Tr   )r]   T   )r^   F ro   )r  T)r  F)i Fr   )r   T)r   F)r   Frp   i  TF    d(	 r   l   1{z l            )r"   r   r0   ru   )rN   r   c2rg   ry   s        rO   test_powersr    s   1a I---1a I---1a I---1a J...1a J...1a I---37B';66637Q;+|;;;37Q;+|;;;1a I---1a I---1a I---5!$5551a I---2q!Y...2q!Z///7A:q)_<<<7A:>1-1AAAA7A:>1-1AAAA
DA1d#z1111q5$';6661q5$';666
CA	
AB2q!aY...261%!U333261%!a%7771f%3333y/0#6DAq<:%%%L5 1f%333 q)!,-444rQ   c                  ^    t        ddz  d      ddz  dfk(  sJ t        ddz  d      dk(  sJ y )Nrp   i	  2   Ti r   )r  T)r"   rV   rQ   rO   test_integer_nthroot_overflowr  ,  s<    2;+B~===2v:u-???rQ   c                  V   t        t        d        t        t        d        t        t        d        t        t        d        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        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        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        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        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        dd      dk(  sJ y )Nc                      t        dd      S Nrc   r_   r$   rV   rQ   rO   rW   z"test_integer_log.<locals>.<lambda>2      {1a0 rQ   c                      t        dd      S )Nr   rc   r  rV   rQ   rO   rW   z"test_integer_log.<locals>.<lambda>3  r  rQ   c                      t        dd      S )Nrj   rc   r  rV   rQ   rO   rW   z"test_integer_log.<locals>.<lambda>4  s    {32 rQ   c                      t        dd      S r   r  rV   rQ   rO   rW   z"test_integer_log.<locals>.<lambda>5  s    {1c2 rQ   r_   rc   r  r\   )r   Fr  r   r  r`   r  r   )rc   F   )r\   Tr^   r   r]   r   r   )r\   Fr   )rA   rX   r$   rV   rQ   rO   test_integer_logr  1  s   
:01
:01
:23
:23q!	)))q!	)))q!
***q!	)))sA*,,,tQ9,,,sA*,,,tQ9,,,r1+++q!
***r1+++sA*,,,r2*,,,q"***r2)+++q"+++r1+++r2*,,,q"***sB9,,,r2*,,,rQ   c                     ddl m}  d}t         | |            t        |d      d   k(  sJ t         | |dz               t        |dz   d      d   k7  sJ t	        |dz         t        |dz   d      d   k(  sJ t	        |t
        j                  z         t        |d      d   k(  sJ t	        |dz   t
        j                  z         t        |dz   d      d   k(  sJ t	        |dz   t
        j                  z         t        |dz   d      d   k(  sJ t	        d      dk(  sJ t	        d      d	k(  sJ t        t        d
        t        t        d        t        t        d        t        dddz        t        t        fd       t	        dz
        dk(  sJ t	        dz
        dk(  sJ t	        ddz  z
        ddz  dz
  k(  sJ y )Nr   )r5   l      rc   r_   l         i   l   _ic                      t        d      S )Nr   r#   rV   rQ   rO   rW   ztest_isqrt.<locals>.<lambda>]  s
    uRy rQ   c                       t        ddz         S )Nrp   r   r  rV   rQ   rO   rW   ztest_isqrt.<locals>.<lambda>^  s    ub$hY/ rQ   c                  ,    t        t        dd            S )Nr   rc   )r#   r   rV   rQ   rO   rW   ztest_isqrt.<locals>.<lambda>_  s    uXb!_5 rQ   rp   r   c                      t                S rJ   r  )tinys   rO   rW   ztest_isqrt.<locals>.<lambda>b  s    udU| rQ   r   r  )
mathr5   r   r"   r#   r,   rq   rA   rX   r   )_sqrtlimitr  s     @rO   
test_isqrtr  N  s   "EuU|q 9! <<<<uUQY OEAIq$A!$DDDDuqy!<Q???? OE1$=a$@@@@QVV#$	1(Ea(HHHHQVV#$	1(Ea(HHHH !"h...!"h... :()
:/0
:56Ar4x D
:+,4=A!$&'8333S4 BFQJ...rQ   c            
         t         j                  t         j                  z  t         j                  u sJ t         j                  t         j                  z  t         j                  u sJ t        d      t         j                  z  t         j                  u sJ t        d      t         j                  z  t
        k(  sJ t        d      t         j                  z  t         j                  u sJ t         j                  t         j                  z  t         j                  u sJ t         j                  t         j                  z  t         j                  u sJ t         j                  t        dd      z  dt         j                  dz  z   k(  sJ t        t        d            dk(  sJ t        t        d            t        dz  k(  sJ t        d	      t        d
d      z  dk(  sJ t        d      t        d
d      z  ddt        d
d      z  z  k(  sJ t        d      t        dd      z  dk(  sJ t        d      t        dd      z  dt        z  k(  sJ t        d      t        dd      z  dk(  sJ t        d      t        dd      z  dt         j                  t        dd      z  z  k(  sJ dt        dd
      z  t        d
d      k(  sJ t        d      t        t        d      z  k(  sJ dt        dd      z  dt        d      z  k(  sJ dt        dd      z  dt        d      z  k(  sJ dt        dd      z  dt        z  t        d      z  k(  sJ dt        dd      z  t         dz  t        d      z  k(  sJ dt        dd      z  dt        d      z  k(  sJ dt        dd      z  t        d      dz  k(  sJ dt        dd      z  dt        d      t        dd      z  z  k(  sJ dt        dd      z  dt        d      t        dd      z  z  k(  sJ dt        dd      z  dt        dd      z   dt        dd      z  z  dz  k(  sJ dt        dd      z  dt        d
d      z   dt        d
d      z  z  dz  k(  sJ t        d      t        d      z   dt        d      z  k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      } t        d| z        dt        |       z  k(  sJ t        dt        t              z
  dz        dt        t              z
  k(  sJ dt        dd      z  sJ dt        dd      z  sJ dt        dd      z  dt        dd      z   dt        dd      z  z  dz  k(  sJ dt        dd      z  dt        d
d      z   dt        d
d      z  z  dz  k(  sJ dt        dd      z  dt        dd      z  dt        dd      z  z  d	z  k(  sJ t        t        dt        dd            j                         t        dt        dd      d      j                         z
        dk  sJ d t        dd      z  ddt        dd      z  z  dt        d
d      z  z  k(  sJ dt        dd      z  d dt        dd      z  z  dt        dd      z  z  k(  sJ t        d!      j                         d
d
d"k(  sJ t        dd#      j                         d
ddd$k(  sJ dd%lm}  |d&      }t        |dz        |k(  sJ t        |dz        |t        |      z  k(  sJ t        d|z        dt        |      z  k(  sJ d't        d
d      z  dt        dd      z  dt        d
d      z  z  k(  sJ d't        dd      z  d(dt        d
d      z  z  dt        dd      z  z  k(  sJ dt        d
d      z  dt        d
d      z  z  dt        d
d      z  z  dt        d(d)      z  dt        dd*      z  z  k(  sJ t        d(      dt        d
d      z  z  dt        d
d      z  z  ddt        dd+      z  z  dt        d(d)      z  z  k(  sJ t        d(      d,t        d
d      z  z  d-t        d
d      z  z  ddt        d(d)      z  z  dt        dd+      z  z  k(  sJ dt        d
d      z  dt        d(d      z  z  ddt        dd      z  z  k(  sJ dt        dd      z  dt        d
d      z  z  ddt        d
d      z  z  k(  sJ dt        dd      z  dt        d(d      z  z  ddt        dd      z  z  dt        d(d      z  z  k(  sJ dt        dt        d            z  dt        d
t        d            z  z  ddt        d
d      z  z  k(  sJ dt        ddd      z  dk(  sJ dt        dt        dd      d      z  dt        dd      z  k(  sJ dt        d
d      z  dt        d
d      z  z  d.t        dd      z  z  dt        dd/      z   dt        d
d      z  z  dt        d
d      z  z  dt        dd      z  z  k(  sJ t%        d      t        d0d12      z  t%        d      t        d0d12      z  k(  sJ dt'        d3      z  d4t        z  k(  sJ y5)6zTest Integer._eval_powerrc   r   r   r   r^   r   r]   r   r   r_   r  r`   r\   r  r  r  r   ro   Q   ir   r   rv   1   l              r   Fr4  缉ؗҜ<r  r   )ii  rc   i   )rc   r^   ro   )	nextprimei   0   r   rd   r   rp   iir  r   r/  Tevenre   r   N)r,   r   rL  rY   r   r   rU   r   r5   r   r.   r   r  r&   r   factorssympy.ntheory.generater  r   r   )rv   r  r   s      rO   test_powers_Integerr	  h  s
    55AJJ!%%'''==1::%...Q41::+++R51::$$$Q41::''' 55AEE>QUU"""==AEE!QUU*** ==HQN*quuQw.????!:??";!a%R5HQN"a'''S6Xa^#qB!Q+?'????Q48Aq>!R'''R5HQN"c!e+++R5HQN"a'''S6Xa^#qAMMXa^,K'LLLL8B?"hq!n444 8qay   8Aq>"a$q'k111HQN#sT"X~555HQN#q1utAw666HQN#sRx$q''99998Aq>"a$q'k1118B?#tAw{222HQN#qAaDXa^,D'EEEEXa^$QrUx1~-F(GGGG8B?"
x1~	a!Q//23 3 38B?"
x1~	a!Q//12 2 2 7T"X47***7T!WQ''' 	sAQ<1tAw;&&&T"X!#$DH444 (1a.((((2r**** 8B?"
x1~	a!Q//23 3 38B?"
x1~	a!Q//12 2 28C##	hq!nQA..r12 2 2s2xQ'(**,Ba 513356 79>? ? ? 8Aq>!	2A
q(1a.001 1 18Aq>!
B!Q8Aq> 112 2 2 T7??aA...C'')rb-AAAA 1%A1:??1:47"""!9$q'	!!! Xa^#q(1a.'8HQN9J'JJJJXa^#qHQN):':1hq!n;L'LLLL hq!nQA..q(1a./@@	8Ar?1hq"o--. . .72x1~%%a!Q&77	!Xa_
QB//0 0 07C(1a.(("x1~)==	2B
8Ar? 223 3 3hq!nQA..!Ax1~4E2EEEEhq!nQA..!Ax1~4E2EEEEhq!nQA..	!Xa^
Ax1~--. . .!QqT""B!QqT):#::bHQPQNAR>RRRRSA&&$...SHROe448Aq>8IIII!Qhq!n 44b8Aq>5II
x2	q(1a.00HQN1BB	8Aq>	   2;r--
F2D))* * *r?c!e###rQ   c            
      v
   t         j                  t         j                  z  dk(  sJ t        dd      t         j                  z  t         j                  u sJ t        dd      t         j                  z  dk(  sJ t        dd      t         j                  z  t        k(  sJ t        dd      t         j
                  z  t         j
                  u sJ t        dd      t         j
                  z  t         j
                  u sJ t        t        dd            dt        d      z  dz  k(  sJ t        dd      t        dd      z  dt        d      z  d	z  k(  sJ t        t        d
d            t        dz  t        d      z  dz  k(  sJ t        d
d      t        dd      z  t         dz  t        d      z  d	z  k(  sJ t        dd      t        dd      z  ddt        dd      z  z  dz  k(  sJ t        dd      t        dd      z  t        dd      k(  sJ t        t        dd            t         j                  k(  sJ t        t        dd
            t        t         j                  z  k(  sJ t        t        dd            t        d      dz  k(  sJ t        t        dd
            t        t        d      z  dz  k(  sJ t        dd      t        dd      z  dt        dd      z  dz  k(  sJ t        t         j                        t        d      dz  k(  sJ t        t        d
d            t        t        t        dd            z  k(  sJ t        dd      t        dd      z  d
dt        dd      z  z  dt        dd      z  z  dt        dd      z  z  dz  k(  sJ t        dd      t        dd      z  dt        dd      z   dt        dd      z  z  dt        dd      z  z  dz  k(  sJ t        dd      t        dd      z  ddt        dd      z  z  dt        dd      z  z  dt        dd      z  z  dz  k(  sJ t        t        t        dd      t        dd            j                         t        t        dd      t        dd      d      j                         z
        dk  sJ t        dd      t        dd      z  t        d	d      k(  sJ t        dd      } | t        | d      z  t        | d      t        | d      z  k(  sJ t        dd      t        dd      z  t        dd      t        dd      z  k(  sJ y)zTest Rational._eval_powerr   r\   rc   r   r   r]   r   r   r`   r   r  r_   }   i   iq  i   r^   ro   r   r   r  Fr4  r  rp   r/  Tr  N)r,   rq   rL  r   r   rY   r5   r   r  r&   r   r   r.   r2  s    rO   test_powers_Rationalr    s    66QZZ1$$$Aq>QZZ'1::555B?ajj(A---B?ajj(C/// Aq>QUU"aee+++B?aee#quu,,, A1tAw;?222Aq>Xa^+q47{Q>>>Q AEDGOa$7777B?hq!n,!a$q'0AA0EEEEB?hq!n,Q(1a.5H0IA0MMMMD$8Aq>1XdD5IIII A166)))B AJ...A47Q;...B AQK!O333Ar?hq!n,hq!n1D0IIII <47Q;&&&Q AXa^(<$<<<<B?HRO+
B!Q8Aq> 11!Xa^2CCBFG G GB?HRO+
x1~	a!Q//8Aq>0AA!CD D DB?HS!,,	2A
q(1a.00HQN1BB2EF F Fs8B?HRO4668HROXb!_u=??AB CEJK K K B?hr1o-!Q???BAeAqk>U1a[%1+5555B?F2D11Ar--. . .rQ   c                      t        t        d      t        d      z  j                               t        t        d      dz        k(  sJ y )Nz-1/10z3/10gr   )r   r,   r   r   rV   rQ   rO   test_powers_Floatr    s9    '
AfI%((*+s5:3C/DDDDrQ   c                  R   t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        t        d        t        t        d        t        t        d	        y )
Nr   rc   r\   r   r   c                      t        d      dz  S Nrc   rb   r   rV   rQ   rO   rW   z%test_lshift_Integer.<locals>.<lambda>  s    gajC/ rQ   c                      dt        d      z  S Nrb   rc   r   rV   rQ   rO   rW   z%test_lshift_Integer.<locals>.<lambda>      cWQZ/ rQ   c                  0    t        d      t        d      z  S Nr_   r   r   rV   rQ   rO   rW   z%test_lshift_Integer.<locals>.<lambda>      wqzWR[8 rQ   r   rA   r   rX   rV   rQ   rO   test_lshift_Integerr    s{   1:#wqz1111:?gaj(((
?gaj(((4=GAJ&'$-7774=A...71:...4=GAJ&')*<<<<4=A!333371:!33335>WQZ'7:+>>>>5>Q'*"5555GAJ'*"5555
9/0
9/0
:89rQ   c                     t        d      t        d      z	  t        d      k(  sJ t        d      dz	  t        d      k(  sJ dt        d      z	  t        d      k(  sJ t        d      t        d      z	  t        d      k(  sJ t        d      dz	  t        d      k(  sJ dt        d      z	  t        d      k(  sJ t        d      t        d      z	  t        d      k(  sJ t        d      dz	  t        d      k(  sJ dt        d      z	  t        d      k(  sJ t        d      t        d      z	  t        d      k(  sJ t        d      dz	  t        d      k(  sJ dt        d      z	  t        d      k(  sJ t        d      t        d      z	  t        d      k(  sJ t        d      dz	  t        d      k(  sJ dt        d      z	  t        d      k(  sJ t        d      t        d      z	  t        d      k(  sJ t        d      dz	  t        d      k(  sJ dt        d      z	  t        d      k(  sJ t        t        d        t        t        d	        t        t        d
        y )Nr   rc   r\   r   r   r   r  c                      t        d      dz	  S r  r   rV   rQ   rO   rW   z%test_rshift_Integer.<locals>.<lambda>6  s    gdms2 rQ   c                      dt        d      z	  S r  r   rV   rQ   rO   rW   z%test_rshift_Integer.<locals>.<lambda>7  r  rQ   c                  0    t        d      t        d      z	  S r  r   rV   rQ   rO   rW   z%test_rshift_Integer.<locals>.<lambda>8  r  rQ   r  rV   rQ   rO   test_rshift_Integerr    s'   1:#wqz1111:?gaj(((
?gaj(((4=GAJ&'$-7774=A...71:...4=GAJ&'!*4444=A+++71:+++5>WQZ'72;6665>Q'"+---GAJ'"+---6?gaj(GK,@@@@6?a7;#7777WQZ7;#77777wqz)W\-BBBB7q GL$9999gaj GL$9999
923
9/0
:89rQ   c                  4   t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d       t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d       z  t        d      k(  sJ t        d      d	z  t        d      k(  sJ dt        d	      z  t        d      k(  sJ t        t        d
        t        t        d        y )NU      r      r     r^   %c                      t        d      dz  S r  r   rV   rQ   rO   rW   z"test_and_Integer.<locals>.<lambda>L      gaj3. rQ   c                      dt        d      z  S r  r   rV   rQ   rO   rW   z"test_and_Integer.<locals>.<lambda>M      cGAJ. rQ   r   rA   r   rV   rQ   rO   test_and_Integerr,  ;  s   :!44
BBB:+wqz999
++wqz999:!44
8KKKK:+wz/BBBB
++wz/BBBBJ'*"55AY9ZZZZ;*,8P0QQQQ,,8P0QQQQ:'*"5!55AY9ZZZZ:,8P0QQQQ,,8P0QQQQ
9./
9./rQ   c                  4   t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d       t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d       z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        t        d	        t        t        d
        y )Nr!     r"  r#     ipr%  r&  c                      t        d      dz  S r  r   rV   rQ   rO   rW   z"test_xor_Integer.<locals>.<lambda>a  r(  rQ   c                      dt        d      z  S r  r   rV   rQ   rO   rW   z"test_xor_Integer.<locals>.<lambda>b  r*  rQ   r+  rV   rQ   rO   test_xor_Integerr2  P     :!44
8KKKK:+wz/BBBB
++wz/BBBB:!44
8KKKK:+wz/BBBB
++wz/BBBBJ'*"55AY9ZZZZ;*,8P0QQQQ,,8P0QQQQ:'*"5!55AY9ZZZZ:,8P0QQQQ,,8P0QQQQ
9./
9./rQ   c                  4   t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d       t        d      z  t        d      k(  sJ t        d      dz  t        d      k(  sJ dt        d      z  t        d      k(  sJ t        d      t        d       z  t        d      k(  sJ t        d      d	z  t        d      k(  sJ dt        d	      z  t        d      k(  sJ t        t        d
        t        t        d        y )Nr!  r"  r.  r#     r  r%  iur&  c                      t        d      dz  S r  r   rV   rQ   rO   rW   z!test_or_Integer.<locals>.<lambda>v  r(  rQ   c                      dt        d      z  S r  r   rV   rQ   rO   rW   z!test_or_Integer.<locals>.<lambda>w  r*  rQ   r+  rV   rQ   rO   test_or_Integerr8  e  r3  rQ   c                      t        d       t        d      k(  sJ t        d       t        d      k(  sJ t        d        t        d      k(  sJ y )Nr!  ir   rV   rQ   rO   test_invert_Integerr:  z  sV    J7;#7777J7;#7777j!!"gj&9999rQ   c                      t        dd      t        dd      k7  sJ t        t        dd            t        t        dd            k(  sJ y )Nr_   r   r   )r   r  rV   rQ   rO   	test_abs1r<    s@    Aq>Xb!_,,,x1~#hr1o"6666rQ   c                  d    t        d      dk(  rJ t        d      dk7  sJ t        d      dk(  sJ y )Nr]   r   r"  rV   rQ   rO   test_accept_intr>    s3    Qx1}8q==8s??rQ   c                  D    t        d      dk7  sJ t        d      dk(  rJ y )Nz0.2r"  rV   rQ   rO   test_dont_accept_strr@    s)    <5   e%&&%rQ   c                  h   t        d      } t        |       dk(  sJ t        dd      } t        |       t        |        cxk(  rdk(  sJ  J ddt        dd      z  z  dt        dd      z   k(  sJ t        d	d
      } t        t        |             t        t        |              cxu r	t        u sJ  J y )Nr^   r`   rp   r   r_   r   rc   r\   l   dc l   sDYH )r   r   ru   r2  s    rO   test_intrB    s    Aq6Q;;BAq6S!W!!!!!!b8Aq>!!rHQN&:%::::k*AA<4QB=/C/////rQ   c                     t        t              dk(  sJ t        t              dk(  sJ t        t              dk(  sJ t        t              dk(  sJ t        t
              dk(  sJ t        t              dk(  sJ t        t        t        t
        t        t        fD ]b  } | j                  t              \  }}t        |       }||k(  sJ t        |t               sJ ||dz   k(  sJ |j                  r|j                  rbJ  y )Nr   r\   rc   r_   )r   r   r   r   r   r   r   approximation_intervalr   r  
is_Integer)r   rM   rN   ias       rO   test_int_NumberSymbolsrG    s    w<1z?ar7a<<q6Q;;{q   !"a'''q*k3ErJ -''01VQww"c"""AEzz||,,-rQ   c                  p    t        d      } t        d| z  | z        dv sJ t        d| z  | z        dk7  sJ y )Nrv   r   )	(2.0*x)*xz2.0*x**2z2.00000000000000*x**2g @rI  )r.   r   r  s    rO   test_real_bugrJ    s@    sAs1uQw<MMMMs1uQw<;&&&rQ   c                      t        t        d            dz   t        t        d            dz
  z  j                         dk(  sJ y r  )r5   r   r  rV   rQ   rO   test_bug_sqrtrL    s:    (1+"T(1+%6%:;CCEJJJrQ   c                  d    ddl m}  t        t              5  ddl m} ddd       y# 1 sw Y   yxY w)z:Test that pi (instance) is imported, but Pi (class) is notr   )r   )PiN)sympyr   rA   r   rN  )r   rN  s     rO   
test_pi_PirP    s%    		   s   &/c                  j    t        t        d        t        t        d        t        t        d        y )Nc                  *    t        t        d            S r   lenr   rV   rQ   rO   rW   ztest_no_len.<locals>.<lambda>  s    c(1+. rQ   c                  ,    t        t        dd            S )Nrc   r\   rS  rV   rQ   rO   rW   ztest_no_len.<locals>.<lambda>  s    c(1a.1 rQ   c                  *    t        t        d            S r   )rT  r   rV   rQ   rO   rW   ztest_no_len.<locals>.<lambda>  s    c'!*o rQ   rA   r   rV   rQ   rO   test_no_lenrX    s#    
9./
912
9-.rQ   c                      t        t        dd            t        dd      t        j                  z  k(  sJ dt        t        dd            z  t        d      k(  sJ y )Nr_   r^   )r5   r   r,   rq   rV   rQ   rO   test_issue_3321rZ    sL    A8Aq>166#9999tHQN##tAw...rQ   c                     dt        dd      z  j                  d      t        dz  t        d      dz  z   k(  sJ dt        dd      z  j                  d      d	t        dd      z  t        z  dz  d	t        dd      z  t        d      z  dz  z   k(  sJ d
t        dd      z  j                  d      t        t        d      z   k(  sJ y )Nr   r_   r   Tcomplexrc   r\   r  r^   i)r   r  r   r5   rV   rQ   rO   test_issue_3692r^    s    (1a. (((6!A#Q	/III(1a. (((6	8Aq>!A8Aq> 1$q' 9! ;;< < <8Aq>!))$)71tAw;FFFrQ   c                      t        d      } t        | dz
        j                         | dz
  t        j                  fk(  sJ t        | dz
        t
        t        d| z
        z  k7  sJ y )Nrv   r_   )r.   r5   as_base_expr,   rq   r   r  s    rO   test_issue_3423ra    sX    sAA;""$Q777A;!DQK-'''rQ   c                  `    t        d      } t        | dz
        j                  | d      dk(  sJ y )Nrv   r_   r^   rc   )r.   r5   subsr  s    rO   test_issue_3449rd    s.    sAA;Aq!Q&&&rQ   c                  &   t        d      } |  dz  t        j                  dz  z
  | z  dz
  }t        |      }t	        dd      }t        |j                  | |      j                         |j                  | |      j                         z
        dk  sJ y )Nrv   r]   r   r_   r`   r^   gV瞯<)r.   r,   r   r<   r   r  rc  r   )rv   erz   rM   s       rO   test_issue_13890rg    s~    sA
Ab1q AAAAqvva{  "QVVAa[%6%6%889EAAArQ   c                  :   d }  | d      i k(  sJ  | d      ddik(  sJ  | d      ddik(  sJ  | d      ddik(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d	      d	dik(  sJ  | d
      ddik(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d      dddk(  sJ  | d      ddik(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d      dddk(  sJ  | d      dddk(  sJ  | d      ddik(  sJ  | d      dddk(  sJ  | d       ddik(  sJ  | d!      ddd"k(  sJ  | d#      ddik(  sJ  | d$      dddk(  sJ  | d%      d%dik(  sJ  | d&      dddd'k(  sJ  | d(      d(dik(  sJ  | d)      ddik(  sJ  | d*      ddd+k(  sJ  | d,      ddd-k(  sJ  | d.      ddd/k(  sJ  | d0      dddk(  sJ  | d1      d1dik(  sJ  | d2      ddd3k(  sJ  | d4      ddd5k(  sJ  | d6      dddk(  sJ  | d7      d7dik(  sJ  | d8      dddd9k(  sJ  | d:      d:dik(  sJ  | d;      dddk(  sJ  | d<      dddk(  sJ  | d=      ddd>k(  sJ  | d?      d?dik(  sJ  | d@      dddk(  sJ  | dA      d	dik(  sJ  | dB      dddk(  sJ  | dC      dddDk(  sJ y )ENc                 4    t        |       j                         S rJ   )r   r  )r   s    rO   Fztest_Integer_factors.<locals>.F  s    qz!!##rQ   r_   rc   r\   r]   r^   r   rc   r\   ro   r   r`   rp   )rc   r^      r      r   )rc   ro   rd   r\   r^   r   r     r   r      )r\   ro   r8  )rc   rl     r   r   r  )rc   rm  r  rN     r   rc   r\   r^      r[  !   )r\   rl  "   )rc   r  #   )r^   ro   $   %   &   )rc   r   '   )r\   rm  rM  ri   *   )rc   r\   ro   +   ,   -   .   )rc   rq  /   r  r  r  3   )r\   r  rV   rj  s    rO   test_Integer_factorsr    sS   $ Q42::Q4Aq6>>Q4Aq6>>Q4Aq6>>Q4Aq6>>Q4qQ<Q4Aq6>>Q4Aq6>>Q4Aq6>>R5aL   R5RGR5aL   R5RGR5aL   R5aL   R5QF??R5RGR5aL   R5RGR5aL   R5aL   R5qM!!!R5RGR5aL   R5QF??R5qM!!!R5QF??R5aL   R5RGR5aA&&&&R5RGR5QF??R5qM!!!R5qM!!!R5aL   R5aL   R5RGR5qM!!!R5qM!!!R5aL   R5RGR5aA&&&&R5RGR5qM!!!R5aL   R5qM!!!R5RGR5aL   R5QF??R5aL   R5qM!!!rQ   c                      dd}  | dd      dddk(  sJ  | dd      dddk(  sJ  | dd	      dddd
k(  sJ  | dd      dddk(  sJ y )Nc                 :    t        | |      j                  |      S )N)visual)r   r  )rg   r   r  s      rO   rj  z test_Rational_factors.<locals>.F  s    1~%%V%44rQ   rc   r\   r_   r   rk  r`   r   rd   rs  r   rp   rn  rJ   rV   r  s    rO   test_Rational_factorsr    sl    5 Q7!m###Q7!m###Q81++++Q81}$$$rQ   c                     t         t        dz   z  t         t         dz
  z  z   dk7  sJ t         t        dz   z  t         t         dz
  z  z   dk7  sJ t         t        dz   z  t         t         dz
  z  z   dk7  sJ t         t        ddz  z   z  t         t         ddz  z
  z  z   dk7  sJ t         t        dz   z  t         t         dz
  z  z   j                         dk(  sJ t         t        dz   z  t         t         dz
  z  z   j                         dk(  sJ t         t        dz   z  t         t         dz
  z  z   j                         dk(  sJ t         t        ddz  z   z  t         t         ddz  z
  z  z   j                         dk(  sJ y )Nrp   r   r        Fx:^V P   )r   r   r  rV   rQ   rO   test_issue_4107r  %  sd   q2v;aR"W%***q6z?R!f--222q6z?R!f--222q2r6z?R!b"f--222BK"qb2g,&..0A555F
Ob1"v+..668A===F
Ob1"v+..668A===BF
Ob1"r2v+..668A===rQ   c                  >    t        d      } t        |       }| |k(  sJ y Nr]   r   rL   s     rO   test_IntegerIntegerr  1  s    
A
A6M6rQ   c                     t        d      j                  d      t        d      k(  sJ t        d      j                  d      t        d      k(  sJ t        d      j                  t        d            t        d      k(  sJ t        d      j                  t        d            t        d      k(  sJ ddz  ddz  }} t        |       j                  |      | |z  t        |       j                  |      z  k(  sJ t        d      j                  d      t        d      k(  sJ t        d      j                  d      t        d	      k(  sJ t        d      j                  t        d            t        d      k(  sJ t        d      j                  t        d            t        d	      k(  sJ t        dd      j                  d      t        dd      k(  sJ t        dd      j                  d      t        d      k(  sJ t        dd      j                  t        d            t        dd      k(  sJ t        dd      j                  t        d            t        d      k(  sJ t        d      j                  t        dd
            t        dd
      k(  sJ t        d      j                  t        dd
            t        d      k(  sJ t        dd      j                  t        dd
            t        dd
      k(  sJ t        dd      j                  t        dd
            t        dd      k(  sJ t        dd      j                  t        dd
            t        dd      k(  sJ t        dd      j                  t        dd
            t        d      k(  sJ t        dd
      j                  t        dd            t        t        d      j                  d      t        d
      j                  d            k(  sJ t        d      j	                  d      t        d      t        d      t        d      fk(  sJ t        d      j	                  t        d            t        d      t        d      t        d      fk(  sJ t        d      j                  t        d            t        d      k(  sJ t        d      j                  t        d            t        d      k(  sJ t        d      j	                  t        d            t        d      t        d      t        d      fk(  sJ t        j                  j                  t        d            t        d      k(  sJ t        j                  j                  t        d            t        d      k(  sJ t        j                  j	                  t        d            t        d      t        d      t        d      fk(  sJ y )Nr]   rc   i  iG i  i60  r\   r_   r   r`   r^   r  ro   r   r          @r   re   )r   r   lcmr   	cofactorsr   r,   rq   rL   s     rO   test_Rational_gcd_lcm_cofactorsr  8  s   1:>>!
***1:>>!
***1:>>'!*%3331:>>'!*%333:sEzqA1:>>!!GAJNN1$5 55551:>>!
***1:>>!+++1:>>'!*%3331:>>'!*%444Aq>a HQN222Aq>a GAJ...Aq>gaj)Xa^;;;Aq>gaj)WQZ7771:>>(1a.)Xa^;;;1:>>(1a.)WQZ777Aq>hq!n-!Q???Aq>hq!n-!Q???Aq>hq!n-!R@@@Aq>hq!n-;;;Aq>hq!n-'!*..:KGTUJNN[\L]1^^^^1:"wqz71:wqz&JJJJ1:
+	WQZ,- - - 1:>>%*%s3331:>>%*%s3331:c
+c
E#Jc
/SSSS66::eCj!U3Z///66::eCj!U3Z///66E#J'	sU3Zs,- - -rQ   c                     t        d      j                  t        d            t        d      k(  sJ t        d      j                  t        d            t        d      k(  sJ t        d      j	                  t        d            t        d      t        d      t        d      fk(  sJ t        d      j                  t
        j                        t        d      k(  sJ t        d      j                  t
        j                        t        d      k(  sJ t        d      j	                  t
        j                        t        d      t        d      t        d      fk(  sJ y )Nr   r]   r   r  r   re   )r   r   r   r  r  r,   rq   rV   rQ   rO   test_Float_gcd_lcm_cofactorsr  a  s    :>>'!*%s333:>>'!*%s333:
+c
E#Jc
/SSSS:>>!&&!U3Z///:>>!&&!U3Z///:'	sU3Zs,- - -rQ   c                  .   t        t        j                  d      dz
        dk  sJ t        t        j                  d      dz
        dk  sJ t        t	        j                  d      dz
        dk  sJ t        t        j                  d      dz
        dk  sJ t        t        j                  d      dz
        dk  sJ t        t        j                  d      dz
        dk  sJ t        d	      } t        | z   j                         t        j                         | z   k(  sJ t        | z   j                         t        j                         | z   k(  sJ t        | z   j                         t	        j                         | z   k(  sJ t
        | z   j                         t        j                         | z   k(  sJ t        | z   j                         t        j                         | z   k(  sJ t        | z   j                         t        j                         | z   k(  sJ y )
Nr  g-DT!	@g|=gtW
@g]O?gox?gw?gm?rv   )
r  r   _evalfr   r   r   r   r   r.   r   r  s    rO   test_issue_4611r  l  s   ryy}//05888qxx|../%777w~~b!$556>>>z  $'889EAAA{!!"%(889EAAA!((,/??@5HHHsAF>>rxxzA~---E==?aggi!m+++aK GMMOa$7777N!!#z'7'7'9A'====!O""$(9(9(;a(????"))+/A/G/G/IA/MMMMrQ   c                  ,   t        j                  t        d            t        j                  d      k(  sJ t        j                  t        j
                        t        j                  d      k(  sJ t        j                  t        dd            t        j                  d      k(  sJ t        j                  t              t        j                  d      k(  sJ t        j                  ddt        z  z         t        j                  d      k(  sJ t        j                  ddt        z  z         t        j                  d      k(  sJ t        j                  dd	t        z  z         t        j                  d      k(  sJ t        j                  dd	t        z  z         t        j                  d      k(  sJ t        j                  t        j
                  t        j
                  t        z  z         t        j                  d
      k(  sJ t        j                  dt        z        t        j                  d      k(  sJ t        j                  d	t        z        t        j                  d      k(  sJ t        j                  t        j
                  t        z        t        j                  d      k(  sJ dt         j                  _
        t        j                  t        j                  d      t        j                  d      t        z  z         t         j                  t         j                  t         j                  z  z   k(  sJ t        j                  t        j                  d      t        z        t         j                  t         j                  z  k(  sJ y )Nr_   re   rT  rd   y              ?rc         ?       @r   r   y      ?      ?y               @y              ?r   )rx  	mpmathifyr   rE   r,   rq   r   r   mpcry  rP  r   r   r   rV   rQ   rO   test_conversion_to_mpmathr  }  sm   GAJ'6::a=888AFF#vzz#666E&"-.&**V2DDDDA&**R.000A!G$

6(::::C!A#I&&**V*<<<<AAI&&**V*<<<<C#a%K(FJJv,>>>>AFFQVVAX-.&**Z2HHHHAaC FJJrN222CE"fjjn444AFF1H%D)9999FIIMBHHSMBHHSM!O;<		FIIV\V^V^L^@^^^^BHHSM!O,		&((0BBBBrQ   c                      t        d      } | t        k7  du sJ | t        k(  du sJ t        dd      } | t        k7  du sJ | t        k(  du sJ t        } | t        k7  du sJ | t        k(  du sJ y )Nrf   TFr_   r\   )r,   r7   r   r   r  s    rO   test_relationalr    s    	"AHH 	AAHH
 	AHHrQ   c                  *    dt        d      d  dk(  sJ y )Nhellorc   llor   rV   rQ   rO   test_Integer_as_indexr    s    71:;5(((rQ   c                      t        t        dd            dk(  sJ t        t        j                        dk(  sJ t        t        dd            dk(  sJ t        t        dd             dk(  sJ y )Nro   r^   r_   r   r   rc   )r   r   r,   rq   rV   rQ   rO   test_Rational_intr    se    A1$$$<1xA1$$$A2%%%rQ   c                  	   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d      }t        t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        d      t        d      | ||||||||fD ]  }	|	j                  r\|	j                  s|	j                  rD|	t        z   t        u sJ |	t        z
  t        u sJ t        |	z   t        u sJ t        |	z
  t        u sJ |	j                  durT|	t        z   j                  sJ |	t        z
  j                  sJ t        |	z   j                  sJ t        |	z
  j                  snJ |	t        z   t        j                  u sJ |	t        z
  t        j                  u sJ t        |	z   t        j                  u sJ t        |	z
  t        j                  u sJ t!        |	j"                        r:|	j$                  s|	j                  r"|	t        z  t        u sJ t        |	z  t        u snJ |	j"                  r6|	t        z  t        j                  u sJ t        |	z  t        j                  u s,J |	t        z  j&                  sJ t        |	z  j&                  sJ t!        d|	z  j"                        r+|	j                  s|	j                  rt        |	z  t        u r6J d|	z  j"                  rt        |	z  t        j                  u rbJ |	j"                  rt        |	z  t        u rJ t        |	z  j&                  rJ  t        t(        z  j&                  sJ t        t        z   t        j                  u sJ t        t        z  t        u sJ t        t        z
  t        j                  u sJ t        t        z  t        j                  u sJ t        t        z  t        j                  u sJ t        dz  t        j                  u sJ t        dz  t        u sJ dt        z  t        j
                  u sJ t+        j,                  t        j.                  t(        t        d      g      t        j                  gg d fk(  sJ y )NrN   Tr  nz)nonzerorg   )positiver   )negativer   )	imaginaryr   r\  pbnbib)r  r  r\   Fr_   r   rc   )r.   r   r,   rL  r^  rU   r   rN  rq   r4   r_  is_realis_imaginaryr   is_AddrY   r
   r\  is_extended_realis_Mulr   r   flattenr   )
rN   r  rg   r   imr   r  r  imbr   s
             rO   test_zoor    s   s4 A	d	#BsT"AsT"A	t	$BsD!A	t	$B	t	$B
d
3CQ//affaPQdTWXYTZQ2r2sA/ #";;AIIs7c>!>s7c>!>7c>!>7c>!>[[%G####G####!G####!G####G%%%G%%%!G%%%!G%%%QYYQ%7%71>>S5C<<q5C<<YYS5AEE>!>q5AEE>!>cE>>!>E>>!>ac]]#annq5C<<c]]q5AEE>!>YYq5C<<E>>!>G#"J bD===999s7aee8quu6QUU??6S==S5AFF??;;r1Q401quugr45HHHHrQ   c                     t        dd      } t        | z   t        u sJ t        dd      } t        | z   j                  sJ t        dd      } t        | z   j                  sJ t        dd      } t        | z   t        u sJ t        dd      } t        | z   t        u sJ t        ddd      } t        | z   t        u sJ t        dd      } t         | z   t         u sJ t        dd      } t         | z   j                  sJ t        dd      } t         | z   j                  sJ t        dd      } t         | z   t         u sJ t        dd      } t         | z   t         u sJ t        ddd      } t         | z   t         u sJ y )	Nrv   T)nonpositive)extended_nonpositiver  )nonnegative)extended_nonnegativer  )r.   r   r  r  s    rO   test_issue_4122r    sr   s%A6R<<s.AF???s4 AF???s%A6R<<s.A6R<<s4d+A6R<< 	s%A37rc>>s.AC!Gs4 AC!Gs%A37rc>>s.A37rc>>s4d+A37rc>>rQ   c                  t    t        j                  d      t        j                  t	        d      dz  z   k(  sJ y )NTfuncr^   rc   )r   r  r,   rq   r5   rV   rQ   rO   test_GoldenRatio_expandr    s,    4(AFFT!WQY,>>>>rQ   c            	          t        j                  d      dt        ddt        d      z  z
        z   t        ddt        d      z  z         z   dz  k(  sJ y )NTr  r_   r   r\   ru  )r   r  r6   r5   rV   rQ   rO   test_TribonacciConstant_expandr    sV    !((d3tB48O$$tB48O'<<
AB 	B BrQ   c                     t         j                  j                         dk(  sJ t         j                  j                         t         j                  dfk(  sJ t	        dd      j                         t         j                  dfk(  sJ t        d      j                         dk(  sJ t        d      j                         dk(  sJ y )	N)r_   r   r_   r   rc   r\   )r\   r_   @)r_   r  )r,   rU   as_content_primitiverq   r   rV   rQ   rO   test_as_content_primitiver    s    66&&(F22266&&(QVVQK777RO113|CCCQ4$$&&000S6&&(H444rQ   c                      t        d      ht        d      hk(  sJ t        t        d            t        t        d            k(  sJ y )Nr\   r]   )r   r   hashrV   rQ   rO   test_hashing_sympy_integersr    s;    AJ<CF8###
tCF|+++rQ   c                      t        t        dz  j                               dk(  sJ t        t        dz  j                               dk(  sJ t        t	        d      t
        dz  z  j                               dk(  sJ y )Nr   l
   oEhJ	%YoXil   {[5|QBSz\$$lGO r_   l   ZH@Pu[9 )r   r   rr   r   r   r   rV   rQ   rO   test_rounding_issue_4172r  "  s|    3~~ 45 5 5C !:; ; ;JO+2245 ! ! !rQ   c                  p   ddl m}  dd lm} |j                  }dt        d      ddd|f} | |d      dt        d      ddfk7  sJ dt        d      ddd|f} | |d      dt        d      ddfk7  sJ dt        d      d	d
d|f} | |d      dt        d      ddfk7  sJ ddl m} |j                  ||      sJ y )Nr   )
_normalizer+  r   r&  r,  r   r_   r-  r   )fnan)mpmath.libmp.libmpfr  mpmath.libmplibmpround_nearestr   r  mpf_eq)r  mlibrndrE   r  s        rO   test_mpmath_issuesr  +  s    .


Cc!fdBC
(Cc21c!fa"3333c!fdBC
(Cc21c!fa"3333c!fdBC
(Cc21c!fa"3333(;;tT"""rQ   c                     t         } t        | j                         d      }|j                  dt	        d      ddfk(  sJ |j
                  dk(  sJ | j                  d      |j                  k(  sJ t        } t        | j                         d      }|j                  dt	        d      dd	fk(  sJ |j
                  dk(  sJ | j                  d      |j                  k(  sJ y )
Nr^   r   io< iro  r   i# ir   )r   r   r   r]  r   rK   _as_mpf_valr   )r   rz   s     rO   test_Catalan_EulerGamma_precr  ;  s    AacceQA77q#f+sB////77b===='''AacceQA77q#f+sB////77b===='''rQ   c                      t        ddd      } t        j                  t              j	                  t        d| z  d| z  dz   dz  z  | dt
        f            sJ t        j                         t        k(  sJ y )NkT)integerr  r   rc   r_   r   )r-   r   rewriter   dummy_eqr   )r  s    rO   test_Catalan_rewriter  I  sk    c4T2A??3((a1q1$q!Rj13 3 3??'''rQ   c                      ddk(  sJ t        d      dk(  sJ t        d      t         j                  k7  sJ ddk(  sJ t         j                  dk(  sJ t         j                  t         j                  k7  sJ y )Nr   Fr_   T)r,   ru  r   truerV   rQ   rO   test_bool_eqr  P  sb    ::Q45==Q4177??9955D==55AFF??rQ   c                     t        dd      t        dd      cxk7  rt        dd      k7  sJ  J t        dd      t        dd      k7  sJ t        dd      dk7  sJ dt        dd      k7  sJ t        dd	      dk7  sJ t        d
      t        dd      k7  sJ t        dd      t        d
      k7  sJ t        d      dk(  rJ t        d      t        d      k(  rJ t        d      dk(  rJ t        d      t        j                  k(  rJ t        d      dk(  sJ t        d      dk(  rJ t        d      dk(  sJ t        d      dk(  rJ t        d      dk(  rJ t        d      dk(  sJ t        d      dk(  rJ t        d      dk(  rJ t        d      t        dd      k(  rJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk7  sJ t        d      t        j                  dz  k(  rJ t        d      dk(  sJ t        d      t        j                  dz  k7  sJ dt        d      k(  rJ t
        dz  t
        dz  k7  sJ y )Nre   rp   rl  r_   gQ?r\   r]   z.12r8  z1.1rc   r   rm   r   g      @r   rk   grq?r   )r   r_   r   r7  r`   )r   r   r,   rq   r   rG   rV   rQ   rO   test_Float_eqr  Y  sL   R=E"bM9U2q\99999 a=E#qM)))a=C5a=   s"""
 <8B++++BuU|+++Qx1}Qx58###Qx1}T{aff$$$;#U|q   <3SzQSzS   :SzQSzQSzXa^+++:;$9>>X!%%')))?c!!!?aeeAg%%%E!H}a41c6>>rQ   c                      ddl m} m} t        |       j                  du sJ t        |      j                  du sJ t        t        d            du sJ y )Nr   finffninfF)r  r  r  r   r\  boolr  s     rO   test_issue_6640r    sM    / ;%'''<5(((a>U"""rQ   c                      t        dd      j                  dk(  sJ t        dd      j                  dk(  sJ t        dd      j                  dk(  sJ t        dd      j                  dk(  sJ y )Nz23.e3r/  rp   23e3r   23000z-23000)r   rK   rV   rQ   rO   test_issue_6349r    sn    "##r)))""b((("##r)))2$$***rQ   c                      t        dd      t        d      j                  k(  sJ t        j                  dd      j                  t        d      j                  k(  sJ y )N)r_   r   r_   r   rp   r   )r   rE   r]  r   _newrV   rQ   rO   test_mpf_normr    sF    L"%S777::lB'--S???rQ   c                     t        t              dk(  sJ t        t              dk(  sJ t        t              dk(  sJ t        t              dk(  sJ t        t
              dk(  sJ t        t              dk(  sJ t        t               dk(  sJ t        t              dk(  sJ t        t              d	k(  sJ t        t              d
k(  sJ y )Nz\pirf  z\phiz\text{TribonacciConstant}z\gammaz\inftyz-\inftyz\tilde{\infty}z
\text{NaN}r   )
r:   r   r   r   r   r   r   r   r   r   rV   rQ   rO   
test_latexr    s    98t(((#$(DDDD	)))9	!!!":###:****:&&&8trQ   c                  (    t          dz  t        u sJ y Nr_   )r   r   rV   rQ   rO   test_issue_7742r    s    37c>>rQ   c                     t         } dt        j                  dz  z  dddt        d      z  z   t	        dd      z  z   z  ddt        d      z  z   t        j                  dz  z  z  }t         | |             | d      k(  sJ d	d
t        d      z  z   t        j                  dz  z  }t         | |             | dt        d      z         k(  sJ ddt        z  z   t	        dd      z  }t         | |             | ddt        z  z         k(  sJ y )Nr\   r      N   rc   r  r  r   ri   rr  r^   r_   r]   rl  )r   r,   r   r5   r   r<   r   )Arf  s     rO   test_simplify_AlgebraicNumberr    s    A	AEE!Ga3DG+hq!n<<=rBtAwJRSRWRWXYRY>ZZAAaD>QrU"""	bajAEE!G$AAaD>Qq47{^+++	
QqS8Aq>!AAaD>Qq2a4x[(((rQ   c                      t        dd      } t        |       }t        | d      }t        ||       sJ t        ||       rJ t        d      } t        |       }t        | d      }t        ||       sJ t        ||       rJ y )NrT  r/  rd   r  )r   rP   rv   rw   rx   s      rO   test_Float_idempotencer    s    fbAaAaAa###!!Q'''fAaAaAa###!!Q''''rQ   c                     t        d      j                  d      } t        | d      du sJ t        | d      sJ t        | d      sJ t        | d      du sJ t        t        d      j                  d      d      sJ t        t        d      j                  d      t        d	d      d
      sJ t        t        d      j                  d      d	d
      sJ t        t        d      j                  d      t        d	d      d
      du sJ t        t        d      t        d      t        z  z   d	dt        z  z   d      sJ t        t        d      t        d      t        z  z   ddt        z  z   dz  d      rJ t        t        d      t        d      t        z  z   ddt        z  z   dz  d      sJ t        t        d      t        d      t        z  z   ddt        z  z   dz  d      sJ t        t        d      t        d      t        z  z   ddt        z  z   dz  d      rJ t        dd      D cg c]^  }t        dd      D ]M  }t        t        d      t        t        d      z  z   j                  d      |dz  t        |z  dz  z         r||fO ` c}}ddgk(  sJ t        t        d        t        t        d        t        dd      sJ t        dt        j                        sJ t        dt        d      z   dt        d      z         sJ t        dd       rJ t        dt        d            rJ t        dt        z   dt        d      z         rJ t        dt        d      z   dt        z         rJ t        dt        d      z   t        d            rJ t        d t        j                  d!      z  d"d#      sJ t        d t        j                  d!      z  d"d$      rJ y c c}}w )%Nrc   ro   gM?Fg?ϝ?gU?g?z1.4gffffff?r/  r\   g333333?rf   rl   g{Gz?r   gQ?gHzG?      r"     g      Y@)      )r/  r  c                  "    t        t        d      S )Nr   r   rG   rV   rQ   rO   rW   ztest_comp1.<locals>.<lambda>  s    tAs| rQ   c                  "    t        t        d      S r  r	  rV   rQ   rO   rW   ztest_comp1.<locals>.<lambda>  s    tAqz rQ   r   rb   re   r   r_   r]   gtF_?gh㈵>g>)r5   r   r   r   r   r   rA   rX   r,   rq   r   )rM   r   r   s      rO   
test_comp1r    ss   Q		!A9&&&999&&&Q		!e$$$Q		!eCmR000Q		!c2&&&Q		!eCmR0E999Q$q'!)#S3q5["555DGd1gai'#A+t);R@@@Q$q'!)#cCEk4%7<<<Q$q'!)#cCEk4%7<<<DGd1gai'#A+t);R@@@3_C3_CT!WaQi'**1-qv!D/@A F CF C 	JG      
 :+,
:)*3<<AFFDGS47]+++Aqz>AtAwAE3a=)))C$q'M1q5)))C$q'M47+++"$$q'	64(((Abdd1gIvt,,,,!Cs   ,A#O!c                  .    t         t        z  t        u sJ y rJ   )r   r   r   rV   rQ   rO   test_issue_9491r    s    s7c>>rQ   c                  <    dt        d      z  t        d      k(  sJ y )Nrc   r\   r   r"  rV   rQ   rO   test_issue_10063r    s    eAh;%("""rQ   c                     t         t        z  t        j                  u sJ t         dt        z   z  t        j                  u sJ t         dt        z   z  t        j
                  u sJ t          t        z  t        j                  u sJ t          dt        z   z  t        j
                  u sJ t         t        z  t        t         t        d      k(  sJ t          t        z  t        t          t        d      k(  sJ y )Nr_   r   Fr4  )r   r   r,   rY   r   rU   rG   r&   rV   rQ   rO   test_issue_10020r    s    q5AEE>>A;!+++++Q<166!!!C!8quuC26?aff$$$q5CA....C!8sB3E2222rQ   c                  z   t        d      j                  d      dk(  sJ t        d      j                  t        dd            t         j                  k(  sJ t        d      j                  d      t         j                  k(  sJ t        d      j                  t        d            dk(  sJ t        d      j                  d      dk(  sJ t        t	        d            j                  d      dt	        d      z  k(  sJ t        t	        d            j                  t	        d            dt	        d      z  k(  sJ y )Nrc   r^   r\   g      @r   re   r_   )r,   invertr   rq   r5   rV   rQ   rO   test_invert_numbersr    s    Q4;;q>QQ4;;x1~&!&&000Q4;;r?aff$$$Q4;;qt!!!R5<<?c!!!T!W:Q1T!W9,,,T!W:T!W%47222rQ   c                  x    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        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        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        d       t        d      j                         t        j                  k(  sJ t        t         fd       t        t        d        t        t        d        y )Nr\   rl  r]   r^   r`   i9WBi( i!  i}`gi  i     i0  i+  iX i  i  r  r~  r{  rc   r   r  r   r   rv   c                      t        d       S r   )r%   r  s   rO   rW   z"test_mod_inverse.<locals>.<lambda>  s    k!Q/ rQ   c                  6    t        dt        j                        S r   )r%   r,   rq   rV   rQ   rO   rW   z"test_mod_inverse.<locals>.<lambda>  s    {1aff5 rQ   c                  P    t        dt        d      dz  t        d      dz  z         S r  )r%   r7   r8   rV   rQ   rO   rW   z"test_mod_inverse.<locals>.<lambda>  s"    {1c!fai#a&!).CD rQ   )r%   r.   r,   r  rq   rA   r   rX   r  s   @rO   test_mod_inverser    sG   q""""q""""x(D000y$'4///sE"d***w%---sB2%%%q!!!!r1"""q"###r2"$$$r2"$$$sAQ4;;q>QVV###
9/0
:56
:DErQ   c                      t        j                  t              t        j                  t        d      t        j                  z  z   k(  sJ y )Nr^   )r   r  r5   r,   rq   rV   rQ   rO   !test_golden_ratio_rewrite_as_sqrtr    s0    t$a(????rQ   c            	          t        j                  t              dt        ddt        d      z  z
        z   t        ddt        d      z  z         z   dz  k(  sJ y )Nr_   r   r\   ru  )r   r  r5   r6   rV   rQ   rO   (test_tribonacci_constant_rewrite_as_sqrtr    sS    %%d+4QtBxZ  4QtBxZ#88A=> > >rQ   c                      G d d      } t        d      t        d      t        dd      }}} |        |||t        t         t        t
        fD ]  k7  sJ k7  sJ k(  rJ k(  rJ t        t        fd       t        t        fd       t        t        fd       t        t        fd	       t        t        fd
       t        t        fd       t        t        fd       t        t        fd         G d d      } |       |||fD ]  k(  sJ k(  sJ k7  rJ k7  sJ  t        t         t        t
        fD ]  k7  sJ k7  sJ k(  rJ k(  sJ  |||t        t         t        t
        fD ]  t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd        y )Nc                       e Zd ZdZy)/test_comparisons_with_unknown_type.<locals>.Fooz
        Class that is unaware of Basic, and relies on both classes returning
        the NotImplemented singleton for equivalence to evaluate to False.

        N)__name__
__module____qualname____doc__rV   rQ   rO   Foor!     s    	rQ   r&  r\   r   r_   c                       k  S rJ   rV   foor   s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>/      !c' rQ   c                       kD  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>0      #' rQ   c                       kD  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>1  r*  rQ   c                       k  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>2  r,  rQ   c                       k  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>3      !s( rQ   c                       k\  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>4      #( rQ   c                       k\  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>5  r0  rQ   c                       k  S rJ   rV   r(  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>6  r2  rQ   c                       e Zd ZdZd Zd Zy)/test_comparisons_with_unknown_type.<locals>.Barz
        Class that considers itself equal to any instance of Number except
        infinities and nans, and relies on SymPy types returning the
        NotImplemented singleton for symmetric equality relations.

        c                 d    |t         t          t        t        fv ryt        |t              ryt
        S r1  )r   r   r   r  r   NotImplementedselfothers     rO   __eq__z6test_comparisons_with_unknown_type.<locals>.Bar.__eq__?  s+    bS#s++%(!!rQ   c                     | |k(   S rJ   rV   r9  s     rO   __ne__z6test_comparisons_with_unknown_type.<locals>.Bar.__ne__F  s    u}$$rQ   N)r"  r#  r$  r%  r<  r>  rV   rQ   rO   Barr6  8  s    		"	%rQ   r?  c                       k  S rJ   rV   barr   s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>X  r*  rQ   c                       kD  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>Y  r,  rQ   c                       kD  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>Z  r*  rQ   c                       k  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>[  r,  rQ   c                       k  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>\  r0  rQ   c                       k\  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>]  r2  rQ   c                       k\  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>^  r0  rQ   c                       k  S rJ   rV   rA  s   rO   rW   z4test_comparisons_with_unknown_type.<locals>.<lambda>_  r2  rQ   )r   r   r   r   r   r   rA   r   )r&  ninfnrr?  rB  r)  r   s        @@@rO   "test_comparisons_with_unknown_typerM    s     U3Z!QBB
%CRbS#s* ,Cxxaxx8|!8|y/*y/*y/*y/*y*+y*+y*+y*+,% %" %CRZ Cxxaxx8|!8|	 "c3 Cxxaxx8|!8|	 RbS#s* ,y/*y/*y/*y/*y*+y*+y*+y*+,rQ   c                  l    ddl m}  t        d      }t        t	        t
                    } | ||      sJ y )Nr   )	rel_checkz%905502432259640373/288230376151711744) sympy.core.tests.test_relationalrO  r   r   rs   r   )rO  rpifpis      rO   test_NumberSymbol_comparisonrS  b  s.    :
:
;C
b	
CS#rQ   c                  Z   t        dt        d            j                  dk(  sJ t        dt        d            j                  dk(  sJ t        t        dt        d            j                        t        k(  sJ t        t        t        dd                  t        dd      k(  sJ y )Nz1.0rd   rO  r&  rQ  )r   r   rK   ru   r   r/   r;   rV   rQ   rO   test_Integer_precisionrU  i  s    GBK(.."444'"+.44:::ewr{399:cAAA5u345uPR9SSSSrQ   c            	         ddl m}  ddlm}  |d      s | d       fd} |j	                  d      t        dd	              |j                  d      t        dd	              |j                  d      t        dd	             j                  d      d	z  } ||t        dd	             t        |d
      }t        |t        t        dd	      d
            sJ t        t        fd       t        t        fd       y )Nr   )skip)import_modulenumpyz'numpy not installed. Abort numpy tests.c                     j                  |       j                  dz   }t        |       }|j                  |k(  sJ t        ||      }t	        ||z
  |z        d|dz    z  k  sJ y )Nr_   rQ  rc   )finfonmantr   rK   r  )npvalratvalprecrv   rw   nps        rO   check_prec_and_relerrz2test_numpy_to_float.<locals>.check_prec_and_relerrx  se    xx$$q(%Lww$&D)AE19~dQhK 0000rQ   gUUUUUU?rc   r\   rp   rQ  c                  8    t         j                  d            S Nr  )r   	complex64r`  s   rO   rW   z%test_numpy_to_float.<locals>.<lambda>  s    eBLL$67 rQ   c                  8    t         j                  d            S rc  )r   
complex128re  s   rO   rW   z%test_numpy_to_float.<locals>.<lambda>  s    eBMM$$78 rQ   )sympy.testing.pytestrW  sympy.externalrX  float16r   float32float64
longdoubler   rP   rA   r   )rW  rX  ra  rv   rw   r`  s        @rO   test_numpy_to_floatrn  q  s    ),	w	B671 "**U+Xa^<"**U+Xa^<"**U+Xa^<
aA!Xa^,a2Aax1~!DEEE
978
989rQ   c                  n    t        d      } | j                         | k(  sJ | j                         | k(  sJ y r  )r   r1   ceilingr2  s    rO   test_Integer_ceiling_floorrq    s1    
A779>>99;!rQ   c                      t        j                         t         u sJ t        j                         t         u sJ t         t         z  t        j                  u sJ y rJ   )r   r1   rp  r,   rY   rV   rQ   rO   test_ComplexInfinityrs    s@    99;#;;=C8quurQ   c                     t        j                         t         u sJ t        j                         t         u sJ t         t        j                  z  t        j                  u sJ t         t
        z  t        j                  u sJ y rJ   )r   r1   rp  r,   rY   r   rV   rQ   rO   !test_Infinity_floor_ceiling_powerru    sZ    88:::<2quu9s7aeerQ   c                      t         j                  dz  t         j                  u sJ t         j                  t         j                  z  t         j                  u sJ y )Nr   )r,   r   r   rY   rV   rQ   rO   test_One_powerrw    s;    55"9==!%%155(((rQ   c                      t          j                         t          u sJ t          j                         t          u sJ t          dz  t          u sJ t          dz  t         u sJ y )Nrl  r   )r   r1   rp  rV   rQ   rO   test_NegativeInfinityry    sZ    C;;=RCC==?rc!!!C"9C"9??rQ   c                      t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                      t          d k  S rJ   r   rV   rQ   rO   rW   z!test_issue_6133.<locals>.<lambda>  s    sTz rQ   c                      t        d      d k  S )Nr   r+   rV   rQ   rO   rW   z!test_issue_6133.<locals>.<lambda>  s    qut| rQ   c                      t         d k  S rJ   r|  rV   rQ   rO   rW   z!test_issue_6133.<locals>.<lambda>  
    rDy rQ   c                      t         d kD  S rJ   r|  rV   rQ   rO   rW   z!test_issue_6133.<locals>.<lambda>  r  rQ   c                      t        d      d k  S r   r+   rV   rQ   rO   rW   z!test_issue_6133.<locals>.<lambda>  s    qtd{ rQ   rW  rV   rQ   rO   test_issue_6133r    s9    
9*+
9,-
9)*
9)*
9+,rQ   c                     t        j                  d      } t        | t        j                        sJ t        | t         j                        sJ t        | t        j
                        sJ t        j                  dd      }t        |t        j                        sJ |j                  dk(  sJ |j                  dk(  sJ t        |t        j                        sJ t        j                  d      }t        |t        j                        sJ t        |t         j                        sJ t        |t        j                        sJ t        |t         j                        sJ t        |t        j                        sJ y )Nr^   r_   r\   )rF   r   r  numsr   Realr   	numeratordenominatorr   Integralr   s      rO   test_abcr    s   aAa%&%a()(a#$#AAa%&%;;!==Aa'('Aa%&%a()(a'('a))*+*a'('rQ   c                  F    t        d      t         j                  z  dk(  sJ y )Nrc   r]   )r,   rq   rV   rQ   rO   test_floordivr    s    Q4<1rQ   c                      t         j                   t         j                  u sJ t        d       t         j                  urt        d       dk(  sJ y )Nr   rb   )r,   rU   r   rV   rQ   rO   test_negationr    sB    FF7aff!H9AFF"ayC'777'7rQ   c                      t        d      } d|  z  t        | z  k(  sJ t        t        d|       sJ t        dd      } d|  z  t        j
                  k(  sJ d| z  t        j
                  k(  sJ y )Nrv   r   T)rr  )r.   r   r	   r&   r,   r   r  s    rO   test_exponentiation_of_0r    si    sAqb5CF??S!QsAqb5AEE>>a4155==rQ   c                  >   t        d      } t        |       dk(  sJ t        t        j                        dk(  sJ t        t        j                        dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t        t              dk(  sJ y )Nrv   FTr_   rj   )r.   r   r,   rq   r   r   r   r  s    rO   test_int_valuedr    s    sAa=E!!!aff&&&aee$$$eAh4'''eCj!U***b>U"""rQ   c                     t        d      } ddt        d      t        d      t        d      j                  d      gddt        d      t        d      t        d      j                  d      gddt        d       t        d       t        d      j                  d       gd	t        d	      t        d      dz  gd
t        d	       t        d       dz  gddt        d      t        d      t        d      j                         gt        gt        j                         gt        d      dz  gdt        d      gt        d      j                  d      gt        gt        | dz        gt        d	| z        gg}t        |      D ]S  \  }}|D ]I  }|D ]  }t        ||      du rJ  t        |      D ]"  \  }}||k(  r|D ]  }t        ||      du rJ  $ K U y )Nrv   r_   r   r^   rc   r   r   r  re   g      r   rb   rp   rf   TF)r.   r,   r   r   r   r7   r   r   )rv   equal_valuesr{   values_mvalue_ivalue_jr   values_ns           rO   test_equal_valuedr    s   sA 
C1qvqtvvay)	
C1qvqtvvay)	TAaD51S6'AaDFF1I:.	afad1f	#w1a 	
C1qvqtvvx(	rttvh	
1b	C3=	
3!		QqS
SQZLL !. C8 	CG $ >#GW5===>  )6 C86' CG'9UBBBCC	CCrQ   c            	         t        d      } t        d      }t        d      }t        dd      du sJ t        dd      du sJ t        dd      du sJ t        d	d
      du sJ t        d	d
dd      du sJ t        d	t        dd            du sJ t        dt        d| z        z  t        | dz        dz        du sJ t        dt	        d            du sJ t        dt	        d      j                               du sJ t        | dz   |       du sJ t        t        ddd      t        ddd            sJ t        d| z  d| z        rJ t        d| z  d| z  d      sJ t        d| z  d| z  dd      rJ t        d| z  d| z  dd      sJ t        || z  || z        rJ t        d| z  t        d| z        z  d| z  t        |       z        sJ t        d| z  t        d| z        z  d| z  t        d| z        z        rJ t        | d|z  z   d| z  d|z  z         sJ t        | t        d| z        |z  z   d| z  t        d| z        |z  z         sJ t        | t        d| z        |z  z   d| z  dt        d| z        z  |z  z         rJ t        | t        d| z        |z  z   d| z  t        d| z        |z  z         rJ t        | d|z  z   d| z  d|z  z         rJ y )Nrv   rw   rx   rc   Tr   g9m4  @Fr   g+D&U?gMbP?r_   r\   rf   ra   r^   rp   g;f?g#B;r4  r   re   r   )r.   r   r   r3   r5   r   rD   r   s      rO   test_all_closer  	  s   sAsAsAQ?d"""Q4'''Q5(((S(#u,,,S(D$/4777S(1a.)T111SSU^S1Xb[1T999'a1U:::'a9TAAAQY"d***SA.Aq50IJJJ1ac"""QqS!A#q!!!1ac1c***QqS!A#q!$$$1ac"""QqSSU^SU3q6\2221SQZQs2a4y999QAXr!tacz***QRT1_bdS1XaZ&7888SAYq["Q$3qs8A*=>>>SAYq["Q$QqS!*;<<<RT2a4!A#:....rQ   )rF   r  rf  sympy.concrete.summationsr   
sympy.corer   r   r   r   sympy.core.containersr   sympy.core.exprr	   sympy.core.logicr
   sympy.core.mulr   sympy.core.numbersr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.core.intfuncr   r   r   r    r!   r"   r#   r$   r%   sympy.core.powerr&   sympy.core.relationalr'   r(   r)   r*   sympy.core.singletonr,   sympy.core.symbolr-   r.   sympy.core.sympifyr/   (sympy.functions.combinatorial.factorialsr0   #sympy.functions.elementary.integersr1   %sympy.functions.combinatorial.numbersr2   &sympy.functions.elementary.exponentialr3   r4   (sympy.functions.elementary.miscellaneousr5   r6   (sympy.functions.elementary.trigonometricr7   r8   sympy.polys.domains.realfieldr9   sympy.printing.latexr:   sympy.printing.reprr;   sympy.simplifyr<   sympy.polys.domains.groundtypesr=   sympy.utilities.decoratorr>   sympy.utilities.iterablesr?   rh  r@   rA   rB   rC   rO  rD   rx  rE   rG   rs   r  rF  rP   rZ   r~   r   r   r   r   r   r   r   r   r   r   r   r  r  r  rs  rv  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r,  r2  r8  r:  r<  r>  r@  rB  rG  rJ  rL  rP  rX  rZ  r^  ra  rd  rg  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rM  rS  rU  rn  rq  rs  ru  rw  ry  r  r  r  r  r  r  r  r  rV   rQ   rO   <module>r     sa     )  ' % &     < < <   0 0 " + & > 5 ; ; ? = 3 & % # : 9 2: :    
3Urc
Ry)
$A)HT4n0<
2'%,
0(	11>h612+"+@wt& 	I 	I-6

"&Vr(>! 2A 2AjD6&'5T@
-:/4h$V-.`E:,:<0*0*0*:7
'
0- 'K//
G('
B6"r%	>&-R-N" C C,&)&9Ix:?B
5,! # #(('T#+@

	)
(!-H#33F(@>
@,FT:6)
-)$8
#C@/rQ   