a
    kº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| v sJ d| vsJ d| vs*J t| }t|t|t|t|f\}}}}||||fdksjJ t|tsxJ |  tdd¡tddksJ |  tdddd¡tddksžJ | j	| ksÆJ | j
dksÔJ | jdksâJ | jdksðJ | jtu sþJ |  t¡rJ t jt jfD ].}| t j¡|u s4J | t j¡sJ q|  t¡ttttttdkttk ksxJ 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   úM/var/www/auris/lib/python3.9/site-packages/sympy/sets/tests/test_fancysets.pyÚtest_naturals    s(    $"rQ   c                  C   sd   t j} d| v sJ d| vsJ tt| dks2J |  t¡r@J |  tt¡ttt| ks`J 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¡r8J |  t ¡rHJ t| }t|t|t|t|f\}}}}||||fdksJ t|tsJ |  t	dd¡t
ddksŽJ |  t	dddd¡t
ddksÖJ |  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 s0J | jtu s@J | j| ksPJ | jdks`J | jdkspJ |  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(    $""&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sHJ tttdtj	tj	ksdJ t
ttdt tj} ttttd| sJ ttttd tj}d|v sŽJ d|vsÀJ ttd  |¡tdddksâJ d	| td
d¡vsúJ t|}t|t|t|t|f\}}}}||||fdks<J tttdt tj}tdd|v sfJ td|v sxJ | 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sVJ ttttftt h d£h d£ ¡ tddddddddd	ksJ tddtdd }tddttttfftdt f|v sÜJ 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 sdJ 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 sjJ td#d tjtj}	|	jttjtjksJ |	jtjtjfks°J tttttd h d£sÐJ ttttfftt dd$h}
d|
 ¡ v s J |
  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\      r]   )r5   r6   c                   S   s   t tttd dS )Nr4   r3   ©r   r   r+   rO   rO   rO   rP   r\      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   s    r~   c                  C   s   t ddd\} }t| |ff| t| | t| f}t|tddtdt }d|v sZJ d|vsfJ d|v srJ | | df¡d u sJ |jrJ d S )	Núr, thetaT©Úrealr   r3   )r3   r   )r   rS   )r   r   )	r   r   r$   r%   r   r	   r   rx   rv   ©ÚrÚthÚLZ
halfcirclerO   rO   rP   Útest_halfcircle£   s    $r   c                  C   sf   t ddd\} }t| |ff| t| | t| f}t|tddtdt }| dt f|vsbJ 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sJJ 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 sXJ tt ddjtju srJ d S )Nc                   S   s   t tdtdS )Nr   r4   )Úlenr   r   rO   rO   rO   rP   r\   À   r]   z$test_inf_Range_len.<locals>.<lambda>r   r4   ro   )r*   rs   r   r   Úsizer   rW   rO   rO   rO   rP   Útest_inf_Range_len¿   s
    r   c               
      s  t dt dt dd  kr.t dddks4n J t ddd} d| v sLJ d| vsXJ d	| vsdJ d
| vspJ tt ddttdksJ tt dddttdddks²J t ddjdksÆJ t ddjdksÚJ t dddjdksðJ t dddjdksJ t dddjdks J t dddjdks8J tt ddddksRJ t dddkshJ 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sHJ t ddtt ddksdJ t t tjtks|J 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 sîJ tt dtvsJ tdd d!}|t tvs J td"d d!}t t |¡d usDJ td#dd$}|t t tvsfJ 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sfJ 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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d dks>J t dddd d	ksXJ t dddd d'ksrJ 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stJ t	t
d4d  t tdd2d d  t tdd2ksšJ t t ddd d2d2 t dddksÒJ t t ddd d2d t t ddksþJ t	t
d5d  t	t
d6d  t t ddd2d d2 t dt dksFJ 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slJ t tdd2d dd ksJ t	t
d?d  t tttks°J jksÀJ dvsÎJ tg ksàJ tdksòJ jtju 	sJ  td¡tju 	sJ td u 	s0J t	tfd@d d d k	sXJ 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 ]}t|} t" #||g dC¢¡D ]x\}}}	tdD ]b}
tt| } |j}t||||	 }| |||	 }dD||||	||f }||k}|	sêJ |	qê	qØ	qºt dddj$t dddk
svJ t dddt dtdfD ]@} | j}| j|jk
rŽ| j|jk
sžJ | j%|j% k
sJ 
qt t	t fdEd t dt dks J t dFt dFksJ t dd  t¡tdktdk@ t&t'tdd@ ksPJ 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\   í   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]   r_   c                 s   s   | ]}|j V  qd S r[   ©Z
is_Integer©Ú.0r   rO   rO   rP   Ú	<genexpr>   r]   z!test_Range_set.<locals>.<genexpr>c                      s   t  S r[   ©r:   rO   ©ÚitrO   rP   r\     r]   c                   S   s   t tddddd S )Nr   rS   r3   r5   r   rO   rO   rO   rP   r\     r]   c                   S   s   t tddd d S )Nr   rS   r3   r   rO   rO   rO   rP   r\     r]   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   s   t dd S )Nr^   iìÿÿÿ©r   rO   rO   rO   rP   r\     r]   c                   S   s   t dd S )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\     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\   (  r]   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                      s    d S r   rO   rO   ©rz   rO   rP   r\   <  r]   c                      s    j S r[   ©r@   rO   rª   rO   rP   r\   >  r]   c                      s    j S 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   Úlistru   rA   r@   r   r   r   r   r*   rs   rB   r   ÚZeroÚallr9   ry   r<   rV   Ú	ComplexesrE   Ú	Rationalsr8   rC   Ú
IndexErrorr+   r,   Úreversedr   rt   ÚboolÚNotImplementedErrorrG   ÚfalseÚ	itertoolsÚproductr=   Ústepr   r/   )r   r   rI   r   r@   ZABÚRrJ   rK   rL   ÚreverseÚresultÚansÚtxtÚcheckÚrevrO   )r¯   rz   r£   rP   Útest_Range_setÇ   s   ,$ &&&&&&"*,&*,,&&*   
þÿ  6rÄ   c                     sÀ
  t ttd dt ttttddd tdddd} t | t d|  dt   d	 d
}t   d d  tddd tdddttfdd ttfdd ttfdd ttfdd jttd dfksèJ jtttfksüJ |j  d d
fksJ j d  d  fks4J ttfdd ttfdd j	j| d ddfkstJ 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sNJ  d |vs`J  d
 |v srJ 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sæJ  tj¡ksüJ  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rpdksvn J tj  krdksn 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s0J 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sJ |j ks®J ttfd0d ttfd1d ttfd2d j| d ksøJ 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s6J tt fd9d d j  krfdksln J d j  kr| d ksn J d j  kr²dksžn J d j  krÜ|  d ksân 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sdJ  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stJ  t¡ttttttdd@ ksJ  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
sHJ t ddd |¡d+k
sdJ t dAdd |¡t|dk|dAkk
sJ t t dd
  ¡t t t dd
k
sŒJ d S )BNr6   r0   r   Tr   ©r   r   r   rS   é   r4   rc   r5   r@   r   c                      s   t  S r[   r¥   rO   r«   rO   rP   r\   q  r]   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                      s    j S r[   ©r¶   rO   ©ÚxrrO   rP   r\   {  r]   c                      s    j S r[   rÇ   rO   ©ÚsrrO   rP   r\   |  r]   r3   é   ro   rp   r­   c                      s   d v S r®   rO   rO   ©ÚiprrO   rP   r\     r]   c                      s   d v S ©NrS   rO   rO   )ÚinrrO   rP   r\     r]   ç¹?c                      s   t  v S r[   ©r+   rO   rÈ   rO   rP   r\     r]   c                      s   d v S r®   rO   rO   rÊ   rO   rP   r\     r]   c                      s   t t S r[   ©r:   r9   rO   rÈ   rO   rP   r\     r]   c                      s   t t S r[   rÓ   rO   rÊ   rO   rP   r\     r]   c                      s    d d S r   rO   rO   rÊ   rO   rP   r\     r]   c                      s    d S r   rO   rO   rÈ   rO   rP   r\     r]   c                      s    d S r   rO   rO   rÊ   rO   rP   r\     r]   c                      s   t  S r[   ©r   rO   rÈ   rO   rP   r\     r]   c                      s    j S r[   ©r   rO   rÈ   rO   rP   r\     r]   c                      s   t  S r[   rÔ   rO   rÊ   rO   rP   r\     r]   c                      s    j S r[   rÕ   rO   rÊ   rO   rP   r\     r]   Fc                      s   t  S r[   ©r·   rO   rÊ   rO   rP   r\   ¥  r]   c                      s   t  S r[   rÖ   rO   ©Úir2rO   rP   r\   Š  r]   c                      s    j S r[   r«   rO   rÈ   rO   rP   r\   š  r]   c                      s    j S r[   r«   rO   rÊ   rO   rP   r\   ©  r]   c                      s    j S r[   r«   rO   r×   rO   rP   r\   ­  r]   c                      s    j S r[   r¬   rO   rÈ   rO   rP   r\   ¯  r]   c                      s    j S r[   r¬   rO   rÊ   rO   rP   r\   °  r]   c                      s    j S r[   r¬   rO   r×   rO   rP   r\   Ž  r]   c                      s    d S r   rO   rO   rÈ   rO   rP   r\   ¶  r]   c                      s    d S r   rO   rO   rÊ   rO   rP   r\   ·  r]   c                      s    d S rÏ   rO   rO   rÊ   rO   rP   r\   ž  r]   c                      s    d d S r   rO   rO   rÊ   rO   rP   r\   ¹  r]   r`   c                      s   t  d S rÏ   r¥   rO   ©r   rO   rP   r\   Â  r]   c                      s    d S ©Nro   rO   rO   rÍ   rO   rP   r\   Ç  r]   c                      s
   t  jS r[   )r   r@   rO   rÙ   rO   rP   r\   Ê  r]   Úe)r   ÚevenÚo)r   Zoddr7   r_   )r   r+   r,   r-   r   r   r*   rs   Úargsr¶   ry   r:   r9   r<   r   rV   r   r   r   r   r·   r@   rA   rG   r   r/   r.   rB   r'   r   r   )r   ZirrÛ   rÝ   rO   )r   r@   rÐ   rÎ   rØ   rË   rÉ   rP   Útest_Range_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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snJ qnd S )Nr   r3   r5   r6   r­   rS   r4   rq   r0   r7   éP   é7   éG   rc   r`   rp   )r   r   rt   r   r<   r¶   )rJ   rK   r   rO   rO   rP   Útest_range_range_intersectionë  s0      ò
rã   c                  C   s0  t ddd} ttd t| | d ¡ts.J td tdd¡tdksNJ td tt t¡tdkspJ td tdt¡tddksJ td td	t¡tddksŽJ 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ddksJ td t d
d¡¡tj	u s@J tdd tj
¡tddksbJ tdd tj¡tddksJ tdd tj¡tddksŠJ tdd tj¡tddksÈJ tdd tj¡tddksêJ td tdd¡tj	u s
J td tt t¡tj	u s,J d S )NÚpTr   r5   r4   r6   r   r3   gñ?rÑ   gÍÌÌÌÌÌ@ç      à?rS   r0   r7   gÉ?gé?)r   r;   r   r<   r	   r   r   Úopenr   rt   r³   rE   rV   r8   rC   )rä   rO   rO   rP   Ú test_range_interval_intersection  s"    " """""&"""""" rç   c                  C   sº  t ddjdu sJ t dtjdu s(J t t djdu s>J t t tjdu sTJ t tt jdu sjJ t ddjdu s~J t ttjdu sJ t t t jdu sªJ tddd	} td
d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 sZJ t | tjdu spJ 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   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 sTJ t tt jdu sjJ t ddjdu s~J t ttjdu sJ t t t jdu sªJ tddd	} td
dd	}tdddd}t | | d jdu sèJ t | djdu süJ t d| d jdu sJ t d|d jdu s0J t | |jdu sFJ t | | ||  jdu sdJ 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 s6J t ||| | jdu sTJ t |tjdu sjJ t t |jdu sJ d S )Nrè   rq   Tr4   Fré   r   rê   r   rë   rä   rÅ   rì   r­   rp   r+   )r   rv   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sLJ tttdt tdd tj}|| ksxJ td}ttdt | tj}|d |v sŠJ d\}}}|tt||t  tjv sÎJ |tt||t  tjv sìJ td	d
d}|d | d }t||tjj	j
|d | d ks0J 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   Ú_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sNJ td d  tt tdjj ksvJ | t|  |  tddd}tt |}|jj ks®J t| fddt|D ksÐJ d S )	Nza b cr5   r3   r4   r­   ro   c                    s   g | ]}   t|¡ ¡ qS rO   )Úsubsr+   Úexpandr   ©rõ   rO   rP   Ú
<listcomp>t  r]   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sLJ 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s6J td	jrDJ td	djsTJ td
djrdJ t| jd u svJ t|jsJ t|jdu sJ t|djdu sªJ t||jdu sŸJ t||jsÎJ t|d
jd u sâJ 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 s2J dt jvs@J tdt jvsRJ t jtt tkshJ t jtdtks|J t j tt t¡sJ t j tt t¡tt tksžJ t j	t jvsÈJ t j
t jvsØJ tt j	 t jvsìJ 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 s4J td t jv sHJ t t jv sXJ tdt jv sjJ t j t j¡t jksJ t j t j¡t jksJ t jtt jt j ksŽJ t jtt	ddt	dd kdksÚJ t
t jdksìJ 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 sDJ dt j t j¡vsZJ dt j t j¡vspJ dt j tdt¡v sJ dt j tt d¡v sŠJ tdd tdt j tdt¡D sÐJ d S )Nr0   r1   r2   r5   c                 s   s   | ]}|j V  qd S 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s8J tt| d|  tj tt|d| d tj¡tju stJ tt| d|  tj tt| d|  d tj¡tju s°J 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 sVJ t
t| d|  d tj}| tj¡|ksJ d S )Nr   rí   r4   r3   r5   r7   r0   )Ú	sympy.abcrê   rë   r   r   r   rV   r<   rt   Údummy_eqr   r-   r+   r   rw   )rê   rë   ZS53rO   rO   rP   Útest_infinitely_indexed_set_1Ÿ  s*    (ÿÿÿÿÿþ0,r  c                  C   s  ddl m}  tddd}tt| | tjtt| | | tjksDJ tt| | t tjtt| | | t tjksxJ tt| | tjtt| |  | tjksŠJ tt| d|  tjtt| d|  tjksÖJ 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sHJ | d | tj
  }tt| | |t  tj tj¡t	dksJ 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spJ 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r²tt| dt |  ttd
d	  tjksžn J d S )Nr   r  r3   rS   r4   r7   r5   r_   r6   rp   )r	  rê   r   r   r   r   rV   r<   rE   r   rw   rC   rø   r   r+   r   r   rt   r   r!   r   r#   r   )rê   ró   rN   rO   rO   rP   Útest_imageset_intersect_realã  sl    <ÿÿ"ÿÿ"ÿ&ÿÿ
.ÿÿ
ÿÿþþ
ÿÿþþ
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sxJ | 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sHJ | tdd¡t|tddksnJ |	 tdd¡t|	tddksJ d S )Nr   r  r4   rS   r3   FTr1   r0   r­   r^   )r	  rê   r   r   r   r   rV   r	   r   r!   r   r    rC   r<   r   rt   r   r±   r   )
rê   Úf1Úf2Zf3Zf4Zf5Zf6Zf7Zf8Zf9rO   rO   rP   Ú test_imageset_intersect_interval   s,    "&( .&&&r  c               	   C   s¬  ddl m} m} tt|d| d tj}tt|d| d tj}| |¡|ksVJ tt|d| tj tt|d| d tj¡tjksJ tt|d| d| d  tj tj¡t	d	d
ddksÎJ 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¡stJ 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slJ 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ðJ 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<   rt   r   r
  r   r   r!   rD   )rë   rê   Zimg1Zimg2rO   rO   rP   Ú#test_imageset_intersect_diophantine  s    ÿÿ"ÿÿÿÿ
ÿ ÿÿ
ÿÿ
ÿþÿ
ÿÿ
&(ÿ$ÿÿ
ÿÿÿÿ
ÿþÿr  c                  C   sÚ   ddl m} m} tt|dt | tj tt| dt |  tj¡ 	t
ttdt t tj¡sfJ tt| d|  d tjtt| d|  d tjksJ tt| d|  d tjtt| d|  d tjksÖJ 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spJ t| dd|   tj	t
dtdksJ t| dd|   tjt
dtdksŒJ t| dd|   tj	t
dt dksäJ 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   sB  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 sLJ t	dd} ttttt
  t j t j¡}| t
t|  ¡ t j¡t ju sJ ttttt
 t  t j t j¡}| t
d¡t ju sÎJ | t
t|  t ¡ t j¡t ju sôJ tdd tdd  d }tttt|  t j t j¡}|t jus>J d S )Nr4   r3   r5   Tr   r   )r   rw   r   r+   rV   r   rD   rE   rt   r   r,   r÷   r$   r%   )r   Úqr.   rO   rO   rP   Útest_ImageSet_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 s`J ddt  |v stJ ddt  |v sJ dd
t  |v sJ d
dt  |vs°J ddt  |vsÄJ | t¡tt|ddksàJ | | ¡dksòJ | t¡tt|ddksJ | | ¡dks$J tdd tddtj	 t  dd}dtd d  |v shJ 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sLJ | dd| d   ¡tdd| d   |ddksJ tdd}ttdt dd}t|| dd}	|	 d¡dksÂJ |	 dt ¡dksÚJ |	 dt ¡dksòJ |	 dt ¡dks
J |	 dt ¡dks"J |	 d¡dks6J |	 d¡dksJJ |	 t¡tt|	ddkshJ |	 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   r  )r   rO   ©Zr1Útheta1rO   rP   r\     r]   z-test_ComplexRegion_contains.<locals>.<lambda>)r   r	   r   r
   r   rB   r+   r   r   rþ   rw   r   r*   rs   )
r   rJ   rK   rL   Úc1Úc2r|   Zr2Útheta2Úc4rO   r  rP   Útest_ComplexRegion_containsl  sd    



ÿÿ
ÿ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J tt fdd t  d jdksÄJ 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s@J t d j d ks\J t  d jdksvJ 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sBJ t  |  djt| d ksfJ t ddddd} t  |  dj| d ksJ d S )Nrê   c                      s   t  d S r   r¥   rO   r  rO   rP   r\   €  r]   z%test_symbolic_Range.<locals>.<lambda>c                      s   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                      s
   t  jS r[   ©r   r   rO   r  rO   rP   r\   §  r]   Tr   c                      s   t  d S r   r¥   rO   r  rO   rP   r\   ª  r]   c                      s   t   d S r   r¥   rO   r  rO   rP   r\   «  r]   r3   r   c                      s
   t  jS r[   r%  rO   r  rO   rP   r\   ­  r]   )r   Znonnegativec                      s   t  d S r   r¥   rO   r  rO   rP   r\   ±  r]   c                      s   t   d S r   r¥   rO   r  rO   rP   r\   ²  r]   rÅ   rë   r4   )r   r   rÜ   )r   r*   rs   rµ   r   r   r"   )rë   rO   r  rP   Útest_symbolic_Range¢  s>    $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sTJ d S )Nrê   Tr   c                      s   t dd t S )Nc                 S   s   | d S r   rO   rÒ   rO   rO   rP   r\   Ì  r]   z4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>)r   r   rO   r  rO   rP   r\   Ì  r]   z"test_issue_18400.<locals>.<lambda>rÅ   c                 S   s   | d S r   rO   rÒ   rO   rO   rP   r\   Ð  r]   )r   r*   rs   r   r   rO   rO   r  rP   Ú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þ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szJ | |¡|ksJ |
 |¡|ks¢J |
 |¡| ks¶J t tddt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ddtddtj  dd}t td
dtd
d }| |¡t||ddksJ d S )Nr   Tr  r3   r4   r6   r0   r_   rg   rS   r1   r   r^   rp   r7   Fra   )	r   r	   r   r   r   rþ   r<   rt   r   )ZX_axisZ	unit_diskZupper_half_unit_diskZupper_half_diskZlower_half_diskZright_half_diskZfirst_quad_diskr   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   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J | |¡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sZJ d S )Nr   r3   r4   Tr  r0   r7   r_   r6   r^   rg   r   r`   r   rd   Fra   )r   r	   r   rþ   r   r
   r  Ú	from_real)r   r!  r|   r#  Úp1Úp2Zc5Zc6Zc7Zc8Zp3Zp4rO   rO   rP   Ú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`J d S )
Nr   r3   r4   Tr  c                      s
       ¡S r[   )r)  rO   ©r   rO   rP   r\   "  r]   z.test_ComplexRegion_from_real.<locals>.<lambda>rS   F)r   r	   r   rþ   r*   rs   r)  r   rO   rO   r-  rP   Ú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shJ |jd	t kszJ d S )
Nr4   r0   r6   rc   r   Tr  rg   r_   )r	   r   rþ   r   r
   Zmeasurer   )rJ   rK   r  r"  r   r!  rO   rO   rP   Útest_ComplexRegion_measure&  s    r/  c                	   C   s€  t ttdt ttdt tdt ¡ks0J 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sJ t t ttdd td ¡tt dtd ¡t td dt ¡ksÖJ 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snJ 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sLJ 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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sVJ t tdt d t d
t tdtttdd ksJ t tttdd td ttd ksŸJ t tdt tdksÜJ t ttdtd ttd tttdtd ttd tks"J t ttdttdt ttdd tdtksZJ 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^   r0  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  r]   )r   r	   r   r
   r   ZRopenr   ræ   rX   r*   rs   rž   rO   rO   rO   rP   Útest_normalize_theta_set0  sj    ÿ.0$ÿ"$ÿ
(ÿ
*ÿ
,<**ÿ
(ÿ
(ÿ
444ÿ
$0:
ÿ
 ÿ
&ÿ
r1  c                  C   sÀ   t d\} }}}}}tt|||t| || t|t|   |t|  |t|  |t|   |t|  |t|  |t|   |t|  |t|  	ksJ 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(ÿÿr2  c                   C   s8   t j tdd¡t jksJ t j t j¡t jks4J d S r€   )r   r³   r  r	   rV   rO   rO   rO   rP   Útest_union_RealSubSetq  s    r3  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 sTJ tjjttu shJ tjjttu s|J t	djttu sJ t dd}t dd}t
|| }|jttttu sÊJ d S )Nc                  W   s   t tttd g| ¢R  S r   rr   )rÞ   rO   rO   rP   r\   w  r]   z'test_SetKind_fancySet.<locals>.<lambda>r3   r6   r5   r4   r7   )r	   Úkindr   r   r   r   rŽ   r8   rV   r   r   r   )ÚGrJ   rK   r   rO   rO   rP   Útest_SetKind_fancySetv  s    

r6  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svJ | j| j | ksJ |j|j |ksJ d S )Nr3   r4   r5   r0   F)r   r	   r
   r   ÚfuncrÞ   )r   r!  rœ   rO   rO   rP   Útest_issue_9980  s    
ÿÿ
r8  c                  C   sþ   t dd} tdddd}tdd}| tjv dks4J | tjv dksFJ | tjv dksXJ | tjv dksjJ |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s²J |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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    

r9  c                  C   sx   t dd} t| d }ttjtttjks0J ttjttdtjksNJ t| ||ks`J ttj	|| kstJ d S )Nr   r3   r4   r6   )
r	   r   r
   r   r³   r   r   r(   r   rE   )ÚunitZsquarerO   rO   rP   Útest_issue_11730£  s    
r;  c            	      C   sú   t dd} t dd}t||  }t|tj|ks4J t|| tdksJJ 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ÄJ t|tjt ddksÞJ t|tjtdksöJ d S )	Nr   r3   r4   r6   r5   Tr  rS   )r	   r   r   r   rE   r   rþ   )	r:  ZivalZcr1Zarg1Zarg2Zarg3Úcp1Úcp2Zcp3rO   rO   rP   Ú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| |¡v sfJ d| |¡v sxJ d| |¡vsJ d S )	Nr   r3   r4   r5   Tr  r­   r1   )r	   r   r   r  )rJ   rK   rL   rM   r<  r=  rO   rO   rP   Útest_issue_11914Á  s    r?  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Ì  s    r@  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 sFJ d S )Nr3   r5   )r   r   r+   r   r   rV   rD   rO   rO   rO   rP   Útest_issue_16871Ð  s    ÿÿrA  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    rB  c                  C   s\  t tttt d tjttttt d tjks8J t ttdt t d dt  tjtttdt t d dt  tjksJ t ttdt dt  tjtttdt dt  tjksÈJ 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sXJ 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     ÿ$$ÿÿÿ
  ÿrD  c                     s  t j t j¡sJ t j t j¡s$J t j t j¡s6J t j t j¡sHJ t jjt u sZJ t jj	tu sjJ 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ÄJ t t jvsÔJ t jt jv säJ 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 s2J ttdd  t jjt jksTJ t jjt jkshJ t jjdkszJ t jjdksJ d S )Nc                    s   g | ]}t  qS rO   r¡   r   r¢   rO   rP   rú   ó  r]   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   ru   rw   r   r   rB   r   r   r*   ry   r=   Úclosurer>   r?   rC  rO   r¢   rP   Útest_Rationalsë  s0    
þ
ÿrF  c                     sH   t jt jt jt jt jt jf  fdd D } tdd | D sDJ d S )Nc                 3   s"   | ]} D ]}t ||V  q
qd S r[   )r
   )r   rJ   rK   ©ZnbrsetsrO   rP   r    	  r]   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    
  r]   )r   r8   rC   rV   rŽ   rE   r³   r²   )ZunionsrO   rG  rP   Útest_NZQRC_unions  s
    ÿrH  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     ÿÿ"ÿrI  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sTJ d S )Nr3   r   rS   r   rO   rO   rO   rP   Útest_issue_17858  s    rJ  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   rO   rO   rC  rO   rP   r\     r]   z"test_issue_17859.<locals>.<lambda>c                      s    d d d S rÚ   rO   rO   rC  rO   rP   r\     r]   rS   c                      s    d d d S r   rO   rO   rC  rO   rP   r\      r]   c                      s    d d d S rÚ   rO   rO   rC  rO   rP   r\   !  r]   )r   r   r*   rs   rO   rO   rC  rP   Útest_issue_17859  s    rK  )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  r$  r&  r'  r(  r,  r.  r/  r1  r2  r3  r6  r8  r9  r;  r>  r?  r@  rA  rB  rD  rF  rH  rI  rJ  rK  rO   rO   rO   rP   Ú<module>   sš   $	?
   ,6(	/
7



