o
    GZŽhâÊ  ã                   @   sL  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%„ ZLe=d&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„ Zvdzd{„ Zwe=d|d}„ ƒZxd~d„ Zyd€d„ Zzd‚dƒ„ Z{d„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   úN/var/www/auris/lib/python3.10/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¡tdtttdt ƒtjƒddk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sEJ ‚tddƒtddƒ }tddƒttttfftdt fƒ|ƒv sfJ ‚tdtjƒttttfftdt fƒ|ƒv s~J ‚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sDJ ‚|	jtjtjfksPJ ‚tttttd ƒh d£ƒs`J ‚ttttfftt ƒdd$hƒ}
d|
 ¡ v sxJ ‚|
  d¡d u s‚J ‚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      Ð?F©Úevaluateg333333Ó?)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   rB   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 )	Núr, thetaT©Úrealr   r3   )r3   r   )r   rS   )r   r   )	r   r   r$   r%   r   r	   r   rz   rx   ©ÚrÚthÚLZ
halfcirclerO   rO   rP   Útest_halfcircle£   s   $r‰   c                  C   sf   t ddd\} }t| |ff| t|ƒ | t|ƒ fƒ}t|tddƒtdtƒ ƒ}| dt f|vs1J ‚d S )Nr‚   Trƒ   r   r3   r4   )r   r   r$   r%   r   r	   r   r…   rO   rO   rP   Útest_halfcircle_fail¯   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   ro   )r*   ru   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^   rd   r4   rg   rc   rf   re   rS   é   é   r7   éC   é<   rp   éöÿÿÿé&   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   ro   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\     rr   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\     rt   c                   S   s   t dtƒd S )Nr3   ro   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^   rd   r¯   rO   rO   rO   rP   r\     r]   c                   S   s   t dt dƒddd… S ©Nr4   ro   r   r›   rO   rO   rO   rP   r\     ó    ro   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   ro   r›   rO   rO   rO   rP   r\      r±   c                   S   s   t t ddƒd dd… S )Nr6   r4   ro   r›   rO   rO   rO   rP   r\   !  r±   c                   S   s   t t ddƒddd… S )Nr6   r4   ro   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\   (  rt   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   ro   r›   rO   rO   rO   rP   r\   ,  rŽ   c                   S   s   t tddƒddd… S )Nr   ro   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   ro   r3   rS   r›   rO   rO   rO   rP   r\   1  r¬   c                      ó   ˆ d S r   rO   rO   ©r|   rO   rP   r\   <  rr   c                      ó   ˆ j S r[   ©r@   rO   r¶   rO   rP   r\   >  ó    c                      r·   r[   ©rA   rO   r¶   rO   rP   r\   ?  r¹   )éýÿÿÿrS   Nr3   r5   z
%s[%s:%s:%s] = %s -> %sc                      s   t ˆ dƒƒS ©Nr3   r¯   rO   )Úbuiltin_rangerO   rP   r\   \  r]   l    J)£)(r   Úlistrw   rA   r@   r   r   r   r   r*   ru   rB   r   ÚZeroÚallr9   r{   r<   rV   Ú	ComplexesrE   Ú	Rationalsr8   rC   Ú
IndexErrorr+   r,   Úreversedr   rv   ÚboolÚNotImplementedErrorrG   ÚfalseÚ	itertoolsÚproductr=   Ústepr   r/   )r†   r—   rI   r    r@   ZABÚRrJ   rK   rL   ÚreverseÚresultÚansÚtxtÚcheckÚrevrO   )r½   r|   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   rc   r5   r@   r¡   c                      r¨   r[   r¯   rO   r¸   rO   rP   r\   q  rr   z%test_Range_symbolic.<locals>.<lambda>c                      s   t ˆ ddƒS rR   r¯   rO   r¸   rO   rP   r\   r  r]   c                      s   t ˆ ˆ dƒS r¼   r¯   rO   r¸   rO   rP   r\   s  r]   c                      s   t ddˆ ƒS r¼   r¯   rO   r¸   rO   rP   r\   t  r]   rd   r^   c                      r·   r[   ©rÄ   rO   ©ÚxrrO   rP   r\   {  r¹   c                      r·   r[   rÕ   rO   ©ÚsrrO   rP   r\   |  r¹   r3   é   ro   rp   r»   c                      ó   dˆ v S r¼   rO   rO   ©ÚiprrO   rP   r\   †  rr   c                      rÛ   ©NrS   rO   rO   )ÚinrrO   rP   r\   ‡  rr   çš™™™™™¹?c                      s   t ˆ v S r[   ©r+   rO   rÖ   rO   rP   r\   Œ  rr   c                      rÛ   r¼   rO   rO   rØ   rO   rP   r\     rr   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\   –  rr   c                      rµ   r   rO   rO   rØ   rO   rP   r\   —  rr   c                      r¨   r[   ©r   rO   rÖ   rO   rP   r\   ›  rr   c                      r·   r[   ©r   rO   rÖ   rO   rP   r\   œ  r¹   c                      r¨   r[   rå   rO   rØ   rO   rP   r\     rr   c                      r·   r[   ræ   rO   rØ   rO   rP   r\   ž  r¹   Fc                      r¨   r[   ©rÅ   rO   rØ   rO   rP   r\   ¥  rr   c                      r¨   r[   rç   rO   ©Úir2rO   rP   r\   ¦  rr   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\   ¶  rr   c                      rµ   r   rO   rO   rØ   rO   rP   r\   ·  rr   c                      rµ   rÞ   rO   rO   rØ   rO   rP   r\   ¸  rr   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µ   ©Nro   rO   rO   rÜ   rO   rP   r\   Ç  rr   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*   ru   ÚargsrÄ   r{   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_symbolice  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   rq   r0   r7   éP   é7   éG   rc   r`   rp   )r   r   rv   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   rv   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éœÿÿÿrq   Tr4   Fé2   r   Únrž   Úmé1   r»   rp   )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ü   rq   Tr4   Frý   r   rþ   rž   rÿ   rø   rÓ   r   r»   rp   r+   )r   rx   r   r   )rþ   rÿ   rø   r+   rO   rO   rP   Útest_Range_is_iterable3  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   rp   ro   rf   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_imagesetS  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»   ro   c                    s   g | ]
}ˆ   t|¡ ¡ ‘qS rO   )Úsubsr+   Úexpandr¥   ©r  rO   rP   Ú
<listcomp>t  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_imagesetj  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•   rf   rS   r4   r   r3   )r   r   r   r+   r%   r   r   r#   rO   rO   rO   rP   Útest_funw  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_empty|  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<   rv   Údummy_eqr   r-   r+   r   ry   )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   rp   )r  rþ   r   r   r   r   rV   r<   rE   r   ry   rC   r  r   r+   r   r   rv   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   rv   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_   rd   r5   iÃÿÿÿiéÿÿÿrk   é=   r0   r7   i÷ÿÿÿé(   é)   r`   éQ   éA   rg   rp   rf   rõ   é   )r  rÿ   rþ   r   r   r   rV   r<   rv   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_3H  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   ro   )r  rþ   rÿ   r   r   r   rV   r%   r&   r8   r   r   rC   r  rO   rO   rP   Útest_ImageSet_simplificationS  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   ry   r   r+   rV   r   rD   rE   rv   r   r,   r
  r$   r%   )r‹   Úqr.   rO   rO   rP   Útest_ImageSet_contains^  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   rp   r_   g      @g      @rc   gffffff@gš™™™™™	@Fra   r   r3   ©Zpolarrù   r^   g333333ã?)Z	left_openro   c                      s   t ˆ ˆ ddS )Nr4   r0  )r   rO   ©Úr1Útheta1rO   rP   r\   Ÿ  rŽ   z-test_ComplexRegion_contains.<locals>.<lambda>)r   r	   r   r
   r   rB   r+   r   r   r  ry   r   r*   ru   )
r†   rJ   rK   rL   Úc1Úc2r~   Úr2Útheta2Úc4rO   r1  rP   Útest_ComplexRegion_containsl  sd   



ÿÿ
ÿr9  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                      r:  r   r¯   rO   r  rO   rP   r\   «  rœ   r3   r   c                      rí   r[   r;  rO   r  rO   rP   r\   ­  rî   )rŸ   Znonnegativec                      rê   r   r¯   rO   r  rO   rP   r\   ±  r]   c                      r:  r   r¯   rO   r  rO   rP   r\   ²  rœ   rÓ   rÿ   r4   )rŸ   r™   rð   )r   r*   ru   rÃ   r   r   r"   )rÿ   rO   r  rP   Útest_symbolic_Range¢  s>   $$r<  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\   Ì  rr   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\   Ð  rr   )r   r*   ru   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   Tr0  r3   r4   r6   r0   r_   rg   rS   r1   r•   r^   rp   r7   Fra   )	r   r	   r   r   r   r  r<   rv   r   )ZX_axisZ	unit_diskZupper_half_unit_diskZupper_half_diskZlower_half_diskZright_half_diskZfirst_quad_diskr4  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   Tr0  r0   r7   r_   r6   r^   rg   r•   r`   r’   rd   Fra   )r   r	   r   r  r   r
   r  Ú	from_real)r4  r5  r~   r8  Úp1Úp2Zc5Zc6Zc7Zc8Zp3Zp4rO   rO   rP   Útest_ComplexRegion_union  s$   "$24***0rC  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   Tr0  c                      s
   ˆ   ˆ ¡S r[   )r@  rO   ©r4  rO   rP   r\   "  rî   z.test_ComplexRegion_from_real.<locals>.<lambda>rS   F)r   r	   r   r  r*   ru   r@  r   rO   rO   rD  rP   Útest_ComplexRegion_from_real  s   "0rE  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   rc   r   Tr0  rg   r_   )r	   r   r  r   r
   Úmeasurer   )rJ   rK   r3  r7  r4  r5  rO   rO   rP   Útest_ComplexRegion_measure&  s   rG  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   ro   rp   c                   S   s
   t tjƒS r[   )r   r   rÁ   rO   rO   rO   rP   r\   \  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\   _  rœ   c                   S   s   t tddt ƒƒS r­   ©r   r	   r   rO   rO   rO   rP   r\   b  r¢   c                   S   s   t tdt dƒƒS )Nr4   r^   rH  rO   rO   rO   rP   r\   c  r¢   c                   S   s   t tdddt ƒƒS )Nr   r5   )r   r   r   rO   rO   rO   rP   r\   d  rt   )r   r	   r   r
   r   ZRopenr   rú   rX   r*   ru   rÆ   rO   rO   rO   rP   Útest_normalize_theta_set0  sj   ÿ.0$ÿ"$ÿ(ÿ*ÿ*<**
ÿ(
ÿ(
ÿ444
ÿ$0:

ÿ 
ÿ&
ÿrI  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_FiniteSetg  s   4(ÿÿ,rJ  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_RealSubSetq  s   rK  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š   rs   )rò   rO   rO   rP   r\   w  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   r4  rO   rO   rP   Útest_SetKind_fancySetv  s   

rN  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ò   )r4  r5  rË   rO   rO   rP   Útest_issue_9980„  s   
ÿ
ÿrP  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   

rQ  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   
rS  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   Tr0  rS   )r	   r   r   r   rE   r   r  )	rR  ZivalZcr1Zarg1Zarg2Zarg3Úcp1Úcp2Zcp3rO   rO   rP   Útest_issue_11938­  s   


rV  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   Tr0  r»   r1   )r	   r   r   r  )rJ   rK   rL   rM   rT  rU  rO   rO   rP   Útest_issue_11914Á  s   rW  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   rX  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   ÿrY  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   &rZ  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   rc   r4   r†   Tr˜   r^   r0   )r   r   r+   r   r   rV   r   r   ©r†   rO   rO   rP   Útest_issue_18050Û  s    ÿ$$ÿÿÿ  ÿr\  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  ó  rt   z"test_Rationals.<locals>.<listcomp>rg   r   r3   rS   r4   ro   r5   r»   rù   Fra   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   rw   ry   r   r   rB   r   r   r*   r{   r=   Úclosurer>   r?   r[  rO   rª   rP   Útest_Rationalsë  s0   

þÿ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   rp   )r   r   r   r   r   r!   r   r#   r   rV   r<   rE   r   )rþ   rN   rO   rO   rP   Útest_imageset_intersection  s    ÿÿ"ÿra  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   rb  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   r[  rO   rP   r\     rœ   z"test_issue_17859.<locals>.<lambda>c                      rc  rì   rO   rO   r[  rO   rP   r\     rœ   rS   c                      rc  rš   rO   rO   r[  rO   rP   r\      rœ   c                      rc  rì   rO   rO   r[  rO   rP   r\   !  rœ   )r   r   r*   ru   rO   rO   r[  rP   Útest_issue_17859  s   rd  )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-  r/  r9  r<  r>  r?  rC  rE  rG  rI  rJ  rK  rN  rP  rQ  rS  rV  rW  rX  rY  rZ  r\  r^  r`  ra  rb  rd  rO   rO   rO   rP   Ú<module>   sª   $	?
   ,6(	/
7



