
    MZd&                       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#m$Z$m%Z%m&Z&m'Z' d d	l(m)Z) d d
l*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dlKmLZL d dl(mMZMmNZNmOZO d dlPmQZQ d dlRmSZS d dlTmUZU d dlVmWZWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dlZZZd dlm Z   e3d d!"      Z^ e_e!       Z` e_e!      Zad# Zbd$ Zcd% Zdd& Zed' Zfd( Zgd) Zhd* Zid+ Zjd, Zkd- Zld. Zmd/ Znd0 Zod1 Zpd2 Zqd3 Zrd4 Zsd5 ZteSd6        Zud7 Zvd8 Zwd9 Zxd: Zyd; Zzd< Z{d= Z|d> Z}d? Z~d@ ZeYdA        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 ZeSdf        Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp ZeWdq        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 Zy)    N)Sum)
EulerGammaCatalanTribonacciConstantGoldenRatio)Tuple)	unchanged)	fuzzy_not)Mul)mpf_normmod_inverseigcdseterrigcd_lehmerIntegerIpicompilcmRationalEnanigcd2ooAlgebraicNumberigcdexNumberFloatzooequal_valued)Pow)GeGtLeLtS)DummySymbol)sympify)	factorial)floor)	fibonacci)explog)sqrtcbrt)cossin)	RealField)latex)srepr)simplify)integer_nthrootisqrtinteger_log)PythonRational)conserve_mpmath_dps)permutations)XFAILraises_both_exp_pow)mpf)mpq)numberstF)realc                 B    | |k(  xr | j                   |j                   k(  S N)_precabs     ?/usr/lib/python3/dist-packages/sympy/core/tests/test_numbers.pysame_and_same_precrM   ,   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 rG   )r'   Zero rN   rL   <lambda>ztest_seterr.<locals>.<lambda>3   s    qvvaff} rN   F)r   r?   
ValueErrorr'   rR   NaNrS   rN   rL   test_seterrrW   1   s;    
$
:,-
%66AFF?aee###rN   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@g?              g333333?      ?皙?pT)infinitei  )   z.36z8.36皙?      ?      ?      ?1.5z2.75z1.25g      @   
   )r'   Halfr   r   roundr)   r   r   r   rH   rR   float__rmod__r   type)xyzrJ   rc   rfmanssrK   s              rL   test_modrz   8   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(((rN   c            	         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            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      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      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            d   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        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        d+t        d            d,k(  sJ t        t        d+      t        d            d,k(  sJ t        t        d+      d      d,k(  sJ t        t        d      t        d-            t        dd.      k(  sJ t        t        d      t        d/            t        dd/      k(  sJ t        t        d0      t        d1            t        d2d3      k(  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 d4t        fd4t        fd5d6d7g}t        d8      }|D cg c]  }t        t        t        |             }}t        dd2      D cg c]  }t        |t               c}|k(  sJ d9d:d5d4t         fd4t         fg}|D cg c]  }t        t        t        |             }}t        dd2      D cg c]  }t        |t                c}|k(  sJ t        dd2      D cg c]  }t        ||        c}|k(  sJ t        t        d;      t        d            t        d;d      k(  sJ t        t        d;       t        d            t        d<d      k(  sJ t        t        d=      t        d>            t        d=d>      k(  sJ t        t        d      t        d?            t        dd?      k(  sJ y c c}w c c}w c c}w c c}w c c}w )@Nrr         r\   rZ   r   c                  R    t        t        j                  t        j                        S rG   )divmodr'   rR   rS   rN   rL   rT   ztest_divmod.<locals>.<lambda>   s    fQVVQVV&< rN   c                  R    t        t        j                  t        j                        S rG   )r   r'   OnerR   rS   rN   rL   rT   ztest_divmod.<locals>.<lambda>   s    fQUUAFF&; rN   i   2z3/21z1/20z3.5rj   z1/36z1/1020.1   0.1r_   rh   0.5333333?z0.34z1/6   535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\   ggg g      rY         )r   r   )r   r\   )r   r_   inf)r   r~   )r   r   g      @g      r^   r]   g      "@)r)   r   r'   r   rR   r   r?   ZeroDivisionErrorr,   strr   rV   ro   tuplemaprange)rr   rx   OOiANSs        rL   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(#uQsVQsV'<<<<!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x)@@@@!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&!C&$9999#qx E!C&!C&$9999!E(C E!C&!C&$9999#qx E!C&!E($;;;;!E(AeH%qvqx)@@@@!E(AeH%qw#)????!E(AeH%qvqx)@@@@!E(A%#%"9999!QuX%##"7777!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 E!C&!E($;;;;#qx E!C&!E($;;;;!E(A%#%"9999!QuXq!R'''!E(C E!C&!E($;;;;#qx E!D'1S6$::::!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$$ E"dO333!A$$ F1dO333!B%4"eAtn444"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!C&!B% F3O3331S6'1R5!VD"%5555!C&!A$6#q>111!A$#6!S>111 .0
-11s    |'?|,7 |1'|6|;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\   rk   r   r}   r_   rZ      r   rY   rl         rl   c                      t               S rG   r   rS   rN   rL   rT   ztest_igcd.<locals>.<lambda>   s    df rN   c                      t        d      S Nr_   r   rS   rN   rL   rT   ztest_igcd.<locals>.<lambda>   
    d1g rN   c                      t        dd       S Nr   r   rS   rN   rL   rT   ztest_igcd.<locals>.<lambda>   s    tAt} rN   c                      t        dd      S Nr\   g@r   rS   rN   rL   rT   ztest_igcd.<locals>.<lambda>       tAs| rN   )ǧF@r\   r   c                      t          S rG   r   argss   rL   rT   ztest_igcd.<locals>.<lambda>       4; rN   )r\   r_   Nc                      t          S rG   r   r   s   rL   rT   ztest_igcd.<locals>.<lambda>   r   rN   )r   r?   	TypeErrorrU   r=   r   s   @rL   	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./0rN   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   rl     r_   )r-   r   )rJ   rK   cs      rL   test_igcd_lehmerr      s    UYu-qA q!!!!#AqsAaC A%%%q"d(#q(((q!Aq 1111rN   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 )Nr_   r   r\   c   r   r   )r   intr-   rI   s     rL   
test_igcd2r      sX    C!QUQY'1,,,y #i&6"7qAA;!rN   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\   r_   r}         rk   8   r   <   c                      t        dd      S )Ng333333 @rk   r   rS   rN   rL   rT   ztest_ilcm.<locals>.<lambda>  s    tC| rN   c                      t        dd      S )Nr}   gffffff@r   rS   rN   rL   rT   ztest_ilcm.<locals>.<lambda>  r   rN   c                      t        d      S )Nr}   r   rS   rN   rL   rT   ztest_ilcm.<locals>.<lambda>  r   rN   )r   r?   rU   r   rS   rN   rL   	test_ilcmr     s    1:??1:??1:??1:??1:??1:??1:1:"$$$
:+,
:+,
9o&rN   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 )Nr_   rY   )r   r\   r\   rl   r|   )r   r\   r_   r   i  )ir\   rZ   r   )r   r\   r   r\   )r\   r   r\   )r   rS   rN   rL   test_igcdexr     sg    !Q<:%%%"b>Z'''#t+++!Q<9$$$!Q<9$$$rN   c                    | j                   | j                  t        | j                         t        | j                        f|j                   |j                  t        |j                         t        |j                        fk(  S rG   )rc   qrq   rI   s     rL   _strictly_equalr     sT    CCd133iacc+CCd133iacc+, ,rN   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-1rl   10c                  &      t        d            S )Nrr   )r)   )clss   rL   rT   z$_test_rational_new.<locals>.<lambda>5  s    c&+. rN   N)	r'   rR   r   NegativeOner   r   r   r?   r   )r   r   s   ` rL   _test_rational_newr   $  s     q6QVVq6QUU??r7amm###s8quut9%%%A1c$i(((1c$i(((1c#b'l+++1c!f%%%
9./rN   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      %@rl   c                      t        d      S )Nz10.5r   rS   rN   rL   rT   z"test_Integer_new.<locals>.<lambda>@  s
    wv rN   z1.99999999999999999999r\   N)r   r   r   r'   rR   r?   rU   r   rS   rN   rL   test_Integer_newr   8  s_     w73<00074='"+666
:./8M*+q000rN   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        t!        dd            t        dd      k(  sJ t        ddd      j"                  dk(  sJ t        ddd      }|j"                  dk(  sJ |j$                  dk(  sJ y# t        $ r Y w xY w)z("
    Test for Rational constructor
    r\   r_   rY   rZ   z3/4z-3/4z.76r      z19/25      ?g      @ra   z1e2/1e-2r   z1 234  z1/1 234r   r   r   c                      t        d      S )Nz3**3r   rS   rN   rL   rT   z#test_Rational_new.<locals>.<lambda>b  s    hv. rN   c                      t        d      S )Nz	1/2 + 2/3r   rS   rN   rL   rT   z#test_Rational_new.<locals>.<lambda>c  s    h{3 rN   Nr   )gcdr~   )r   r   r'   rm   r   limit_denominatorr   ComplexInfinityr   evalfr?   r   	fractionsFractionImportErrorrB   r;   r   rc   )n1n3_4r   ns       rL   test_Rational_newr   D  s@    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;;; C1I(1a.000N1a()Xa^;;;Aqa ""a'''BAA33!8O833"99  s   2N 	N+*N+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)rj   rh   r_   /r   100r\      )r   as_numer_denom)rc   r   s     rL   test_issue_24543r   t  sq     _  	_AAq>002h!}6M6\6\6^^^^	__ E5!Xa%5555rN   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\   r_   ir[   rY   g333333@r   r   z-622z5/3z5.3c                      t        d      S )Nr2   )r   rS   rN   rL   rT   z!test_Number_new.<locals>.<lambda>  s
    ve} rN   c                       t        t              S rG   )r   r2   rS   rN   rL   rT   z!test_Number_new.<locals>.<lambda>  s
    fSk rN   r   z-infr   iNFz+infN)r   r'   r   	__class__r   r   r   r?   rU   r   r   r   zip)rJ   uvr   s       rL   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~1rN   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\   r_   r   c                  *     t         j                  k  S rG   r'   rV   r   s   rL   rT   z!test_Number_cmp.<locals>.<lambda>      b155j rN   c                  *     t         j                  k  S rG   r  r  s   rL   rT   z!test_Number_cmp.<locals>.<lambda>      bAEEk rN   c                  *     t         j                  kD  S rG   r  r  s   rL   rT   z!test_Number_cmp.<locals>.<lambda>  r  rN   c                  *     t         j                  k\  S rG   r  r  s   rL   rT   z!test_Number_cmp.<locals>.<lambda>  r  rN   )r   r?   r   )n2n3r   s     @rL   test_Number_cmpr
    s    	B	B	B7N78O87N77N78O8
9()
9)*
9()
9)*rN   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\   rZ   rY   r_   r   r   r   r   c                  *     t         j                  k  S rG   r  r  s   rL   rT   z#test_Rational_cmp.<locals>.<lambda>  r  rN   c                  *     t         j                  k  S rG   r  r  s   rL   rT   z#test_Rational_cmp.<locals>.<lambda>  r  rN   c                  *     t         j                  kD  S rG   r  r  s   rL   rT   z#test_Rational_cmp.<locals>.<lambda>  r  rN   c                  *     t         j                  k\  S rG   r  r  s   rL   rT   z#test_Rational_cmp.<locals>.<lambda>  r  rN   )r   r?   r   )r  r	  n4n5n6n7n8r   s          @rL   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)*rN   c                     d } dt         j                  dt        d      f}t        |d      D ]  \  }}||k(  rJ  |D ]  }||v 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$                  du s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#}t1        t        d$d%      t        d&d%            sJ t1        t        t3        |      d%      t        |d%            sJ t1        t        |d%      t        t5        |      d'            sJ t1        t        t5        |            t        |d%            sJ t1        t        |      t        |d%            sJ t        d(d)      d(k(  sJ t        d*d)      dk(  sJ t7        t        d+d%            d(k(  sJ t        t        d,        t        d-      t        d.      k(  sJ t3        d/      t3        d0      k(  sJ t9        d-      t9        d.      k(  sJ t        d1      t        d2      k(  sJ t        d3      t        d4      k(  sJ t        d5      t        d6      k(  sJ t        d7      t        d6      k(  sJ t        d8      t        d6      k(  sJ t        d9      t        d:      k(  sJ 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        dAd      k(  sJ t        t        dB        t        t        dC        t        t        dD        t        t        dE        t        d      }t        dF      |k(  sJ t        dG      |k(  sJ t        dH      |k(  sJ t        dI      |k(  sJ t        d      |k(  sJ t        d      |k(  sJ t        dd%      t        dJd%      k(  sJ t        d      t        dK      k(  sJ t        t         j                        |k(  sJ t        t         j:                        t        dK      k(  sJ t        t=        j>                  dL      d      t        d=d      k(  sJ t        t=        j>                  dM            t         j                  u sJ t        t=        j>                  dN            t         j                  u sJ t        t=        j>                  dO            t         j                  u sJ dPjA                  t        dQ            dRk(  sJ dSjA                  t        t        j,                  dT      dT            dUk(  sJ t        dV      t        dV      k(  sJ t        dVdW      t        dVdW      k(  sJ t        t         j:                  dXz  dY      }t        t         j:                  dXz  d
Y      }t        t         j:                  dXz  dZ      }t        t         j:                  dXz  d[Z      }|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_        t1        t        t        d`      t        j
                  d`            sJ t1        t        tB              tC        j
                               sJ g da}tD        tD         tF        tD        tD        g}tI        ||      D ]  \  }}t        |      |u rJ  y )bNc                 @    t        d      }| | |z
  cxk  xr |k  S c S )Nz1.0E-15r   )rJ   rK   rD   s      rL   eqztest_Float.<locals>.eq  s%    )QUQrN   r   r^   r_   rY   r}   r   z0.31830988618379067rZ   r   r   ra   F)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   rk   r\   rY    r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>  s    u\26 rN   z0.0Tr`   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   rJ   s    rL   teqztest_Float.<locals>.teq  sb    	Q5(((	Q4'''QWWY5(((QWWY4'''rN   rb   evaluatel   
>V3&Z
 r|   r%  12r         ?          @z.12500000000000001c                      t        dd      S )Nr-  r%  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>  s    u%7< rN   z123 456.123 456z123456.123456z123 456123456z .3e2z0.3e2z	1_23.4_56z123.4561_1.0z1_.z1._1__2z12.0c                      t        d      S )N_1r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>)  
    uT{ rN   c                      t        d      S )N_infr  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>*  s
    uV} rN   r   z.125z.100z2.0r   c                      t        dd      S )Nz12.3d-4r%  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>2  s    uY3 rN   c                      t        dd      S )Ng(@r%  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>3  s    uT2 rN   c                      t        d      S )N.r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>4  s
    uSz rN   c                      t        d      S )Nz-.r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>5  r7  rN   z-0z.0z-.0z-0.0r   r   r   r   Infinityz	-Infinityz{:.3f}gs	M@z4.237z{:.35f}(   z%3.14159265358979323846264338327950288z0.73908513321516064100000000   rl   dps	precisionr   c                      t        ddd      S )N1.23rY   rl   rC  rE  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>]      uVbA rN   c                      t        ddd      S )NrG  r%  rl   rH  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>^      uVrB rN   c                      t        ddd      S )NrG  rY   r%  rH  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>_  rI  rN   c                      t        ddd      S )NrG  r%  rH  r  rS   rN   rL   rT   ztest_Float.<locals>.<lambda>`  rK  rN       r   )%r'   rR   r   r=   is_zeror   r   r   _mpf_rV   r?  NegativeInfinityr?   rU   	is_finiteis_negativeis_positiveis_infinite
is_integeris_rationalis_irrationalr0   r   r2   rM   r   r   ro   r   r   decimalDecimalformatr   r   r   r   )r  zerosr   jrt   rJ   rA   x_strx_0xstrx2_strx_hexx_decr)  zerorK   rc   r   r   r   s                      rL   
test_Floatrd    s=	     E!H%EUA& 1Avv Ezz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?d"""b>Q+R01T999
:<= "#u_'====9!2222%&(?*CCCC>U7^+++ y!1111;%,&&&<5<'''<5<'''=E&M))) :*+
:,- 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}}rN   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 )Nr^   Fr   )r'   falserS   rN   rL   test_zero_not_falserg  m  sl    cFagg%'''GGqv%'''aDAGGO%%%GGqtO%%%rN   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   r`   )mpmathmprC  r   r   rP  r   )ri  mp_pis     rL   test_float_mpfrl  u  s    FIIMFIIKEekk3 7H288C=HHHHHFIIMekk3 7H288C=HHHHHrN   c                       t        d      t        j                  d            } t        | d      t        j                  d      k(  sJ y )Nr   rB  )r4   r   r   r   )repis    rL   test_Float_RealElementro    s:    9bhhsm,D srxx},,,rN   c                      t        t        j                  d            } t        t	        |       t	        | d            sJ y )N   r%  )r   r   r   rM   r   )ry   s    rL   'test_Float_default_to_highprec_from_strrr    s.    BHHSMAeAha555rN   c                  <    t        d      } | dz  j                  sJ y )Ng	@r_   )r   is_Floatr(  s    rL   test_Float_evalru    s    c
AqD???rN   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 )Nrb   rl   r   r   )r   r'   rR   rI   s     rL   test_Float_issue_2107rw    s    c2AeRAq5A::8q==66A:>Q66A:!!!!q5A::8q==66A:>Q66A:!!!!rN   c                      ddl m}  dt        d      z
  } | |      }|j                         |k(  sJ |j	                  |      j                         dk(  sJ y )Nr   )to_number_fieldr\   r_   )sympy.polys.numberfieldsry  r0   as_exprminpolyexpand)ry  rJ   rK   s      rL   test_issue_14289r~    sO    8	DGAA99;!99Q< A%%%rN   c                  >    t        d      } t        d      }| |k(  sJ y )N)r   1Lr   r\   )r   r   r   r\   r  rI   s     rL   test_Float_from_tupler    s!    oAnA6M6rN   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\   rr   rY   r_   r   r}   r~   r   Fr   r         )r   r)   r'   rm   r   r   ro   r9  _ninfrq   r   rR   is_Rational
isinstancer   r   rS   rN   rL   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#rN   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 )Nrr   r\   r   r   c              3   P   K   | ]  }t          |z  t        j                  u    y wrG   )r   r'   rV   ).0r   s     rL   	<genexpr>z"test_Infinity_2.<locals>.<genexpr>c  s     ;Qax155 ;s   $&rY   r_   )
r)   r   r   r'   rV   r9  r  absallr   rr   s    rL   test_Infinity_2r  J  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'''rN   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   r9  r   r  rS   rN   rL   test_Mul_Infinity_Zeror  i  s    8D=C8E>S   8D=C8E>S   a=Cq>S   a=Cq>S   rN   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'   rR   r   r   r   rS   rN   rL   test_Div_By_Zeror  t  s    QVV8s??U1X:QVV8s??U1X:66!8s??8A:aff9eAh;#rN   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 rG   r   r   rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  
    b1f rN   c                      t         t        k  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  
    bAg rN   c                      t         t        kD  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t         t        k\  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t          t        k  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>      rcAg rN   c                      t          t        k  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>      rcQh rN   c                      t          t        kD  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t          t        k\  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t         t        k  S rG   r   r   rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  
    a"f rN   c                      t         t        k  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  
    a2g rN   c                      t         t        kD  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t         t        k\  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t         t         k  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>      a2#g rN   c                      t         t         k  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>      aB3h rN   c                      t         t         kD  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   c                      t         t         k\  S rG   r  rS   rN   rL   rT   z+test_Infinity_inequations.<locals>.<lambda>  r  rN   Frr   rK   TfiniterE   )r   r   r.   r9  r?   r   r)   r%   r#   r$   r"   )rr   rK   s     rL   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(@@@(@rN   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\   rr   rY   r_   r  r}   c                      t         dkD  S r   r   rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  
    cAg rN   c                      t         dk  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  r  rN   c                      t         dk\  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  
    cQh rN   c                      t         dk  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  r  rN   c                      dt         k  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  
    a#g rN   c                      dt         kD  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  r  rN   c                      dt         k  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  
    a3h rN   c                      dt         k\  S r   r  rS   rN   rL   rT   ztest_NaN.<locals>.<lambda>  r  rN   r   Fr*  r   )
r   r   r)   r?   r   r!   r'   r   r   r   )r   s    rL   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||rN   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'   rV   r   r?  rQ  	is_numberr   r   rW  rS   rN   rL   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5rN   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\   r_   r\   Tr[   r_   Tr\   FrZ   {   r   )r  T)r  F)z   Fr   r   TrY   r   )r   Tr   )rZ   T   )r[   F rk   )r  T)r  F)i Fr   )r   T)r   F)r   Frl   i  TF    d(	 r   l   1{z l            )r8   r   r+   rq   )rK   r   c2rc   ru   s        rL   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4rN   c                  ^    t        ddz  d      ddz  dfk(  sJ t        ddz  d      dk(  sJ y )Nrl   i	  2   Ti r   )r  T)r8   rS   rN   rL   test_integer_nthroot_overflowr    s<    2;+B~===2v:u-???rN   c                  h   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 y )Nc                      t        dd      S Nr_   r\   r:   rS   rN   rL   rT   z"test_integer_log.<locals>.<lambda>      {1a0 rN   c                      t        dd      S )Nr   r_   r  rS   rN   rL   rT   z"test_integer_log.<locals>.<lambda>  r  rN   c                      t        dd      S )Nrf   r_   r  rS   rN   rL   rT   z"test_integer_log.<locals>.<lambda>  s    {32 rN   c                      t        dd      S r   r  rS   rN   rL   rT   z"test_integer_log.<locals>.<lambda>  s    {1c2 rN   r\   r_   r  rY   )r   Fr  r   r  r]   r  r|   )r_   F   )rY   Tr[   r   r~   r   )rY   Firk   r   )r?   rU   r:   rS   rN   rL   test_integer_logr    sT   
:01
:01
:23
:23q!	)))q!	)))q!
***q!	)))sA*,,,tQ9,,,sA*,,,tQ9,,,r1+++q!
***r2*,,,r2*,,,sA*,,,sB:---rN   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 ddl
m} |j                  }d |_        	 t	        d      dk(  sJ t	        d      dk(  sJ 	 ||_        y # ||_        w xY w)Nr   )r0   l      r_   r\   l         i   l   _ic                      t        d      S )Nr   r9   rS   rN   rL   rT   ztest_isqrt.<locals>.<lambda>>  s
    uRy rN   c                       t        ddz         S )Nrl   r   r  rS   rN   rL   rT   ztest_isqrt.<locals>.<lambda>?  s    ub$hY/ rN   c                  ,    t        t        dd            S )Nr   r_   )r9   r   rS   rN   rL   rT   ztest_isqrt.<locals>.<lambda>@  s    uXb!_5 rN   rl   r   c                      t                S rG   r  )tinys   rL   rT   ztest_isqrt.<locals>.<lambda>C  s    udU| rN   r   r  )powerc                      y)Ng@rS   r  s    rL   rT   ztest_isqrt.<locals>.<lambda>K  s    rN   r]   rY   r   )mathr0   r   r8   r9   r'   rm   r?   rU   r   
sympy.corer  _sqrt)r  limitr  old_sqrtr  s       @rL   
test_isqrtr  /  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... !{{H'EKQx1}}U|s"""hs   ! H
 
	H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_powerr_   r~   r   r   r[   r   rZ   r   r   r\   ir]   rY   r  iir   rk   Q   ir   r   rr   1   l              r   Fr*  缉ؗҜ<r   r   )ii  r_   i   )r_   r[   rk   )	nextprimei   0   r}   r`   r   rl   iir  r|   r%  Tevenra   r   N)r'   r   r?  rV   r   r   rR   r   r0   r   r)   r   r  r!   r   factorssympy.ntheory.generater  r   r   )rr   r  r   s      rL   test_powers_Integerr  S  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###rN   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   rY   r_   r   r   rZ   r~   r}   r]   r   r  r\   }   i   iq  i   r[   rk   r   r  r  Fr*  r  rl   r%  Tr  N)r'   rm   r?  r   r   rV   r0   r   r  r!   r   r   r)   r(  s    rL   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--. . .rN   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   rS   rN   rL   test_powers_Floatr    s9    '
AfI%((*+s5:3C/DDDDrN   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   r_   rY   r|   r   c                      t        d      dz  S Nr_   r^   r   rS   rN   rL   rT   z%test_lshift_Integer.<locals>.<lambda>  s    gajC/ rN   c                      dt        d      z  S Nr^   r_   r   rS   rN   rL   rT   z%test_lshift_Integer.<locals>.<lambda>      cWQZ/ rN   c                  0    t        d      t        d      z  S Nr\   r   r   rS   rN   rL   rT   z%test_lshift_Integer.<locals>.<lambda>      wqzWR[8 rN   r   r?   r   rU   rS   rN   rL   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9rN   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   r_   rY   r   r   r|   r  c                      t        d      dz	  S r  r   rS   rN   rL   rT   z%test_rshift_Integer.<locals>.<lambda>!  s    gdms2 rN   c                      dt        d      z	  S r  r   rS   rN   rL   rT   z%test_rshift_Integer.<locals>.<lambda>"  r  rN   c                  0    t        d      t        d      z	  S r  r   rS   rN   rL   rT   z%test_rshift_Integer.<locals>.<lambda>#  r	  rN   r
  rS   rN   rL   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9rN   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   rS   rN   rL   rT   z"test_and_Integer.<locals>.<lambda>7      gaj3. rN   c                      dt        d      z  S r  r   rS   rN   rL   rT   z"test_and_Integer.<locals>.<lambda>8      cGAJ. rN   r   r?   r   rS   rN   rL   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./rN   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   rS   rN   rL   rT   z"test_xor_Integer.<locals>.<lambda>L  r  rN   c                      dt        d      z  S r  r   rS   rN   rL   rT   z"test_xor_Integer.<locals>.<lambda>M  r  rN   r  rS   rN   rL   test_xor_Integerr#  ;     :!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./rN   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   rS   rN   rL   rT   z!test_or_Integer.<locals>.<lambda>a  r  rN   c                      dt        d      z  S r  r   rS   rN   rL   rT   z!test_or_Integer.<locals>.<lambda>b  r  rN   r  rS   rN   rL   test_or_Integerr)  P  r$  rN   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   rS   rN   rL   test_invert_Integerr+  e  sV    J7;#7777J7;#7777j!!"gj&9999rN   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  rS   rN   rL   	test_abs1r-  k  s@    Aq>Xb!_,,,x1~#hr1o"6666rN   c                  $    t        d      dk(  sJ y NrZ   r  rS   rN   rL   test_accept_intr0  p  s    8q==rN   c                  D    t        d      dk7  sJ t        d      dk(  rJ y )Nz0.2r  rS   rN   rL   test_dont_accept_strr2  t  s)    <5   e%&&%rN   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]   rl   r   r\   r   r_   rY   l   dc l   sDYH )r   r   rq   r(  s    rL   test_intr4  y  s    Aq6Q;;BAq6S!W!!!!!!b8Aq>!!rHQN&:%::::k*AA<4QB=/C/////rN   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   rY   r_   r\   )r   r   r   r   r   r   r   approximation_intervalr   r  
is_Integer)r   rJ   rK   ias       rL   test_int_NumberSymbolsr9    s    w<1z?ar7a<<q6Q;;{q   !"a'''q*k3ErJ -''01VQww"c"""AEzz||,,-rN   c                  p    t        d      } t        d| z  | z        dv sJ t        d| z  | z        dk7  sJ y )Nrr   r/  )	(2.0*x)*xz2.0*x**2z2.00000000000000*x**2g @r;  )r)   r   r  s    rL   test_real_bugr<    s@    sAs1uQw<MMMMs1uQw<;&&&rN   c                      t        t        d            dz   t        t        d            dz
  z  j                         dk(  sJ y r  )r0   r   r}  rS   rN   rL   test_bug_sqrtr>    s:    (1+"T(1+%6%:;CCEJJJrN   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   r?   r   r@  )r   r@  s     rL   
test_pi_PirB    s%    		   s   &/c                  j    t        t        d        t        t        d        t        t        d        y )Nc                  *    t        t        d            S r   lenr   rS   rN   rL   rT   ztest_no_len.<locals>.<lambda>  s    c(1+. rN   c                  ,    t        t        dd            S )Nr_   rY   rE  rS   rN   rL   rT   ztest_no_len.<locals>.<lambda>  s    c(1a.1 rN   c                  *    t        t        d            S r   )rF  r   rS   rN   rL   rT   ztest_no_len.<locals>.<lambda>  s    c'!*o rN   r?   r   rS   rN   rL   test_no_lenrJ    s#    
9./
912
9-.rN   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[   )r0   r   r'   rm   rS   rN   rL   test_issue_3321rL    sL    A8Aq>166#9999tHQN##tAw...rN   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complexr_   rY   r  r[   i)r   r}  r   r0   rS   rN   rL   test_issue_3692rP    s    (1a. (((6!A#Q	/III(1a. (((6	8Aq>!A8Aq> 1$q' 9! ;;< < <8Aq>!))$)71tAw;FFFrN   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 )Nrr   r\   )r)   r0   as_base_expr'   rm   r   r  s    rL   test_issue_3423rS    sX    sAA;""$Q777A;!DQK-'''rN   c                  `    t        d      } t        | dz
        j                  | d      dk(  sJ y )Nrr   r\   r[   r_   )r)   r0   subsr  s    rL   test_issue_3449rV    s.    sAA;Aq!Q&&&rN   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 )Nrr   rZ   r|   r\   r]   r[   gV瞯<)r)   r'   r   r7   r   r  rU  r   )rr   erv   rJ   s       rL   test_issue_13890rY    s~    sA
Ab1q AAAAqvva{  "QVVAa[%6%6%889EAAArN   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 rG   )r   r  )r   s    rL   Fztest_Integer_factors.<locals>.F  s    qz!!##rN   r\   r_   rY   rZ   r[   r   r_   rY   rk   r}   r]   rl   )r_   r[      r|      r   )r_   rk   r`   rY   r[   r   r     r   r      )rY   rk   r.  )r_   r^     r   r   r  )r_   r_  r  rA     r   r_   rY   r[      rN  !   )rY   r^  "   )r_   r  #   )r[   rk   $   %   &   )r_   r   '   )rY   r_  r@  re   *   )r_   rY   rk   +   ,   -   .   )r_   rc  /   r  r  r  3   )rY   r  rS   r\  s    rL   test_Integer_factorsrv    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!!!rN   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  )rc   r   ry  s      rL   r\  z test_Rational_factors.<locals>.F  s    1~%%V%44rN   r_   rY   r\   r   r]  r]   r~   r`   re  r   rl   r`  rG   rS   ru  s    rL   test_Rational_factorsrz    sl    5 Q7!m###Q7!m###Q81++++Q81}$$$rN   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 )Nrl   r   r        Fx:^V P   )r   r   r}  rS   rN   rL   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===rN   c                  >    t        d      } t        |       }| |k(  sJ y r/  r   rI   s     rL   test_IntegerIntegerr    s    
A
A6M6rN   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 )NrZ   r_   i  iG i  i60  rY   r\   r|   r]   r[   rq  rk   r/  r          @      @ra   )r   r   lcmr   	cofactorsr   r'   rm   rI   s     rL   test_Rational_gcd_lcm_cofactorsr  !  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,- - -rN   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/  rZ   r   r  r  ra   )r   r   r   r  r  r'   rm   rS   rN   rL   test_Float_gcd_lcm_cofactorsr  J  s    :>>'!*%s333:>>'!*%s333:
+c
E#Jc
/SSSS:>>!&&!U3Z///:>>!&&!U3Z///:'	sU3Zs,- - -rN   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?rr   )
r  r   _evalfr   r   r   r   r   r)   r   r  s    rL   test_issue_4611r  U  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MrN   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\   ra   rG  r`   y              ?r_         ?       @r   r/  y      ?      ?y               @y              ?r   )ri  	mpmathifyr   rA   r'   rm   r   r   mpcrj  rC  r   r   r]  rS   rN   rL   test_conversion_to_mpmathr  f  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BrN   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 )Nrb   TFr\   rY   )r'   r2   r   r   r  s    rL   test_relationalr  }  s    	"AHH 	AAHH
 	AHHrN   c                  *    dt        d      d  dk(  sJ y )Nhellor_   llor   rS   rN   rL   test_Integer_as_indexr    s    71:;5(((rN   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 )Nrk   r[   r\   r   r   r_   )r   r   r'   rm   rS   rN   rL   test_Rational_intr    se    A1$$$<1xA1$$$A2%%%rN   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 )NrK   Tr  nz)nonzerorc   )positiver   )negativer   )	imaginaryr   rN  pbnbib)r  r  rY   Fr\   r   r_   )r)   r   r'   r?  rQ  rR   r   r@  rm   r/   rR  is_realis_imaginaryr   is_AddrV   r
   rO  is_extended_realis_Mulr   r   flattenr   )
rK   r  rc   r   imr   r  r  imbr   s
             rL   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HrN   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 )	Nrr   T)nonpositive)extended_nonpositiver  )nonnegative)extended_nonnegativer  )r)   r   r  r  s    rL   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>>rN   c                  t    t        j                  d      t        j                  t	        d      dz  z   k(  sJ y )NTfuncr[   r_   )r   r}  r'   rm   r0   rS   rN   rL   test_GoldenRatio_expandr    s,    4(AFFT!WQY,>>>>rN   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   rY   rg  )r   r}  r1   r0   rS   rN   rL   test_TribonacciConstant_expandr    sV    !((d3tB48O$$tB48O'<<
AB 	B BrN   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   r_   rY   )rY   r\   @)r\   r  )r'   rR   as_content_primitiverm   r   rS   rN   rL   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4rN   c                      t        d      ht        d      hk(  sJ t        t        d            t        t        d            k(  sJ y )NrY   rZ   )r   r   hashrS   rN   rL   test_hashing_sympy_integersr    s;    AJ<CF8###
tCF|+++rN   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   rn   r   r   r   rS   rN   rL   test_rounding_issue_4172r    s|    3~~ 45 5 5C !:; ; ;JO+2245 ! ! !rN   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rndrA   r  s        rL   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"""rN   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< ira  r   i# ir   )r   r   r   rP  r   rH   _as_mpf_valr   )r   rv   s     rL   test_Catalan_EulerGamma_precr  $  s    AacceQA77q#f+sB////77b===='''AacceQA77q#f+sB////77b===='''rN   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   r_   r\   r   )r(   r   rewriter   dummy_eqr   )r  s    rL   test_Catalan_rewriter  2  sk    c4T2A??3((a1q1$q!Rj13 3 3??'''rN   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'   rf  r   truerS   rN   rL   test_bool_eqr  9  sb    ::Q45==Q4177??9955D==55AFF??rN   c                     t        dd      t        dd      cxk(  rt        dd      k(  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        j                  k(  rJ t        d      dk(  sJ t        d      dk(  rJ t        d      t        j                  k(  s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      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(  sJ t        d      t        j                  dz  k7  sJ dt        d      k(  sJ t
        dz  t
        dz  k7  sJ y )Nra   rl   r^  r\   gQ?rY   rZ   z.12r.  z1.1r_   ri   r   r}   rg   grq?r/  )r   r\   r   r]   )r   r   r'   rm   r   rD   rS   rN   rL   test_Float_eqr  B  s   R=E"bM9U2q\99999 a=E#qM)))a=C5a=   s"""
 <8B++++BuU|+++Qx1}T{aff$$$;!U|q   <166!!!SzQSzQVV###:??SzQ:!Q''';$9>>?aeeAg%%%?aeeAg%%%a==a41c6>>rN   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   rO  boolr  s     rL   test_issue_6640r  h  sM    / ;%'''<5(((a>U"""rN   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%  rl   23e3r   23000z-23000)r   rH   rS   rN   rL   test_issue_6349r  q  sn    "##r)))""b((("##r)))2$$***rN   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   rl   r   )r   rA   rP  r   _newrS   rN   rL   test_mpf_normr  x  sF    L"%S777::lB'--S???rN   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\pirX  z\phiz\text{TribonacciConstant}z\gammaz\inftyz-\inftyz\tilde{\infty}z
\text{NaN}r   )
r5   r   r   r   r   r   r   r   r   r   rS   rN   rL   
test_latexr  }  s    98t(((#$(DDDD	)))9	!!!":###:****:&&&8trN   c                  (    t          dz  t        u sJ y Nr\   )r   r   rS   rN   rL   test_issue_7742r    s    37c>>rN   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 )NrY   r      N   r_   rq  r  r|   re   rd  r[   r\   rZ   r^  )r   r'   r   r0   r   r7   r   )ArX  s     rL   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[(((rN   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 )NrG  r%  r`   r|  )r   rM   rr   rs   rt   s      rL   test_Float_idempotencer    s    fbAaAaAa###!!Q'''fAaAaAa###!!Q''''rN   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 )%Nr_   rk   gM?Fg?ϝ?gU?g?z1.4gffffff?r%  rY   g333333?rb   rh   g{Gz?r   gQ?gHzG?      r     g      Y@)      )r   r  c                  "    t        t        d      S )Nr   r   rD   rS   rN   rL   rT   ztest_comp1.<locals>.<lambda>  s    tAs| rN   c                  "    t        t        d      S r  r  rS   rN   rL   rT   ztest_comp1.<locals>.<lambda>  s    tAqz rN   r   r^   ra   r/  r\   rZ   gtF_?gh㈵>g>)r0   r   r   r   r   r   r?   rU   r'   rm   r   )rJ   r   r]  s      rL   
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 rG   )r   r   r   rS   rN   rL   test_issue_9491r    s    s7c>>rN   c                  <    dt        d      z  t        d      k(  sJ y )Nr_   rY   r}   r  rS   rN   rL   test_issue_10063r    s    eAh;%("""rN   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   Fr*  )r   r   r'   rV   r   rR   rD   r!   rS   rN   rL   test_issue_10020r    s    q5AEE>>A;!+++++Q<166!!!C!8quuC26?aff$$$q5CA....C!8sB3E2222rN   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 )Nr_   r[   rY   g      @r/  ra   r\   )r'   invertr   rm   r0   rS   rN   rL   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2rN   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 )NrY   r^  rZ   r[   r]   i9WBi( i!  i}`gi  i     i0  i+  iX i  i  r  rp  rm  r_   r~   r  r   r   rr   c                      t        d       S r   )r   r  s   rL   rT   z"test_mod_inverse.<locals>.<lambda>  s    k!Q/ rN   c                  6    t        dt        j                        S r   )r   r'   rm   rS   rN   rL   rT   z"test_mod_inverse.<locals>.<lambda>  s    {1aff5 rN   c                  P    t        dt        d      dz  t        d      dz  z         S r  )r   r2   r3   rS   rN   rL   rT   z"test_mod_inverse.<locals>.<lambda>  s"    {1c!fai#a&!).CD rN   )r   r)   r'   r  rm   r?   r   rU   r  s   @rL   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ErN   c                      t        j                  t              t        j                  t        d      t        j                  z  z   k(  sJ y )Nr[   )r   r  r0   r'   rm   rS   rN   rL   !test_golden_ratio_rewrite_as_sqrtr    s0    t$a(????rN   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   rY   rg  )r   r  r0   r1   rS   rN   rL   (test_tribonacci_constant_rewrite_as_sqrtr    sS    %%d+4QtBxZ  4QtBxZ#88A=> > >rN   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__rS   rN   rL   Foor    s    	rN   r  rY   r   r\   c                       k  S rG   rS   foor   s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>      !c' rN   c                       kD  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>      #' rN   c                       kD  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>  r  rN   c                       k  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>  r  rN   c                       k  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>      !s( rN   c                       k\  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>      #( rN   c                       k\  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>  r"  rN   c                       k  S rG   rS   r  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>  r$  rN   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 r'  )r   r   r   r  r   NotImplementedselfothers     rL   __eq__z6test_comparisons_with_unknown_type.<locals>.Bar.__eq__$  s+    bS#s++%(!!rN   c                     | |k(   S rG   rS   r+  s     rL   __ne__z6test_comparisons_with_unknown_type.<locals>.Bar.__ne__+  s    u}$$rN   N)r  r  r  r  r.  r0  rS   rN   rL   Barr(    s    		"	%rN   r1  c                       k  S rG   rS   barr   s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>=  r  rN   c                       kD  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>>  r  rN   c                       kD  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>?  r  rN   c                       k  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>@  r  rN   c                       k  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>A  r"  rN   c                       k\  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>B  r$  rN   c                       k\  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>C  r"  rN   c                       k  S rG   rS   r3  s   rL   rT   z4test_comparisons_with_unknown_type.<locals>.<lambda>D  r$  rN   )r   r   r   r   r   r   r?   r   )r  ninfnrr1  r4  r  r   s        @@@rL   "test_comparisons_with_unknown_typer?    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*+,rN   c                  l    ddl m}  t        d      }t        t	        t
                    } | ||      sJ y )Nr   )	rel_checkz%905502432259640373/288230376151711744) sympy.core.tests.test_relationalrA  r   r   ro   r   )rA  rpifpis      rL   test_NumberSymbol_comparisonrE  G  s.    :
:
;C
b	
CS#rN   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 )Nr3  r`   rB  r  rD  )r   r   rH   rq   r   r*   r6   rS   rN   rL   test_Integer_precisionrG  N  s    GBK(.."444'"+.44:::ewr{399:cAAA5u345uPR9SSSSrN   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\   rD  r_   )finfonmantr   rH   r  )npvalratvalprecrr   rs   nps        rL   check_prec_and_relerrz2test_numpy_to_float.<locals>.check_prec_and_relerr]  se    xx$$q(%Lww$&D)AE19~dQhK 0000rN   gUUUUUU?r_   rY   rl   rD  c                  8    t         j                  d            S Nr  )r   	complex64rR  s   rL   rT   z%test_numpy_to_float.<locals>.<lambda>m  s    eBLL$67 rN   c                  8    t         j                  d            S rU  )r   
complex128rW  s   rL   rT   z%test_numpy_to_float.<locals>.<lambda>n  s    eBMM$$78 rN   )sympy.testing.pytestrI  sympy.externalrJ  float16r   float32float64
longdoubler   rM   r?   r   )rI  rJ  rS  rr   rs   rR  s        @rL   test_numpy_to_floatr`  V  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9rN   c                  n    t        d      } | j                         | k(  sJ | j                         | k(  sJ y r/  )r   r,   ceilingr(  s    rL   test_Integer_ceiling_floorrc  q  s1    
A779>>99;!rN   c                      t        j                         t         u sJ t        j                         t         u sJ t         t         z  t        j                  u sJ y rG   )r   r,   rb  r'   rV   rS   rN   rL   test_ComplexInfinityre  x  s@    99;#;;=C8quurN   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 rG   )r   r,   rb  r'   rV   r   rS   rN   rL   !test_Infinity_floor_ceiling_powerrg  ~  sZ    88:::<2quu9s7aeerN   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   rV   rS   rN   rL   test_One_powerri    s;    55"9==!%%155(((rN   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 )Nr^  r|   )r   r,   rb  rS   rN   rL   test_NegativeInfinityrk    sZ    C;;=RCC==?rc!!!C"9C"9??rN   c                      t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                      t          d k  S rG   r   rS   rN   rL   rT   z!test_issue_6133.<locals>.<lambda>  s    sTz rN   c                      t        d      d k  S )Nr~   r&   rS   rN   rL   rT   z!test_issue_6133.<locals>.<lambda>  s    qut| rN   c                      t         d k  S rG   rn  rS   rN   rL   rT   z!test_issue_6133.<locals>.<lambda>  
    rDy rN   c                      t         d kD  S rG   rn  rS   rN   rL   rT   z!test_issue_6133.<locals>.<lambda>  rq  rN   c                      t        d      d k  S r   r&   rS   rN   rL   rT   z!test_issue_6133.<locals>.<lambda>  s    qtd{ rN   rI  rS   rN   rL   test_issue_6133rt    s9    
9*+
9,-
9)*
9)*
9+,rN   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\   rY   )rC   r   r  numsr   Realr   	numeratordenominatorr   Integralr  s      rL   test_abcr{    s   aAa%&%a()(a#$#AAa%&%;;!==Aa'('Aa%&%a()(a'('a))*+*a'('rN   c                  F    t        d      t         j                  z  dk(  sJ y )Nr_   rZ   )r'   rm   rS   rN   rL   test_floordivr}    s    Q4<1rN   c                      t         j                   t         j                  u sJ t        d       t         j                  urt        d       dk(  sJ y )Nr   r^   )r'   rR   r   rS   rN   rL   test_negationr    sB    FF7aff!H9AFF"ayC'777'7rN   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 )Nrr   r   T)rc  )r)   r   r	   r!   r'   r   r  s    rL   test_exponentiation_of_0r    si    sAqb5CF??S!QsAqb5AEE>>a4155==rN   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 )Nrr   r\   r   r[   r_   r/  r   r  ra   r   r   r^   rl   rb   TF)r)   r'   r   r   r   r2   	enumerater    )rr   equal_valuesrw   values_mvalue_ivalue_jr   values_ns           rL   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rN   )rC   rv  rY  sympy.concrete.summationsr   r  r   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   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.factorialsr+   #sympy.functions.elementary.integersr,   %sympy.functions.combinatorial.numbersr-   &sympy.functions.elementary.exponentialr.   r/   (sympy.functions.elementary.miscellaneousr0   r1   (sympy.functions.elementary.trigonometricr2   r3   sympy.polys.domains.realfieldr4   sympy.printing.latexr5   sympy.printing.reprr6   sympy.simplifyr7   r8   r9   r:   sympy.polys.domains.groundtypesr;   sympy.utilities.decoratorr<   sympy.utilities.iterablesr=   rZ  r>   r?   r@   ri  rA   mpmath.rationalrB   rD   ro   r  r9  rM   rW   rz   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  rd  rg  rl  ro  rr  ru  rw  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r)  r+  r-  r0  r2  r4  r9  r<  r>  rB  rJ  rL  rP  rS  rV  rY  rv  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r?  rE  rG  r`  rc  re  rg  ri  rk  rt  r{  r}  r  r  r  rS   rN   rL   <module>r     sW     )  ' % & C C C C C C ! 0 0 " + & > 5 ; ; ? = 3 & % # @ @ : 9 2 = =    
3Urc
Ry)
$A)HV2r0<
2'%,
0(	1.`612+"+@dN& 	I 	I-6

"&Vr(>! 2A 2AjD6&'5T@
.,!Hh$V-.`E:,:<0*0*0*:7
'
0- 'K//
G('
B6"r%	>&-R-N" C C,&)&9Ix:?B
5,! # #((#L#+@

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