o
    ÐeåÉ  ã                   @   s@  d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZC d dlDmEZE d dlFZFdd„ ZGdd„ ZHdd„ ZId d!„ ZJd"d#„ ZKd$d%„ ZLd&d'„ ZMd(d)„ ZNd*d+„ ZOd,d-„ ZPd.d/„ ZQd0d1„ ZRd2d3„ ZSd4d5„ ZTd6d7„ ZUd8d9„ ZVd:d;„ ZWd<d=„ ZXd>d?„ ZYd@dA„ ZZdBdC„ Z[dDdE„ Z\dFdG„ Z]dHdI„ Z^dJdK„ Z_dLdM„ Z`dNdO„ ZadPdQ„ ZbdRdS„ ZcdTdU„ ZddVdW„ ZedXdY„ ZfdZd[„ Zgd\d]„ Zhd^d_„ Zid`da„ Zjdbdc„ Zkddde„ Zldfdg„ Zmdhdi„ Zndjdk„ Zodldm„ Zpdndo„ Zqdpdq„ Zrdrds„ Zsdtdu„ Ztdvdw„ Zudxdy„ Zve=dzd{„ ƒZwd|d}„ Zxd~d„ Zyd€d„ Zzd‚dƒ„ Z{d„d…„ Z|d†d‡„ Z}dS )ˆé    )Ú	unchanged)ÚContains)ÚImageSetÚRangeÚnormalize_theta_setÚComplexRegion)Ú	FiniteSetÚIntervalÚUnionÚimagesetÚIntersectionÚ
ProductSetÚSetKind)ÚConditionSet)Úsimplify)ÚBasic)ÚTupleÚ	TupleKind)ÚLambda)Ú
NumberKind)ÚIÚRationalÚooÚpi)ÚEq)ÚS)ÚDummyÚSymbolÚsymbols)ÚAbs)ÚexpÚlog)Úfloor)Úsqrt)ÚcosÚsinÚtan)ÚAnd)Úeye)ÚXFAILÚraises)ÚxÚyÚtÚz)ÚModNc                  C   sr  t j} d| v s	J ‚d| vsJ ‚d| vsJ ‚t| ƒ}t|ƒt|ƒt|ƒt|ƒf\}}}}||||fdks5J ‚t|tƒs<J ‚|  tddƒ¡tddƒksKJ ‚|  tddddƒ¡tddƒks\J ‚| j	| kscJ ‚| j
dksjJ ‚| jdksqJ ‚| jdksxJ ‚| jtu sJ ‚|  t¡r†J ‚t jt jfD ]}| t j¡|u s˜J ‚| t j¡s J ‚qŒ|  t¡ttttƒtƒtdkttk ƒks·J ‚d S )	Né   éûÿÿÿç      @)é   é   é   é   r3   é   TF)r   ÚNaturalsÚiterÚnextÚ
isinstancer   Ú	intersectr	   r   ÚboundaryÚis_openÚ	is_closedÚinfÚsupr   ÚcontainsÚ	Naturals0ÚintersectionÚRealsÚ	is_subsetÚas_relationalr+   r'   r   r"   )ÚNÚniÚaÚbÚcÚdÚs© rO   úOD:\Projects\ConvertPro\env\Lib\site-packages\sympy/sets/tests/test_fancysets.pyÚtest_naturals    s(   $"0rQ   c                  C   sd   t j} d| v s	J ‚d| vsJ ‚tt| ƒƒdksJ ‚|  t¡r J ‚|  ttƒ¡tttƒ| ƒks0J ‚d S ©Nr   éÿÿÿÿ)	r   rC   r:   r9   rB   r   r%   r+   r   )rH   rO   rO   rP   Útest_naturals0;   s   $rT   c                  C   s–  t j} d| v s	J ‚d| v sJ ‚d| vsJ ‚|  t¡rJ ‚|  t ¡r$J ‚t| ƒ}t|ƒt|ƒt|ƒt|ƒf\}}}}||||fdksDJ ‚t|tƒsKJ ‚|  t	ddƒ¡t
ddƒksZJ ‚|  t	ddddƒ¡t
ddƒkskJ ‚|  t	dt jƒ¡t
dt jƒks|J ‚|  t	 dt j¡¡t
dt jƒksŽJ ‚| jt u s–J ‚| jtu sJ ‚| j| ks¤J ‚| jdks«J ‚| jdks²J ‚|  t¡ttttƒtƒt tk ttk ƒksÉJ ‚d S )	Nr0   r1   r2   )r   r3   rS   r4   r7   TéüÿÿÿF)r   ÚIntegersrB   r   r9   r:   r;   r   r<   r	   r   ÚInfinityÚLopenr@   rA   r=   r>   r?   rG   r+   r'   r   r"   )ÚZZzirJ   rK   rL   rM   rO   rO   rP   Útest_integersD   s(   $""$2rZ   c                  C   sò  t tdd„ ƒ tttdƒtjƒtdƒksJ ‚ttttƒtjƒthks$J ‚tttdƒtj	ƒtj	ks2J ‚t
ttdƒt ƒtjƒ} ttttdƒ| ƒsIJ ‚ttttd ƒtjƒ}d|v sZJ ‚d|vs`J ‚ttdƒŽ  |¡tdddƒksqJ ‚d	| td
dƒ¡vs}J ‚t|ƒ}t|ƒt|ƒt|ƒt|ƒf\}}}}||||fdksJ ‚tttdt ƒtjƒ}tddƒ|v s±J ‚tdƒ|v s¹J ‚d|vs¿J ‚tdƒ|vsÇJ ‚d|vsÍJ ‚|jsÒJ ‚ttt td
dƒƒtdd
ƒksãJ ‚ttttd ƒtd
dƒƒ ¡ td
dƒksùJ ‚ttttfdt ƒdhdhƒ ¡ tdƒksJ ‚ttttftt ƒh d£h d£ƒ ¡ tdddddddddƒ	ks3J ‚tddƒtddƒ }tddƒttttfftdt fƒ|ƒv sTJ ‚tdtjƒttttfftdt fƒ|ƒv slJ ‚tddƒttttffttd fƒ|ƒvsƒJ ‚tddƒttttfftdfƒ|ƒv s˜J ‚ttddƒtddƒtddƒƒ}tdddƒtttttfftttfƒ|ƒv s¿J ‚ttddƒddƒtttttffdt ttfƒ|ƒv sÜJ ‚dt ttttffdt ƒ|ƒvsðJ ‚dtd ƒ ttttffdt ƒ|ƒvsJ ‚tddƒttttffdt ƒ|ƒv sJ ‚td!d„ tjtjƒ}	|	jttjtjƒks2J ‚|	jtjtjfks>J ‚tttttd ƒh d£ƒsNJ ‚ttttfftt ƒdd"hƒ}
d|
 ¡ v sfJ ‚|
 d¡d u spJ ‚t td#d„ ƒ d S )$Nc                   S   s   t ttjƒS ©N)r   r+   r   rV   rO   rO   rO   rP   Ú<lambda>a   ó    ztest_ImageSet.<locals>.<lambda>r3   r4   r6   r0   é
   é	   é   r   )r3   r6   r_   r`   g      Ð?g333333Ó?)r3   r4   rS   r5   é   >   r3   r4   r5   >   r^   é   é   é   é   é   é   é   é   é   é    é!   r7   éþÿÿÿé   éd   c                 S   s   | | S r[   rO   )r+   r,   rO   rO   rP   r\   Ž   ó    )r5   r6   c                   S   s   t tttd ƒdƒS )Nr4   r3   ©r   r   r+   rO   rO   rO   rP   r\   ›   ó    ) r*   Ú
ValueErrorr   r   r+   r   rV   r   r,   ÚEmptySetr   r!   r   r   r8   Úranger<   r	   r9   r:   r   Úis_iterabler   Zdoitr   ÚHalfr   r-   Z	base_psetZ	base_setsÚ	_containsÚ	TypeError)ÚemptyZsquaresÚsirJ   rK   rL   rM   Z	harmonicsÚc3ZS1ZS2rO   rO   rP   Útest_ImageSet`   s\   "$
",0$
ÿ.0.*0:(,* r}   c                   C   s&   t tttttƒƒtdƒƒtƒsJ ‚d S )Nr0   )r;   r   r+   r#   r%   r   r   rO   rO   rO   rP   Útest_image_is_ImageSetž   ó   &r~   c                  C   s–   t ddd\} }t| |ff| t|ƒ | t|ƒ fƒ}t|tddƒtdtƒ ƒ}d|v s-J ‚d|vs3J ‚d|v s9J ‚| | df¡d u sDJ ‚|jrIJ ‚d S )	Nzr, thetaT©Úrealr   r3   )r3   r   )r   rS   )r   r   )	r   r   r$   r%   r   r	   r   rx   rv   )ÚrÚthÚLZ
halfcirclerO   rO   rP   Útest_halfcircle¢   s   $r…   c                  C   sN   t tttd  ƒ} t| tjƒ}t|ƒ}t|ƒt|ƒt|ƒt|ƒfdks%J ‚d S )Nr4   )r   r4   r6   r7   )r   r+   r   r   r8   r9   r:   )r„   ZevensÚirO   rO   rP   Ú$test_ImageSet_iterator_not_injective±   s   (r‡   c                   C   sv   t tdd„ ƒ tdtdƒjtju sJ ‚tdt dƒjtju s J ‚ttddƒjtju s,J ‚tt ddƒjtju s9J ‚d S )Nc                   S   s   t tdtdƒƒS )Nr   r4   )Úlenr   r   rO   rO   rO   rP   r\   º   ó    z$test_inf_Range_len.<locals>.<lambda>r   r4   rm   )r*   rs   r   r   Úsizer   rW   rO   rO   rO   rP   Útest_inf_Range_len¹   s
   r‹   c               
      sz  t dƒ‰t dƒt ddƒ  krt dddƒksJ ‚ J ‚t dddƒ} d| v s'J ‚d| vs-J ‚d	| vs3J ‚d
| vs9J ‚tt ddƒƒttdƒƒksHJ ‚tt dddƒƒttdddƒƒksZJ ‚t ddƒjdksdJ ‚t ddƒjdksnJ ‚t dddƒjdksyJ ‚t dddƒjdks„J ‚t dddƒjdksJ ‚t dddƒjdksšJ ‚tt dddƒƒdks¦J ‚t dddƒˆks°J ‚t ttdƒˆksºJ ‚t tddƒˆksÄJ ‚t t ddƒˆksÏJ ‚t dtdƒˆksÙJ ‚t dt dƒˆksäJ ‚t ddtƒˆksîJ ‚tddd}t d|dƒˆksþJ ‚t d| dƒˆks
J ‚t ddt ƒt ddƒksJ ‚t ddtƒt ddƒks'J ‚t t tƒjtks3J ‚t tt dƒjtks@J ‚t	t
dd„ ƒ t	t
dd„ ƒ t	t
dd„ ƒ dt dtdƒv s`J ‚dt t ddƒv slJ ‚tt dtƒvsvJ ‚tdd d!}|t tƒvs…J ‚td"d d!}t tƒ |¡d us—J ‚td#dd$}|t t tƒvs¨J ‚t	t
d%d„ ƒ t	t
d&d„ ƒ t t ddƒd tju sÅJ ‚t tddƒd dksÒJ ‚|t tƒvsÛJ ‚t dddƒd d'ksèJ ‚td(d)„ t dddƒD ƒƒsøJ ‚tt t ddƒƒ‰t	t‡fd*d„ƒ ˆ tj¡ˆksJ ‚t dddƒ tj¡t dddƒks(J ‚t dddƒ tj¡t dddƒks;J ‚t dddƒ tj¡t dddƒksNJ ‚t dddƒ tj¡t dddƒksaJ ‚t dddƒ tj¡t dddƒkstJ ‚t dddƒ tj¡t dddƒks‡J ‚t d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 ‚t dddƒd d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d0d„ ƒ t	t
d1d„ ƒ t dt d2ƒddd… ˆksýJ ‚t dt d2ƒd dd… t dd2dƒksJ ‚t	t
d3d„ ƒ t t ddƒd d d2… t dt dƒks/J ‚t	t
d4d„ ƒ t tdd2ƒd d … t tdd2ƒksIJ ‚t t ddƒd d2d2… t dddƒks^J ‚t t ddƒd d2d… t t ddƒkstJ ‚t	t
d5d„ ƒ t	t
d6d„ ƒ t t ddƒd2d d2… t dt dƒks˜J ‚t	t
d7d„ ƒ t	t
d8d„ ƒ t tdd2ƒdd … t tdd2ƒks¹J ‚t	t
d9d„ ƒ t tdd2ƒdd2… t tdd2ƒksÓJ ‚t	t
d:d„ ƒ t	t
d;d„ ƒ t t ddƒd2d d… t dddƒksöJ ‚t tdd2ƒddd… ˆksJ ‚t	t
d<d„ ƒ t	t
d=d„ ƒ t	t
d>d„ ƒ t tdd2ƒddd2… ˆks+J ‚t tdd2ƒd dd… ˆks;J ‚t	t
d?d„ ƒ t tttƒˆksMJ ‚ˆjˆksUJ ‚dˆvs\J ‚tˆƒg kseJ ‚tˆƒdksnJ ‚ˆjtju swJ ‚ˆ tdƒ¡tju s„J ‚tˆƒd u sJ ‚t	t‡fd@d„ƒ ˆd d… ˆks¡J ‚t	t‡fdAd„ƒ t	t‡fdBd„ƒ ˆ  t¡tj!u s¾J ‚d gttdƒƒ }t ddƒt dddƒfD ]M}t|ƒ} t" #||g dC¢¡D ]<\}}}	tdƒD ]1}
tt| ƒƒ} |j}t||||	… ƒ}| |||	… }dD||||	||f }||k}|sJ |ƒ‚qêqáqÒt dddƒj$t dddƒks0J ‚t dddƒt dtdƒfD ] } | j}| j|jkrO| j|jksQJ ‚| j%|j% ks[J ‚q<t‰ t	t‡ fdEd„ƒ tˆ dƒƒt dƒksuJ ‚tˆ dFƒƒt dFƒks‚J ‚t ddƒ  t¡tdktdk@ t&t'tdƒdƒ@ ksJ ‚t tdd2ƒ  t¡tdkttk @ t&t'td d2ƒdƒ@ ks»J ‚d S )GNr   r0   r3   r^   rb   r4   re   ra   rd   rc   rS   é   é   r7   éC   é<   rn   éöÿÿÿé&   r5   rU   ÚipT©Úpositiver6   c                   S   s   t t tdƒS ©Nr4   ©r   r   rO   rO   rO   rP   r\   ç   ó    z test_Range_set.<locals>.<lambda>c                   S   s   t tttƒS r[   )r   r+   r   r,   rO   rO   rO   rP   r\   è   r]   c                   S   s   t ttdƒS ©Nr   )r   r+   r,   rO   rO   rO   rP   r\   é   r]   r1   rI   F©ÚintegerÚur@   ©Zinfinitec                   S   s   t dtdƒd S )Nr   r4   rS   r–   rO   rO   rO   rP   r\   ô   r‰   c                   S   s   t dt dƒd S )Nr   rm   rS   r–   rO   rO   rO   rP   r\   õ   ó    r_   c                 s   ó    | ]}|j V  qd S r[   ©Z
is_Integer©Ú.0r†   rO   rO   rP   Ú	<genexpr>ú   s   € z!test_Range_set.<locals>.<genexpr>c                      ó   t ˆ ƒS r[   ©r:   rO   ©ÚitrO   rP   r\   ü   rp   c                   S   s   t tddƒddd… S )Nr   rS   r3   r5   r–   rO   rO   rO   rP   r\     ó    c                   S   s   t tddƒd d… S )Nr   rS   r3   r–   rO   rO   rO   rP   r\     rr   c                   S   s   t dtƒd S )Nr3   rm   r–   rO   rO   rO   rP   r\     r—   c                   S   s   t t dƒd S ©Nr3   r4   r–   rO   rO   rO   rP   r\     r‰   c                   S   ó   t dƒd S )Nr^   iìÿÿÿ©r   rO   rO   rO   rP   r\     r]   c                   S   r©   )Nr^   rb   rª   rO   rO   rO   rP   r\     r]   c                   S   s   t dt dƒddd… S ©Nr4   rm   r   r–   rO   rO   rO   rP   r\     ó    rm   c                   S   s   t t ddƒd dd… S ©Nr6   r4   r–   rO   rO   rO   rP   r\     r¬   c                   S   s   t t ddƒd d d… S r­   r–   rO   rO   rO   rP   r\     r¬   c                   S   s   t t ddƒd dd… S ©Nr6   r4   r   rm   r–   rO   rO   rO   rP   r\     r¬   c                   S   s   t t ddƒd dd… S )Nr6   r4   rm   r–   rO   rO   rO   rP   r\     r¬   c                   S   s   t t ddƒddd… S )Nr6   r4   rm   r   r–   rO   rO   rO   rP   r\     r¬   c                   S   s   t t ddƒdd d… S )Nr6   r4   r   r–   rO   rO   rO   rP   r\     r¬   c                   S   s   t t ddƒddd… S r®   r–   rO   rO   rO   rP   r\      r¬   c                   S   s   t tddƒdd… S r«   r–   rO   rO   rO   rP   r\   "  rr   c                   S   s   t t ddƒdd d… S )Nr6   r4   rS   r–   rO   rO   rO   rP   r\   #  r¬   c                   S   s   t tddƒd S ©Nr   rm   r–   rO   rO   rO   rP   r\   &  r‰   c                   S   s   t tddƒddd… S )Nr   rm   r   r^   r4   r–   rO   rO   rO   rP   r\   '  r§   c                   S   s   t tddƒdd d… S r¯   r–   rO   rO   rO   rP   r\   (  r§   c                   S   s   t tddƒd dd… S )Nr   rm   r3   rS   r–   rO   rO   rO   rP   r\   +  r§   c                      ó   ˆ d S r˜   rO   rO   ©rz   rO   rP   r\   6  rp   c                      ó   ˆ j S r[   ©r@   rO   r±   rO   rP   r\   8  ó    c                      r²   r[   ©rA   rO   r±   rO   rP   r\   9  r´   )éýÿÿÿrS   Nr3   r5   z
%s[%s:%s:%s] = %s -> %sc                      s   t ˆ dƒƒS ©Nr3   rª   rO   )Úbuiltin_rangerO   rP   r\   V  r]   l    J)£)(r   Úlistru   rA   r@   rˆ   r   r   rŠ   r*   rs   rB   r   ÚZeroÚallr9   ry   r<   rV   Ú	ComplexesrE   Ú	Rationalsr8   rC   Ú
IndexErrorr+   r,   Úreversedr   rt   ÚboolÚNotImplementedErrorrG   ÚfalseÚ	itertoolsÚproductr=   Ústepr   r/   )r‚   r’   rI   r›   r@   ZABÚRrJ   rK   rL   ÚreverseÚresultÚansÚtxtÚcheckÚrevrO   )r¸   rz   r¦   rP   Útest_Range_setÁ   s  .$ &&&&&&"*,&*,,&&*   
þÿøÿ  6@rÍ   c                     s¸
  t ttd dƒ‰t tttƒ‰tddd‰ tdddd} t | ƒ‰t d|  dƒ‰t ˆ ˆ d	 d
ƒ}t ˆ ˆ d dˆ  ƒ‰tddd‰ tddd‰tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ˆjttd dfkstJ ‚ˆjtttfks~J ‚|jˆ ˆ d d
fksŠJ ‚ˆjˆ dˆ  dˆ  fks˜J ‚tt‡fdd„ƒ tt‡fdd„ƒ ˆj	j| d ddfks·J ‚ˆj	j|  d ddfksÅJ ‚|j	jˆ d ˆ d
 dfksÔJ ‚ˆj	jdˆ  dˆ  dˆ  fksåJ ‚ˆˆvsëJ ‚ˆ|vsñJ ‚dˆv s÷J ‚dˆv sýJ ‚tt
‡fdd„ƒ tt
‡fdd„ƒ dˆvsJ ‚d|vsJ ‚ˆ d |vs&J ‚ˆ d
 |v s/J ‚tt
‡fd d„ƒ tt
‡fd!d„ƒ tt‡fd"d„ƒ tt‡fd#d„ƒ tt|ƒƒˆ ks^J ‚ttˆƒƒˆ ksiJ ‚ˆ tj¡ˆkstJ ‚ˆ ttƒ¡tthˆƒks„J ‚tt‡fd$d„ƒ tt‡fd%d„ƒ tt‡fd&d„ƒ t|ƒ|j  kr¯dks²J ‚ J ‚tˆƒˆj  krÂdksÅJ ‚ J ‚tt‡fd'd„ƒ tt‡fd(d„ƒ tt‡fd)d„ƒ tt‡fd*d„ƒ tt dƒƒd+ksôJ ‚tˆƒsûJ ‚t|ƒsJ ‚tˆƒs	J ‚tˆƒsJ ‚tt‡fd,d„ƒ tt‡fd-d„ƒ tt‡fd.d„ƒ tt‡fd/d„ƒ ˆjdks<J ‚ˆj|  d ksGJ ‚|jˆ ksOJ ‚tt‡fd0d„ƒ tt‡fd1d„ƒ tt‡fd2d„ƒ ˆj| d kstJ ‚ˆjdks|J ‚|jˆ ks„J ‚tt‡fd3d„ƒ tt‡fd4d„ƒ tt‡fd5d„ƒ tt‡fd6d„ƒ tt‡fd7d„ƒ |d d
… t ˆ ˆ d d
ƒksÂJ ‚|d ˆ ksËJ ‚|d ˆ d8 ksÖJ ‚|d ˆ d ksáJ ‚ˆd d
… t ˆ dˆ  dˆ  ƒksôJ ‚ˆd ˆ ksýJ ‚ˆd dˆ  ksJ ‚ˆd dˆ  ksJ ‚tt‡ fd9d„ƒ ˆd ˆj  kr,dks/J ‚ J ‚ˆd ˆj  krA| d ksDJ ‚ J ‚ˆd ˆj  krTdksWJ ‚ J ‚ˆd ˆj  krj|  d ksmJ ‚ J ‚tt‡fd:d„ƒ |jˆ ks~J ‚|jˆ d ksˆJ ‚tt‡ fd;d„ƒ | t¡tˆ ktˆ d k@ ttˆ  t d
ƒdƒ@ ks®J ‚ˆ t¡ttˆ  t dˆ  ƒdƒtˆ ktdˆ  k@ dˆ  dk@ tˆ ktdˆ  k@ dˆ  dk@ B @ ksãJ ‚t ˆ ˆ d ƒ t¡ttˆ ƒksõJ ‚ˆ t¡tttdƒdƒtttdƒdƒ@ ttt t tƒdƒ@ ttktt t k@ tdk@ ttktt t k@ tdk@ B @ ks6J ‚ˆ t¡tttƒtttdƒdƒ@ ksKJ ‚ˆ t¡tttdƒdƒks[J ‚td<ddd=}td>ddd?}t dƒ ˆ ¡tˆ dkˆ dkƒks|J ‚t dƒ ˆ ¡tˆ dƒks‹J ‚t t ddƒ ˆ ¡ˆ dkksœJ ‚t t tƒ ˆ ¡dksªJ ‚t ddd
ƒ ˆ ¡tˆ t ddd
ƒƒks¿J ‚t ddd
ƒ |¡t|dk|d@kƒksÔJ ‚t ddd
ƒ d
ˆ  ¡td
ˆ  dkd
ˆ  d@kƒksïJ ‚t ddd
ƒ |¡d+ksýJ ‚t ddAd
ƒ |¡d+ksJ ‚t ddAd
ƒ |¡t|dk|dkƒks J ‚t dddƒ |¡d+ks.J ‚t dAddƒ |¡t|dk|dAkƒksCJ ‚t t dd
ƒ ˆ ¡tˆ t t dd
ƒƒksZJ ‚d S )BNr6   r0   r†   Tr™   ©rš   r”   r   rS   é   r4   ra   r5   r@   rœ   c                      r£   r[   rª   rO   r³   rO   rP   r\   k  rp   z%test_Range_symbolic.<locals>.<lambda>c                      s   t ˆ ddƒS rR   rª   rO   r³   rO   rP   r\   l  r]   c                      s   t ˆ ˆ dƒS r·   rª   rO   r³   rO   rP   r\   m  r]   c                      s   t ddˆ ƒS r·   rª   rO   r³   rO   rP   r\   n  r]   rb   r^   c                      r²   r[   ©r¿   rO   ©ÚxrrO   rP   r\   u  r´   c                      r²   r[   rÐ   rO   ©ÚsrrO   rP   r\   v  r´   r3   é   rm   rn   r¶   c                      ó   dˆ v S r·   rO   rO   ©ÚiprrO   rP   r\   €  rp   c                      rÖ   ©NrS   rO   rO   )ÚinrrO   rP   r\     rp   çš™™™™™¹?c                      s   t ˆ v S r[   ©r+   rO   rÑ   rO   rP   r\   †  rp   c                      rÖ   r·   rO   rO   rÓ   rO   rP   r\   ‡  rp   c                      ó   t tˆ ƒƒS r[   ©r:   r9   rO   rÑ   rO   rP   r\   ‰  r]   c                      rÝ   r[   rÞ   rO   rÓ   rO   rP   r\   Š  r]   c                      ó   ˆ d d… S r•   rO   rO   rÓ   rO   rP   r\     r]   c                      r°   r˜   rO   rO   rÑ   rO   rP   r\     rp   c                      r°   r˜   rO   rO   rÓ   rO   rP   r\   ‘  rp   c                      r£   r[   ©rˆ   rO   rÑ   rO   rP   r\   •  rp   c                      r²   r[   ©rŠ   rO   rÑ   rO   rP   r\   –  r´   c                      r£   r[   rà   rO   rÓ   rO   rP   r\   —  rp   c                      r²   r[   rá   rO   rÓ   rO   rP   r\   ˜  r´   Fc                      r£   r[   ©rÀ   rO   rÓ   rO   rP   r\   Ÿ  rp   c                      r£   r[   râ   rO   ©Úir2rO   rP   r\      rp   c                      r²   r[   r³   rO   rÑ   rO   rP   r\   ¢  r´   c                      r²   r[   r³   rO   rÓ   rO   rP   r\   £  r´   c                      r²   r[   r³   rO   rã   rO   rP   r\   §  r´   c                      r²   r[   rµ   rO   rÑ   rO   rP   r\   ©  r´   c                      r²   r[   rµ   rO   rÓ   rO   rP   r\   ª  r´   c                      r²   r[   rµ   rO   rã   rO   rP   r\   ®  r´   c                      r°   r˜   rO   rO   rÑ   rO   rP   r\   °  rp   c                      r°   r˜   rO   rO   rÓ   rO   rP   r\   ±  rp   c                      r°   rÙ   rO   rO   rÓ   rO   rP   r\   ²  rp   c                      rß   r•   rO   rO   rÓ   rO   rP   r\   ³  r]   r`   c                      ó   t ˆ ƒd S rÙ   rª   rO   ©r†   rO   rP   r\   ¼  r]   c                      r°   ©Nrm   rO   rO   r×   rO   rP   r\   Á  rp   c                      ó
   t ˆ ƒjS r[   )r   r@   rO   ræ   rO   rP   r\   Ä  ó   
 Úe)rš   ÚevenÚo)rš   Zoddr7   r_   )r   r+   r,   r-   r   r   r*   rs   Úargsr¿   ry   r:   r9   r<   r   rV   r   r   rˆ   rŠ   rÀ   r@   rA   rG   r   r/   r.   rB   r'   r   r   )r’   Zirrê   rì   rO   )r†   r@   rÚ   rØ   rä   rÔ   rÒ   rP   Útest_Range_symbolic_  s  " &&"&&*&,ÿ
ÿÿÿ$

ÿÿÿÿþ* &"**6**2rî   c                  C   s,  t dƒt dƒtjft dƒt dtƒtjft dƒt ddƒtjft ddƒt ddƒt ddƒft ddƒt ddƒt ddƒft dtdƒt dtdƒtjft dtdƒt tƒt dtdƒft dtdƒt dƒt dddƒft dtdƒt tƒt dtdƒft dtdƒt d	d
ƒtjft dddƒt dddƒt dddƒft dd
dƒt t d	dƒtjft dtdƒt d	tdƒt dtd
ƒft dd
dƒt dddƒtjffD ]\\} }}|  |¡|ksÅJ ‚|  |j¡|ksÏJ ‚| j |¡|ksÙJ ‚| j |j¡|ksäJ ‚|| } }|  |¡|ksòJ ‚|  |j¡|ksüJ ‚| j |¡|ksJ ‚| j |j¡|ksJ ‚q·d S )Nr   r3   r5   r6   r¶   rS   r4   ro   r0   r7   éP   é7   éG   ra   r`   rn   )r   r   rt   r   r<   r¿   )rJ   rK   r‚   rO   rO   rP   Útest_range_range_intersectionå  s2     ò
érò   c                  C   s   t ddd} ttdƒ t| | d ƒ¡tƒsJ ‚tdƒ tddƒ¡tdƒks'J ‚tdƒ tt tƒ¡tdƒks8J ‚tdƒ tdtƒ¡tddƒksIJ ‚tdƒ td	tƒ¡tddƒksZJ ‚tdƒ td
dƒ¡tddƒkskJ ‚tdƒ td
dƒ¡tddƒks|J ‚tdƒ t dd¡¡tddƒksŽJ ‚tdƒ t d
d¡¡tj	u sžJ ‚tddƒ tj
¡tddƒks®J ‚tddƒ tj¡tddƒks¾J ‚tddƒ tj¡tddƒksÎJ ‚tddƒ tj¡tddƒksÞJ ‚tddƒ tj¡tddƒksîJ ‚tdƒ tddƒ¡tj	u sýJ ‚tdƒ tt tƒ¡tj	u sJ ‚d S )NÚpTr“   r5   r4   r6   r   r3   gš™™™™™ñ?rÛ   gÍÌÌÌÌÌ@ç      à?rS   r0   r7   gš™™™™™É?gš™™™™™é?)r   r;   r   r<   r	   r   r   Úopenr   rt   r¼   rE   rV   r8   rC   )ró   rO   rO   rP   Ú test_range_interval_intersection   s"   " """""$      &rö   c                  C   sª  t ddƒjdu s
J ‚t dtƒjdu sJ ‚t t dƒjdu sJ ‚t t tƒjdu s*J ‚t tt ƒjdu s5J ‚t ddƒjdu s?J ‚t ttƒjdu sIJ ‚t t t ƒjdu sUJ ‚tddd	} td
dd	}t | | d ƒjdu smJ ‚t | dƒjdu swJ ‚t d| d ƒjdu sƒJ ‚t | |ƒjdu sJ ‚t | | ||  ƒjdu s›J ‚t | | | |  ƒjdu s©J ‚t | tƒjdu s³J ‚t t | ƒjdu s¾J ‚t | t ƒjdu sÉJ ‚t t| ƒjdu sÓJ ‚d S )Néœÿÿÿro   Tr4   Fé2   r   Únr™   Úmé1   r¶   rn   )r   Zis_finite_setr   r   ©rù   rú   rO   rO   rP   Útest_range_is_finite_set  s(   rý   c                  C   sr  t ddƒjdu s
J ‚t dtƒjdu sJ ‚t t dƒjdu sJ ‚t t tƒjdu s*J ‚t tt ƒjdu s5J ‚t ddƒjdu s?J ‚t ttƒjdu sIJ ‚t t t ƒjdu sUJ ‚tddd	} td
dd	}tdddd}t | | d ƒjdu stJ ‚t | dƒjdu s~J ‚t d| d ƒjdu sŠJ ‚t d|d ƒjdu s–J ‚t | |ƒjdu s J ‚t | | ||  ƒjdu s®J ‚t | | | |  ƒjdu s¼J ‚t | tƒjdu sÆJ ‚t t | ƒjdu sÑJ ‚tdƒ}t ||d ƒjdu sáJ ‚t |dƒjdu sëJ ‚t d|d ƒjdu s÷J ‚t ||ƒjdu sJ ‚t || || ƒjdu sJ ‚t ||| | ƒjdu s J ‚t |tƒjdu s+J ‚t t |ƒjdu s7J ‚d S )Nr÷   ro   Tr4   Frø   r   rù   r™   rú   ró   rÎ   rû   r¶   rn   r+   )r   rv   r   r   )rù   rú   ró   r+   rO   rO   rP   Útest_Range_is_iterable-  s:   rþ   c            	      C   s”  t ttdt tddƒ ƒtjƒ} tttdt tddƒ ƒtjƒ}|| ks&J ‚tttdt tddƒ ƒtjƒ}|| ks<J ‚tdƒ}ttdt | tjƒ}|d |v sSJ ‚d\}}}|tt||t  tjƒv sgJ ‚|tt||t  tjƒv svJ ‚td	d
d}|d | d }t||tjƒj	j
|d | d ks—J ‚d| d }t||tjƒj	j
d| d ks®J ‚tttdt ftjƒt tttdt fƒtjƒksÈJ ‚d S )Nr4   r5   rn   rm   rd   r,   r6   )gZd;ßO·?gƒÀÊ¡E¶Û?gmçû©ñÒÕ?r+   T)Únegativer3   )r   r   r+   r   r   rV   r   r   r   ÚlamdaÚexpr)	rÉ   Úimr,   r„   rJ   rK   rL   Z_xÚeqrO   rO   rP   Útest_Integers_eval_imagesetM  s&      
&"ÿr  c                     sÔ   t dƒ\} }}tt| t|  | tdƒƒtt| t | |  | tdƒƒks'J ‚td d ‰ ttˆ tdƒƒjjˆ ks;J ‚| t|  | ‰ tdddƒ}ttˆ |ƒ}|jjˆ ksWJ ‚t|ƒ‡ fdd„t|ƒD ƒkshJ ‚d S )	Nza b cr5   r3   r4   r¶   rm   c                    s   g | ]
}ˆ   t|¡ ¡ ‘qS rO   )Úsubsr+   Úexpandr    ©r  rO   rP   Ú
<listcomp>n  s    z,test_Range_eval_imageset.<locals>.<listcomp>)r   r   r+   r   r   r  r¹   )rJ   rK   rL   r‚   ZimsetrO   r  rP   Útest_Range_eval_imagesetd  s   ÿ&r	  c                   C   sP   t tttttt d ƒƒtddƒƒŽ t dtdƒ d dtdƒd dƒks&J ‚d S )Nr6   r   rd   rS   r4   r   r3   )r   r   r   r+   r%   r   r   r#   rO   rO   rO   rP   Útest_funq  s
   ÿ ÿr
  c                  C   sü   t ddd} t dddd}t dddd}tdƒjsJ ‚td	ƒjr"J ‚td	dƒjs*J ‚td
dƒjr2J ‚t| ƒjd u s;J ‚t|ƒjsBJ ‚t|ƒjdu sKJ ‚t|dƒjdu sUJ ‚t||ƒjdu s_J ‚t||ƒjsgJ ‚t|d
ƒjd u sqJ ‚t||d
ƒjdu s|J ‚d S )Nr†   Tr™   rù   )rÿ   rš   ró   )r”   rš   r   r3   rS   F)r   r   Zis_empty)r†   rù   ró   rO   rO   rP   Útest_Range_is_emptyv  s   r  c                   C   sð   dt jv sJ ‚t jt jv sJ ‚tdƒ t jv sJ ‚dt jvs J ‚tdƒt jvs)J ‚t jtt tƒks4J ‚t jtdtƒks>J ‚t j tt tƒ¡sJJ ‚t j tt tƒ¡tt tƒks\J ‚t j	t jvsdJ ‚t j
t jvslJ ‚tt j	 t jvsvJ ‚d S )Nr0   r4   )r4   r0   rS   r   )r   rE   ÚPir#   r	   r   rF   r<   r   ZComplexInfinityÚNaNr+   rO   rO   rO   rP   Ú
test_Reals‰  s   $r  c                   C   s  dt jv sJ ‚ddt  t jv sJ ‚t jt jv sJ ‚tdƒ t jv s$J ‚t t jv s,J ‚tdƒt jv s5J ‚t j t j¡t jksAJ ‚t j t j¡t jksMJ ‚t jtt jt j ƒksZJ ‚t jtt	ddƒt	ddƒ ƒkdksmJ ‚t
t jƒdksvJ ‚tt jƒdksJ ‚d S )	Nr0   r6   r4   rS   r3   r5   Fr¼   )r   r¼   r   r  r#   r<   rE   Úunionr   r	   ÚstrÚreprrO   rO   rO   rP   Útest_Complex˜  s   &r  c                 C   s   t t || ¡ƒS )z.Return first n items of the iterable as a list)r¹   rÃ   Úislice)rù   ÚiterablerO   rO   rP   Útake§  s   r  c                	   C   sÔ   t j t j¡t jksJ ‚dt j t j¡v sJ ‚dt j t j¡v s"J ‚dt j t j¡vs-J ‚dt j t j¡vs8J ‚dt j tdtƒ¡v sEJ ‚dt j tt dƒ¡v sSJ ‚tdd„ tdt j tdtƒ¡ƒD ƒƒshJ ‚d S )Nr0   r1   r2   r5   c                 s   rž   r[   rŸ   )r¡   r+   rO   rO   rP   r¢   ´  s   € ÿz%test_intersections.<locals>.<genexpr>r^   )	r   rV   r<   rE   r8   r	   r   r»   r  rO   rO   rO   rP   Útest_intersections¬  s   ÿr  c                  C   s„  ddl m} m} tt| | ƒtjƒtt||ƒtjƒksJ ‚tt| d|  ƒtjƒ tt|d| d ƒtjƒ¡tju s:J ‚tt| d|  ƒtjƒ tt| d|  d ƒtjƒ¡tju sXJ ‚tt|d| ƒtjƒ tt| d|  ƒtjƒ¡ 	t
ttdt ƒtjƒ¡s}J ‚tttd tddƒ tjƒ tj¡tju s”J ‚tttd tj tjƒ tj¡tju s©J ‚t
t| d|  d ƒtjƒ}| tj¡|ksÀJ ‚d S )Nr   rü   r4   r3   r5   r7   r0   )Ú	sympy.abcrù   rú   r   r   r   rV   r<   rt   Údummy_eqr   r-   r+   r   rw   )rù   rú   ZS53rO   rO   rP   Útest_infinitely_indexed_set_1¸  s.   (ÿÿÿÿÿÿÿ.*r  c                  C   s  ddl m}  tddd}tt| | ƒtjƒtt| | | ƒtjƒks"J ‚tt| | t ƒtjƒtt| | | t ƒtjƒks<J ‚tt| | ƒtjƒtt| |  | ƒtjƒksSJ ‚tt| d|  ƒtjƒtt| d|  ƒtjƒkskJ ‚tt| d|  t ƒtjƒtt| d|  t d ƒtjƒks‰J ‚d S )	Nr   ©rù   rJ   Tr™   iúÿÿÿr7   r4   )	r  rù   r   r   r   r   rV   r   r   )rù   rJ   rO   rO   rP   Útest_infinitely_indexed_set_2Î  s"   ÿÿÿÿÿr  c               	   C   s¸  ddl m}  tt| | | d | d  t  ƒtjƒ tj¡t	ddƒks$J ‚| d | tj
  }tt| | |t  ƒtjƒ tj¡t	dƒksDJ ‚tt| | || d  t  ƒtjƒ tj¡t	dƒks_J ‚tt| | d | ¡ t  ƒtjƒ tj¡ttttd ƒt| t| d | d  tdƒd  dƒtjƒƒks”J ‚tt| | d|  d  || d  t  ƒtjƒ tj¡t	tj
ƒks¶J ‚tt| | | d  | d | d  t d|  d   ƒtjƒ tj¡t	dƒksÝJ ‚tt| | | d d  | d | d  t d|  d   ƒtjƒ tj¡tju sJ ‚tt| t tdt |  td	   tttt ƒƒƒ  ƒtjƒ}| tj¡tt| d|  t td	  ƒtjƒ  krWtt| dt |  ttd
d	ƒ  ƒtjƒksZJ ‚ J ‚d S )Nr   r  r3   rS   r4   r7   r5   r_   r6   rn   )r  rù   r   r   r   r   rV   r<   rE   r   rw   rC   r  r   r+   r   r   rt   r   r!   r   r#   r   )rù   r  rN   rO   rO   rP   Útest_imageset_intersect_realÝ  s`   <ÿ ÿ &ÿÿ,ÿÿÿÿþÿÿÿ
þ4þÿ"ÿÿr  c            
      C   sˆ  ddl m}  tt| | t ƒtjƒ}tt| d|  ƒtdtƒƒ}tt| d|  t td  ƒtjƒ}tt| | t t ƒtjƒ}tt| dt |  t td  ƒtjƒ}tt| t	| ƒƒtjƒ}tt| | d ƒtjƒ}tt| t
| ƒƒtjƒ}tt| t| ƒƒtjƒ}	| tddƒ¡tdƒks‰J ‚| tddt ddƒ¡tdtƒksœJ ‚| tddƒ¡tddƒks«J ‚| tddƒ¡tjks¸J ‚| tdd	ƒ¡tttd
dƒ td ƒksÎJ ‚| tddƒ¡tdƒksÜJ ‚| tddƒ¡tjkséJ ‚| tddƒ¡tjksöJ ‚| tddƒ¡ttjt	dƒƒks	J ‚| tddƒ¡t|tddƒƒksJ ‚| tddƒ¡t|tddƒƒks/J ‚|	 tddƒ¡t|	tddƒƒksBJ ‚d S )Nr   r  r4   rS   r3   FTr1   r0   r¶   r^   )r  rù   r   r   r   r   rV   r	   r   r!   r   r    rC   r<   r   rt   r   rº   r   )
rù   Úf1Úf2Zf3Zf4Zf5Zf6Zf7Zf8Zf9rO   rO   rP   Ú test_imageset_intersect_intervalú  s,   "&&,&&&*r  c               	   C   s¦  ddl m} m} tt|d| d ƒtjƒ}tt|d| d ƒtjƒ}| |¡|ks+J ‚tt|d| ƒtjƒ tt|d| d ƒtjƒ¡tjksIJ ‚tt|d| d| d  ƒtjƒ tj¡t	d	d
ddƒksgJ ‚tt||d d ƒtjƒ tt||d d  ƒtjƒ¡t	dƒks‰J ‚tt||d d ƒtjƒ tt| d|  ƒtjƒ¡ 
tt|d|d  d|  d ƒtjƒ¡s¸J ‚tt||d d ƒtjƒ tt| | d  ƒtjƒ¡t	ddƒksÙJ ‚tt| | d d ƒtjƒ tt|d| ƒtjƒ¡ 
ttt| | d d ƒtjƒtt|d| ƒtjƒƒ¡sJ ‚tt||d d ƒtjƒ tt| | d  d ƒtjƒ¡t	ddƒks3J ‚tt|td |d t d  ƒtjƒ tt|dt d |d t d  ƒtjƒ¡ 
tt|dt | d dt d  ƒtjƒ¡suJ ‚tt||tdƒ ƒtjƒ tj¡ 
ttt||tdƒ ƒtjƒtjƒ¡s›J ‚tt||d d ƒtjƒ tt||d ƒtjƒ¡ 
ttt||d d ƒtjƒtt||d ƒtjƒƒ¡sÑJ ‚d S )Nr   )rú   rù   r4   r3   r6   r_   rb   r5   iÃÿÿÿiéÿÿÿri   é=   r0   r7   i÷ÿÿÿé(   é)   r`   éQ   éA   re   rn   rd   rð   é   )r  rú   rù   r   r   r   rV   r<   rt   r   r  r   r   r!   rD   )rú   rù   Zimg1Zimg2rO   rO   rP   Ú#test_imageset_intersect_diophantine  sˆ   ÿÿ"ÿÿÿÿÿ ÿÿÿÿÿþÿÿ
ÿ&(ÿ$ÿÿÿÿÿÿÿþÿr&  c                  C   sÚ   ddl m} m} tt|dt | ƒtjƒ tt| dt |  ƒtjƒ¡ 	t
ttdt t ƒtjƒ¡s3J ‚tt| d|  d ƒtjƒtt| d|  d ƒtjƒksOJ ‚tt| d|  d ƒtjƒtt| d|  d ƒtjƒkskJ ‚d S )Nr   rü   r4   r5   r7   r3   )r  rù   rú   r   r   r   r   rV   r<   r  r   r-   rü   rO   rO   rP   Útest_infinitely_indexed_set_3B  s   ÿÿÿÿÿr'  c                  C   sè   ddl m} m} tt| | ƒtjƒtjksJ ‚tt| t| ƒƒtt|t|ƒƒtjƒƒtt|tt|ƒƒƒtjƒks8J ‚t| dd|   tj	ƒt
dtdƒksKJ ‚t| dd|   tjƒt
dtdƒks^J ‚t| dd|   tj	ƒt
dt dƒksrJ ‚d S )Nr   rü   r3   r4   r5   rS   rm   )r  rù   rú   r   r   r   rV   r%   r&   r8   r   r   rC   rü   rO   rO   rP   Útest_ImageSet_simplificationM  s   ÿþ&&,r(  c                  C   s@  dt jftttdt ft jƒv sJ ‚ttttd  t jƒ t j¡t ju s&J ‚t	dd} ttttt
  t jƒ t j¡}| t
t|  ¡ t j¡t ju sKJ ‚ttttt
 t  t jƒ t j¡}| t
d¡t ju sgJ ‚| t
t|  t ¡ t j¡t ju szJ ‚tdƒd tdƒd  d }tttt|  t jƒ t j¡}|t jusžJ ‚d S )Nr4   r3   r5   Tr™   r   )r   rw   r   r+   rV   r   rD   rE   rt   r   r,   r  r$   r%   )r†   Úqr.   rO   rO   rP   Útest_ImageSet_containsX  s   $(
""&r*  c            
         s   t ddd} tddƒ}tddƒ}tdd	ƒ}t|| ƒ}tt|| || ƒƒ}d
dt  |v s0J ‚ddt  |v s:J ‚ddt  |v sDJ ‚dd
t  |v sNJ ‚d
dt  |vsXJ ‚ddt  |vsbJ ‚| t¡tt|ddkspJ ‚| | ¡dksyJ ‚| t¡tt|ddks‡J ‚| | ¡dksJ ‚tddƒ‰ tddtj	 ƒ‰tˆ ˆ dd}dtd d  |v s±J ‚tj
td d  |v s¾J ‚tj
dt  |v sÉJ ‚ddt  |v sÓJ ‚t|v sÙJ ‚d|v sßJ ‚d|v såJ ‚dt |vsíJ ‚dt |vsõJ ‚| t¡tt|ddksJ ‚| | dt  ¡t| dt  |ddksJ ‚| dd| d   ¡tdd| d   |ddks6J ‚tddƒ}ttdt dd}t|| dd}	|	 d¡dksVJ ‚|	 dt ¡dksbJ ‚|	 dt ¡dksnJ ‚|	 dt ¡dkszJ ‚|	 dt ¡dks†J ‚|	 d¡dksJ ‚|	 d¡dksšJ ‚|	 t¡tt|	ddks©J ‚|	 dd| d   ¡tdd| d   |	ddksÄJ ‚tt‡ ‡fdd„ƒ d S )Nr‚   Tr€   r4   r5   r6   r7   rn   r_   g      @g      @ra   gffffff@gš™™™™™	@F©Úevaluater   r3   ©Zpolarrô   r^   g333333ã?)Z	left_openrm   c                      s   t ˆ ˆ ddS )Nr4   r-  )r   rO   ©Úr1Útheta1rO   rP   r\   ™  r‰   z-test_ComplexRegion_contains.<locals>.<lambda>)r   r	   r   r
   r   rB   r+   r   r   r  rw   r   r*   rs   )
r‚   rJ   rK   rL   Úc1Úc2r|   Úr2Útheta2Úc4rO   r.  rP   Útest_ComplexRegion_containsf  sd   



ÿÿ
ÿr6  c                     s†  t dƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ t ddd‰ tt‡ fd	d„ƒ tt‡ fd
d„ƒ tˆ ˆ d ƒd ˆ ksMJ ‚tt‡ fdd„ƒ tˆ ˆ d ƒjdksbJ ‚t dddd‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tˆ d ƒd dks‡J ‚tˆ ˆ d ƒd ˆ ks”J ‚tˆ ƒjˆ ksJ ‚tˆ d ƒjˆ d ksªJ ‚tˆ ˆ d ƒjdks¶J ‚t dddd‰ tˆ ƒd dksÇJ ‚tˆ ˆ d ƒd ˆ ksÔJ ‚tˆ ƒjˆ ksÝJ ‚tˆ ˆ d ƒjdkséJ ‚t dddd} tˆ ˆ |  ƒd ˆ ksýJ ‚tˆ ˆ |  ƒj| ks
J ‚tˆ ˆ d ƒjdksJ ‚tˆ ˆ |  dƒjt| d ƒks)J ‚t ddddd} tˆ ˆ |  dƒj| d ksAJ ‚d S )Nrù   c                      rå   r˜   rª   rO   r  rO   rP   r\   ž  r]   z%test_symbolic_Range.<locals>.<lambda>c                      ó   t ˆ ˆ ƒd S r˜   rª   rO   r  rO   rP   r\   Ÿ  r—   c                      s   t ˆ ˆ d ƒd S )Nr3   r   rª   rO   r  rO   rP   r\      r   c                      rè   r[   ©r   rŠ   rO   r  rO   rP   r\   ¡  ré   Tr™   c                      rå   r˜   rª   rO   r  rO   rP   r\   ¤  r]   c                      r7  r˜   rª   rO   r  rO   rP   r\   ¥  r—   r3   r   c                      rè   r[   r8  rO   r  rO   rP   r\   §  ré   )rš   Znonnegativec                      rå   r˜   rª   rO   r  rO   rP   r\   «  r]   c                      r7  r˜   rª   rO   r  rO   rP   r\   ¬  r—   rÎ   rú   r4   )rš   r”   rë   )r   r*   rs   r¾   r   rŠ   r"   )rú   rO   r  rP   Útest_symbolic_Rangeœ  s>   $$r9  c                      sX   t ddd‰ tt‡ fdd„ƒ t dddd‰ tdd„ tˆ ƒƒtdd„ tˆ ƒƒks*J ‚d S )Nrù   Tr™   c                      s   t dd„ tˆ ƒƒS )Nc                 S   ó   | d S r•   rO   rÜ   rO   rO   rP   r\   Æ  rp   z4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>)r   r   rO   r  rO   rP   r\   Æ  r   z"test_issue_18400.<locals>.<lambda>rÎ   c                 S   r:  r•   rO   rÜ   rO   rO   rP   r\   Ê  rp   )r   r*   rs   r   r   rO   rO   r  rP   Útest_issue_18400Ä  s   ,r;  c                  C   sx  t tdtƒtdtjƒ dd} t tddƒtddtj ƒ dd}t tddƒtdtjƒ dd}t tdtƒtdtjƒ dd}t tdtƒttjdtj ƒ dd}t tdtƒttj d tjd ƒ dd}t tdtƒtdtjd ƒ dd}| |¡|ksJ ‚| |¡|ksˆJ ‚| |¡|ks‘J ‚| |¡| ksšJ ‚t tddƒtddtj ƒ dd}| tddƒ¡tddƒksºJ ‚| tddƒ¡tdƒksÈJ ‚| tdd	ƒ¡tju sÕJ ‚t tt tƒtdƒ ƒ} t td
dƒtd
dƒ ƒ}t td
dƒtddƒ ƒ}	t tt tƒtdtƒ ƒ}
t tt tƒtt dƒ ƒ}t tdtƒtt tƒ ƒ}t tdtƒtdtƒ ƒ}|
 |¡|	ks7J ‚| |¡|ksAJ ‚|
 |¡|ksKJ ‚|
 |¡| ksUJ ‚t tddƒtddƒ ƒ}| tddƒ¡tddƒksqJ ‚| tddƒ¡tdƒks€J ‚| tddƒ¡tju sŽJ ‚t tddƒtddtj ƒ dd}t td
dƒtd
dƒ ƒ}| |¡t||ddksºJ ‚d S )Nr   Tr-  r3   r4   r6   r0   r_   re   rS   r1   r   r^   rn   r7   Fr+  )	r   r	   r   r   r   r  r<   rt   r   )ZX_axisZ	unit_diskZupper_half_unit_diskZupper_half_diskZlower_half_diskZright_half_diskZfirst_quad_diskr1  Zunit_squareZupper_half_unit_squareZupper_half_planeZlower_half_planeZright_half_planeZfirst_quad_planeZC1ZC2rO   rO   rP   Útest_ComplexRegion_intersectÍ  sB   "$*"" ""r<  c                  C   sV  t tddƒtddtj ƒ dd} t tddƒtdtjƒ dd}t tdtƒtdtjƒ dd}t tdtƒttjdtj ƒ dd}ttddƒtddtj ƒ tddƒtdtjƒ ƒ}ttdtƒtdtjƒ tdtƒttjdtj ƒ ƒ}|  |¡t |ddksJ ‚| |¡t |ddksŽJ ‚t tddƒtddƒ ƒ}t td	dƒtd
dƒ ƒ}t tdd
ƒtddƒ ƒ}t tddƒtddƒ ƒ}	ttddƒtddƒ td	dƒtd
dƒ ƒ}
ttdd
ƒtddƒ tddƒtddƒ ƒ}| |¡t |
ƒksóJ ‚| |	¡t |ƒksþJ ‚|  tdd	ƒ¡t| tdd	ƒddksJ ‚| tdd	ƒ¡t|t  tdd	ƒ¡ƒks)J ‚d S )Nr   r3   r4   Tr-  r0   r7   r_   r6   r^   re   r   r`   r   rb   Fr+  )r   r	   r   r  r   r
   r  Ú	from_real)r1  r2  r|   r5  Úp1Úp2Zc5Zc6Zc7Zc8Zp3Zp4rO   rO   rP   Útest_ComplexRegion_unionü  s$   "$24***0r@  c                      sd   t tddƒtddtj ƒ dd‰ tt‡ fdd„ƒ ˆ  tddƒ¡t tddƒtdƒ d	ƒks0J ‚d S )
Nr   r3   r4   Tr-  c                      s
   ˆ   ˆ ¡S r[   )r=  rO   ©r1  rO   rP   r\     ré   z.test_ComplexRegion_from_real.<locals>.<lambda>rS   F)r   r	   r   r  r*   rs   r=  r   rO   rO   rA  rP   Útest_ComplexRegion_from_real  s   "0rB  c                  C   s~   t ddƒt ddƒ} }t ddtj ƒt dtjƒ}}t| | ƒ}tt| | || ƒdd}|jdks4J ‚|jd	t ks=J ‚d S )
Nr4   r0   r6   ra   r   Tr-  re   r_   )r	   r   r  r   r
   Úmeasurer   )rJ   rK   r0  r4  r1  r2  rO   rO   rP   Útest_ComplexRegion_measure   s   rD  c                	   C   sœ  t ttdt ƒƒttdƒt tdt ¡ƒksJ ‚t tttddƒ dt ƒƒttd tƒks/J ‚t tttddƒ td ƒƒt ddt ¡ksGJ ‚t t ttddƒ td ¡ƒtt dtd ¡t td dt ¡ƒkskJ ‚t t ttddƒ ttddƒ ¡ƒtt dtd ¡t td dt ¡ƒks’J ‚t tt d td ƒƒttdtd ƒt ttddƒ dt ¡ƒksµJ ‚t t t d td ¡ƒtt dtd ¡t ttddƒ dt ¡ƒksÚJ ‚t tdt dt ƒƒt ddt ¡ksïJ ‚t tttddƒ t d ƒƒttd ttddƒ ƒksJ ‚t t ddt ¡ƒt ddt ¡ks"J ‚t t t d td ¡ƒtt dtd ¡t ttddƒ dt ¡ƒksHJ ‚t t t d td ¡ƒttdtd ƒt ttddƒ dt ¡ƒksmJ ‚t tt d td ƒƒttdtd ƒt ttddƒ dt ¡ƒks‘J ‚t t d	t ttddƒ ¡ƒt dtd ¡ks«J ‚t t d	t ttddƒ ¡ƒt dtd ¡ksÅJ ‚t t d	t ttddƒ ¡ƒt dtd ¡ksßJ ‚t t dt dt ¡ƒtt dt¡t tdt ¡ƒksýJ ‚t tdtdt ƒƒtdtƒksJ ‚t tdtd tdt ƒƒtdtd tƒks'J ‚t tdt d t d
t ƒƒtdtttddƒ ƒksDJ ‚t tttddƒ td ƒƒttd ƒks[J ‚t tdt ƒƒtdƒksjJ ‚t ttdtd ƒttd tƒƒƒttdtd ƒttd tƒƒksJ ‚t ttdtƒtdt ttddƒ ƒƒƒ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„ ƒ d S )Nr4   r   r_   r0   r¶   iùÿÿÿr5   rU   r6   rm   rn   c                   S   s
   t tjƒS r[   )r   r   r¼   rO   rO   rO   rP   r\   V  ré   z*test_normalize_theta_set.<locals>.<lambda>c                   S   s   t tddƒƒS )Nr   r3   )r   r	   rO   rO   rO   rP   r\   Y  r—   c                   S   s   t tddt ƒƒS r¨   ©r   r	   r   rO   rO   rO   rP   r\   \  r   c                   S   s   t tdt dƒƒS )Nr4   r^   rE  rO   rO   rO   rP   r\   ]  r   c                   S   s   t tdddt ƒƒS )Nr   r5   )r   r   r   rO   rO   rO   rP   r\   ^  rr   )r   r	   r   r
   r   ZRopenr   rõ   rX   r*   rs   rÁ   rO   rO   rO   rP   Útest_normalize_theta_set*  sj   ÿ.0$ÿ"$ÿ(ÿ*ÿ*<**
ÿ(
ÿ(
ÿ444
ÿ$0:

ÿ 
ÿ&
ÿrF  c                  C   sÀ   t dƒ\} }}}}}tt|||ƒt| ||ƒ ƒt|t|   |t|  |t|  |t|   |t|  |t|  |t|   |t|  |t|  ƒ	ksJJ ‚ttdƒtdƒ ƒtddt  ƒks^J ‚d S )Nzx y z a b cr4   r5   )r   r   r   r   )r+   r,   r.   rJ   rK   rL   rO   rO   rP   Útest_ComplexRegion_FiniteSeta  s   4(ÿÿ,rG  c                   C   s8   t j tddƒ¡t jksJ ‚t j t j¡t jksJ ‚d S r¨   )r   r¼   r  r	   rV   rO   rO   rO   rP   Útest_union_RealSubSetk  s   rH  c                  C   sÎ   dd„ } | t ddƒƒjttƒu sJ ‚| tddƒƒjttƒu s J ‚tjjttƒu s*J ‚tjjttƒu s4J ‚tjjttƒu s>J ‚t	dƒjttƒu sIJ ‚t ddƒ}t ddƒ}t
|| ƒ}|jttttƒƒu seJ ‚d S )Nc                  W   s   t tttd ƒg| ¢R Ž S r•   rq   )rí   rO   rO   rP   r\   q  s    z'test_SetKind_fancySet.<locals>.<lambda>r3   r6   r5   r4   r7   )r	   Úkindr   r   r   r   r½   r8   rV   r   r   r   )ÚGrJ   rK   r1  rO   rO   rP   Útest_SetKind_fancySetp  s   

rK  c                  C   s¢   t tddƒtddƒ ƒ} t tddƒtddƒ ƒ}t| |ƒ}t|ƒt ttddƒtddƒ tddƒtddƒ ƒdƒks;J ‚| j| jŽ | ksEJ ‚|j|jŽ |ksOJ ‚d S )Nr3   r4   r5   r0   F)r   r	   r
   r   Úfuncrí   )r1  r2  rÆ   rO   rO   rP   Útest_issue_9980~  s   
ÿ
ÿrM  c                  C   sþ   t ddƒ} tddddƒ}tddƒ}| tjv dksJ ‚| tjv dks#J ‚| tjv dks,J ‚| tjv dks5J ‚|tjv dks>J ‚|tjv dksGJ ‚|tjv dksPJ ‚|tjv dksYJ ‚|tjv dksbJ ‚|tjv dkskJ ‚|tjv dkstJ ‚|tjv dks}J ‚d S )Nr3   r4   r5   r6   r0   FT)r	   r   r   r   r8   rC   rV   r¼   )Z
interval12Zfiniteset1234ZpointComplexrO   rO   rP   Útest_issue_11732ˆ  s   

rN  c                  C   sx   t ddƒ} t| d ƒ}ttjttƒƒtjksJ ‚ttjttdƒƒƒtjks'J ‚t| |ƒ|ks0J ‚ttj	|ƒ| ks:J ‚d S )Nr   r3   r4   r6   )
r	   r   r
   r   r¼   r   r   r(   r   rE   )ÚunitZsquarerO   rO   rP   Útest_issue_11730  s   
rP  c            	      C   sú   t ddƒ} t ddƒ}t||  ƒ}t|tjƒ|ksJ ‚t|| ƒtdƒks%J ‚t dtjƒ}ttjƒ}t tjd dtj d ƒ}t| | dd}t| | dd}t| | dd}t|tjƒt ddƒksbJ ‚t|tjƒt ddƒksoJ ‚t|tjƒtdƒks{J ‚d S )	Nr   r3   r4   r6   r5   Tr-  rS   )r	   r   r   r   rE   r   r  )	rO  ZivalZcr1Zarg1Zarg2Zarg3Úcp1Úcp2Zcp3rO   rO   rP   Útest_issue_11938§  s   


rS  c                  C   sŽ   t ddƒt dtƒ} }t ddƒt tdt d ƒ}}t| | dd}t|| dd}d| |¡v s3J ‚d| |¡v s<J ‚d| |¡vsEJ ‚d S )	Nr   r3   r4   r5   Tr-  r¶   r1   )r	   r   r   r  )rJ   rK   rL   rM   rQ  rR  rO   rO   rP   Útest_issue_11914»  s   rT  c                   C   s&   t tttd ƒtjƒ tj¡sJ ‚d S r•   )r   r   r+   r   r8   rF   rE   rO   rO   rO   rP   Útest_issue_9543Æ  r   rU  c                   C   sJ   t tttƒtdƒƒdhksJ ‚t tttd ƒtjƒ tj¡tju s#J ‚d S )Nr3   r5   )r   r   r+   r   r   rV   rD   rO   rO   rO   rP   Útest_issue_16871Ê  s   ÿrV  c                   C   s&   t tttd ƒtjƒ tj¡sJ ‚d S )Nr5   )r   r   r+   r   rV   rF   rO   rO   rO   rP   Útest_issue_16871bÐ  s   &rW  c                  C   sX  t tttt d ƒtjƒttttt d ƒtjƒksJ ‚t ttdt t d dt  ƒtjƒtttdt t d dt  ƒtjƒksDJ ‚t ttdt dt  ƒtjƒtttdt dt  ƒtjƒksdJ ‚tddd} t tt| t d	 ƒtjƒttt| t d	 ƒtjƒks†J ‚t ttdt d d
t  ƒtjƒtttdt d d
t  ƒtjƒksªJ ‚d S )Nr3   r5   r6   ra   r4   r‚   Tr“   r^   r0   )r   r   r+   r   r   rV   r   r   ©r‚   rO   rO   rP   Útest_issue_18050Õ  s    ÿ$$ÿÿÿ  ÿrY  c                     s‚  t j t j¡s	J ‚t j t j¡sJ ‚t j t j¡sJ ‚t j t j¡s$J ‚t jjt u s-J ‚t jj	tu s5J ‚t
t jƒ‰ ‡ fdd„tdƒD ƒdddt jdtddƒdtdd	ƒd	tdd	ƒd
tdd	ƒgksbJ ‚tƒ t jvsjJ ‚t jt jv srJ ‚t j d¡tdt jddks‚J ‚dt jv s‰J ‚tddd} | t jv s–J ‚ttdd„ ƒ t jjt jks¦J ‚t jjt jks¯J ‚t jjdks·J ‚t jjdks¿J ‚d S )Nc                    s   g | ]}t ˆ ƒ‘qS rO   r¤   r    r¥   rO   rP   r  í  rr   z"test_Rationals.<locals>.<listcomp>re   r   r3   rS   r4   rm   r5   r¶   rô   Fr+  r‚   T)Zrationalc                   S   s
   t tjv S r[   )r+   r   r½   rO   rO   rO   rP   r\   ö  ré   z test_Rationals.<locals>.<lambda>)r   rV   rF   r½   r8   rC   rE   r@   r   rA   r9   ru   rw   r   r   rB   r   r   r*   ry   r=   Úclosurer>   r?   rX  rO   r¥   rP   Útest_Rationalså  s,   

þ r[  c                     sH   t jt jt jt jt jt jf‰ ‡ fdd„ˆ D ƒ} tdd„ | D ƒƒs"J ‚d S )Nc                 3   s$    | ]}ˆ D ]}t ||ƒV  qqd S r[   )r
   )r¡   rJ   rK   ©ZnbrsetsrO   rP   r¢     s   €" z$test_NZQRC_unions.<locals>.<genexpr>c                 s   s    | ]}|j d u V  qdS )FN)Zis_Union)r¡   r›   rO   rO   rP   r¢     s   € )r   r8   rC   rV   r½   rE   r¼   r»   )ZunionsrO   r\  rP   Útest_NZQRC_unionsþ  s
   ÿr]  c               	   C   s€   t ƒ } tt| t tdt |  td   tttt ƒƒƒ  ƒtj	ƒ}| 
tj¡tt| dt |  ttddƒ  ƒtj	ƒks>J ‚d S )Nr4   r6   rn   )r   r   r   r   r   r!   r   r#   r   rV   r<   rE   r   )rù   rN   rO   rO   rP   Útest_imageset_intersection  s    ÿÿ"ÿr^  c                   C   sX   dt t tƒv s
J ‚dt tt dƒv sJ ‚tt t tƒvsJ ‚t t t tƒvs*J ‚d S )Nr3   r   rS   r–   rO   rO   rO   rP   Útest_issue_17858  s   r_  c                      sf   t t tƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ t tt dƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nc                      ó   ˆ d d d… S r•   rO   rO   rX  rO   rP   r\     r—   z"test_issue_17859.<locals>.<lambda>c                      r`  rç   rO   rO   rX  rO   rP   r\     r—   rS   c                      r`  r•   rO   rO   rX  rO   rP   r\     r—   c                      r`  rç   rO   rO   rX  rO   rP   r\     r—   )r   r   r*   rs   rO   rO   rX  rP   Útest_issue_17859  s   ra  )~Zsympy.core.exprr   Zsympy.sets.containsr   Zsympy.sets.fancysetsr   r   r   r   Zsympy.sets.setsr   r	   r
   r   r   r   r   Zsympy.sets.conditionsetr   Zsympy.simplify.simplifyr   Zsympy.core.basicr   Zsympy.core.containersr   r   Zsympy.core.functionr   Zsympy.core.kindr   Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr   Zsympy.core.singletonr   Zsympy.core.symbolr   r   r   Z$sympy.functions.elementary.complexesr   Z&sympy.functions.elementary.exponentialr    r!   Z#sympy.functions.elementary.integersr"   Z(sympy.functions.elementary.miscellaneousr#   Z(sympy.functions.elementary.trigonometricr$   r%   r&   Zsympy.logic.boolalgr'   Zsympy.matrices.denser(   Zsympy.testing.pytestr)   r*   r  r+   r,   r-   r.   Zsympy.core.modr/   rÃ   rQ   rT   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*  r6  r9  r;  r<  r@  rB  rD  rF  rG  rH  rK  rM  rN  rP  rS  rT  rU  rV  rW  rY  r[  r]  r^  r_  ra  rO   rO   rO   rP   Ú<module>   s¦   $	>   ,6(	/
7



