o
    *Î®c$  ã                   @   sŽ  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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,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z;m<Z< d dl=m>Z>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dl%mHZHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dlQmRZRmSZSmTZT d dlUmVZV d dlWmXZX d dlUZUd dlm Z  e0ddd ZYeZe ƒZ[eZeƒZ\d!d"„ Z]d#d$„ Z^d%d&„ Z_d'd(„ Z`d)d*„ Zad+d,„ Zbd-d.„ Zcd/d0„ Zdd1d2„ Zed3d4„ Zfd5d6„ Zgd7d8„ Zhd9d:„ Zid;d<„ Zjd=d>„ Zkd?d@„ ZldAdB„ ZmdCdD„ ZneNdEdF„ ƒZodGdH„ ZpdIdJ„ ZqdKdL„ ZrdMdN„ ZsdOdP„ ZtdQdR„ ZudSdT„ ZvdUdV„ ZwdWdX„ ZxdYdZ„ ZyeTd[d\„ ƒZzd]d^„ Z{d_d`„ Z|dadb„ Z}dcdd„ Z~dedf„ Zdgdh„ Z€didj„ Zdkdl„ Z‚dmdn„ Zƒdodp„ Z„dqdr„ Z…dsdt„ Z†dudv„ Z‡dwdx„ Zˆdydz„ Z‰d{d|„ ZŠd}d~„ Z‹dd€„ ZŒdd‚„ Zdƒd„„ ZŽd…d†„ Zd‡dˆ„ Zd‰dŠ„ Z‘d‹dŒ„ Z’ddŽ„ Z“dd„ Z”d‘d’„ Z•d“d”„ Z–d•d–„ Z—d—d˜„ Z˜d™dš„ Z™d›dœ„ Zšddž„ Z›dŸd „ Zœd¡d¢„ Zd£d¤„ ZžeNd¥d¦„ ƒZŸd§d¨„ Z d©dª„ Z¡d«d¬„ Z¢d­d®„ Z£d¯d°„ Z¤d±d²„ Z¥d³d´„ Z¦dµd¶„ Z§d·d¸„ Z¨d¹dº„ Z©eRd»d¼„ ƒZªd½d¾„ Z«d¿dÀ„ Z¬dÁdÂ„ Z­dÃdÄ„ Z®dÅdÆ„ Z¯dÇdÈ„ Z°dÉdÊ„ Z±dËdÌ„ Z²dÍdÎ„ Z³dÏdÐ„ Z´dÑdÒ„ ZµdÓdÔ„ Z¶dÕdÖ„ Z·d×dØ„ Z¸dÙdÚ„ Z¹dÛdÜ„ ZºdÝdÞ„ Z»dßdà„ Z¼dádâ„ Z½dãdä„ Z¾dådæ„ Z¿dçdè„ ZÀdédê„ ZÁdëdì„ ZÂdídî„ ZÃdïdð„ ZÄdñdò„ ZÅdódô„ ZÆdõdö„ ZÇd÷dø„ ZÈdùdú„ ZÉdûdü„ ZÊdS )ýé    N)ÚSum)Ú
EulerGammaÚCatalanÚTribonacciConstantÚGoldenRatio)ÚTuple)Ú	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)ÚPow)ÚGeÚGtÚLeÚLt©ÚS)ÚDummyÚSymbol)Úsympify)Ú	factorial)Ú	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                 C   s   | |ko	| j |j kS ©N)Ú_prec©ÚaÚb© rG   úD/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_numbers.pyÚsame_and_same_prec*   s   rI   c                   C   s<   t dd ttdd„ ƒ t dd tjtj tju sJ ‚d S )NT)Údividec                   S   s   t jt j S rB   )r$   ÚZerorG   rG   rG   rH   Ú<lambda>1   ó    ztest_seterr.<locals>.<lambda>F)r   r;   Ú
ValueErrorr$   rK   ÚNaNrG   rG   rG   rH   Útest_seterr/   s   

rP   c                  C   st  t j} tddƒ}tddƒ}| |  dksJ ‚| | t jksJ ‚| | tddƒks)J ‚||  tddƒks4J ‚|| dks<J ‚|| tdd	ƒksGJ ‚||  tddƒksRJ ‚|| tddƒks]J ‚|| dkseJ ‚td
ƒ}|d dksqJ ‚|d  d¡dks|J ‚|d  d¡dks‡J ‚tddd}tt tu s•J ‚tt tu sJ ‚dt tu s¥J ‚|d tu s­J ‚tddƒ}tddƒ}|| }t|t|ƒ dƒ}||krÎ|j	|j	ksÐJ ‚tddƒ}|| }tt|ƒ| dƒ}||krì|j	|j	ksîJ ‚t j
}	|	tdƒ dksûJ ‚tddƒtdƒ dks	J ‚tdƒtddƒ dksJ ‚tddƒ tdƒ¡dks&J ‚tdƒ tdƒ¡tdƒks6J ‚d tdƒ tdƒksCJ ‚td!ƒ}tdƒ}
t||
 ƒtksVJ ‚||
 tdƒksaJ ‚tdƒtddƒ tddƒksrJ ‚td!dƒtdƒ tddƒksƒJ ‚tdƒd dksŽJ ‚tdƒ td"ƒ¡tdƒksžJ ‚td"ƒd tdƒks«J ‚dtdƒ tdƒks¸J ‚d S )#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   rC   rK   ÚfloatÚ__rmod__r   Útype)ÚxÚyÚzrE   r[   ÚrÚfÚmÚansÚsrF   rG   rG   rH   Útest_mod6   s^   




 "" rr   c                     sn
  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d„ ƒ ttd	d„ ƒ t tdƒdƒtddƒksKJ ‚t dtdƒƒtddƒksYJ ‚t td
ƒtdƒƒttdƒtdƒƒksmJ ‚t tdƒtd
ƒƒttdƒtdƒƒksJ ‚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sBJ ‚t dtd
ƒƒttdƒtdƒƒksUJ ‚t dtd
ƒƒttdƒtdƒƒkshJ ‚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sSJ ‚t tdƒtdƒƒttdƒtdƒƒkshJ ‚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sRJ ‚t tdƒdƒttdƒtdƒƒkseJ ‚t dtdƒƒd dkssJ ‚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s8J ‚t tdƒtd,ƒƒtdd-ƒksIJ ‚t tdƒtd.ƒƒt dd.ƒksZJ ‚t td/ƒtd0ƒƒtd1d2ƒkskJ ‚t tdƒtj	tj	fksyJ ‚t tj	dƒtj	tj	fksˆJ ‚t dtj	ƒtj	tj	fks—J ‚d3tfd3tfd4d5d6g} t
d7ƒ‰ d8d9„ | D ƒ}d:d9„ tdd1ƒD ƒ| ks¼J ‚d;d<d4d3t fd3t fg} d=d9„ | D ƒ}d>d9„ tdd1ƒD ƒ| ksßJ ‚‡ fd?d9„tdd1ƒD ƒ|ksðJ ‚t td@ƒtdƒƒt d@dƒksJ ‚t td@ƒ tdƒƒt dAdƒksJ ‚t tdBƒtdCƒƒt dBdCƒks$J ‚t tdƒtdDƒƒt ddDƒks5J ‚d S )ENé   é   rT   rR   éþÿÿÿr   c                   S   s   t tjtjƒS rB   )Údivmodr$   rK   rG   rG   rG   rH   rL   ~   ó    ztest_divmod.<locals>.<lambda>c                   S   s   t tjtjƒS rB   )rv   r$   ÚOnerK   rG   rG   rG   rH   rL      rw   Ú2z3/2Ú1z1/2Ú0z3.5rb   z1/3Ú6z1/10Ú20ú.1é   ú0.1rW   r`   z0.5ç333333Ó?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)éýÿÿÿ)ru   rT   gÍÌÌÌÌÌÀgš™™™™™ÀgÍÌÌÌÌÌ Àéøÿÿÿg      ÀrQ   g      à¿éÿÿÿÿ)r   r   )r   rT   )r   rW   Úinfc                 S   ó   g | ]	}t tt|ƒƒ‘qS rG   ©ÚtupleÚmaprg   ©Ú.0ÚirG   rG   rH   Ú
<listcomp>Å   ó    ztest_divmod.<locals>.<listcomp>c                 S   s   g | ]}t |tƒ‘qS rG   ©rv   r   r   rG   rG   rH   r’   Æ   s    )r   ru   )r   r‰   c                 S   r‹   rG   rŒ   r   rG   rG   rH   r’   È   r“   c                 S   s   g | ]}t |t ƒ‘qS rG   r”   r   rG   rG   rH   r’   É   ó    c                    s   g | ]}t |ˆ  ƒ‘qS rG   )rv   r   ©ÚOOrG   rH   r’   Ê   r•   g      @g      ÀrV   rU   g      "@)rv   r$   r   rK   rx   r;   ÚZeroDivisionErrorÚstrr   rO   rg   Úrange)rp   ÚANSrG   r–   rH   Útest_divmodz   sž    "(((((((*&&&&&**** *&&&&&&***&&&&&*&&&&&&&&  """""$"&rœ   c                      sÔ  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s6J ‚t ddƒdks?J ‚t ddƒdksHJ ‚t ddƒdksQJ ‚t ddƒdksZJ ‚t ddƒdkscJ ‚t ddƒdkslJ ‚t ddƒdksuJ ‚t ddƒdks~J ‚t ddƒdks‡J ‚t dd	ƒdksJ ‚t d
dƒdks™J ‚t d
d	ƒdks¢J ‚t g d¢Ž dks¬J ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ tdƒD ]‰ tt‡ fdd„ƒ qÌtdƒD ]‰ tt‡ fdd„ƒ qÜd S )Nr   rT   rc   r‰   rt   rW   rR   é   r‡   éùÿÿÿrQ   ©rd   é   é   rd   c                   S   s   t ƒ S rB   ©r   rG   rG   rG   rH   rL   å   s    ztest_igcd.<locals>.<lambda>c                   S   ó   t dƒS ©NrW   r¢   rG   rG   rG   rH   rL   æ   ó    c                   S   s
   t dd ƒS ©Nr   r¢   rG   rG   rG   rH   rL   ç   ó   
 c                   S   ó
   t ddƒS ©NrT   gš™™™™™@r¢   rG   rG   rG   rH   rL   è   r§   )gÍÌÌÌÌŒF@rT   r¡   c                      ó   t ˆ Ž S rB   r¢   rG   ©ÚargsrG   rH   rL   ê   r¥   )rT   rW   Nc                      rª   rB   r¢   rG   r«   rG   rH   rL   ì   r¥   )r   r;   Ú	TypeErrorrN   r9   rG   rG   r«   rH   Ú	test_igcdÑ   s8   ÿr®   c                  C   sx   t dƒt dƒ} }t| |ƒdksJ ‚t dƒ}t| | || ƒ|ks#J ‚t| dd ƒdks.J ‚tddƒtddƒks:J ‚d S )Né'  é'  rT   éd   rd   éè  rW   )r)   r   )rE   rF   ÚcrG   rG   rH   Útest_igcd_lehmerï   s   r´   c                  C   sR   t dd d dd d ƒdksJ ‚ttdƒƒttdƒƒ} }t | |ƒdks'J ‚d S )NrW   r±   rT   éc   r¯   r°   )r   Úintr)   rD   rG   rG   rH   Ú
test_igcd2ü   s   "r·   c                   C   sÒ   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s6J ‚t ddƒdks?J ‚t ddƒdksHJ ‚t g d	¢Ž d
ksRJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )Nr   rT   rW   rt   é   é   rc   é8   rŸ   é<   c                   S   r¨   )Ng333333 @rc   ©r   rG   rG   rG   rH   rL     r§   ztest_ilcm.<locals>.<lambda>c                   S   r¨   )Nrt   gffffff@r¼   rG   rG   rG   rH   rL     r§   c                   S   r£   )Nrt   r¼   rG   rG   rG   rH   rL     r¥   )r   r;   rN   r­   rG   rG   rG   rH   Ú	test_ilcm  s   r½   c                   C   s^   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 ‚d S )NrW   rQ   )r‰   rT   rT   rd   rs   )r‰   rT   rW   r±   iÔ  )iìÿÿÿrT   rR   r   )r   rT   r   rT   )rT   r   rT   )r   rG   rG   rG   rH   Útest_igcdex  s
   r¾   c                 C   s8   | j | jt| j ƒt| jƒf|j |jt|j ƒt|jƒfkS rB   )r[   Úqri   rD   rG   rG   rH   Ú_strictly_equal  s   ÿrÀ   c                    sÄ   ˆ 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ƒƒsCJ ‚t|ˆ tdƒƒƒsNJ ‚t|ˆ |ƒƒsWJ ‚tt‡ fdd	„ƒ d
S )z=
    Tests that are common between Integer and Rational.
    r   rT   r‰   rz   z-1rd   Ú10c                      s   ˆ t dƒƒS )Nrj   )r&   rG   ©ÚclsrG   rH   rL   1  rM   z$_test_rational_new.<locals>.<lambda>N)	r$   rK   rx   ÚNegativeOner   rÀ   r¶   r;   r­   )rÃ   r‘   rG   rÂ   rH   Ú_test_rational_new   s   rÅ   c                   C   sX   t tƒ ttdƒtjƒsJ ‚ttdƒtdƒƒsJ ‚ttdd„ ƒ ttdƒƒdks*J ‚dS )	z&
    Test for Integer constructor
    çÍÌÌÌÌÌì?g      %@rd   c                   S   r£   )Nz10.5©r   rG   rG   rG   rH   rL   <  r¥   z"test_Integer_new.<locals>.<lambda>z1.99999999999999999999rT   N)rÅ   r   rÀ   r$   rK   r;   rN   r   rG   rG   rG   rH   Útest_Integer_new4  s
   rÈ   c                  C   sÖ  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s3J ‚dt| | ƒks<J ‚tddƒttjtddƒƒksLJ ‚tddƒtdtddƒƒks[J ‚tddƒ}tdƒ|kshJ ‚tdƒ |ksqJ ‚tdƒ d¡|ks|J ‚tdd	ƒ d¡|ksˆJ ‚td
ƒ d¡|ks“J ‚tddƒtddƒksŸJ ‚tddƒtddƒks«J ‚tt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 	d¡ƒ 	d¡t 	d¡ksúJ ‚t
tdd„ ƒ t
tdd„ ƒ zddl}t| dd¡ƒtjksJ ‚W n
 ty&   Y nw ttddƒƒtddƒks6J ‚ttddƒƒtddƒksEJ ‚tddddjdksRJ ‚tdddd}|jdksaJ ‚|jdksiJ ‚dS )z("
    Test for Rational constructor
    rT   rW   rQ   rR   z3/4z-3/4z.76r   é   z19/25ç      ð?g      @rY   z1e2/1e-2r°   z1 234éÒ  z1/1 234r‰   r   r±   c                   S   r£   )Nz3**3©r   rG   rG   rG   rH   rL   ^  r¥   z#test_Rational_new.<locals>.<lambda>c                   S   r£   )Nz	1/2 + 2/3rÌ   rG   rG   rG   rH   rL   _  r¥   Nr¸   )Úgcdéüÿÿÿru   )rÅ   r   r$   re   r   Úlimit_denominatorr   ÚComplexInfinityr   Úevalfr;   r­   Ú	fractionsÚFractionÚImportErrorr>   r7   r¿   r[   )Ún1Ún3_4rÒ   ÚnrG   rG   rH   Útest_Rational_new@  sL    
" ÿrØ   c                  C   s:  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 s7J ‚t dƒjtu s@J ‚t d	ƒjtu sIJ ‚t d
ƒjtu sRJ ‚t dƒjtu s[J ‚ttdd„ ƒ tt	dd„ ƒ tddƒ} t | ƒ| u svJ ‚g d¢}t
t
 tt
t
g}t||ƒD ]\}} t |ƒ| u sšJ |t |ƒ| fƒ‚q‡dS )z&"
    Test for Number constructor
    rT   rW   i’ýÿÿrS   rQ   g333333@rz   ry   z-622z5/3z5.3c                   S   r£   )Nr.   )r   rG   rG   rG   rH   rL   €  r¥   z!test_Number_new.<locals>.<lambda>c                   S   s   t tƒS rB   )r   r.   rG   rG   rG   rH   rL     r¥   ©rŠ   z-infr   ÚiNFz+infN)r   r$   rx   Ú	__class__r   r   r   r;   rN   r­   r   r   Úzip)rE   ÚuÚvr‘   rG   rG   rH   Útest_Number_newq  s&   
 ÿrß   c                     s    t dƒ‰ t dƒ} t dƒ}ˆ | k sJ ‚ˆ | ksJ ‚|ˆ k sJ ‚| |ks$J ‚| |ks*J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )	NrT   rW   r‡   c                      ó
   ˆ t jk S rB   ©r$   rO   rG   ©rÕ   rG   rH   rL   •  r§   z!test_Number_cmp.<locals>.<lambda>c                      ó
   ˆ t jkS rB   rá   rG   râ   rG   rH   rL   –  r§   c                      ó
   ˆ t jkS rB   rá   rG   râ   rG   rH   rL   —  r§   c                      ó
   ˆ t jkS rB   rá   rG   râ   rG   rH   rL   ˜  r§   )r   r;   r­   )Ún2Ún3rG   râ   rH   Útest_Number_cmpŠ  s   rè   c                     sT  t ddƒ‰ t ddƒ} t ddƒ}t ddƒ}t dƒ}t dƒ}t dƒ}t dƒ}||k s*J ‚||k s0J ‚||k s6J ‚||k s<J ‚||ksBJ ‚ˆ d |  dk sLJ ‚ˆ | | dk sVJ ‚||k s\J ‚| |k sbJ ‚ˆ | k shJ ‚|ˆ ksnJ ‚|ˆ k rtJ ‚t dƒdkr|J ‚t dƒdk s„J ‚tt‡ fd	d
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ d S )NrT   rR   rQ   rW   rÎ   r   r‡   r‰   c                      rà   rB   rá   rG   râ   rG   rH   rL   µ  r§   z#test_Rational_cmp.<locals>.<lambda>c                      rã   rB   rá   rG   râ   rG   rH   rL   ¶  r§   c                      rä   rB   rá   rG   râ   rG   rH   rL   ·  r§   c                      rå   rB   rá   rG   râ   rG   rH   rL   ¸  r§   )r   r;   r­   )ræ   rç   Ún4Ún5Ún6Ún7Ún8rG   râ   rH   Útest_Rational_cmp›  s4   



rî   c                  C   sf  dd„ } dt jdtdƒf}t|dƒD ]
\}}||ksJ ‚q|D ]}||v s'J ‚qt jjs.J ‚tdƒtdƒ }| | ¡ tdƒƒsAJ ‚| td  ¡ td	ƒƒsNJ ‚tdƒtd
ƒ }| | ¡ tdƒƒsaJ ‚t dƒt dƒkdu smJ ‚d}tdƒ}tdƒ}tdƒ}	tdtdƒddfƒ}
t|ƒ}||  kr |
  kr |  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d„ ƒ tdƒjd u sJ ‚tdƒjdu s)J ‚tdƒjdu s3J ‚tdƒjdu s=J ‚tdƒjd u sGJ ‚tdƒjdu sQJ ‚tdƒjd u s[J ‚tdƒjd u seJ ‚tdƒ d!¡jd u srJ ‚tdƒ d!¡jd u sJ ‚d"d#„ }|tƒ |dt ƒ |td$dd%ƒ d&}ttd'd(ƒtd)d(ƒƒs¥J ‚ttt|ƒd(ƒt|d(ƒƒsµJ ‚tt|d(ƒtt|ƒd*ƒƒsÅJ ‚ttt|ƒƒt|d(ƒƒsÔJ ‚tt|ƒt|d(ƒƒsáJ ‚td+d,ƒd+ksëJ ‚td-d,ƒdksõJ ‚ttd.d(ƒƒd+ksJ ‚ttd/d„ ƒ td0ƒtd1ƒksJ ‚td2ƒtd3ƒksJ ‚td0ƒtd1ƒks)J ‚td4ƒtd5ƒks4J ‚td6ƒtd7ƒks?J ‚td8ƒtd9ƒksJJ ‚td:ƒtd9ƒksUJ ‚td;ƒtd9ƒks`J ‚td<ƒtd=ƒkskJ ‚ttd>d„ ƒ ttd?d„ ƒ td@d(ƒtd$dƒks†J ‚tdAd(ƒtd+dƒks“J ‚tdBd(ƒtd$dƒks J ‚tdCd(ƒtdDdƒks­J ‚ttdEd„ ƒ ttdFd„ ƒ ttdGd„ ƒ ttdHd„ ƒ tdƒ}tdIƒ|ksÖJ ‚tdJƒ|ksßJ ‚tdKƒ|ksèJ ‚tdLƒ|ksñJ ‚tdƒ|ksúJ ‚tdƒ|ksJ ‚tdd(ƒtdMd(ƒksJ ‚tdƒtdNƒksJ ‚tt jƒ|ks%J ‚tt jƒtdNƒks1J ‚tt dO¡dƒtd@dƒksAJ ‚tt dP¡ƒt j	u sNJ ‚tt dQ¡ƒt j
u s[J ‚tt dR¡ƒt ju shJ ‚dS  tdTƒ¡dUkstJ ‚dV  tt dW¡dWƒ¡dXks„J ‚tdYƒtdYƒksJ ‚tdYdZƒtdYdZƒksœJ ‚tt jd[ d!d\}tt jd[ dd\}tt jd[ dd]}tt jd[ d^d]}|j|jksÉJ ‚|j|jkrÒJ ‚|j|jkrÛJ ‚ttd_d„ ƒ ttd`d„ ƒ ttdad„ ƒ ttdbd„ ƒ tttdcƒt dc¡ƒsJ ‚ttt!ƒt! ¡ ƒsJ ‚g dd¢}t"t" t#t"t"g}t$||ƒD ]\}}t|ƒ|u s/J ‚q"d S )eNc                 S   s&   t dƒ}| | |   k o|k S   S )Nz1.0E-15©r   )rE   rF   r@   rG   rG   rH   Úeq¼  s   ztest_Float.<locals>.eqr   rV   rW   rQ   rt   r‰   z0.31830988618379067rR   r   r   rY   F)r   ì   33ffÌL™ éÌÿÿÿé5   )r   Ú13333333333333rò   ró   )r   Ú0x13333333333333rò   ró   )r   Ú26666666666666iËÿÿÿé6   rñ   rò   ró   g333333ó?é…ÿÿÿé8þÿÿru   rT   éëüÿÿr‡   c                   S   r¨   )N)r   rc   rT   rQ   Ú rï   rG   rG   rG   rH   rL   å  r§   ztest_Float.<locals>.<lambda>z0.0TrX   c                 S   sT   |   ¡ | kdu s
J ‚|   ¡ | kdu sJ ‚| |   ¡ kdu sJ ‚| |   ¡ kdu s(J ‚d S ©NFT)rÑ   ©rE   rG   rG   rH   Úteq÷  ó   ztest_Float.<locals>.teqrZ   ©Úevaluatel   Ò
>V3&¥Z
 rs   rû   Ú12r    ç      À?é   ç       @z.12500000000000001c                   S   r¨   )Nr  rû   rï   rG   rG   rG   rH   rL     r§   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                   S   r£   )NÚ_1rï   rG   rG   rG   rH   rL     r¥   c                   S   r£   )NÚ_infrï   rG   rG   rG   rH   rL     r¥   r~   z.125z.100z2.0ry   c                   S   r¨   )Nz12.3d-4rû   rï   rG   rG   rG   rH   rL   '  r§   c                   S   r¨   )Ngš™™™™™(@rû   rï   rG   rG   rG   rH   rL   (  r§   c                   S   r£   )NÚ.rï   rG   rG   rG   rH   rL   )  r¥   c                   S   r£   )Nz-.rï   rG   rG   rG   rH   rL   *  r¥   z-0z.0z-.0z-0.0r{   rÊ   r€   r   ÚInfinityz	-Infinityz{:.3f}gsž	Mò@z4.237z{:.35f}é(   z%3.14159265358979323846264338327950288z0.73908513321516064100000000é   rd   ©Údps©Ú	precisionr÷   c                   S   ó   t ddddS )Nú1.23rQ   rd   ©r  r  rï   rG   rG   rG   rH   rL   R  rw   c                   S   r  )Nr  rû   rd   r  rï   rG   rG   rG   rH   rL   S  rw   c                   S   r  )Nr  rQ   rû   r  rï   rG   rG   rG   rH   rL   T  rw   c                   S   s   t ddddS )Nr  rû   r  rï   rG   rG   rG   rH   rL   U  rw   é    rÙ   )%r$   rK   r   r9   Úis_zerorÑ   r   r¶   Ú_mpf_rO   r  ÚNegativeInfinityr;   rN   Ú	is_finiteÚis_negativeÚis_positiveÚis_infiniteÚ
is_integerÚis_rationalÚis_irrationalr,   r×   r.   rI   r   r™   rg   r   rx   ÚdecimalÚDecimalÚformatr   r   r   rÜ   )rð   Úzerosr‘   Újrl   rE   r=   Úx_strÚx_0xstrÚx2_strÚx_hexÚx_decrþ   ÚzerorF   r[   r¿   rÝ   rÞ   rG   rG   rH   Ú
test_Float»  sæ   4    
ÿ
ÿ
ÿÿr-  c                   C   s\   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 ‚d S )NrV   Fr   )r$   ÚfalserG   rG   rG   rH   Útest_zero_not_falseb  s   r/  c                  C   s„   dd l } d| j_|  ¡ }t|dƒt|jdƒ  kr!t d¡ks$J ‚ J ‚d| j_t|dƒt|jdƒ  kr=t d¡ks@J ‚ J ‚d S )Nr   r±   rX   )ÚmpmathÚmpr  r   r   r  rÑ   )r0  Úmp_pirG   rG   rH   Útest_float_mpfj  s   04r3  c                  C   s0   t ddt d¡ƒ} t| dƒt d¡ksJ ‚d S )Nr±   r  )r0   r   rÑ   r   )ÚrepirG   rG   rH   Útest_Float_RealElementw  s   r5  c                  C   s*   t t d¡ƒ} tt| ƒt| dƒƒsJ ‚d S )Né€   rû   )r™   r   rÑ   rI   r   )rq   rG   rG   rH   Ú'test_Float_default_to_highprec_from_str~  s   r7  c                  C   s   t dƒ} | d jsJ ‚d S )Ngš™™™™™	@rW   )r   Úis_Floatrý   rG   rG   rH   Útest_Float_evalƒ  s   r9  c                  C   s¸   t ddƒ} t ddƒ}| |  dksJ ‚| |   dksJ ‚tj|  |  dks&J ‚tj|  |   dks2J ‚|| dks:J ‚||  dksCJ ‚tj| | dksNJ ‚tj| |  dksZJ ‚d S )NrZ   rd   r€   r   )r   r$   rK   rD   rG   rG   rH   Útest_Float_issue_2107ˆ  s   

r:  c                  C   sJ   ddl m}  dtdƒ }| |ƒ}| ¡ |ksJ ‚| |¡ ¡ dks#J ‚d S )Nr   )Úto_number_fieldrT   rW   )Úsympy.polys.numberfieldsr;  r,   Úas_exprÚminpolyÚexpand)r;  rE   rF   rG   rG   rH   Útest_issue_14289—  s
   r@  c                  C   s    t dƒ} t dƒ}| |ksJ ‚d S )N)r   Ú1Lr   rT   )r   rz   r   rT   rï   rD   rG   rG   rH   Útest_Float_from_tuple   s   rB  c                   C   sÜ  t dksJ ‚dt  t u sJ ‚dt ksJ ‚t t  ksJ ‚t tdƒd ks%J ‚t d t u s-J ‚dt  t u s5J ‚dt  d t u s?J ‚tjt  dksHJ ‚tjt   t u sRJ ‚t  d t  u s\J ‚t t  t u sdJ ‚t  t d  t  u spJ ‚dt  dksxJ ‚dt   dksJ ‚dt  dks‰J ‚t d tu s‘J ‚dt  tu s™J ‚t t  tu s¡J ‚t t   tu sªJ ‚t  t  tu s³J ‚t  t   tu s½J ‚t t  tu sÅJ ‚t t   t u sÎJ ‚t  t  t  u sØJ ‚t  t   tu sâJ ‚t t   tu sëJ ‚t  t  tu sôJ ‚t t  t u süJ ‚t  t  tu sJ ‚t t   tu sJ ‚t  t   t  u sJ ‚t t  t u s%J ‚t  t  t  u s0J ‚t t   t  u s;J ‚t  t   t u sFJ ‚t d t u sOJ ‚t  d t  u sZJ ‚dt  dkscJ ‚dt   dksmJ ‚t d tu svJ ‚t  d tu s€J ‚dt  tu s‰J ‚dt   tu s“J ‚t d t u sœJ ‚t  d t  u s§J ‚dt  t u s°J ‚dt   t  u s»J ‚t d t u sÄJ ‚t  d t  u sÏJ ‚dt  t  u sÙJ ‚dt   t u sãJ ‚t d t u sìJ ‚t  d t  u s÷J ‚t d t  u sJ ‚t  d t u sJ ‚t d t u sJ ‚t  d t  u sJ ‚t d t  u s)J ‚dt  dks2J ‚dt   dks<J ‚dt  dksEJ ‚dt   dksOJ ‚dt  t u sXJ ‚dt   t  u scJ ‚dt  t  u smJ ‚dt   t u swJ ‚dt  t u s€J ‚dt  t  u sŠJ ‚dt  t u s“J ‚dt  t  u sJ ‚dt   t  u s¨J ‚dt   t u s²J ‚dt   t  u s½J ‚dt   t u sÇJ ‚tdƒt  t u sÒJ ‚tdƒt  t  u sÞJ ‚t t t  t ksêJ ‚t  t t t ksöJ ‚t tdƒ tkrt tdƒ t u s
J ‚t  tdƒ tkrt  tdƒ t  u s!J ‚t tdƒ tkr3t tdƒ t u s5J ‚t  tdƒ tkrJt  tdƒ t  u sLJ ‚t td	ƒ tkr_t td	ƒ t  u saJ ‚t  td	ƒ tkrut  td	ƒ t u swJ ‚t td	ƒ tkrŠt td	ƒ t  u sŒJ ‚t  td	ƒ tkr t  td	ƒ t u s¢J ‚t tdƒ tkr´t tdƒ t u s¶J ‚t  tdƒ tkrËt  tdƒ t  u sÍJ ‚t tdƒ tkrßt tdƒ t u sáJ ‚t  tdƒ tkröt  tdƒ t  u søJ ‚tdƒt  tkr
tdƒt  t u sJ ‚tdƒt   tkr!tdƒt   t  u s#J ‚tdƒt  dks.J ‚tdƒt   dks:J ‚td	ƒt  tkrMtd	ƒt  t  u sOJ ‚td	ƒt   tkrctd	ƒt   t u seJ ‚td	ƒt  dkspJ ‚td	ƒt   dks|J ‚tdƒt  t u s‡J ‚tdƒt   t  u s”J ‚tdƒt  t  u s J ‚tdƒt   t u s¬J ‚t tt ƒksµJ ‚t tt ƒkd
u sÀJ ‚t	tt ƒƒtu sËJ ‚t  tt  ƒksÖJ ‚t  tt  ƒkd
u sãJ ‚t	tt  ƒƒtu sïJ ‚t
dƒtu søJ ‚td tu sJ ‚dt tu s
J ‚tt  tu sJ ‚tt   tu sJ ‚tt  tu s&J ‚tt   tu s0J ‚tt  tu s9J ‚tt   tu sCJ ‚tt  tu sLJ ‚tt   tu sVJ ‚t  tj tu saJ ‚t t tu sjJ ‚t  t tu stJ ‚t t tu s}J ‚t  t tu s‡J ‚t t tu sJ ‚t  t tu sšJ ‚t t tu s£J ‚t  t tu s­J ‚tjt  tu s·J ‚t jd
u s¿J ‚tt tƒd
u sÉJ ‚tjt  dksÓJ ‚tj t  dksÞJ ‚tjt   dkséJ ‚tj t   dksõJ ‚tjt  t u sÿJ ‚tj t  t  u sJ ‚tjt   t  u sJ ‚tj t   t u s#J ‚tjt tu s-J ‚tjt   t u s8J ‚tjt tu sBJ ‚tjt tu sLJ ‚ttj tu sVJ ‚ttj tu s`J ‚t  tj t  u slJ ‚d S )NrT   rj   rQ   rW   r   éûÿÿÿrt   ru   r‰   Fr   rÊ   g      ð¿)r   r&   r$   re   r   r   rg   r  Ú_ninfri   r   rK   Úis_RationalÚ
isinstancer   rx   rG   rG   rG   rH   Útest_Infinity¦  s&  (.(.*,*,(.(.(.*,rG  c                  C   s  t dƒ} t|  tksJ ‚ttd  tu sJ ‚tdt  t u s!J ‚t |  t ks+J ‚t td  t u s7J ‚t dt  tu sBJ ‚dtj tju sLJ ‚tt tju sUJ ‚tt tju s^J ‚td tju sgJ ‚tt tju spJ ‚tt tju syJ ‚ttj tju sƒJ ‚t t tju sJ ‚t t tju s—J ‚t tj tju s¢J ‚t d tju s¬J ‚t t tju s¶J ‚t t tju sÀJ ‚t tj tju sËJ ‚tt ƒtu sÔJ ‚tdd„ tt tjfD ƒƒsäJ ‚t d t u sîJ ‚t d tu s÷J ‚ttj	ƒtu sJ ‚d S )	Nrj   rT   r‰   r   c                 s   s     | ]}t  | tju V  qd S rB   )r   r$   rO   r   rG   rG   rH   Ú	<genexpr>X  s   € z"test_Infinity_2.<locals>.<genexpr>rQ   rW   )
r&   r   r   r$   rO   r  rD  ÚabsÚallrÐ   ©rj   rG   rG   rH   Útest_Infinity_2?  s4    rL  c                   C   s¤   t dƒt tu s
J ‚t dƒt tu sJ ‚t dƒt tu sJ ‚t dƒt tu s(J ‚tt dƒ tu s2J ‚tt dƒ tu s<J ‚tt dƒ tu sFJ ‚tt dƒ tu sPJ ‚d S r¦   )r   r  r   rD  rG   rG   rG   rH   Útest_Mul_Infinity_Zero^  s   rM  c                   C   sœ   dt j tu s	J ‚dtdƒ tu sJ ‚dt j tu sJ ‚dtdƒ tu s&J ‚t jd tu s/J ‚tdƒd tu s9J ‚dt j tu sBJ ‚dtdƒ tu sLJ ‚d S )NrT   r   r‰   )r$   rK   r   r   r   rG   rG   rG   rH   Útest_Div_By_Zeroi  s   rN  c                  C   sò  t tksJ ‚t tk rJ ‚tdƒt k sJ ‚ttksJ ‚ttk r J ‚tdƒtk s(J ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttd	d„ ƒ ttd
d„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t t  k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 kdkrÎt  t kdksÐJ ‚t t k dksØJ ‚t t kdksàJ ‚t  t  k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kdks J ‚t  t ks)J ‚t tks0J ‚tdƒ} tdddd}| t k t| t ƒksGJ ‚|t k r]|t  kr]|t kr]|t  ks_J ‚t |krwt |krwt |k dkrwt |kdksyJ ‚t  |kdkr•t  |kdkr•t  |k r•t  |ks—J ‚t | k tt | ƒkr«t | k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  | ktt  | ƒksÝJ ‚t  | kt	t  | ƒkrõt  | kt
t  | ƒks÷J ‚d S )Nr‡   c                   S   ó   t tk S rB   ©r   r   rG   rG   rG   rH   rL   ~  r¥   z+test_Infinity_inequations.<locals>.<lambda>c                   S   ó   t tkS rB   rP  rG   rG   rG   rH   rL     r¥   c                   S   ó   t tkS rB   rP  rG   rG   rG   rH   rL   €  r¥   c                   S   ó   t tkS rB   rP  rG   rG   rG   rH   rL     r¥   c                   S   s
   t  tk S rB   rP  rG   rG   rG   rH   rL   ‚  r§   c                   S   s
   t  tkS rB   rP  rG   rG   rG   rH   rL   ƒ  r§   c                   S   s
   t  tkS rB   rP  rG   rG   rG   rH   rL   „  r§   c                   S   s
   t  tkS rB   rP  rG   rG   rG   rH   rL   …  r§   c                   S   rO  rB   ©r   r   rG   rG   rG   rH   rL   ‡  r¥   c                   S   rQ  rB   rT  rG   rG   rG   rH   rL   ˆ  r¥   c                   S   rR  rB   rT  rG   rG   rG   rH   rL   ‰  r¥   c                   S   rS  rB   rT  rG   rG   rG   rH   rL   Š  r¥   c                   S   s
   t t k S rB   rT  rG   rG   rG   rH   rL   ‹  r§   c                   S   s
   t t kS rB   rT  rG   rG   rG   rH   rL   Œ  r§   c                   S   s
   t t kS rB   rT  rG   rG   rG   rH   rL     r§   c                   S   s
   t t kS rB   rT  rG   rG   rG   rH   rL   Ž  r§   Frj   rF   T©ÚfiniterA   )r   r   r*   r  r;   r­   r&   r"   r    r!   r   )rj   rF   rG   rG   rH   Útest_Infinity_inequationst  sX     $404<,,48rW  c                  C   sì  t t u sJ ‚t dksJ ‚dt  t u sJ ‚dt ksJ ‚t  t u s!J ‚ttdƒd ks+J ‚dt  t u s3J ‚dt  d t u s=J ‚t  d t u sFJ ‚t t  t u sNJ ‚t  t d  t u sYJ ‚dt  t u saJ ‚ttdd„ ƒ ttd	d„ ƒ ttd
d„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t d dks¡J ‚dt  t u s©J ‚tt dddd dks¶J ‚ddtjtjt	dƒfD ]2} | t  t u sËJ ‚| t  t u sÓJ ‚t |  t u sÛJ ‚t |  t u sãJ ‚| t  t u sëJ ‚t |  t u sóJ ‚qÁd S )NrT   rj   rQ   rW   rC  rt   c                   S   s   t dkS r¦   ©r   rG   rG   rG   rH   rL   ·  r¥   ztest_NaN.<locals>.<lambda>c                   S   s   t dk S r¦   rX  rG   rG   rG   rH   rL   ¸  r¥   c                   S   s   t dkS r¦   rX  rG   rG   rG   rH   rL   ¹  r¥   c                   S   s   t dkS r¦   rX  rG   rG   rG   rH   rL   º  r¥   c                   S   s   dt k S r¦   rX  rG   rG   rG   rH   rL   »  r¥   c                   S   s   dt kS r¦   rX  rG   rG   rG   rH   rL   ¼  r¥   c                   S   s   dt kS r¦   rX  rG   rG   rG   rH   rL   ½  r¥   c                   S   s   dt kS r¦   rX  rG   rG   rG   rH   rL   ¾  r¥   r   Fr   rÊ   )
r   r   r&   r;   r­   r   r$   rx   rÄ   r   )r×   rG   rG   rH   Útest_NaNª  s>   úrY  c                   C   sì   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 s6J ‚tjjdu s>J ‚t tjtƒdu sHJ ‚t tjtƒdu sRJ ‚t tjtƒdu s\J ‚tjj	dusdJ ‚tjj	duslJ ‚tjj	dustJ ‚d S )NTF)
rF  r$   rO   r   r  r  Ú	is_numberrÐ   r   r   rG   rG   rG   rH   Útest_special_numbersÌ  s   r[  c                  C   s   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s6J ‚t dd	 d	ƒd
ksAJ ‚t dd	 d d	ƒdksNJ ‚t dd	 d d	ƒdks[J ‚t ddƒdksdJ ‚t ddƒdksmJ ‚t ddƒdksvJ ‚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ƒdks¥J ‚t dd d dƒdks²J ‚t dd d dƒdks¿J ‚d	d } t | dƒdksÌJ ‚t | d dƒdks×J ‚t | d dƒdksâJ ‚dd  }|d }t |dƒ|d!fksõJ ‚t |d dƒ|d"fksJ ‚t |d dƒ|d d"fksJ ‚t dd#ƒdksJ ‚t ttdƒƒd$ƒ\}}|d# d%ks1J ‚|r6J ‚t dd#ƒdks@J ‚tt d&dƒd ƒtu sNJ ‚d S )'NrT   rW   ©rT   TrS   ©rW   T©rT   FrR   é{   rÉ   )r_  T)r_  F)éz   Fr   ©r   TrQ   r°   )r°   Tr   )rR   Té   )rS   Fé‡Ö rc   )rc  T)rc  F)i†Ö Fr²   )rÉ   T)rÉ   F)r¹   Frd   i  TFì    d(	 r±   l   ¯1{z l            )r4   r¶   r(   ri   )rF   r³   Úc2r[   rm   rG   rG   rH   Útest_powersß  sD    
 rf  c                   C   s8   t dd dƒdd dfksJ ‚t dd dƒdksJ ‚d S )Nrd   iÄ	  é2   Ti † r°   )rd  T)r4   rG   rG   rG   rH   Útest_integer_nthroot_overflow	  s   rh  c                   C   s8  t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ tddƒdks%J ‚tdd	ƒdks.J ‚tdd	ƒd
ks7J ‚td	d	ƒdks@J ‚tdd	ƒdksIJ ‚tdd	ƒdksRJ ‚tdd	ƒdks[J ‚tdd	ƒdksdJ ‚tddƒdksmJ ‚tdd	ƒd
ksvJ ‚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 ‚d S )Nc                   S   r¨   ©NrW   rT   ©r6   rG   rG   rG   rH   rL     r§   z"test_integer_log.<locals>.<lambda>c                   S   r¨   )Nr   rW   rj  rG   rG   rG   rH   rL     r§   c                   S   r¨   )Nr^   rW   rj  rG   rG   rG   rH   rL     r§   c                   S   r¨   r©   rj  rG   rG   rG   rH   rL     r§   rT   rW   ra  rQ   )r   Fr\  r¸   r^  rU   r]  rs   )rW   Fé   )rQ   TrS   rÎ   ru   r‡   )rQ   FiÏÿÿÿrc   rž   )r;   rN   r6   rG   rG   rG   rH   Útest_integer_log  s$   rl  c                     sê  ddl m}  d}t| |ƒƒt|dƒd ksJ ‚t| |d ƒƒt|d dƒd ks*J ‚t|d ƒt|d dƒd ks;J ‚t|tj ƒt|dƒd ksKJ ‚t|d tj ƒt|d dƒd ks_J ‚t|d tj ƒt|d dƒd kssJ ‚tdƒdks{J ‚tdƒd	ksƒJ ‚ttd
d„ ƒ ttdd„ ƒ ttdd„ ƒ t	ddd ƒ‰ tt‡ fdd„ƒ tdˆ  ƒdks²J ‚tdˆ  ƒdks¼J ‚tdd ˆ  ƒdd d ksÌJ ‚ddl
m} |j}dd„ |_ztdƒdksãJ ‚tdƒdksëJ ‚W ||_d S ||_w )Nr   )r,   l   ÿÿ  € rW   rT   l        € i   l   ÿ_Éiÿàõc                   S   r£   )Nr‰   ©r5   rG   rG   rG   rH   rL   3  r¥   ztest_isqrt.<locals>.<lambda>c                   S   s   t dd  ƒS )Nrd   r²   rm  rG   rG   rG   rH   rL   4  rw   c                   S   ó   t tddƒƒS )Nr‰   rW   )r5   r   rG   rG   rG   rH   rL   5  rw   rd   r²   c                      s
   t ˆ  ƒS rB   rm  rG   ©ÚtinyrG   rH   rL   8  r§   r±   rg  )Úpowerc                 S   s   dS )Ngè£Ýÿÿÿ@rG   rK  rG   rG   rH   rL   @  s    rU   rQ   r°   )Úmathr,   r¶   r4   r5   r$   re   r;   rN   r   Ú
sympy.corerq  Ú_sqrt)rt  Úlimitrq  Úold_sqrtrG   ro  rH   Ú
test_isqrt$  s2   &" (( 
rw  c                  C   s(	  t jt j t ju sJ ‚t jt j t ju sJ ‚t dƒt j t ju s"J ‚t dƒt j tks-J ‚t dƒt j t ju s9J ‚t jt j t ju sDJ ‚t jt j t ju sOJ ‚t jtddƒ dt jd   ksaJ ‚tt dƒƒdkskJ ‚tt dƒƒt	d kswJ ‚t d	ƒtd
dƒ dks„J ‚t dƒtd
dƒ ddtd
dƒ  ks˜J ‚t dƒtddƒ dks¥J ‚t dƒtddƒ dt	 ks´J ‚t dƒtddƒ dksÁJ ‚t dƒtddƒ dt jtddƒ  ksÖJ ‚dtdd
ƒ td
dƒksäJ ‚tdƒt	tdƒ ksðJ ‚dtddƒ dtdƒ ksÿJ ‚dtddƒ dtdƒ ksJ ‚dtddƒ dt	 tdƒ ks!J ‚dtddƒ t	 d tdƒ ks4J ‚dtddƒ dtdƒ ksDJ ‚dtddƒ tdƒd ksTJ ‚dtddƒ dt dƒtddƒ  ksiJ ‚dtddƒ dt dƒtddƒ  ks~J ‚dtddƒ dtddƒ  dtddƒ  d ks™J ‚dtddƒ dtd
dƒ  dtd
dƒ  d ks´J ‚tdƒtdƒ dtdƒ ksÅJ ‚tdƒtdƒ tdƒksÔJ ‚t
dƒ} td|  ƒdt| ƒ ksçJ ‚tdttƒ d ƒdttƒ ksúJ ‚dtddƒ sJ ‚dtddƒ sJ ‚dtddƒ dtddƒ  dtddƒ  d ks)J ‚dtddƒ dtd
dƒ  dtd
dƒ  d ksDJ ‚dtddƒ dtddƒ dtddƒ  d	 ks^J ‚ttdtddƒƒ ¡ tdtddƒdd ¡  ƒdk s{J ‚d tddƒ ddtddƒ  dtd
dƒ  ks•J ‚dtddƒ d dtddƒ  dtddƒ  ks¯J ‚t d!ƒ ¡ d
d
d"œks½J ‚tdd#ƒ ¡ d
ddd$œksÍJ ‚dd%lm} |d&ƒ}t|d ƒ|ksâJ ‚t|d ƒ|t|ƒ ksñJ ‚td| ƒdt|ƒ ks J ‚d'td
dƒ dtddƒ dtd
dƒ  ksJ ‚d'tddƒ d(dtd
dƒ  dtddƒ  ks2J ‚dtd
dƒ dtd
dƒ  dtd
dƒ  dtd(d)ƒ dtdd*ƒ  ksXJ ‚td(ƒdtd
dƒ  dtd
dƒ  ddtdd+ƒ  dtd(d)ƒ  ks}J ‚td(ƒd,td
dƒ  d-td
dƒ  ddtd(d)ƒ  dtdd+ƒ  ks¢J ‚dtd
dƒ dtd(dƒ  ddtddƒ  ks¼J ‚dtddƒ dtd
dƒ  ddtd
dƒ  ksÖJ ‚dtddƒ dtd(dƒ  ddtddƒ  dtd(dƒ  ks÷J ‚dtdt dƒƒ dtd
t dƒƒ  ddtd
dƒ  ksJ ‚dtdddd dks#J ‚dtdtddƒdd dtddƒ ks9J ‚dtd
dƒ dtd
dƒ  d.tddƒ  dtdd/ƒ  dtd
dƒ  dtd
dƒ  dtddƒ  ksnJ ‚tdƒt
d0d1d2 tdƒt
d0d1d2 ks…J ‚dtd3ƒ d4t	 ks’J ‚d5S )6zTest Integer._eval_powerrW   ru   r   r¸   rS   r‰   rR   rÎ   r   rT   iðÿÿÿrU   rQ   rk  i÷ÿÿÿiåÿÿÿr‡   rc   éQ   i¯ÿÿÿrž   r¹   rj   é1   l           é   rÉ   éöÿÿÿFr   ç¼‰Ø—²Òœ<rˆ   rË   )ii  rW   éi   )rW   rS   rc   )Ú	nextprimei €  é0   rt   rX   r    rd   ièÿÿÿiúÿÿÿrC  rs   rû   T©ÚevenrY   rÊ   N)r$   rx   r  rO   rÄ   r   rK   r   r,   r   r&   r   rI  r   r×   ÚfactorsÚsympy.ntheory.generater~  r   r   )rj   r~  r×   rG   rG   rH   Útest_powers_IntegerH  s¼   $(* $&  ** 
ÿ 
ÿ"& 
ÿ 
ÿ
ÿÿ
ÿ
ÿ
ÿ 04(
ÿ"
ÿ"
ÿ44
ÿ<,(*ÿ
ÿ
ÿr„  c                  C   s  t jt j dks
J ‚tddƒt j t ju sJ ‚tddƒt j dks#J ‚tddƒt j tks/J ‚tddƒt j t ju s<J ‚tddƒt j t ju sIJ ‚ttddƒƒdtdƒ d ksZJ ‚tddƒtddƒ dtdƒ d	 ksnJ ‚ttd
dƒƒtd tdƒ d ksJ ‚td
dƒtddƒ t d tdƒ d	 ks˜J ‚tddƒtddƒ ddtddƒ  d ks¯J ‚tddƒtddƒ tddƒksÀJ ‚ttddƒƒt jksÌJ ‚ttdd
ƒƒtt j ksÚJ ‚ttddƒƒtdƒd kséJ ‚ttdd
ƒƒttdƒ d ksúJ ‚tddƒtddƒ dtddƒ d ksJ ‚tt jƒtdƒd ksJ ‚ttd
dƒƒtttddƒƒ ks1J ‚tddƒtddƒ d
dtddƒ  dtddƒ  dtddƒ  d ksWJ ‚tddƒtddƒ dtddƒ  dtddƒ  dtddƒ  d ks|J ‚tddƒtddƒ ddtddƒ  dtddƒ  dtddƒ  d ks¢J ‚tt	tddƒtddƒƒ 
¡ t	tddƒtddƒdd 
¡  ƒdk sÅJ ‚tddƒtddƒ td	dƒks×J ‚tddƒ} | t| dƒ t| dƒt| dƒ ksðJ ‚tddƒtddd tddƒtddd ks	J ‚dS )zTest Rational._eval_powerr   rQ   rW   r‰   r‡   rR   ru   rt   rU   rÎ   rk  rT   é}   i   iq  i   rS   rc   rž   r{  rx  Fr   r|  rd   rû   Tr€  N)r$   re   r  r   r   rO   r,   r   rI  r   r×   r   r&   rý   rG   rG   rH   Útest_powers_Rational³  sN   "(&.."",&0
ÿ.
ÿ0
ÿÿ
ÿ$
(ÿr†  c                   C   s0   t tdƒtdƒ  ¡ ƒt tdƒd ƒksJ ‚d S )Nz-1/10z3/10gš™™™™™¹¿r   )r™   r$   r×   r   rG   rG   rG   rH   Útest_powers_Floatã  ó   0r‡  c                   C   s^  t dƒt dƒ> t dƒksJ ‚t dƒd> t dƒksJ ‚dt dƒ> t dƒks&J ‚t dƒt dƒ> t dƒks4J ‚t dƒd> t dƒks@J ‚dt dƒ> t dƒksLJ ‚t dƒt dƒ> t dƒksZJ ‚t dƒd> t dƒksfJ ‚dt dƒ> t dƒksrJ ‚t dƒt dƒ> t dƒks€J ‚t dƒd> t dƒksŒJ ‚dt dƒ> t dƒks˜J ‚ttdd„ ƒ ttd	d„ ƒ ttd
d„ ƒ d S )Nr   rW   rQ   rs   r‡   éôÿÿÿc                   S   s   t dƒd> S ©NrW   rV   rÇ   rG   rG   rG   rH   rL   ø  rM   z%test_lshift_Integer.<locals>.<lambda>c                   S   s   dt dƒ> S ©NrV   rW   rÇ   rG   rG   rG   rH   rL   ù  rM   c                   S   s   t dƒt dƒ> S ©NrT   r‰   rÇ   rG   rG   rG   rH   rL   ú  ó    ©r   r;   r­   rN   rG   rG   rG   rH   Útest_lshift_Integerç  s   r  c                   C   sö  t dƒt dƒ? t dƒksJ ‚t dƒd? t dƒksJ ‚dt dƒ? t dƒks&J ‚t dƒt dƒ? t dƒks4J ‚t dƒd? t dƒks@J ‚dt dƒ? t dƒksLJ ‚t dƒt dƒ? t dƒksZJ ‚t dƒd? t dƒksfJ ‚dt dƒ? t dƒksrJ ‚t dƒt dƒ? t dƒks€J ‚t dƒd? t dƒksŒJ ‚dt dƒ? t dƒks˜J ‚t dƒt dƒ? t dƒks¦J ‚t dƒd? t dƒks²J ‚dt dƒ? t dƒks¾J ‚t dƒt dƒ? t dƒksÌJ ‚t dƒd? t dƒksØJ ‚dt dƒ? t dƒksäJ ‚ttdd	„ ƒ ttd
d	„ ƒ ttdd	„ ƒ d S )Nr   rW   rQ   r‡   r‰   rs   r‰  c                   S   s   t dƒd? S rŠ  rÇ   rG   rG   rG   rH   rL     rM   z%test_rshift_Integer.<locals>.<lambda>c                   S   s   dt dƒ? S r‹  rÇ   rG   rG   rG   rH   rL     rM   c                   S   s   t dƒt dƒ? S rŒ  rÇ   rG   rG   rG   rH   rL     r  rŽ  rG   rG   rG   rH   Útest_rshift_Integerý  s*   r  c                   C   sT  t dƒt dƒ@ t dƒksJ ‚t dƒd@ t dƒksJ ‚dt dƒ@ t dƒks&J ‚t dƒt dƒ@ t dƒks4J ‚t dƒd@ t dƒks@J ‚dt dƒ@ t dƒksLJ ‚t dƒ t dƒ@ t dƒks[J ‚t dƒd@ t dƒksgJ ‚dt dƒ@ t dƒkssJ ‚t dƒt dƒ @ t dƒks‚J ‚t dƒd	@ t dƒksŽJ ‚dt d	ƒ@ t dƒksšJ ‚ttd
d„ ƒ ttdd„ ƒ d S )NéU   éª   r   éÛ   rx  é‹   é«ÿÿÿrS   é%ÿÿÿc                   S   s   t dƒd@ S rŠ  rÇ   rG   rG   rG   rH   rL   ,  rM   z"test_and_Integer.<locals>.<lambda>c                   S   s   dt dƒ@ S r‹  rÇ   rG   rG   rG   rH   rL   -  rM   ©r   r;   r­   rG   rG   rG   rH   Útest_and_Integer  ó   r˜  c                   C   sT  t dƒt dƒA t dƒksJ ‚t dƒdA t dƒksJ ‚dt dƒA t dƒks&J ‚t dƒt dƒA t dƒks4J ‚t dƒdA t dƒks@J ‚dt dƒA t dƒksLJ ‚t dƒ t dƒA t dƒks[J ‚t dƒdA t dƒksgJ ‚dt dƒA t dƒkssJ ‚t dƒt dƒ A t dƒks‚J ‚t dƒdA t dƒksŽJ ‚dt dƒA t dƒksšJ ‚ttd	d
„ ƒ ttdd
„ ƒ d S )Nr‘  éÿ   r’  r“  éŽ   ipÿÿÿr•  r–  c                   S   s   t dƒdA S rŠ  rÇ   rG   rG   rG   rH   rL   A  rM   z"test_xor_Integer.<locals>.<lambda>c                   S   s   dt dƒA S r‹  rÇ   rG   rG   rG   rH   rL   B  rM   r—  rG   rG   rG   rH   Útest_xor_Integer0  r™  rœ  c                   C   sT  t dƒt dƒB t dƒksJ ‚t dƒdB t dƒksJ ‚dt dƒB t dƒks&J ‚t dƒt dƒB t dƒks4J ‚t dƒdB t dƒks@J ‚dt dƒB t dƒksLJ ‚t dƒ t dƒB t dƒks[J ‚t dƒdB t dƒksgJ ‚dt dƒB t dƒkssJ ‚t dƒt dƒ B t dƒks‚J ‚t dƒd	B t dƒksŽJ ‚dt d	ƒB t dƒksšJ ‚ttd
d„ ƒ ttdd„ ƒ d S )Nr‘  r’  rš  r“  éß   rC  r•  iuÿÿÿr–  c                   S   s   t dƒdB S rŠ  rÇ   rG   rG   rG   rH   rL   V  rM   z!test_or_Integer.<locals>.<lambda>c                   S   s   dt dƒB S r‹  rÇ   rG   rG   rG   rH   rL   W  rM   r—  rG   rG   rG   rH   Útest_or_IntegerE  r™  rž  c                   C   sH   t dƒ t dƒksJ ‚t dƒ t dƒksJ ‚t dƒ  t dƒks"J ‚d S )Nr‘  iªÿÿÿrÇ   rG   rG   rG   rH   Útest_invert_IntegerZ  s   rŸ  c                   C   s<   t ddƒt ddƒksJ ‚tt ddƒƒtt ddƒƒksJ ‚d S )NrT   r¸   r‰   )r   rI  rG   rG   rG   rH   Ú	test_abs1`  s   $r   c                   C   s   t dƒdksJ ‚d S ©NrR   rï   rG   rG   rG   rH   Útest_accept_inte  ó   r¢  c                   C   s$   t dƒdksJ ‚t dƒdkrJ ‚d S )Nz0.2rï   rG   rG   rG   rH   Útest_dont_accept_stri  s   r¤  c                  C   sª   t dƒ} t| ƒdksJ ‚t ddƒ} t| ƒt|  ƒ  kr!dks$J ‚ J ‚ddt ddƒ  dt ddƒ  ks7J ‚t d	d
ƒ} tt| ƒƒtt|  ƒƒ  u rPtu sSJ ‚ J ‚d S )NrS   rU   rd   r   rT   r‰   rW   rQ   l   ºdc l   «sDYH )r   r¶   ri   rý   rG   rG   rH   Útest_intn  s   
&&
2r¥  c                  C   sÊ   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s0J ‚ttttttfD ]*} |  t¡\}}t | ƒ}||ksKJ ‚t	|t ƒsRJ ‚||d ksZJ ‚|j
r`|j
sbJ ‚q8d S )Nr   rQ   rW   rT   )r¶   r   r   r   r   r   r   Úapproximation_intervalr   rF  Ú
is_Integer)r‘   rE   rF   ÚiarG   rG   rH   Útest_int_NumberSymbolsy  s   úr©  c                  C   s<   t dƒ} td|  |  ƒdv sJ ‚td|  |  ƒdksJ ‚d S )Nrj   r  )ú	(2.0*x)*xz2.0*x**2z2.00000000000000*x**2gÍÌÌÌÌÌ @rª  )r&   r™   rK  rG   rG   rH   Útest_real_bug‰  s   r«  c                   C   s0   t tdƒƒd t tdƒƒd   ¡ dksJ ‚d S ri  )r,   r   r?  rG   rG   rG   rH   Útest_bug_sqrt  rˆ  r¬  c                  C   sF   ddl m}  ttƒ ddl m} W d  ƒ dS 1 sw   Y  dS )z:Test that pi (instance) is imported, but Pi (class) is notr   )r   )ÚPiN)Úsympyr   r;   rÔ   r­  )r   r­  rG   rG   rH   Ú
test_pi_Pi“  s   
"ÿr¯  c                   C   s.   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   ó   t tdƒƒS r¤   ©Úlenr   rG   rG   rG   rH   rL   œ  rM   ztest_no_len.<locals>.<lambda>c                   S   rn  )NrW   rQ   r±  rG   rG   rG   rH   rL     rw   c                   S   r°  r¤   )r²  r   rG   rG   rG   rH   rL   ž  rM   ©r;   r­   rG   rG   rG   rH   Útest_no_lenš  s   r´  c                   C   sD   t tddƒƒtddƒtj ksJ ‚dt tddƒƒ t dƒks J ‚d S )NrT   rS   )r,   r   r$   re   rG   rG   rG   rH   Útest_issue_3321¡  s   ""rµ  c                   C   s¢   dt ddƒ jddtd tdƒd  ksJ ‚dt ddƒ jddd	t ddƒ t d d	t ddƒ tdƒ d  ks<J ‚d
t ddƒ jddttdƒ ksOJ ‚d S )Nr‰   rT   r¸   T©ÚcomplexrW   rQ   rC  rS   iÀÿÿÿ)r   r?  r   r,   rG   rG   rG   rH   Útest_issue_3692¦  s
   ..ÿ*r¸  c                  C   sN   t dƒ} t| d ƒ ¡ | d tjfksJ ‚t| d ƒttd|  ƒ ks%J ‚d S )Nrj   rT   )r&   r,   Úas_base_expr$   re   r   rK  rG   rG   rH   Útest_issue_3423­  s   "$rº  c                  C   s(   t dƒ} t| d ƒ | d¡dksJ ‚d S )Nrj   rT   rS   rW   )r&   r,   ÚsubsrK  rG   rG   rH   Útest_issue_3449³  s    r¼  c                  C   sf   t dƒ} |  d tjd  |  d }t|ƒ}tddƒ}t| | |¡ ¡ | | |¡ ¡  ƒdk s1J ‚d S )Nrj   rR   rs   rT   rU   rS   gVçž¯Ò<)r&   r$   rx   r3   r   rI  r»  rÑ   )rj   Úern   rE   rG   rG   rH   Útest_issue_13890¸  s
   
0r¾  c                  C   st  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iks4J ‚| dƒddd	œks?J ‚| d
ƒd
diksIJ ‚| dƒddiksSJ ‚| dƒddiks]J ‚| dƒdddœkshJ ‚| dƒddiksrJ ‚| 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sJ ‚| 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s5J ‚| d'ƒdddd(œksBJ ‚| d)ƒd)diksMJ ‚| d*ƒddiksXJ ‚| d+ƒddd,œksdJ ‚| d-ƒddd.œkspJ ‚| d/ƒddd0œks|J ‚| d1ƒddd	œksˆJ ‚| d2ƒd2diks“J ‚| d3ƒddd4œksŸJ ‚| d5ƒddd6œks«J ‚| d7ƒdddœks·J ‚| d8ƒd8diksÂJ ‚| d9ƒ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 ‚| dAƒddd	œksJ ‚| dBƒd
diks J ‚| dCƒdddœks,J ‚| dDƒdddEœks8J ‚d S )FNc                 S   s   t | ƒ ¡ S rB   )r   r‚  )r‘   rG   rG   rH   ÚFÁ  s   ztest_Integer_factors.<locals>.FrT   rW   rQ   rR   rS   r¸   ©rW   rQ   rc   rt   rU   rd   )rW   rS   é   rs   é   rƒ   )rW   rc   rX   ©rQ   rS   r   rz  é   r   r    é   )rQ   rc   r  )rW   rÁ  é   r¹   rÉ   rb  )rW   rÂ  rk  r  é   r¡   ©rW   rQ   rS   é   r  é!   )rQ   rÁ  é"   )rW   rz  é#   )rS   rc   é$   é%   é&   )rW   r   é'   )rQ   rÂ  r  r]   é*   )rW   rQ   rc   é+   é,   é-   é.   )rW   rÆ  é/   r  ry  rg  é3   )rQ   rz  rG   ©r¿  rG   rG   rH   Útest_Integer_factorsÀ  sh   rÙ  c                  C   sp   d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s6J ‚d S )Nc                 S   s   t | |ƒj|dS )N)Úvisual)r   r‚  )r[   r¿   rÚ  rG   rG   rH   r¿  ú  s   z test_Rational_factors.<locals>.FrW   rQ   rT   r‰   rÀ  rU   ru   rX   rÈ  r¸   rd   rÃ  rB   rG   rØ  rG   rG   rH   Útest_Rational_factorsù  s
   
rÛ  c                   C   s4  t td  t t d   dksJ ‚t td  t t d   dks"J ‚t td  t t d   dks3J ‚t tdd   t t dd    dksHJ ‚t td  t t d    ¡ dks[J ‚t td  t t d    ¡ dksnJ ‚t td  t t d    ¡ dksJ ‚t tdd   t t dd     ¡ dks˜J ‚d S )Nrd   r   rd  ì      Fµx:^V éP   )r   r   r?  rG   rG   rG   rH   Útest_issue_4107  s   """*&&&2rÞ  c                  C   s    t dƒ} t | ƒ}| |ksJ ‚d S r¡  rÇ   rD   rG   rG   rH   Útest_IntegerInteger  s   rß  c                  C   sÎ  t dƒ d¡t dƒksJ ‚t dƒ d¡t dƒksJ ‚t dƒ t dƒ¡t dƒks)J ‚t dƒ t dƒ¡t dƒks8J ‚dd dd } }t | ƒ |¡| | t | ƒ |¡ ksUJ ‚t dƒ d¡t dƒksbJ ‚t dƒ d¡t d	ƒksoJ ‚t dƒ t dƒ¡t dƒks~J ‚t dƒ t dƒ¡t d	ƒksJ ‚tddƒ d¡tddƒksœJ ‚tddƒ d¡t dƒksªJ ‚tddƒ t dƒ¡tddƒks»J ‚tddƒ t dƒ¡t dƒksËJ ‚t dƒ tdd
ƒ¡tdd
ƒksÜJ ‚t dƒ tdd
ƒ¡t dƒksìJ ‚tddƒ tdd
ƒ¡tdd
ƒksþJ ‚tddƒ tdd
ƒ¡tddƒksJ ‚tddƒ tdd
ƒ¡tddƒks$J ‚tddƒ tdd
ƒ¡t dƒks6J ‚tdd
ƒ tddƒ¡tt dƒ d¡t d
ƒ d¡ƒksSJ ‚t dƒ d¡t dƒt dƒt dƒfkshJ ‚t dƒ t dƒ¡t dƒt dƒt dƒfksJ ‚t dƒ tdƒ¡tjksŽJ ‚t dƒ tdƒ¡tdƒksžJ ‚t dƒ tdƒ¡tjt dƒtdƒfks´J ‚tj tdƒ¡tjksÂJ ‚tj tdƒ¡tdƒksÑJ ‚tj tdƒ¡tjtjtdƒfksåJ ‚d S )NrR   rW   iÐ  iG† ià  i60  rQ   rT   rs   rU   rS   rÔ  rc   r  ç       @rÊ   )	r   rÍ   Úlcmr   Ú	cofactorsr   r$   rx   re   rD   rG   rG   rH   Útest_Rational_gcd_lcm_cofactors  sB   (" " $&&$:*
ÿ ,ÿrã  c                   C   sÄ   t dƒ tdƒ¡tjksJ ‚t dƒ tdƒ¡t dƒksJ ‚t dƒ tdƒ¡tjt dƒtdƒfks2J ‚t dƒ tj¡tjks?J ‚t dƒ tj¡t dƒksMJ ‚t dƒ tj¡tjt dƒtjfks`J ‚d S )Nr  rR   rà  rÊ   )r   rÍ   r   r$   rx   rá  râ  re   rG   rG   rG   rH   Útest_Float_gcd_lcm_cofactors?  s   *ÿrä  c                  C   sP  t t d¡d ƒdk sJ ‚t t d¡d ƒdk sJ ‚t t d¡d ƒdk s'J ‚t t d¡d ƒdk s4J ‚t t d¡d ƒdk sAJ ‚t t d¡d ƒdk sNJ ‚td	ƒ} t|   	¡ t 	¡ |  ks`J ‚t|   	¡ t 	¡ |  ksnJ ‚t|   	¡ t 	¡ |  ks|J ‚t|   	¡ t 	¡ |  ksŠJ ‚t|   	¡ t 	¡ |  ks˜J ‚t|   	¡ t 	¡ |  ks¦J ‚d S )
Nrg  g-DTû!	@g»½×Ùß|Û=gtW‹
¿@g]è—Oí?g¶oüŒxâ?g’ô—›wãù?g¼ÅÙò·mý?rj   )
rI  r   Ú_evalfr   r   r   r   r   r&   rÑ   rK  rG   rG   rH   Útest_issue_4611J  s    ræ  c                   C   sÊ  t  tdƒ¡t  d¡ksJ ‚t  tj¡t  d¡ksJ ‚t  tddƒ¡t  d¡ks*J ‚t  t¡t  d¡ks6J ‚t  ddt  ¡t  d¡ksFJ ‚t  ddt  ¡t  d¡ksVJ ‚t  dd	t  ¡t  d¡ksfJ ‚t  dd	t  ¡t  d¡ksvJ ‚t  tjtjt  ¡t  d
¡ksˆJ ‚t  dt ¡t  d¡ks–J ‚t  d	t ¡t  d¡ks¤J ‚t  tjt ¡t  d¡ks³J ‚dt j	_
t  t d¡t d¡t  ¡t jt jt j  ksÑJ ‚t  t d¡t ¡t jt j ksãJ ‚d S )NrT   rY   r  rX   y              ð?rW   ù      ð?       @rÊ   r  y      à?      à?y               @y              à?r±   )r0  Ú	mpmathifyr   r=   r$   re   r   r   Úmpcr1  r  r   rÑ   r&  rG   rG   rG   rH   Útest_conversion_to_mpmath[  s       $4(rê  c                  C   sz   t dƒ} | tkdu sJ ‚| tkdu sJ ‚tddƒ} | tkdu s!J ‚| tkdu s)J ‚t} | tkdu s3J ‚| tkdu s;J ‚d S )NrZ   TFrT   rQ   )r$   r.   r   r   rK  rG   rG   rH   Útest_relationalr  s   
rë  c                   C   s   dt dƒd … dksJ ‚d S )NÚhellorW   ÚllorÇ   rG   rG   rG   rH   Útest_Integer_as_index…  ó   rî  c                   C   sZ   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 ‚d S )Nrc   rS   rT   r   r‰   rW   )r¶   r   r$   re   rG   rG   rG   rH   Útest_Rational_int‰  s   rð  c            
      C   sp  t ddd} t ddd}t ddd}t ddd	}t d
dd}t ddd}t ddd}t ddd	}t d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r|	t tu shJ ‚|	t tu spJ ‚t|	 tu sxJ ‚t|	 tu s€J ‚nF|	j
dur£|	t jsJ ‚|	t js”J ‚t|	 js›J ‚t|	 js¢J ‚n$|	t tju s¬J ‚|	t tju sµJ ‚t|	 tju s¾J ‚t|	 tju sÇJ ‚t|	jƒrã|	jsÒ|	jrã|	t tu sÚJ ‚t|	 tu sâJ ‚n&|	jrù|	t tju sïJ ‚t|	 tju søJ ‚n|	t jsJ ‚t|	 js	J ‚td|	 jƒr#|	js|	jr#t|	 tu s"J ‚qUd|	 jr4t|	 tju s3J ‚qU|	jrBt|	 tu sAJ ‚qUt|	 jsJJ ‚qUtt jsSJ ‚tt tju s]J ‚tt tu sfJ ‚tt tju spJ ‚tt tju szJ ‚tt tju s„J ‚td tju sŽJ ‚td tu s—J ‚dt tju s¡J ‚t tjttdƒg¡tjgg d fks¶J ‚d S )NrF   T©rV  Únz)Únonzeror[   )Úpositiver×   )Únegativer‘   )Ú	imaginaryr³   r¶  ÚpbÚnbÚib)rö  rV  rQ   FrT   r   rW   )r&   r   r$   r  r  rK   rx   r­  re   r+   r  Úis_realÚis_imaginaryr   Úis_AddrO   r   r  Úis_extended_realÚis_Mulr   r	   ÚflattenrÄ   )
rF   rò  r[   r×   Úimr³   r÷  rø  Úimbr‘   rG   rG   rH   Útest_zoo  sf   &ÿ
 .r  c                  C   sd  t ddd} t|  tu sJ ‚t ddd} t|  jsJ ‚t ddd} t|  js(J ‚t ddd} t|  tu s6J ‚t ddd} t|  tu sDJ ‚t dddd} t|  tu sSJ ‚t ddd} t |  t u scJ ‚t ddd} t |  jsqJ ‚t ddd} t |  jsJ ‚t ddd} t |  t u sJ ‚t ddd} t |  t u sŸJ ‚t dddd} t |  t u s°J ‚d S )	Nrj   T)Únonpositive)Úextended_nonpositiverñ  )Únonnegative)Úextended_nonnegativerU  )r&   r   rü  rK  rG   rG   rH   Útest_issue_4122Ì  s0   r  c                   C   s&   t jddtjtdƒd  ksJ ‚d S )NT©ÚfuncrS   rW   )r   r?  r$   re   r,   rG   rG   rG   rH   Útest_GoldenRatio_expandé  ó   &r
  c                   C   sD   t jdddtddtdƒ  ƒ tddtdƒ  ƒ d ks J ‚d S )NTr  rT   r   rQ   rÊ  )r   r?  r-   r,   rG   rG   rG   rH   Útest_TribonacciConstant_expandí  s   
.ÿr  c                   C   sr   t j ¡ dks	J ‚t j ¡ t jdfksJ ‚tddƒ ¡ t jdfks#J ‚t dƒ ¡ dks-J ‚t dƒ ¡ dks7J ‚d S )	N)rT   r   rT   r‰   rW   rQ   )rQ   rT   çÍÌÌÌÌÌ@)rT   r  )r$   rK   Úas_content_primitivere   r   rG   rG   rG   rH   Útest_as_content_primitiveò  s
   r  c                   C   s8   t dƒhtdƒhksJ ‚tt dƒƒttdƒƒksJ ‚d S )NrQ   rR   )r   r¶   ÚhashrG   rG   rG   rH   Útest_hashing_sympy_integersú  s    r  c                   C   sT   t td  ¡ ƒdksJ ‚t td  ¡ ƒdksJ ‚t tdƒtd   ¡ ƒdks(J ‚d S )Nr±   l
   oEhJ¡‘	%„YÒo¸X©il   Ö{[5|QBèSz\$ó$lGOü rT   l   ZHÙ@Puë[¶9 )r¶   r   rf   r   r   r   rG   rG   rG   rH   Útest_rounding_issue_4172   s   ÿÿÿr  c                  C   sÔ   ddl m}  dd lm} |j}dtdƒddd|f}| |dƒdtdƒddfks(J ‚dtdƒddd|f}| |dƒdtdƒddfksAJ ‚dtdƒd	d
d|f}| |dƒdtdƒddfksZJ ‚ddl m} | ||¡shJ ‚d S )Nr   )Ú
_normalizerø   r‰   ró   rù   ru   rT   rú   r‡   )Úfnan)Úmpmath.libmp.libmpfr  Úmpmath.libmpÚlibmpÚround_nearestr¶   r  Úmpf_eq)r  ÚmlibÚrndr=   r  rG   rG   rH   Útest_mpmath_issues	  s   r  c                  C   s    t } t|  ¡ dƒ}|jdtdƒddfksJ ‚|jdksJ ‚|  d¡|jks'J ‚t} t|  ¡ dƒ}|jdtdƒdd	fks=J ‚|jdksDJ ‚|  d¡|jksNJ ‚d S )
NrS   r   io< iïÿÿÿrÄ  r    i#ž iíÿÿÿr   )r   r   r×   r  r¶   rC   Ú_as_mpf_valr   )r×   rn   rG   rG   rH   Útest_Catalan_EulerGamma_prec  s   r  c                  C   sV   t dddd} t t¡ td|  d|  d d  | dtfƒ¡s!J ‚t ¡ tks)J ‚d S )NÚkT)Úintegerr  r‰   rW   rT   r   )r%   r   Úrewriter   Údummy_eqr   )r  rG   rG   rH   Útest_Catalan_rewrite'  s
   
"ÿr#  c                   C   s\   ddksJ ‚t dƒdksJ ‚t dƒt jksJ ‚ddksJ ‚t jdks$J ‚t jt jks,J ‚d S )Nr   FrT   T)r$   r.  rx   ÚtruerG   rG   rG   rH   Útest_bool_eq.  s   r%  c                   C   sÈ  t ddƒt ddƒ  krt ddƒksJ ‚ J ‚t ddƒt ddƒks#J ‚t ddƒdks,J ‚dt ddƒks5J ‚t dd	ƒdks>J ‚t d
ƒtddƒksIJ ‚tddƒt d
ƒksTJ ‚t dƒdkr\J ‚t dƒtjkreJ ‚t dƒdksmJ ‚t dƒdkruJ ‚t dƒtjks~J ‚t dƒdkr†J ‚t dƒtjkrJ ‚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ksºJ ‚t dƒtjd ksÅJ ‚t dƒtjd ksÐJ ‚dt dƒksØJ ‚td td ksâJ ‚d S )NrY   rd   rÁ  rT   g¸…ëQ¸¾?rQ   rR   z.12r  z1.1rW   ra   r¸   rt   r_   grÇqÇÑ?r  )r   rT   r‡   rU   )r   r   r$   re   rx   r@   rG   rG   rG   rH   Útest_Float_eq7  s.   .r&  c                  C   sL   ddl m} m} t| ƒjdu sJ ‚t|ƒjdu sJ ‚ttdƒƒdu s$J ‚d S )Nr   ©ÚfinfÚfninfF)r  r(  r)  r   r  Úboolr'  rG   rG   rH   Útest_issue_6640]  s   r+  c                   C   sT   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 ‚d S )Nz23.e3rû   rd   Ú23e3r    Ú23000z-23000)r   rC   rG   rG   rG   rH   Útest_issue_6349f  rÿ   r.  c                   C   s8   t ddƒtdƒjksJ ‚t dd¡jtdƒjksJ ‚d S )N)rT   r   rT   r   rd   r{   )r
   r=   r  r   Ú_newrG   rG   rG   rH   Útest_mpf_normm  s    r0  c                   C   s¦   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s0J ‚t t ƒdks9J ‚t tƒdksAJ ‚t tƒd	ksIJ ‚t t	ƒd
ksQJ ‚d S )Nz\pir½  z\phiz\text{TribonacciConstant}z\gammaz\inftyz-\inftyz\tilde{\infty}z
\text{NaN}r‘   )
r1   r   r   r   r   r   r   r   r   r   rG   rG   rG   rH   Ú
test_latexr  s   r1  c                   C   s   t  d tu s	J ‚d S ©NrT   )r   r   rG   rG   rG   rH   Útest_issue_7742  s   r3  c                  C   sÖ   t } dtjd  dddtdƒ  tddƒ   ddtdƒ  tjd   }t| |ƒƒ| dƒks1J ‚d	d
tdƒ  tjd  }t| |ƒƒ| dtdƒ ƒksNJ ‚ddt  tddƒ }t| |ƒƒ| ddt  ƒksiJ ‚d S )NrQ   r¸   é‡   éN   rW   rÔ  rb  rs   r]   rÇ  rS   rT   rR   rÁ  )r   r$   rx   r,   r   r3   r   )ÚAr½  rG   rG   rH   Útest_simplify_AlgebraicNumberƒ  s   F $r7  c                  C   sr   t ddƒ} t | ƒ}t | dƒ}t|| ƒsJ ‚t|| ƒrJ ‚t dƒ} t | ƒ}t | dƒ}t|| ƒs0J ‚t|| ƒr7J ‚d S )Nr  rû   rX   rÜ  )r   rI   ©rj   rk   rl   rG   rG   rH   Útest_Float_idempotence  s   


r9  c                  C   sÊ  t dƒ d¡} t| dƒdu sJ ‚t| dƒsJ ‚t| dƒsJ ‚t| dƒdu s'J ‚tt dƒ d¡dƒs3J ‚tt dƒ d¡td	dƒd
ƒsCJ ‚tt dƒ d¡d	d
ƒsPJ ‚tt dƒ d¡td	dƒd
ƒdu sbJ ‚tt dƒt dƒt  d	dt  dƒsvJ ‚tt dƒt dƒt  ddt  d dƒrŒJ ‚tt dƒt dƒt  ddt  d dƒs¢J ‚tt dƒt dƒt  ddt  d dƒs¸J ‚tt dƒt dƒt  ddt  d dƒrÎJ ‚dd„ tddƒD ƒddgksÞJ ‚ttdd„ ƒ ttdd„ ƒ tddƒsóJ ‚tdtj	ƒsûJ ‚tdt dƒ dt dƒ ƒsJ ‚tdd ƒrJ ‚tdt dƒƒrJ ‚tdt dt dƒ ƒr+J ‚tdt dƒ dt ƒr9J ‚tdt dƒ t dƒƒrGJ ‚td t
 d!¡ d"d#ƒsUJ ‚td t
 d!¡ d"d$ƒrcJ ‚d S )%NrW   rc   gM±´ ö?Fg¯?‰Ï ö?gU¬Ðöž ö?gðž¨Ÿ ö?z1.4gffffffö?rû   rQ   g333333û?rZ   r`   g{®Gázì?rÆ   g…ëQ¸ñ?gHáz®Gñ?c                 S   sT   g | ]&}t d dƒD ]}ttdƒttdƒ   d¡|d t| d  ƒr	||f‘q	qS )r’  é´   rW   rQ   g      Y@)rš   r   r,   r   r×   )r   r‘   r&  rG   rG   rH   r’   ­  s    þ.ýztest_comp1.<locals>.<listcomp>é‚   é–   )é   é­   )r›  r>  c                   S   ó
   t tdƒS )Nrz   ©r   r@   rG   rG   rG   rH   rL   ²  r§   ztest_comp1.<locals>.<lambda>c                   S   r?  r2  r@  rG   rG   rG   rH   rL   ³  r§   r   rV   rY   r  rT   rR   gtF”ö_Ô?gñhãˆµøä>gíµ ÷Æà>)r,   r×   r   r   r   rš   r;   rN   r$   re   r   rý   rG   rG   rH   Ú
test_comp1œ  s@    $(,,,,ÿÿý  rA  c                   C   s   t t tu sJ ‚d S rB   )r   r   r   rG   rG   rG   rH   Útest_issue_9491À  r£  rB  c                   C   s   dt dƒ t dƒksJ ‚d S )NrW   rQ   rt   rï   rG   rG   rG   rH   Útest_issue_10063Ä  rï  rC  c                   C   s¦   t t tju s	J ‚t dt  tju sJ ‚t dt  tju sJ ‚t  t tju s)J ‚t  dt  tju s5J ‚t t tt tddksBJ ‚t  t tt  tddksQJ ‚d S )NrT   r‰   Fr   )r   r   r$   rO   rÐ   rK   r@   r   rG   rG   rG   rH   Útest_issue_10020È  s   "rD  c                   C   sÆ   t dƒ d¡dksJ ‚t dƒ tddƒ¡t jksJ ‚t dƒ d¡dks%J ‚t dƒ t dƒ¡dks2J ‚t dƒ d¡dks=J ‚t tdƒƒ d¡dtdƒ ksNJ ‚t tdƒƒ tdƒ¡dtdƒ ksaJ ‚d S )NrW   rS   rQ   g      @rY   r  rT   )r$   Úinvertr   re   r,   rG   rG   rG   rH   Útest_invert_numbersÒ  s   "*rF  c                      s*  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s6J ‚t ddƒdks?J ‚t ddƒdksHJ ‚t ddƒdksQJ ‚t ddƒdksZJ ‚t ddƒdkscJ ‚t ddƒdkslJ ‚tdƒ‰ tdƒ ˆ ¡tjks|J ‚tt‡ fdd„ƒ ttdd„ ƒ ttdd„ ƒ d S )NrQ   rÁ  rR   rS   rU   i9WBi(õ i!  i}`gi  i¥  éÖ   iã0  i+  i÷ÝX iã  i¢  r_  rÓ  rÐ  rW   ru   rC  r‡   rž   rj   c                      s
   t dˆ ƒS r¤   )r   rG   rK  rG   rH   rL   ë  r§   z"test_mod_inverse.<locals>.<lambda>c                   S   s   t dtjƒS r¤   )r   r$   re   rG   rG   rG   rH   rL   ì  rM   c                   S   s   t dtdƒd tdƒd  ƒS ri  )r   r.   r/   rG   rG   rG   rH   rL   í  s    )r   r&   r$   rE  re   r;   r­   rN   rG   rG   rK  rH   Útest_mod_inverseÜ  s"   rH  c                   C   s&   t  t¡tjtdƒtj  ksJ ‚d S )NrS   )r   r!  r,   r$   re   rG   rG   rG   rH   Ú!test_golden_ratio_rewrite_as_sqrtð  r  rI  c                   C   sB   t  t¡dtddtdƒ  ƒ tddtdƒ  ƒ d ksJ ‚d S )NrT   r   rQ   rÊ  )r   r!  r,   r-   rG   rG   rG   rH   Ú(test_tribonacci_constant_rewrite_as_sqrtô  s   .ÿrJ  c                     sr  G dd„ dƒ} t dƒtdƒtddƒ}}}| ƒ ‰|||tt ttfD ]j‰ˆˆks+J ‚ˆˆks1J ‚ˆˆkr7J ‚ˆˆkr=J ‚tt‡‡fdd„ƒ tt‡‡fdd„ƒ tt‡‡fd	d„ƒ tt‡‡fd
d„ƒ tt‡‡fdd„ƒ tt‡‡fdd„ƒ tt‡‡fdd„ƒ tt‡‡fdd„ƒ q#G dd„ dƒ}|ƒ ‰ |||fD ]‰ˆˆ ks¥J ‚ˆ ˆks«J ‚ˆˆ kr±J ‚ˆ ˆkr·J ‚qtt ttfD ]‰ˆˆ ksÇJ ‚ˆ ˆksÍJ ‚ˆˆ krÓJ ‚ˆ ˆkrÙJ ‚q¿|||tt ttfD ]R‰tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ qäd S )Nc                   @   s   e Zd ZdZdS )z/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__rG   rG   rG   rH   ÚFooú  s    rO  rQ   rÊ   rT   c                      ó   ˆˆ k S rB   rG   rG   ©Úfoor×   rG   rH   rL   	  r¥   z4test_comparisons_with_unknown_type.<locals>.<lambda>c                      ó   ˆ ˆkS rB   rG   rG   rQ  rG   rH   rL   
  r¥   c                      ó   ˆˆ kS rB   rG   rG   rQ  rG   rH   rL     r¥   c                      ó   ˆ ˆk S rB   rG   rG   rQ  rG   rH   rL     r¥   c                      ó   ˆˆ kS rB   rG   rG   rQ  rG   rH   rL     r¥   c                      ó   ˆ ˆkS rB   rG   rG   rQ  rG   rH   rL     r¥   c                      ó   ˆˆ kS rB   rG   rG   rQ  rG   rH   rL     r¥   c                      ó   ˆ ˆkS rB   rG   rG   rQ  rG   rH   rL     r¥   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )z/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                 S   s(   |t t  ttfv rdS t|tƒrdS tS rü   )r   r   r   rF  r   ÚNotImplemented©ÚselfÚotherrG   rG   rH   Ú__eq__  s
   
z6test_comparisons_with_unknown_type.<locals>.Bar.__eq__c                 S   s
   | |k S rB   rG   r[  rG   rG   rH   Ú__ne__   s   
z6test_comparisons_with_unknown_type.<locals>.Bar.__ne__N)rK  rL  rM  rN  r^  r_  rG   rG   rG   rH   ÚBar  s    r`  c                      rP  rB   rG   rG   ©Úbarr×   rG   rH   rL   2  r¥   c                      rS  rB   rG   rG   ra  rG   rH   rL   3  r¥   c                      rT  rB   rG   rG   ra  rG   rH   rL   4  r¥   c                      rU  rB   rG   rG   ra  rG   rH   rL   5  r¥   c                      rV  rB   rG   rG   ra  rG   rH   rL   6  r¥   c                      rW  rB   rG   rG   ra  rG   rH   rL   7  r¥   c                      rX  rB   rG   rG   ra  rG   rH   rL   8  r¥   c                      rY  rB   rG   rG   ra  rG   rH   rL   9  r¥   )r   r   r   r   r   r   r;   r­   )rO  ÚniÚnfÚnrr`  rG   )rb  rR  r×   rH   Ú"test_comparisons_with_unknown_typeù  sL   ørf  c                  C   s2   ddl m}  tdƒ}tttƒƒ}| ||ƒsJ ‚d S )Nr   )Ú	rel_checkz%905502432259640373/288230376151711744)Ú sympy.core.tests.test_relationalrg  r   r   rg   r   )rg  ÚrpiÚfpirG   rG   rH   Útest_NumberSymbol_comparison<  s   rk  c                   C   sz   t dtdƒdjdksJ ‚t dtdƒdjdksJ ‚tt dtdƒdjƒtks)J ‚ttt dddƒƒt dddks;J ‚d S )Nr  rX   r  ró   r  )r   r   rC   ri   r¶   r'   r2   rG   rG   rG   rH   Útest_Integer_precisionC  s   (rl  c                     sè   ddl m}  ddlm} |dƒ‰ ˆ s| dƒ ‡ fdd„}|ˆ  d¡td	d
ƒƒ |ˆ  d¡td	d
ƒƒ |ˆ  d¡td	d
ƒƒ ˆ  d	¡d
 }||td	d
ƒƒ t	|dd}t
|t	td	d
ƒddƒs`J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nr   )Úskip)Úimport_moduleÚnumpyz'numpy not installed. Abort numpy tests.c                    sX   ˆ   | ¡jd }t| ƒ}|j|ksJ ‚t||d}t|| | ƒd|d   k s*J ‚d S )NrT   r  rW   )ÚfinfoÚnmantr   rC   rI  )ÚnpvalÚratvalÚprecrj   rk   ©ÚnprG   rH   Úcheck_prec_and_relerrR  s
   &z2test_numpy_to_float.<locals>.check_prec_and_relerrgUUUUUUå?rW   rQ   rd   r  c                      ó   t ˆ  d¡ƒS ©Nrç  )r   Ú	complex64rG   ru  rG   rH   rL   b  rw   z%test_numpy_to_float.<locals>.<lambda>c                      rx  ry  )r   Ú
complex128rG   ru  rG   rH   rL   c  rw   )Úsympy.testing.pytestrm  Úsympy.externalrn  Úfloat16r   Úfloat32Úfloat64Ú
longdoubler   rI   r;   r­   )rm  rn  rw  rj   rk   rG   ru  rH   Útest_numpy_to_floatK  s   r‚  c                  C   s,   t dƒ} |  ¡ | ksJ ‚|  ¡ | ksJ ‚d S r¡  )r   ÚfloorÚceilingrý   rG   rG   rH   Útest_Integer_ceiling_floorf  s   r…  c                   C   s6   t  ¡ t u sJ ‚t  ¡ t u sJ ‚t t  tju sJ ‚d S rB   )r   rƒ  r„  r$   rO   rG   rG   rG   rH   Útest_ComplexInfinitym  s   r†  c                   C   sJ   t  ¡ t u sJ ‚t  ¡ t u sJ ‚t tj tju sJ ‚t t tju s#J ‚d S rB   )r   rƒ  r„  r$   rO   r   rG   rG   rG   rH   Ú!test_Infinity_floor_ceiling_powers  s   r‡  c                   C   s.   t jd t ju s
J ‚t jt j t ju sJ ‚d S )Nrs   )r$   rx   rÄ   rO   rG   rG   rG   rH   Útest_One_powerz  s   rˆ  c                   C   sR   t   ¡ t  u s
J ‚t   ¡ t  u sJ ‚t  d t  u sJ ‚t  d t u s'J ‚d S )NrÁ  rs   )r   rƒ  r„  rG   rG   rG   rH   Útest_NegativeInfinity  s   r‰  c                   C   sJ   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s
   t  d k S rB   ©r   rG   rG   rG   rH   rL   ‡  r§   z!test_issue_6133.<locals>.<lambda>c                   S   ó   t dƒd k S )Nru   r#   rG   rG   rG   rH   rL   ˆ  rM   c                   S   s   t d k S rB   rŠ  rG   rG   rG   rH   rL   ‰  r¥   c                   S   s   t d kS rB   rŠ  rG   rG   rG   rH   rL   Š  r¥   c                   S   r‹  r¤   r#   rG   rG   rG   rH   rL   ‹  rM   r³  rG   rG   rG   rH   Útest_issue_6133†  s
   rŒ  c                  C   sà   t  d¡} t| tjƒsJ ‚t| t jƒsJ ‚t| tjƒsJ ‚t  dd¡}t|tjƒs+J ‚|jdks2J ‚|jdks9J ‚t|tjƒsAJ ‚t  	d¡}t|tjƒsNJ ‚t|t jƒsVJ ‚t|tjƒs^J ‚t|t jƒsfJ ‚t|tj
ƒsnJ ‚d S )NrS   rT   rQ   )r?   r   rF  Únumsr   ÚRealr   Ú	numeratorÚdenominatorr   ÚIntegralr8  rG   rG   rH   Útest_abcŽ  s   

r’  c                   C   s   t dƒt j dksJ ‚d S )NrW   rR   )r$   re   rG   rG   rG   rH   Útest_floordiv   s   r“  c                   C   s8   t j t ju s	J ‚tdƒ t jurtdƒ dksJ ‚d S r¦   )r$   rK   r   rG   rG   rG   rH   Útest_negation¤  s   &r”  )Ër?   r  r"  Úsympy.concrete.summationsr   rs  r   r   r   r   Úsympy.core.containersr   Ú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   Ú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.combinatorial.numbersr)   Ú&sympy.functions.elementary.exponentialr*   r+   Ú(sympy.functions.elementary.miscellaneousr,   r-   Ú(sympy.functions.elementary.trigonometricr.   r/   Úsympy.polys.domains.realfieldr0   Úsympy.printing.latexr1   Úsympy.printing.reprr2   Úsympy.simplifyr3   r4   r5   r6   Úsympy.polys.domains.groundtypesr7   Úsympy.utilities.decoratorr8   Úsympy.utilities.iterablesr9   r|  r:   r;   r<   r0  r=   Úmpmath.rationalr>   r@   rg   rD  r  rI   rP   rr   rœ   r®   r´   r·   r½   r¾   rÀ   rÅ   rÈ   rØ   rß   rè   rî   r-  r/  r3  r5  r7  r9  r:  r@  rB  rG  rL  rM  rN  rW  rY  r[  rf  rh  rl  rw  r„  r†  r‡  r  r  r˜  rœ  rž  rŸ  r   r¢  r¤  r¥  r©  r«  r¬  r¯  r´  rµ  r¸  rº  r¼  r¾  rÙ  rÛ  rÞ  rß  rã  rä  ræ  rê  rë  rî  rð  r  r  r
  r  r  r  r  r  r  r#  r%  r&  r+  r.  r0  r1  r3  r7  r9  rA  rB  rC  rD  rF  rH  rI  rJ  rf  rk  rl  r‚  r…  r†  r‡  rˆ  r‰  rŒ  r’  r“  r”  rG   rG   rG   rH   Ú<module>   s,   X
DW1  (
	 
5"*$k09
)
<	
	&	$

C