U
    L?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   s|  t j} d| kstd| kstd| ks*tt| }t|t|t|t|f\}}}}||||fdksjtt|tsxt|  tdd¡t	ddkst|  tdddd¡t	ddksžt| j
| ksÆt| jdksÔt| jdksât| jdksðt| jtksþt|  t¡rtt jt jfD ].}| t j¡|ks4t| t j¡stq|  t¡ttttttdkttk ksxtd S )	Né   éûÿÿÿç      @)é   é   é   é   r3   é   TF)r   ÚNaturalsÚAssertionErrorÚ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© rP   úQ/var/www/html/venv/lib/python3.8/site-packages/sympy/sets/tests/test_fancysets.pyÚtest_naturals    s(    $"rR   c                  C   sd   t j} d| kstd| ksttt| dks2t|  t¡r@t|  tt¡t	tt| ks`td S ©Nr   éÿÿÿÿ)
r   rD   r9   r;   r:   rC   r   r%   r+   r   )rI   rP   rP   rQ   Útest_naturals0;   s    rU   c                  C   s€  t j} d| kstd| kstd| ks*t|  t¡r8t|  t ¡rHtt| }t|t|t|t|f\}}}}||||fdkstt|tst|  	t
dd¡tddksŽt|  	t
dddd¡tddksÖt|  	t
dt j¡tdt jksøt|  	t
 dt j¡¡tdt jkst| jt ks0t| jtks@t| j| ksPt| jdks`t| jdkspt|  t¡tttttt tk ttk ks td S )	Nr0   r1   r2   )r   r3   rT   r4   r7   TéüÿÿÿF)r   ÚIntegersr9   rC   r   r:   r;   r<   r   r=   r	   r   ÚInfinityÚLopenrA   rB   r>   r?   r@   rH   r+   r'   r   r"   )ÚZZzirK   rL   rM   rN   rP   rP   rQ   Útest_integersD   s(    $""&r[   c                  C   s,  t tdd  tttdtjtdks,ttttt	tjt	hksHttttdtj
tj
ksdttttdt tj} ttttd| stttttd tj}d|ksŽtd|ksÀtttd  |¡tdddksâtd	| td
d¡ksútt|}t|t|t|t|f\}}}}||||fdks<ttttdt tj}tdd|ksfttd|ksxt| d¡tdtttdt tjddksšttd|ksºtd|ksÈt|jsÔtttt td
dtdd
ksøtttttd td
d ¡ td
dks&ttttt	fdt dhdh ¡ tdksVttttt	ftt	 dddhdddh ¡ tddddddddd	ksttddtdd }tddtttt	fftdt	 f|ksàttdtjtttt	fftdt	 f|ksttdd tttt	fftt	d f|ks>ttdd tttt	fftd f|ksht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|ks¶tttddddtttt	tffdt	 ttf|ksðtdt tttt	ffdt |kstdtd" tttt	ffdt |ksDttddtttt	ffdt |ksnttd#d tjtj}	|	jttjtjkst|	j tjtjfksŽttttttd dddhsÖttttt	fftt	 dd$h}
d|
 ¡ kst|
 !d¡d kstt t"d%d  d S )&Nc                   S   s   t ttjS ©N)r   r+   r   rW   rP   rP   rP   rQ   Ú<lambda>a   ó    ztest_ImageSet.<locals>.<lambda>r3   r4   r6   r0   é
   é	   é   r   )r3   r6   r`   ra   g      Ð?F©Úevaluateg333333Ó?)r3   r4   rT   r5   é   é   é   é   é   é   é   é   é   é   é    é!   r7   éþÿÿÿé   éd   c                 S   s   | | S r\   rP   )r+   r,   rP   rP   rQ   r]      r^   )r5   r6   c                   S   s   t tttd dS )Nr4   r3   ©r   r   r+   rP   rP   rP   rQ   r]      r^   )#r*   Ú
ValueErrorr   r   r+   r   rW   r   r9   r,   ÚEmptySetr   r!   r   r   r8   Úranger=   r	   r:   r;   r   rC   r   Úis_iterabler   Zdoitr   ÚHalfr   r-   Z	base_psetZ	base_setsÚ	_containsÚ	TypeError)ÚemptyZsquaresÚsirK   rL   rM   rN   Z	harmonicsÚc3ZS1ZS2rP   rP   rQ   Útest_ImageSet`   sd    "$
  ÿ$.0(ÿ
.0.*0:(,*"r~   c                   C   s&   t ttttttdts"td S )Nr0   )r<   r   r+   r#   r%   r   r   r9   rP   rP   rP   rQ   Útest_image_is_ImageSet   s    r   c                  C   s   t ddd\} }t| |ff| t| | t| f}t|tddtdt }d|ksZtd|ksftd|ksrt| | df¡d kst|j	rtd S )	Núr, thetaT©Úrealr   r3   )r3   r   )r   rT   )r   r   )
r   r   r$   r%   r   r	   r   r9   ry   rw   ©ÚrÚthÚLZ
halfcirclerP   rP   rQ   Ú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|ksbtd S )Nr   Tr   r   r3   r4   )r   r   r$   r%   r   r	   r   r9   r   rP   rP   rQ   Útest_halfcircle_fail¯   s    $r   c                  C   sN   t tttd  } t| tj}t|}t|t|t|t|fdksJtd S )Nr4   )r   r4   r6   r7   )r   r+   r   r   r8   r:   r;   r9   )r   ZevensÚirP   rP   rQ   Ú$test_ImageSet_iterator_not_injective·   s    r   c                   C   sv   t tdd  tdtdjtjks&ttdt djtjks@tttddjtjksXttt ddjtjksrtd S )Nc                   S   s   t tdtdS )Nr   r4   )Úlenr   r   rP   rP   rP   rQ   r]   À   r^   z$test_inf_Range_len.<locals>.<lambda>r   r4   rp   )r*   rt   r   r   Úsizer   rX   r9   rP   rP   rP   rQ   Útest_inf_Range_len¿   s
    r   c               
      s  t dt dt dd  kr.t dddks4n tt ddd} d| ksLtd| ksXtd	| ksdtd
| kspttt ddttdksttt dddttdddks²tt ddjdksÆtt ddjdksÚtt dddjdksðtt dddjdkstt dddjdks tt dddjdks8ttt ddddksRtt dddkshtt ttdks~tt tddkstt t ddks¬tt dtdksÂtt dt dksÚtt ddtksðttddd}t d|dkstt d| dks*tt ddt t ddksHtt ddtt ddksdtt t tj	tks|tt tt dj	tkstt
tdd  t
tdd  t
tdd  dt dtdksÖtdt t ddksîttt dtksttdd d!}|t tks ttd"d d!}t t |¡d k	sDttd#dd$}|t t tksftt
td%d  t
td&d  t t ddd tjks tt tddd dksºt|t tksÌtt dddd d'ksættd(d) t dddD sttt t ddt
tfd*d  tj¡ks@tt ddd tj¡t dddksftt ddd tj¡t dddkstt ddd tj¡t dddks²tt ddd tj¡t dddksØtt ddd tj¡t dddksþtt ddd tj¡t dddks$tt dddd dks>tt dddd d	ksXtt dddd d'ksrtt dddd dkst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tt dt d2d dd t dd2dks:tt
td3d  t t ddd d d2 t dt dksttt
td4d  t tdd2d d  t tdd2ksštt t ddd d2d2 t dddksÒtt t ddd d2d t t ddksþtt
td5d  t
td6d  t t ddd2d d2 t dt dksFtt
td7d  t
td8d  t tdd2dd  t tdd2kstt
td9d  t tdd2dd2 t tdd2ksŒtt
td:d  t
td;d  t t ddd2d d t dddkstt tdd2ddd ks"tt
td<d  t
td=d  t
td>d  t tdd2ddd2 ksltt tdd2d dd kstt
td?d  t tttks°tjksÀtdksÎttg ksàttdksòtj	tjk	st td¡tjk	sttd k	s0tt
tfd@d d d k	sXtt
t fdAd t
t fdBd  !t¡tj"k	std gttd }t ddt dddfD ] }t|} t# $||dCdd ddg¡D ]x\}}}	tdD ]b}
tt| } |j}t||||	 }| |||	 }dD||||	||f }||k}|	sðt|	qð	qÞ	qºt dddj%t dddk
s|tt dddt dtdfD ]@} | j}| j|jk
rº| j|jk
sŸt| j&|j& k
st
qt t
t fdEd t dt dkstt dFt dFks tt dd !t¡tdktdk@ t't(tdd@ ksVtt tdd2 !t¡tdkttk @ t't(td d2d@ kstd S )GNr   r0   r3   r_   re   r4   rh   rd   rg   rf   rT   é   é   r7   éC   é<   rq   éöÿÿÿé&   r5   rV   ÚipT©Úpositiver6   c                   S   s   t t tdS ©Nr4   ©r   r   rP   rP   rP   rQ   r]   í   r^   z test_Range_set.<locals>.<lambda>c                   S   s   t tttS r\   )r   r+   r   r,   rP   rP   rP   rQ   r]   î   r^   c                   S   s   t ttdS ©Nr   )r   r+   r,   rP   rP   rP   rQ   r]   ï   r^   r1   rJ   F©ÚintegerÚurA   ©Zinfinitec                   S   s   t dtdd S )Nr   r4   rT   r   rP   rP   rP   rQ   r]   ú   r^   c                   S   s   t dt dd S )Nr   rp   rT   r   rP   rP   rP   rQ   r]   û   r^   r`   c                 s   s   | ]}|j V  qd S r\   ©Z
is_Integer©Ú.0r   rP   rP   rQ   Ú	<genexpr>   s     z!test_Range_set.<locals>.<genexpr>c                      s   t  S r\   ©r;   rP   ©ÚitrP   rQ   r]     r^   c                   S   s   t tddddd S )Nr   rT   r3   r5   r   rP   rP   rP   rQ   r]     r^   c                   S   s   t tddd d S )Nr   rT   r3   r   rP   rP   rP   rQ   r]     r^   c                   S   s   t dtd S )Nr3   rp   r   rP   rP   rP   rQ   r]     r^   c                   S   s   t t dd S ©Nr3   r4   r   rP   rP   rP   rQ   r]     r^   c                   S   s   t dd S )Nr_   iìÿÿÿ©r   rP   rP   rP   rQ   r]     r^   c                   S   s   t dd S )Nr_   re   rŠ   rP   rP   rP   rQ   r]     r^   c                   S   s   t dt dddd S ©Nr4   rp   r   r   rP   rP   rP   rQ   r]     r^   rp   c                   S   s   t t ddd dd S ©Nr6   r4   r   rP   rP   rP   rQ   r]     r^   c                   S   s   t t ddd d d S rš   r   rP   rP   rP   rQ   r]     r^   c                   S   s   t t ddd dd S ©Nr6   r4   r   rp   r   rP   rP   rP   rQ   r]      r^   c                   S   s   t t ddd dd S )Nr6   r4   rp   r   rP   rP   rP   rQ   r]   !  r^   c                   S   s   t t ddddd S )Nr6   r4   rp   r   r   rP   rP   rP   rQ   r]   #  r^   c                   S   s   t t dddd d S )Nr6   r4   r   r   rP   rP   rP   rQ   r]   $  r^   c                   S   s   t t ddddd S r©   r   rP   rP   rP   rQ   r]   &  r^   c                   S   s   t tdddd S r§   r   rP   rP   rP   rQ   r]   (  r^   c                   S   s   t t dddd d S )Nr6   r4   rT   r   rP   rP   rP   rQ   r]   )  r^   c                   S   s   t tddd S ©Nr   rp   r   rP   rP   rP   rQ   r]   ,  r^   c                   S   s   t tddddd S )Nr   rp   r   r_   r4   r   rP   rP   rP   rQ   r]   -  r^   c                   S   s   t tdddd d S rª   r   rP   rP   rP   rQ   r]   .  r^   c                   S   s   t tddd dd S )Nr   rp   r3   rT   r   rP   rP   rP   rQ   r]   1  r^   c                      s    d S r   rP   rP   ©r{   rP   rQ   r]   <  r^   c                      s    j S r\   ©rA   rP   r«   rP   rQ   r]   >  r^   c                      s    j S r\   ©rB   rP   r«   rP   rQ   r]   ?  r^   éýÿÿÿz
%s[%s:%s:%s] = %s -> %sc                      s   t  dS ©Nr3   rŠ   rP   )Úbuiltin_rangerP   rQ   r]   \  r^   l    J)£))r   r9   Úlistrv   rB   rA   r   r   r   r   r*   rt   rC   r   ÚZeroÚallr:   rz   r=   rW   Ú	ComplexesrF   Ú	Rationalsr8   rD   Ú
IndexErrorr+   r,   Úreversedr   ru   ÚboolÚNotImplementedErrorrH   ÚfalseÚ	itertoolsÚproductr>   Ústepr   r/   )r   r   rJ   r   rA   ZABÚRrK   rL   rM   ÚreverseÚresultÚansÚtxtÚcheckÚrevrP   )r°   r{   r€   rQ   Ú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sèt	jtttfksüt	|j  d d
fkst	j d  d  fks4t	ttfdd ttfdd j
j| d ddfkstt	j
j|  d ddfkst	|j
j d  d
 dfks²t	j
jd  d  d  fksÖt	ksät	|ksòt	dks t	dkst	ttfdd ttfdd dks@t	d|ksNt	 d |ks`t	 d
 |ksrt	ttfd d ttfd!d ttfd"d ttfd#d tt| ksÐt	tt ksæt	 tj¡ksüt	 tt¡tthkst	ttfd$d ttfd%d ttfd&d t||j  krpdksvn t	tj  krdksn t	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øt	tst	t|st	ts"t	ts0t	ttfd,d ttfd-d ttfd.d ttfd/d jdkst	j|  d kst	|j ks®t	ttfd0d ttfd1d ttfd2d j| d ksøt	jdkst	|j kst	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t	|d  ksŠt	|d  d8 ksŒt	|d  d ksÒt	d d
 t  d  d  ksøt	d  ks
t	d d  ks t	d d  ks6t	tt fd9d d j  krfdksln t	d j  kr| d ksn t	d j  kr²dksžn t	d j  krÜ|  d ksân t	ttfd:d |j kst	|j d kst	tt fd;d | t¡t kt d k@ tt  t d
d@ ksdt	 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Ît	t   d  t¡tt ksòt	 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stt	 t¡ttttttdd@ kst	 t¡tttddksŸt	td<ddd=}td>ddd?}t d  ¡t dk dkk	s t	t d  ¡t dk	st	t t dd  ¡ dkk	s@t	t t t  ¡dk	s\t	t ddd
  ¡t t ddd
k	st	t ddd
 |¡t|dk|d@kk	s°t	t ddd
 d
  ¡td
  dkd
  d@kk	sæt	t ddd
 |¡d+k
st	t ddAd
 |¡d+k
st	t ddAd
 |¡t|dk|dkk
sHt	t ddd |¡d+k
sdt	t dAdd |¡t|dk|dAkk
st	t t dd
  ¡t t t dd
k
sŒt	d S )BNr6   r0   r   Tr   ©r   r   r   rT   é   r4   rd   r5   rA   r   c                      s   t  S r\   rŠ   rP   r¬   rP   rQ   r]   q  r^   z%test_Range_symbolic.<locals>.<lambda>c                      s   t  ddS rS   rŠ   rP   r¬   rP   rQ   r]   r  r^   c                      s   t   dS r¯   rŠ   rP   r¬   rP   rQ   r]   s  r^   c                      s   t dd S r¯   rŠ   rP   r¬   rP   rQ   r]   t  r^   re   r_   c                      s    j S r\   ©r·   rP   ©ÚxrrP   rQ   r]   {  r^   c                      s    j S r\   rÈ   rP   ©ÚsrrP   rQ   r]   |  r^   r3   é   rp   rq   r®   c                      s   d kS r¯   rP   rP   ©ÚiprrP   rQ   r]     r^   c                      s   d kS ©NrT   rP   rP   )ÚinrrP   rQ   r]     r^   ç¹?c                      s   t  kS r\   ©r+   rP   rÉ   rP   rQ   r]     r^   c                      s   d kS r¯   rP   rP   rË   rP   rQ   r]     r^   c                      s   t t S r\   ©r;   r:   rP   rÉ   rP   rQ   r]     r^   c                      s   t t S r\   rÔ   rP   rË   rP   rQ   r]     r^   c                      s    d d S r   rP   rP   rË   rP   rQ   r]     r^   c                      s    d S r   rP   rP   rÉ   rP   rQ   r]     r^   c                      s    d S r   rP   rP   rË   rP   rQ   r]     r^   c                      s   t  S r\   ©r   rP   rÉ   rP   rQ   r]     r^   c                      s    j S r\   ©r   rP   rÉ   rP   rQ   r]     r^   c                      s   t  S r\   rÕ   rP   rË   rP   rQ   r]     r^   c                      s    j S r\   rÖ   rP   rË   rP   rQ   r]     r^   Fc                      s   t  S r\   ©rž   rP   rË   rP   rQ   r]   ¥  r^   c                      s   t  S r\   r×   rP   ©Úir2rP   rQ   r]   Š  r^   c                      s    j S r\   r¬   rP   rÉ   rP   rQ   r]   š  r^   c                      s    j S r\   r¬   rP   rË   rP   rQ   r]   ©  r^   c                      s    j S r\   r¬   rP   rØ   rP   rQ   r]   ­  r^   c                      s    j S r\   r­   rP   rÉ   rP   rQ   r]   ¯  r^   c                      s    j S r\   r­   rP   rË   rP   rQ   r]   °  r^   c                      s    j S r\   r­   rP   rØ   rP   rQ   r]   Ž  r^   c                      s    d S r   rP   rP   rÉ   rP   rQ   r]   ¶  r^   c                      s    d S r   rP   rP   rË   rP   rQ   r]   ·  r^   c                      s    d S rÐ   rP   rP   rË   rP   rQ   r]   ž  r^   c                      s    d d S r   rP   rP   rË   rP   rQ   r]   ¹  r^   ra   c                      s   t  d S rÐ   rŠ   rP   ©r   rP   rQ   r]   Â  r^   c                      s    d S ©Nrp   rP   rP   rÎ   rP   rQ   r]   Ç  r^   c                      s
   t  jS r\   )r   rA   rP   rÚ   rP   rQ   r]   Ê  r^   Úe)r   ÚevenÚo)r   Zoddr7   r`   ) r   r+   r,   r-   r   r   r*   rt   Úargsr9   r·   rz   r;   r:   r=   r   rW   r   r   r   r   rž   rA   rB   rH   r   r/   r.   rC   r'   r   r   )r   ZirrÜ   rÞ   rP   )r   rA   rÑ   rÏ   rÙ   rÌ   rÊ   rQ   Útest_Range_symbolice  s    $ $$"&$($*ÿ
 ÿÿÿ$
 ÿÿÿÿþ* &"**6**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t|  |j¡|ks¢t| j |¡|ksžt| j |j¡|ksÐt||  } }|  |¡|ksît|  |j¡|kst| j |¡|kst| j |j¡|ksntqnd S )Nr   r3   r5   r6   r®   rT   r4   rr   r0   r7   éP   é7   éG   rd   ra   rq   )r   r   ru   r   r=   r9   r·   )rK   rL   r   rP   rP   rQ   Útest_range_range_intersectionë  s0      ò
rä   c                  C   s0  t ddd} ttd t| | d ¡ts.ttd tdd¡tdksNttd tt t¡tdkspttd tdt¡tddksttd td	t¡tddksŽttd td
d¡tddksÖttd td
d¡tddksøttd t dd¡¡tddksttd t d
d¡¡t	j
ks@ttdd t	j¡tddksbttdd t	j¡tddksttdd t	j¡tddksŠttdd t	j¡tddksÈttdd t	j¡tddksêttd tdd¡t	j
ks
ttd tt t¡t	j
ks,td S )NÚpTr   r5   r4   r6   r   r3   gñ?rÒ   gÍÌÌÌÌÌ@ç      à?rT   r0   r7   gÉ?gé?)r   r<   r   r=   r	   r   r9   r   Úopenr   ru   rŽ   rF   rW   r8   rD   )rå   rP   rP   rQ   Ú test_range_interval_intersection  s"    " """""&"""""" rè   c                  C   sº  t ddjdkstt dtjdks(tt t djdks>tt t tjdksTtt tt jdksjtt ddjdks~tt ttjdkstt t t jdksªttddd	} td
dd	}t | | d jdksÚtt | djdksîtt d| d jdkstt | |jdkstt | | ||  jdks<tt | | | |  jdksZtt | tjdksptt t | jdkstt | t jdks tt t| jdks¶td S )Néÿÿÿrr   Tr4   Fé2   r   Únr   Úmé1   r®   rq   )r   Zis_finite_setr9   r   r   ©rë   rì   rP   rP   rQ   Útest_range_is_finite_set  s(    rï   c                  C   s  t ddjdkstt dtjdks(tt t djdks>tt t tjdksTtt tt jdksjtt ddjdks~tt ttjdkstt t t jdksªttddd	} td
dd	}tdddd}t | | d jdksètt | djdksütt d| d jdkstt d|d jdks0tt | |jdksFtt | | ||  jdksdtt | | | |  jdkstt | tjdkstt t | jdks°ttd}t ||d jdksÒtt |djdksètt d|d jdkstt ||jdkstt || || jdks6tt ||| | jdksTtt |tjdksjtt t |jdkstd S )Nré   rr   Tr4   Frê   r   rë   r   rì   rå   rÆ   rí   r®   rq   r+   )r   rw   r9   r   r   )rë   rì   rå   r+   rP   rP   rQ   Ú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sLttttdt tdd tj}|| ksxttd}ttdt | tj}|d |ksŠtd\}}}|tt||t  tjksÎt|tt||t  tjksìtt	d	d
d}|d | d }t||tjj
j|d | d ks0td| d }t||tjj
jd| d ks`ttttdt ftjt tttdt ftjkstd S )Nr4   r5   rq   rp   rg   r,   r6   )gZd;ßO·?gÀÊ¡E¶Û?gmçû©ñÒÕ?r+   T)Únegativer3   )r   r   r+   r   r   rW   r   r9   r   r   ÚlamdaÚexpr)	rÁ   Úimr,   r   rK   rL   rM   Z_xÚeqrP   rP   rQ   Útest_Integers_eval_imagesetS  s&       
($ÿrö   c                     sÔ   t d\} }}tt| t|  | tdtt| t | |  | tdksNttd d  tt tdjj ksvt| t|  |  tddd}tt |}|jj ks®tt| fddt|D ksÐtd S )	Nza b cr5   r3   r4   r®   rp   c                    s   g | ]}   t|¡ ¡ qS rP   )Úsubsr+   Úexpandr   ©rõ   rP   rQ   Ú
<listcomp>t  s     z,test_Range_eval_imageset.<locals>.<listcomp>)r   r   r+   r   r9   rò   ró   r±   )rK   rL   rM   r   ZimsetrP   rù   rQ   Ú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sLtd S )Nr6   r   rg   rT   r4   r   r3   )	r   r   r   r+   r%   r   r   r#   r9   rP   rP   rP   rQ   Útest_funw  s
    ÿ ÿrü   c                  C   sü   t ddd} t dddd}t dddd}tdjs6ttd	jrDttd	djsTttd
djrdtt| jd ksvtt|jstt|jdkstt|djdksªtt||jdksŸtt||jsÎtt|d
jd ksâtt||d
jdksøtd S )Nr   Tr   rë   )rñ   r   rå   )r   r   r   r3   rT   F)r   r   Zis_emptyr9   )r   rë   rå   rP   rP   rQ   Útest_Range_is_empty|  s    rý   c                   C   sð   dt jkstt jt jksttd t jks2tdt jks@ttdt jksRtt jtt tkshtt jtdtks|tt j tt t¡stt j t	t t¡t	t tksžtt j
t jksÈtt jt jksØttt j
 t jksìtd S )Nr0   r4   )r4   r0   rT   r   )r   rF   r9   ÚPir#   r	   r   rG   r=   r   ZComplexInfinityÚNaNr+   rP   rP   rP   rQ   Ú
test_Reals  s    $r   c                   C   s  dt jkstddt  t jks$tt jt jks4ttd t jksHtt t jksXttdt jksjtt j t j¡t jkstt j t j¡t jkstt jt	t jt j ksŽtt jt	t
ddt
dd kdksÚttt jdksìttt jdksþtd S )	Nr0   r6   r4   rT   r3   r5   FrŽ   )r   rŽ   r9   r   rþ   r#   r=   rF   Úunionr   r	   ÚstrÚreprrP   rP   rP   rQ   Ú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ë   ÚiterablerP   rP   rQ   Útake­  s    r  c                	   C   sÔ   t j t j¡t jkstdt j t j¡ks.tdt j t j¡ksDtdt j t j¡ksZtdt j t j¡ksptdt j tdt¡kstdt j tt d¡ksŠttdd t	dt j tdt¡D sÐtd S )Nr0   r1   r2   r5   c                 s   s   | ]}|j V  qd S r\   r   )r    r+   rP   rP   rQ   r¡   º  s   ÿz%test_intersections.<locals>.<genexpr>r_   )
r   rW   r=   rF   r9   r8   r	   r   r³   r  rP   rP   rP   rQ   Útest_intersections²  s    ÿr  c                  C   s  ddl m} m} tt| | tjtt||tjks8ttt| d|  tj tt|d| d tj¡tj	kstttt| d|  tj tt| d|  d tj¡tj	ks°ttt|d| tj tt| d|  tj¡ 
tttdt tj¡súttttd tdd tj tj¡tj	ks*ttttd tj tj tj¡tjksVttt| d|  d tj}| tj¡|kstd S )Nr   rî   r4   r3   r5   r7   r0   )Ú	sympy.abcrë   rì   r   r   r   rW   r9   r=   ru   Údummy_eqr   r-   r+   r   rx   )rë   rì   ZS53rP   rP   rQ   Útest_infinitely_indexed_set_1Ÿ  s*    (ÿÿÿÿÿþ0,r  c                  C   s  ddl m}  tddd}tt| | tjtt| | | tjksDttt| | t tjtt| | | t tjksxttt| | tjtt| |  | tjksŠttt| d|  tjt	t| d|  tjksÖttt| d|  t tjt	t| d|  t d tjkstd S )	Nr   ©rë   rK   Tr   iúÿÿÿr7   r4   )
r	  rë   r   r   r   r   rW   r9   r   r   )rë   rK   rP   rP   rQ   Ú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sHt
| d | tj  }tt| | |t  tj tj¡t	dkst
tt| | || d  t  tj tj¡t	dksŸt
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*t
tt| | d|  d  || d  t  tj tj¡t	tjkspt
tt| | | d  | d | d  t d|  d   tj tj¡t	dksÀt
tt| | | d d  | d | d  t d|  d   tj tj¡tjkst
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r²tt| dt |  ttd
d	  tjksžn t
d S )Nr   r  r3   rT   r4   r7   r5   r`   r6   rq   )r	  rë   r   r   r   r   rW   r=   rF   r   r9   rx   rD   rø   r   r+   r   r   ru   r   r!   r   r#   r   )rë   rô   rO   rP   rP   rQ   Útest_imageset_intersect_realã  st    <ÿÿ"ÿÿ"ÿ   ÿÿ
.ÿÿ
ÿÿþþ
ÿÿþþ
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t| tddt dd¡tdtks<t| tdd¡tddks\t| tdd¡tjksxt| tdd	¡tttd
d td ksŠt| tdd¡tdksÄt| tdd¡tjksàt| tdd¡tjksüt| tdd¡ttjt	dks"t| tdd¡t|tddksHt| tdd¡t|tddksnt|	 tdd¡t|	tddkstd S )Nr   r  r4   rT   r3   FTr1   r0   r®   r_   )r	  rë   r   r   r   r   rW   r	   r   r!   r   r    rD   r=   r   r9   ru   r   r²   r   )
rë   Úf1Úf2Zf3Zf4Zf5Zf6Zf7Zf8Zf9rP   rP   rQ   Ú 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sVttt|d| tj tt|d| d tj¡tj	ksttt|d| d| d  tj tj¡t
d	d
ddksÎttt||d d tj tt||d d  tj¡t
dksttt||d d tj tt| d|  tj¡ tt|d|d  d|  d tj¡stttt||d d tj tt| | d  tj¡t
ddksžttt| | d d tj tt|d| tj¡ ttt| | d d tjtt|d| tj¡s$ttt||d d tj tt| | d  d tj¡t
ddkslt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¡sðttt||td tj tj¡ ttt||td tjtj¡s<ttt||d d tj tt||d tj¡ ttt||d d tjtt||d tj¡sštd S )Nr   )rì   rë   r4   r3   r6   r`   re   r5   iÃÿÿÿiéÿÿÿrl   é=   r0   r7   i÷ÿÿÿé(   é)   ra   éQ   éA   rh   rq   rg   râ   é   )r	  rì   rë   r   r   r   rW   r=   r9   ru   r   r
  r   r   r!   rE   )rì   rë   Zimg1Zimg2rP   rP   rQ   Ú#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¡sfttt| d|  d tjtt| d|  d tjksttt| d|  d tjtt| d|  d tjksÖtd S )Nr   rî   r4   r5   r7   r3   )r	  rë   rì   r   r   r   r   rW   r=   r
  r   r-   r9   rî   rP   rP   rQ   Útest_infinitely_indexed_set_3H  s    ÿþÿÿr  c                  C   sè   ddl m} m} tt| | tjtjks,ttt| t| tt|t	|tjtt|tt	|tjksptt| dd|   tj
tdtdkstt| dd|   tjtdtdksŒtt| dd|   tj
tdt dksätd S )Nr   rî   r3   r4   r5   rT   rp   )r	  rë   rì   r   r   r   rW   r9   r%   r&   r8   r   r   rD   rî   rP   rP   rQ   Útest_ImageSet_simplificationS  s    ÿþ&&r  c                  C   sB  dt jftttdt ft jks$tttttd  t j t j¡t j	ksLtt
dd} ttttt  t j t j¡}| tt|  ¡ t j¡t jkstttttt t  t j t j¡}| td¡t jksÎt| tt|  t ¡ t j¡t jksôttdd tdd  d }tttt|  t j t j¡}|t j	k	s>td S )Nr4   r3   r5   Tr   r   )r   rx   r   r+   rW   r9   r   rE   rF   ru   r   r,   r÷   r$   r%   )r   Úqr.   rP   rP   rQ   Ú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  |ks`tddt  |ksttddt  |kstdd
t  |kstd
dt  |ks°tddt  |ksÄt| t¡tt|ddksàt| | ¡dksòt| t¡tt|ddkst| | ¡dks$ttdd tddt	j
 t  dd}dtd d  |kshtt	jtd d  |kstt	jdt  |kstddt  |ks²tt|ksÀtd|ksÎtd|ksÜtdt |ksîtdt |ks t| t¡tt|ddkst| | dt  ¡t| dt  |ddksLt| dd| d   ¡tdd| d   |ddksttdd}ttdt dd}t|| dd}	|	 d¡dksÂt|	 dt ¡dksÚt|	 dt ¡dksòt|	 dt ¡dks
t|	 dt ¡dks"t|	 d¡dks6t|	 d¡dksJt|	 t¡tt|	ddksht|	 dd| d   ¡tdd| d   |	ddksttt fdd d S )Nr   Tr   r4   r5   r6   r7   rq   r`   g      @g      @rd   gffffff@g	@Frb   r   r3   ©Zpolarræ   r_   g333333ã?)Z	left_openrp   c                      s   t   ddS )Nr4   r  )r   rP   ©Úr1Útheta1rP   rQ   r]     r^   z-test_ComplexRegion_contains.<locals>.<lambda>)r   r	   r   r
   r   r9   rC   r+   r   r   rþ   rx   r   r*   rt   )
r   rK   rL   rM   Úc1Úc2r}   Úr2Útheta2Úc4rP   r  rQ   Útest_ComplexRegion_containsl  sp    




  ÿ  ÿ
  ÿr&  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sttt fdd t  d jdksÄtt dddd tt fdd tt fdd t d d dkstt  d d  ks,tt j ks@tt d j d ks\tt  d jdksvtt dddd t d dkstt  d d  ks¶tt j ksÊtt  d jdksätt dddd} t  |  d  kstt  |  j| ks(tt  d jdksBtt  |  djt| d ksftt ddddd} t  |  dj| d kstd S )Nrë   c                      s   t  d S r   rŠ   rP   r  rP   rQ   r]   €  r^   z%test_symbolic_Range.<locals>.<lambda>c                      s   t   d S r   rŠ   rP   r  rP   rQ   r]   ¥  r^   c                      s   t   d d S )Nr3   r   rŠ   rP   r  rP   rQ   r]   Š  r^   c                      s
   t  jS r\   ©r   r   rP   r  rP   rQ   r]   §  r^   Tr   c                      s   t  d S r   rŠ   rP   r  rP   rQ   r]   ª  r^   c                      s   t   d S r   rŠ   rP   r  rP   rQ   r]   «  r^   r3   r   c                      s
   t  jS r\   r'  rP   r  rP   rQ   r]   ­  r^   )r   Znonnegativec                      s   t  d S r   rŠ   rP   r  rP   rQ   r]   ±  r^   c                      s   t   d S r   rŠ   rP   r  rP   rQ   r]   ²  r^   rÆ   rì   r4   )r   r   rÝ   )r   r*   rt   r¶   r   r9   r   r"   )rì   rP   r  rQ   Ú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sTtd S )Nrë   Tr   c                      s   t dd t S )Nc                 S   s   | d S r   rP   rÓ   rP   rP   rQ   r]   Ì  r^   z4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>)r   r   rP   r  rP   rQ   r]   Ì  r^   z"test_issue_18400.<locals>.<lambda>rÆ   c                 S   s   | d S r   rP   rÓ   rP   rP   rQ   r]   Ð  r^   )r   r*   rt   r   r   r9   rP   rP   r  rQ   Útest_issue_18400Ê  s    r)  c                  C   s  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þt| |¡|kst| |¡|ks&t| |¡| ks:tt tddtddtj  dd}| tdd¡tddks|t| tdd¡tdkst| tdd	¡tjks¶t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szt| |¡|kst|
 |¡|ks¢t|
 |¡| ks¶tt tddtdd }| tdd¡tddksît| tdd¡tdkst| tdd¡tjks(tt tddtddtj  dd}t td
dtd
d }| |¡t	||ddkstd S )Nr   Tr  r3   r4   r6   r0   r`   rh   rT   r1   r   r_   rq   r7   Frb   )
r   r	   r   r   r   rþ   r=   r9   ru   r   )ZX_axisZ	unit_diskZupper_half_unit_diskZupper_half_diskZlower_half_diskZright_half_diskZfirst_quad_diskr!  Zunit_squareZupper_half_unit_squareZupper_half_planeZlower_half_planeZright_half_planeZfirst_quad_planeZC1ZC2rP   rP   rQ   Útest_ComplexRegion_intersectÓ  sB    "$*""  "r*  c                  C   s^  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st| |¡t |ddks t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ìt| |	¡t |kst|  tdd	¡t| tdd	ddks.t| tdd	¡t|t  tdd	¡ksZtd S )Nr   r3   r4   Tr  r0   r7   r`   r6   r_   rh   r   ra   r   re   Frb   )	r   r	   r   rþ   r   r
   r  r9   Ú	from_real)r!  r"  r}   r%  Úp1Zp2Zc5Zc6Zc7Zc8Zp3Zp4rP   rP   rQ   Útest_ComplexRegion_union  s$    "$24***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s`td S )
Nr   r3   r4   Tr  c                      s
       ¡S r\   )r+  rP   ©r!  rP   rQ   r]   "  r^   z.test_ComplexRegion_from_real.<locals>.<lambda>rT   F)	r   r	   r   rþ   r*   rt   r+  r   r9   rP   rP   r.  rQ   Útest_ComplexRegion_from_real  s    "r/  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sht|jd	t ksztd S )
Nr4   r0   r6   rd   r   Tr  rh   r`   )r	   r   rþ   r   r
   Úmeasurer9   r   )rK   rL   r   r$  r!  r"  rP   rP   rQ   Útest_ComplexRegion_measure&  s    r1  c                	   C   s€  t ttdt ttdt tdt ¡ks0tt tttdd dt ttd tks^tt tttdd td t ddt ¡kstt t ttdd td ¡tt dtd ¡t td dt ¡ksÖtt t ttdd ttdd ¡tt dtd ¡t td dt ¡ks&tt tt d td ttdtd t ttdd dt ¡ksntt t t d td ¡tt dtd ¡t ttdd dt ¡ksºtt tdt dt t ddt ¡ksætt tttdd t d ttd ttdd ks"tt t ddt ¡t ddt ¡ksLtt t t d td ¡tt dtd ¡t ttdd dt ¡kstt t 	t d td ¡ttdtd t ttdd dt ¡ksâtt tt d td ttdtd t ttdd dt ¡ks*tt t d	t ttdd ¡t dtd ¡ks^tt t 	d	t ttdd ¡t 	dtd ¡kstt t d	t ttdd ¡t dtd ¡ksÆtt t dt dt ¡tt dt¡t tdt ¡kstt tdtdt tdtks&tt tdtd tdt tdtd tksVtt tdt d t d
t tdtttdd kstt tttdd td ttd ksŸtt tdt tdksÜtt ttdtd ttd tttdtd ttd tks"tt ttdttdt ttdd tdtksZt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   rV   r6   rp   rq   c                   S   s
   t tjS r\   )r   r   rŽ   rP   rP   rP   rQ   r]   \  r^   z*test_normalize_theta_set.<locals>.<lambda>c                   S   s   t tddS )Nr   r3   )r   r	   rP   rP   rP   rQ   r]   _  r^   c                   S   s   t tddt S r¥   ©r   r	   r   rP   rP   rP   rQ   r]   b  r^   c                   S   s   t tdt dS )Nr4   r_   r2  rP   rP   rP   rQ   r]   c  r^   c                   S   s   t tdddt S )Nr   r5   )r   r   r   rP   rP   rP   rQ   r]   d  r^   )r   r	   r   r
   r   ZRopenr9   r   rç   rY   r*   rt   r¹   rP   rP   rP   rQ   Útest_normalize_theta_set0  sj    ÿ.0$ÿ"$ÿ
(ÿ
*ÿ
,<**ÿ
(ÿ
(ÿ
444ÿ
$0:
ÿ
 ÿ
&ÿ
r3  c                  C   sÀ   t d\} }}}}}tt|||t| || t|t|   |t|  |t|  |t|   |t|  |t|  |t|   |t|  |t|  	kstttdtd tddt  ksŒtd S )Nzx y z a b cr4   r5   )r   r   r   r   r9   )r+   r,   r.   rK   rL   rM   rP   rP   rQ   Útest_ComplexRegion_FiniteSetg  s    4
 
 
 
ÿÿr4  c                   C   s8   t j tdd¡t jkstt j t j¡t jks4td S r¥   )r   rŽ   r  r	   r9   rW   rP   rP   rP   rQ   Útest_union_RealSubSetq  s    r5  c                  C   sÎ   dd } | t ddjttks$t| tddjttks@ttjjttksTttjjttkshttj	jttks|tt
djttkstt dd}t dd}t|| }|jttttksÊtd S )Nc                  W   s   t tttd f|  S r   rs   )rß   rP   rP   rQ   r]   w  r^   z'test_SetKind_fancySet.<locals>.<lambda>r3   r6   r5   r4   r7   )r	   Úkindr   r   r9   r   r   rµ   r8   rW   r   r   r   )ÚGrK   rL   r!  rP   rP   rQ   Útest_SetKind_fancySetv  s    

r8  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svt| j| j | kst|j|j |kstd S )Nr3   r4   r5   r0   F)r   r	   r
   r   r9   Úfuncrß   )r!  r"  rŸ   rP   rP   rQ   Útest_issue_9980  s    
ÿÿ
r:  c                  C   sþ   t dd} tdddd}tdd}| tjkdks4t| tjkdksFt| tjkdksXt| tjkdksjt|tjkdks|t|tjkdkst|tjkdks t|tjkdks²t|tjkdksÄt|tjkdksÖt|tjkdksèt|tjkdksútd S )Nr3   r4   r5   r6   r0   FT)	r	   r   r   r   r8   r9   rD   rW   rŽ   )Z
interval12Zfiniteset1234ZpointComplexrP   rP   rQ   Útest_issue_11732  s    

r;  c                  C   sx   t dd} t| d }ttjtttjks0tttjttdtjksNtt| ||ks`tt	tj
|| ksttd S )Nr   r3   r4   r6   )r	   r   r
   r   rŽ   r   r   r9   r(   r   rF   )ÚunitZsquarerP   rP   rQ   Útest_issue_11730£  s    
r=  c            	      C   sú   t dd} t dd}t||  }t|tj|ks4tt|| tdksJt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sÄtt|tjt ddksÞtt|tjtdksötd S )	Nr   r3   r4   r6   r5   Tr  rT   )r	   r   r   r   rF   r9   r   rþ   )	r<  ZivalZcr1Zarg1Zarg2Zarg3Úcp1Úcp2Zcp3rP   rP   rQ   Útest_issue_11938­  s    


r@  c                  C   s   t ddt dt } }t ddt tdt d  }}t| | dd}t|| dd}d| |¡ksftd| |¡ksxtd| |¡kstd S )	Nr   r3   r4   r5   Tr  r®   r1   )r	   r   r   r  r9   )rK   rL   rM   rN   r>  r?  rP   rP   rQ   Útest_issue_11914Á  s    rA  c                   C   s&   t tttd tj tj¡s"td S r   )r   r   r+   r   r8   rG   rF   r9   rP   rP   rP   rQ   Útest_issue_9543Ì  s    rB  c                   C   sJ   t ttttddhkstt tttd tj tj¡tjksFtd S )Nr3   r5   )r   r   r+   r   r9   r   rW   rE   rP   rP   rP   rQ   Útest_issue_16871Ð  s    ÿÿrC  c                   C   s&   t tttd tj tj¡s"td S )Nr5   )r   r   r+   r   rW   rG   r9   rP   rP   rP   rQ   Útest_issue_16871bÖ  s    rD  c                  C   s\  t tttt d tjttttt d tjks8tt ttdt t d dt  tjtttdt t d dt  tjkstt ttdt dt  tjtttdt dt  tjksÈttddd} t tt| t d	 tjttt| t d	 tjkstt ttdt d d
t  tjtttdt d d
t  tjksXtd S )Nr3   r5   r6   rd   r4   r   Tr   r_   r0   )	r   r   r+   r   r   rW   r   r9   r   ©r   rP   rP   rQ   Útest_issue_18050Û  s     ÿ$$ÿÿÿ
  ÿrF  c                     s  t j t j¡stt j t j¡s$tt j t j¡s6tt j t j¡sHtt jjt	 ksZtt jj
t	ksjt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sÄtt t jksÔtt jt jksätt j d¡tdt jddkstdt jksttddd} | t jks2tttdd  t jjt jksTtt jjt jkshtt jjdksztt jjdkstd S )Nc                    s   g | ]}t  qS rP   r¢   r   r£   rP   rQ   rú   ó  s     z"test_Rationals.<locals>.<listcomp>rh   r   r3   rT   r4   rp   r5   r®   ræ   Frb   r   T)Zrationalc                   S   s
   t tjkS r\   )r+   r   rµ   rP   rP   rP   rQ   r]   ý  r^   z test_Rationals.<locals>.<lambda>)r   rW   rG   rµ   r9   r8   rD   rF   rA   r   rB   r:   rv   rx   r   r   rC   r   r   r*   rz   r>   Úclosurer?   r@   rE  rP   r£   rQ   Útest_Rationalsë  sH    
          þ
  ÿrH  c                     sH   t jt jt jt jt jt jf  fdd D } tdd | D sDtd S )Nc                 3   s"   | ]} D ]}t ||V  q
qd S r\   )r
   )r    rK   rL   ©ZnbrsetsrP   rQ   r¡   	  s       z$test_NZQRC_unions.<locals>.<genexpr>c                 s   s   | ]}|j d kV  qdS )FN)Zis_Union)r    r   rP   rP   rQ   r¡   
  s     )	r   r8   rD   rW   rµ   rF   rŽ   r³   r9   )ZunionsrP   rI  rQ   Útest_NZQRC_unions  s     ÿrJ  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|td S )Nr4   r6   rq   )r   r   r   r   r   r!   r   r#   r   rW   r=   rF   r   r9   )rë   rO   rP   rP   rQ   Útest_imageset_intersection  s     ÿÿ ÿrK  c                   C   sX   dt t tkstdt tt dks*ttt t tks>tt t t tksTtd S )Nr3   r   rT   )r   r   r9   rP   rP   rP   rQ   Útest_issue_17858  s    rL  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                      s    d d d S r   rP   rP   rE  rP   rQ   r]     r^   z"test_issue_17859.<locals>.<lambda>c                      s    d d d S rÛ   rP   rP   rE  rP   rQ   r]     r^   rT   c                      s    d d d S r   rP   rP   rE  rP   rQ   r]      r^   c                      s    d d d S rÛ   rP   rP   rE  rP   rQ   r]   !  r^   )r   r   r*   rt   rP   rP   rE  rQ   Útest_issue_17859  s    rM  )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»   rR   rU   r[   r~   r   r   r   r   r   rÅ   rà   rä   rè   rï   rð   rö   rû   rü   rý   r   r  r  r  r  r  r  r  r  r  r  r  r&  r(  r)  r*  r-  r/  r1  r3  r4  r5  r8  r:  r;  r=  r@  rA  rB  rC  rD  rF  rH  rJ  rK  rL  rM  rP   rP   rP   rQ   Ú<module>   sš   $	?
   ,6(	/
7



