o
    *Î®cÍÇ  ã                   @   s@  d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZC d dlDmEZE d dlFZFdd ZGdd ZHdd ZId d! ZJd"d# ZKd$d% ZLd&d' ZMd(d) ZNd*d+ ZOd,d- ZPd.d/ ZQd0d1 ZRd2d3 ZSd4d5 ZTd6d7 ZUd8d9 ZVd:d; ZWd<d= ZXd>d? ZYd@dA ZZdBdC Z[dDdE Z\dFdG Z]dHdI Z^dJdK Z_dLdM Z`dNdO ZadPdQ ZbdRdS ZcdTdU ZddVdW ZedXdY ZfdZd[ Zgd\d] Zhd^d_ Zid`da Zjdbdc Zkddde Zldfdg Zmdhdi Zndjdk Zodldm Zpdndo Zqdpdq Zrdrds Zsdtdu Ztdvdw Zudxdy Zve=dzd{ Zwd|d} Zxd~d Zydd Zzdd Z{dd Z|dd Z}dS )é    )Ú	unchanged)ÚContains)ÚImageSetÚRangeÚnormalize_theta_setÚComplexRegion)Ú	FiniteSetÚIntervalÚUnionÚimagesetÚIntersectionÚ
ProductSetÚSetKind)ÚConditionSet)Úsimplify)ÚBasic)ÚTupleÚ	TupleKind)ÚLambda)Ú
NumberKind)ÚIÚRationalÚooÚpi)ÚEq)ÚS)ÚDummyÚSymbolÚsymbols)ÚAbs)ÚexpÚlog)Úfloor)Úsqrt)ÚcosÚsinÚtan)ÚAnd)Úeye)ÚXFAILÚraises)ÚxÚyÚtÚz)ÚModNc                  C   sr  t j} d| v s	J d| vsJ d| vsJ t| }t|t|t|t|f\}}}}||||fdks5J t|ts<J |  tdd¡tddksKJ |  tdddd¡tddks\J | j	| kscJ | j
dksjJ | jdksqJ | jdksxJ | jtu sJ |  t¡rJ t jt jfD ]}| t j¡|u sJ | t j¡s J q|  t¡ttttttdkttk ks·J d S )	Né   éûÿÿÿç      @)é   é   é   é   r3   é   TF)r   ÚNaturalsÚiterÚnextÚ
isinstancer   Ú	intersectr	   r   ÚboundaryÚis_openÚ	is_closedÚinfÚsupr   ÚcontainsÚ	Naturals0ÚintersectionÚRealsÚ	is_subsetÚas_relationalr+   r'   r   r"   )ÚNÚniÚaÚbÚcÚdÚs© rO   úF/tmp/pip-target-vg8gfxp4/lib/python/sympy/sets/tests/test_fancysets.pyÚtest_naturals    s(   $"0rQ   c                  C   sd   t j} d| v s	J d| vsJ tt| dksJ |  t¡r J |  tt¡ttt| ks0J d S ©Nr   éÿÿÿÿ)	r   rC   r:   r9   rB   r   r%   r+   r   )rH   rO   rO   rP   Útest_naturals0;   s   $rT   c                  C   s  t j} d| v s	J d| v sJ d| vsJ |  t¡rJ |  t ¡r$J t| }t|t|t|t|f\}}}}||||fdksDJ t|tsKJ |  t	dd¡t
ddksZJ |  t	dddd¡t
ddkskJ |  t	dt j¡t
dt jks|J |  t	 dt j¡¡t
dt jksJ | jt u sJ | jtu sJ | j| ks€J | jdks«J | jdks²J |  t¡tttttt tk ttk ksÉJ d S )	Nr0   r1   r2   )r   r3   rS   r4   r7   TéüÿÿÿF)r   ÚIntegersrB   r   r9   r:   r;   r   r<   r	   r   ÚInfinityÚLopenr@   rA   r=   r>   r?   rG   r+   r'   r   r"   )ÚZÚzirJ   rK   rL   rM   rO   rO   rP   Útest_integersD   s(   $""$2r[   c                  C   sò  t tdd  tttdtjtdksJ tttttjthks$J tttdtj	tj	ks2J t
ttdt tj} ttttd| sIJ ttttd tj}d|v sZJ d|vs`J ttd  |¡tdddksqJ d	| td
d¡vs}J t|}t|t|t|t|f\}}}}||||fdksJ tttdt tj}tdd|v s±J td|v s¹J d|vs¿J td|vsÇJ d|vsÍJ |jsÒJ ttt td
dtdd
ksãJ ttttd td
d ¡ td
dksùJ ttttfdt dhdh ¡ tdksJ ttttftt h d£h d£ ¡ tddddddddd	ks3J tddtdd }tddttttfftdt f|v sTJ tdtjttttfftdt f|v slJ tddttttffttd f|vsJ tddttttfftdf|v sJ ttddtddtdd}tdddtttttfftttf|v s¿J ttddddtttttffdt ttf|v sÜJ dt ttttffdt |vsðJ dtd  ttttffdt |vsJ tddttttffdt |v sJ td!d tjtj}	|	jttjtjks2J |	jtjtjfks>J tttttd h d£sNJ ttttfftt dd"h}
d|
 ¡ v sfJ |
 d¡d u spJ t td#d  d S )$Nc                   S   s   t ttjS ©N)r   r+   r   rV   rO   rO   rO   rP   Ú<lambda>a   ó    ztest_ImageSet.<locals>.<lambda>r3   r4   r6   r0   é
   é	   é   r   )r3   r6   r`   ra   g      Ð?g333333Ó?)r3   r4   rS   r5   é   >   r3   r4   r5   >   r_   é   é   é   é   é   é   é   é   é   é    é!   r7   éþÿÿÿé   éd   c                 S   s   | | S r\   rO   )r+   r,   rO   rO   rP   r]      ó    )r5   r6   c                   S   s   t tttd dS )Nr4   r3   ©r   r   r+   rO   rO   rO   rP   r]      ó    ) r*   Ú
ValueErrorr   r   r+   r   rV   r   r,   ÚEmptySetr   r!   r   r   r8   Úranger<   r	   r9   r:   r   Úis_iterabler   Údoitr   ÚHalfr   r-   Ú	base_psetÚ	base_setsÚ	_containsÚ	TypeError)ÚemptyÚsquaresÚsirJ   rK   rL   rM   Ú	harmonicsÚc3ÚS1ÚS2rO   rO   rP   Útest_ImageSet`   s\   "$
",0$
ÿ.0.*0:(,* r   c                   C   s&   t ttttttdtsJ d S )Nr0   )r;   r   r+   r#   r%   r   r   rO   rO   rO   rP   Útest_image_is_ImageSet   ó   &r   c                  C   s   t ddd\} }t| |ff| t| | t| f}t|tddtdt }d|v s-J d|vs3J d|v s9J | | df¡d u sDJ |jrIJ d S )	Nzr, thetaT©Úrealr   r3   )r3   r   )r   rS   )r   r   )	r   r   r$   r%   r   r	   r   r|   rw   )ÚrÚthÚLÚ
halfcirclerO   rO   rP   Útest_halfcircle¢   s   $r   c                  C   sN   t tttd  } t| tj}t|}t|t|t|t|fdks%J d S )Nr4   )r   r4   r6   r7   )r   r+   r   r   r8   r9   r:   )r   ÚevensÚirO   rO   rP   Ú$test_ImageSet_iterator_not_injective±   s   (r   c                   C   sv   t tdd  tdtdjtju sJ tdt djtju s J ttddjtju s,J tt ddjtju s9J d S )Nc                   S   s   t tdtdS )Nr   r4   )Úlenr   r   rO   rO   rO   rP   r]   º   ó    z$test_inf_Range_len.<locals>.<lambda>r   r4   rn   )r*   rt   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sJ  J t ddd} d| v s'J d| vs-J d	| vs3J d
| vs9J tt ddttdksHJ tt dddttdddksZJ t ddjdksdJ t ddjdksnJ t dddjdksyJ t dddjdksJ t dddjdksJ t dddjdksJ tt ddddksŠJ t dddks°J t ttdksºJ t tddksÄJ t t ddksÏJ t dtdksÙJ t dt dksäJ t ddtksîJ tddd}t d|dksþJ t d| dks
J t ddt t ddksJ t ddtt ddks'J t t tjtks3J t tt djtks@J t	t
dd  t	t
dd  t	t
dd  dt dtdv s`J dt t ddv slJ tt dtvsvJ tdd d!}|t tvsJ td"d d!}t t |¡d usJ td#dd$}|t t tvsšJ t	t
d%d  t	t
d&d  t t ddd tju sÅJ t tddd dksÒJ |t tvsÛJ t dddd d'ksèJ td(d) t dddD søJ tt t ddt	tfd*d  tj¡ksJ t ddd tj¡t dddks(J t ddd tj¡t dddks;J t ddd tj¡t dddksNJ t dddd dks[J t dddd d	kshJ t dddd d'ksuJ t dddd dksJ t	t
d+d  t	t
d,d  t	t
d-d  t	t
d.d  t	td/d  t	td0d  t	t
d1d  t dt d2ddd ksÄJ t dt d2d dd t dd2dksÙJ t	t
d3d  t t ddd d d2 t dt dksöJ t	t
d4d  t tdd2d d  t tdd2k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s_J t	t
d7d  t	t
d8d  t tdd2dd  t tdd2ksJ t	t
d9d  t tdd2dd2 t tdd2ksJ t	t
d:d  t	t
d;d  t t ddd2d d t dddksœJ t tdd2ddd ksÍJ t	t
d<d  t	t
d=d  t	t
d>d  t tdd2ddd2 ksòJ t tdd2d dd ksJ t	t
d?d  t tttksJ jksJ dvs#J tg ks,J tdks5J jtju s>J  td¡tju sKJ td u sTJ t	tfd@d d d kshJ t	tfdAd t	tfdBd  t¡tju sJ d gttd }t ddt dddfD ]M}t|} t  ||g dC¢¡D ]<\}}}	tdD ]1}
tt| } |j}t||||	 }| |||	 }dD||||	||f }||k}|sáJ |q±qšqt dddj!t dddks÷J 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sIJ t dd t¡tdktdk@ t#t$tdd@ ksdJ 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_   rc   r4   rf   rb   re   rd   rS   é   é   r7   éC   é<   ro   éöÿÿÿé&   r5   rU   ÚipT©Úpositiver6   c                   S   s   t t tdS ©Nr4   ©r   r   rO   rO   rO   rP   r]   ç   ó    z test_Range_set.<locals>.<lambda>c                   S   s   t tttS r\   )r   r+   r   r,   rO   rO   rO   rP   r]   è   r^   c                   S   s   t ttdS ©Nr   )r   r+   r,   rO   rO   rO   rP   r]   é   r^   r1   rI   F©ÚintegerÚur@   ©Ú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   rn   rS   r    rO   rO   rO   rP   r]   õ   ó    r`   c                 s   ó    | ]}|j V  qd S r\   ©Ú
is_Integer©Ú.0r   rO   rO   rP   Ú	<genexpr>ú   s    z!test_Range_set.<locals>.<genexpr>c                      ó   t  S r\   ©r:   rO   ©ÚitrO   rP   r]   ü   rq   c                   S   s   t tddddd S )Nr   rS   r3   r5   r    rO   rO   rO   rP   r]     ó    c                   S   s   t tddd d S )Nr   rS   r3   r    rO   rO   rO   rP   r]   	  rs   c                   S   s   t dtd S )Nr3   rn   r    rO   rO   rO   rP   r]   
  r¡   c                   S   s   t t dd S ©Nr3   r4   r    rO   rO   rO   rP   r]     r   c                   S   ó   t dd S )Nr_   iìÿÿÿ©r   rO   rO   rO   rP   r]     r^   c                   S   rµ   )Nr_   rc   r¶   rO   rO   rO   rP   r]     r^   c                   S   s   t dt dddd S ©Nr4   rn   r   r    rO   rO   rO   rP   r]     ó    rn   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   rn   r    rO   rO   rO   rP   r]     rž   c                   S   s   t t ddd dd S )Nr6   r4   rn   r    rO   rO   rO   rP   r]     rž   c                   S   s   t t ddddd S )Nr6   r4   rn   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]     rs   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   rn   r    rO   rO   rO   rP   r]   #  r   c                   S   s   t tddddd S )Nr   rn   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   rn   r3   rS   r    rO   rO   rO   rP   r]   (  r³   c                      ó    d S r¢   rO   rO   ©r~   rO   rP   r]   3  rq   c                      ó    j S r\   ©r@   rO   rœ   rO   rP   r]   5  ó    c                      rŸ   r\   ©rA   rO   rœ   rO   rP   r]   6  rÀ   )éýÿÿÿrS   Nr3   r5   z
%s[%s:%s:%s] = %s -> %sc                      s   t  dS ©Nr3   r¶   rO   )Úbuiltin_rangerO   rP   r]   S  r^   l    J)£)%r   Úlistrv   rA   r@   r   r   r   r   r*   rt   rB   r   ÚZeroÚallr9   r}   r<   rV   r8   rC   Ú
IndexErrorr+   r,   Úreversedr   ru   ÚboolÚNotImplementedErrorrG   ÚfalseÚ	itertoolsÚproductr=   Ústepr   r/   )r   r   rI   r¥   r@   ÚABÚRrJ   rK   rL   ÚreverseÚresultÚansÚtxtÚcheckÚrevrO   )rÄ   r~   r²   rP   Útest_Range_setÁ   s  .$ &&&"*,&*,,&&*   
þÿøÿ  6@rØ   c                     sž
  t ttd dt ttttddd tdddd} t | t d|  dt   d	 d
}t   d d  tddd tdddttfdd ttfdd ttfdd ttfdd jttd dfkstJ jtttfks~J |j  d d
fksJ j d  d  fksJ ttfdd ttfdd j	j| d ddfks·J j	j|  d ddfksÅJ |j	j d  d
 dfksÔJ j	jd  d  d  fksåJ vsëJ |vsñJ dv s÷J dv sýJ tt
fdd tt
fdd dvsJ d|vsJ  d |vs&J  d
 |v s/J tt
fd d tt
fd!d ttfd"d ttfd#d tt| ks^J tt ksiJ  tj¡kstJ  tt¡tthksJ ttfd$d ttfd%d ttfd&d t||j  kr¯dks²J  J tj  krÂdksÅJ  J ttfd'd ttfd(d ttfd)d ttfd*d tt dd+ksôJ tsûJ t|sJ ts	J tsJ ttfd,d ttfd-d ttfd.d ttfd/d jdks<J j|  d ksGJ |j ksOJ ttfd0d ttfd1d ttfd2d j| d kstJ jdks|J |j ksJ ttfd3d ttfd4d ttfd5d ttfd6d ttfd7d |d d
 t   d d
ksÂJ |d  ksËJ |d  d8 ksÖJ |d  d ksáJ d d
 t  d  d  ksôJ d  ksýJ d d  ksJ d d  ksJ tt fd9d d j  kr,dks/J  J d j  krA| d ksDJ  J d j  krTdksWJ  J d j  krj|  d ksmJ  J ttfd:d |j ks~J |j d ksJ tt fd;d | t¡t kt d k@ tt  t d
d@ ks®J  t¡tt  t d  dt ktd  k@ d  dk@ t ktd  k@ d  dk@ B @ ksãJ t   d  t¡tt ksõJ  t¡tttddtttdd@ ttt t td@ ttktt t k@ tdk@ ttktt t k@ tdk@ B @ ks6J  t¡ttttttdd@ ksKJ  t¡tttddks[J td<ddd=}td>ddd?}t d  ¡t dk dkks|J t d  ¡t dksJ t t dd  ¡ dkksJ t t t  ¡dksªJ t ddd
  ¡t t ddd
ks¿J t ddd
 |¡t|dk|d@kksÔJ t ddd
 d
  ¡td
  dkd
  d@kksïJ t ddd
 |¡d+ksýJ t ddAd
 |¡d+ksJ t ddAd
 |¡t|dk|dkks J t ddd |¡d+ks.J t dAdd |¡t|dk|dAkksCJ t t dd
  ¡t t t dd
ksZJ d S )BNr6   r0   r   Tr£   ©r€   r   r   rS   é   r4   rb   r5   r@   rŠ   c                      r¯   r\   r¶   rO   r¿   rO   rP   r]   h  rq   z%test_Range_symbolic.<locals>.<lambda>c                      s   t  ddS rR   r¶   rO   r¿   rO   rP   r]   i  r^   c                      s   t   dS rÃ   r¶   rO   r¿   rO   rP   r]   j  r^   c                      s   t dd S rÃ   r¶   rO   r¿   rO   rP   r]   k  r^   rc   r_   c                      rŸ   r\   ©rÉ   rO   ©ÚxrrO   rP   r]   r  rÀ   c                      rŸ   r\   rÛ   rO   ©ÚsrrO   rP   r]   s  rÀ   r3   é   rn   ro   rÂ   c                      ó   d v S rÃ   rO   rO   ©ÚiprrO   rP   r]   }  rq   c                      rá   ©NrS   rO   rO   )ÚinrrO   rP   r]   ~  rq   ç¹?c                      s   t  v S r\   ©r+   rO   rÜ   rO   rP   r]     rq   c                      rá   rÃ   rO   rO   rÞ   rO   rP   r]     rq   c                      ó   t t S r\   ©r:   r9   rO   rÜ   rO   rP   r]     r^   c                      rè   r\   ré   rO   rÞ   rO   rP   r]     r^   c                      ó    d d S r   rO   rO   rÞ   rO   rP   r]     r^   c                      rŒ   r¢   rO   rO   rÜ   rO   rP   r]     rq   c                      rŒ   r¢   rO   rO   rÞ   rO   rP   r]     rq   c                      r¯   r\   ©r   rO   rÜ   rO   rP   r]     rq   c                      rŸ   r\   ©r   rO   rÜ   rO   rP   r]     rÀ   c                      r¯   r\   rë   rO   rÞ   rO   rP   r]     rq   c                      rŸ   r\   rì   rO   rÞ   rO   rP   r]     rÀ   Fc                      r¯   r\   ©rÊ   rO   rÞ   rO   rP   r]     rq   c                      r¯   r\   rí   rO   ©Úir2rO   rP   r]     rq   c                      rŸ   r\   r¿   rO   rÜ   rO   rP   r]     rÀ   c                      rŸ   r\   r¿   rO   rÞ   rO   rP   r]      rÀ   c                      rŸ   r\   r¿   rO   rî   rO   rP   r]   €  rÀ   c                      rŸ   r\   rÁ   rO   rÜ   rO   rP   r]   Š  rÀ   c                      rŸ   r\   rÁ   rO   rÞ   rO   rP   r]   §  rÀ   c                      rŸ   r\   rÁ   rO   rî   rO   rP   r]   «  rÀ   c                      rŒ   r¢   rO   rO   rÜ   rO   rP   r]   ­  rq   c                      rŒ   r¢   rO   rO   rÞ   rO   rP   r]   ®  rq   c                      rŒ   rä   rO   rO   rÞ   rO   rP   r]   ¯  rq   c                      rê   r   rO   rO   rÞ   rO   rP   r]   °  r^   ra   c                      ó   t  d S rä   r¶   rO   ©r   rO   rP   r]   ¹  r^   c                      rŒ   ©Nrn   rO   rO   râ   rO   rP   r]   Ÿ  rq   c                      ó
   t  jS r\   )r   r@   rO   rñ   rO   rP   r]   Á  ó   
 Úe)r€   ÚevenÚo)r€   Úoddr7   r`   )r   r+   r,   r-   r   r   r*   rt   ÚargsrÉ   r}   r:   r9   r<   r   rV   r   r   r   r   rÊ   r@   rA   rG   r   r/   r.   rB   r'   r   r   )r   Úirrõ   r÷   rO   )r   r@   rå   rã   rï   rß   rÝ   rP   Útest_Range_symbolic\  s  " &&"&&*&,ÿ
ÿÿÿ$

ÿÿÿÿþ* &"**6**2rû   c                  C   s,  t dt dtjft dt dttjft dt ddtjft ddt ddt ddft ddt ddt ddft dtdt dtdtjft dtdt tt dtdft dtdt dt dddft dtdt tt dtdft dtdt d	d
tjft dddt dddt dddft dd
dt t d	dtjft dtdt d	tdt dtd
ft dd
dt dddtjffD ]\\} }}|  |¡|ksÅJ |  |j¡|ksÏJ | j |¡|ksÙJ | j |j¡|ksäJ || } }|  |¡|ksòJ |  |j¡|ksüJ | j |¡|ksJ | j |j¡|ksJ q·d S )Nr   r3   r5   r6   rÂ   rS   r4   rp   r0   r7   éP   é7   éG   rb   ra   ro   )r   r   ru   r   r<   rÉ   )rJ   rK   r   rO   rO   rP   Útest_range_range_intersectionâ  s2     ò
érÿ   c                  C   s~  t ddd} ttd t| | d ¡tsJ td tdd¡tdks'J td tt t¡tdks8J td tdt¡tddksIJ td td	t¡tddksZJ td td
d¡tddkskJ td td
d¡tddks|J td t dd¡¡tddksJ td t d
d¡¡tj	u sJ td 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ÍÌÌÌÌÌ@ç      à?gÉ?gé?)
r   r;   r   r<   r	   r   r   Úopenr   ru   )r   rO   rO   rP   Ú test_range_interval_intersectioný  s   " """""$ $r  c                  C   sª  t ddjdu s
J t dtjdu sJ t t djdu sJ t t tjdu s*J t tt jdu s5J t ddjdu s?J t ttjdu sIJ t t t jdu sUJ tddd	} td
dd	}t | | d jdu smJ t | djdu swJ t d| d jdu sJ t | |jdu sJ t | | ||  jdu sJ t | | | |  jdu s©J t | tjdu s³J t t | jdu sŸJ t | t jdu sÉJ t t| jdu sÓJ d S )Néÿÿÿrp   Tr4   Fé2   r   Únr£   Úmé1   rÂ   ro   )r   Úis_finite_setr   r   ©r  r  rO   rO   rP   Útest_range_is_finite_set  s(   r  c                  C   sr  t ddjdu s
J t dtjdu sJ t t djdu sJ t t tjdu s*J t tt jdu s5J t ddjdu s?J t ttjdu sIJ t t t jdu sUJ tddd	} td
dd	}tdddd}t | | d jdu stJ t | djdu s~J t d| d jdu sJ t d|d jdu sJ t | |jdu s J t | | ||  jdu s®J t | | | |  jdu sŒJ t | tjdu sÆJ t t | jdu sÑJ td}t ||d jdu sáJ t |djdu sëJ t d|d jdu s÷J t ||jdu sJ t || || jdu sJ t ||| | jdu s J t |tjdu s+J t t |jdu s7J d S )Nr  rp   Tr4   Fr  r   r  r£   r  r   rÙ   r  rÂ   ro   r+   )r   rw   r   r   )r  r  r   r+   rO   rO   rP   Útest_Range_is_iterable&  s:   r  c            	      C   s  t ttdt tdd tj} tttdt tdd tj}|| ks&J tttdt tdd tj}|| ks<J td}ttdt | tj}|d |v sSJ d\}}}|tt||t  tjv sgJ |tt||t  tjv svJ td	d
d}|d | d }t||tjj	j
|d | d ksJ d| d }t||tjj	j
d| d ks®J tttdt ftjt tttdt ftjksÈJ d S )Nr4   r5   ro   rn   re   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_imagesetF  s&      
&"ÿr  c                     sÔ   t d\} }}tt| t|  | tdtt| t | |  | tdks'J td d  tt tdjj ks;J | t|  |  tddd}tt |}|jj ksWJ t| fddt|D kshJ d S )	Nza b cr5   r3   r4   rÂ   rn   c                    s   g | ]
}   t|¡ ¡ qS rO   )Úsubsr+   Úexpandr¬   ©r  rO   rP   Ú
<listcomp>g  s    z,test_Range_eval_imageset.<locals>.<listcomp>)r   r   r+   r   r  r  rÅ   )rJ   rK   rL   r   ÚimsetrO   r  rP   Útest_Range_eval_imageset]  s   ÿ&r  c                   C   sP   t tttttt d tdd t dtd d dtdd dks&J d S )Nr6   r   re   rS   r4   r   r3   )r   r   r   r+   r%   r   r   r#   rO   rO   rO   rP   Útest_funj  s
   ÿ ÿr  c                  C   sü   t ddd} t dddd}t dddd}tdjsJ td	jr"J td	djs*J td
djr2J t| jd u s;J t|jsBJ t|jdu sKJ t|djdu sUJ t||jdu s_J t||jsgJ t|d
jd u sqJ t||d
jdu s|J d S )Nr   Tr£   r  )r  r€   r   )r   r€   r   r3   rS   F)r   r   Úis_empty)r   r  r   rO   rO   rP   Útest_Range_is_emptyo  s   r  c                   C   sð   dt jv sJ t jt jv sJ td t jv sJ dt jvs J tdt jvs)J t jtt tks4J t jtdtks>J t j tt t¡sJJ t j tt t¡tt tks\J t j	t jvsdJ t j
t jvslJ tt j	 t jvsvJ d S )Nr0   r4   )r4   r0   rS   r   )r   rE   ÚPir#   r	   r   rF   r<   r   ÚComplexInfinityÚNaNr+   rO   rO   rO   rP   Ú
test_Reals  s   $r   c                   C   s  dt jv sJ ddt  t jv sJ t jt jv sJ td t jv s$J t t jv s,J tdt jv s5J t j t j¡t jksAJ t j t j¡t jksMJ t jtt jt j ksZJ t jtt	ddt	dd kdksmJ t
t jdksvJ tt jdksJ d S )	Nr0   r6   r4   rS   r3   r5   FÚ	Complexes)r   r!  r   r  r#   r<   rE   Úunionr   r	   ÚstrÚreprrO   rO   rO   rP   Útest_Complex  s   &r%  c                 C   s   t t || ¡S )z.Return first n items of the iterable as a list)rÅ   rÍ   Úislice)r  ÚiterablerO   rO   rP   Útake   s   r(  c                	   C   sÔ   t j t j¡t jksJ dt j t j¡v sJ dt j t j¡v s"J dt j t j¡vs-J dt j t j¡vs8J dt j tdt¡v sEJ dt j tt d¡v sSJ tdd tdt j tdt¡D shJ d S )Nr0   r1   r2   r5   c                 s   r©   r\   rª   )r­   r+   rO   rO   rP   r®   ­  s    ÿz%test_intersections.<locals>.<genexpr>r_   )	r   rV   r<   rE   r8   r	   r   rÇ   r(  rO   rO   rO   rP   Útest_intersections¥  s   ÿr)  c                  C   s  ddl m} m} tt| | tjtt||tjksJ tt| d|  tj tt|d| d tj¡tju s:J tt| d|  tj tt| d|  d tj¡tju sXJ tt|d| tj tt| d|  tj¡ 	t
ttdt tj¡s}J tttd tdd tj tj¡tju sJ tttd tj tj tj¡tju s©J t
t| d|  d tj}| tj¡|ksÀJ d S )Nr   r
  r4   r3   r5   r7   r0   )Ú	sympy.abcr  r  r   r   r   rV   r<   ru   Údummy_eqr   r-   r+   r   ry   )r  r  ÚS53rO   rO   rP   Útest_infinitely_indexed_set_1±  s.   (ÿÿÿÿÿÿÿ.*r-  c                  C   s  ddl m}  tddd}tt| | tjtt| | | tjks"J tt| | t tjtt| | | t tjks<J tt| | tjtt| |  | tjksSJ tt| d|  tjtt| d|  tjkskJ tt| d|  t tjtt| d|  t d tjksJ d S )	Nr   ©r  rJ   Tr£   iúÿÿÿr7   r4   )	r*  r  r   r   r   r   rV   r   r   )r  rJ   rO   rO   rP   Útest_infinitely_indexed_set_2Ç  s"   ÿÿÿÿÿr/  c               	   C   sž  ddl m}  tt| | | d | d  t  tj tj¡t	ddks$J | d | tj
  }tt| | |t  tj tj¡t	dksDJ tt| | || d  t  tj tj¡t	dks_J tt| | d | ¡ t  tj tj¡ttttd t| t| d | d  tdd  dtjksJ tt| | d|  d  || d  t  tj tj¡t	tj
ks¶J tt| | | d  | d | d  t d|  d   tj tj¡t	dksÝJ tt| | | d d  | d | d  t d|  d   tj tj¡tju sJ tt| t tdt |  td	   tttt   tj}| tj¡tt| d|  t td	  tj  krWtt| dt |  ttd
d	  tjksZJ  J d S )Nr   r.  r3   rS   r4   r7   r5   r`   r6   ro   )r*  r  r   r   r   r   rV   r<   rE   r   ry   rC   r  r   r+   r   r   ru   r   r!   r   r#   r   )r  r  rN   rO   rO   rP   Útest_imageset_intersect_realÖ  s`   <ÿ ÿ &ÿÿ,ÿÿÿÿþÿÿÿ
þ4þÿ"ÿÿr0  c            
      C   s  ddl m}  tt| | t tj}tt| d|  tdt}tt| d|  t td  tj}tt| | t t tj}tt| dt |  t td  tj}tt| t	| tj}tt| | d tj}tt| t
| tj}tt| t| tj}	| tdd¡tdksJ | tddt dd¡tdtksJ | tdd¡tddks«J | tdd¡tjksžJ | tdd	¡tttd
d td ksÎJ | tdd¡tdksÜJ | tdd¡tjkséJ | tdd¡tjksöJ | tdd¡ttjt	dks	J | tdd¡t|tddksJ | tdd¡t|tddks/J |	 tdd¡t|	tddksBJ d S )Nr   r.  r4   rS   r3   FTr1   r0   rÂ   r_   )r*  r  r   r   r   r   rV   r	   r   r!   r   r    rC   r<   r   ru   r   rÆ   r   )
r  Úf1Úf2Úf3Úf4Úf5Úf6Úf7Úf8Úf9rO   rO   rP   Ú test_imageset_intersect_intervaló  s,   "&&,&&&*r:  c               	   C   sŠ  ddl m} m} tt|d| d tj}tt|d| d tj}| |¡|ks+J tt|d| tj tt|d| d tj¡tjksIJ tt|d| d| d  tj tj¡t	d	d
ddksgJ tt||d d tj tt||d d  tj¡t	dksJ tt||d d tj tt| d|  tj¡ 
tt|d|d  d|  d tj¡sžJ tt||d d tj tt| | d  tj¡t	ddksÙJ tt| | d d tj tt|d| tj¡ 
ttt| | d d tjtt|d| tj¡sJ tt||d d tj tt| | d  d tj¡t	ddks3J tt|td |d t d  tj tt|dt d |d t d  tj¡ 
tt|dt | d dt d  tj¡suJ tt||td tj tj¡ 
ttt||td tjtj¡sJ tt||d d tj tt||d tj¡ 
ttt||d d tjtt||d tj¡sÑJ d S )Nr   )r  r  r4   r3   r6   r`   rc   r5   iÃÿÿÿiéÿÿÿrj   é=   r0   r7   i÷ÿÿÿé(   é)   ra   éQ   éA   rf   ro   re   rý   é   )r*  r  r  r   r   r   rV   r<   ru   r   r+  r   r   r!   rD   )r  r  Úimg1Úimg2rO   rO   rP   Ú#test_imageset_intersect_diophantine  s   ÿÿ"ÿÿÿÿÿ ÿÿÿÿÿþÿÿ
ÿ&(ÿ$ÿÿÿÿÿÿÿþÿrC  c                  C   sÚ   ddl m} m} tt|dt | tj tt| dt |  tj¡ 	t
ttdt t tj¡s3J tt| d|  d tjtt| d|  d tjksOJ tt| d|  d tjtt| d|  d tjkskJ d S )Nr   r
  r4   r5   r7   r3   )r*  r  r  r   r   r   r   rV   r<   r+  r   r-   r
  rO   rO   rP   Útest_infinitely_indexed_set_3;  s   ÿÿÿÿÿrD  c                  C   sè   ddl m} m} tt| | tjtjksJ tt| t| tt|t|tjtt|tt|tjks8J t| dd|   tj	t
dtdksKJ t| dd|   tjt
dtdks^J t| dd|   tj	t
dt dksrJ d S )Nr   r
  r3   r4   r5   rS   rn   )r*  r  r  r   r   r   rV   r%   r&   r8   r   r   rC   r
  rO   rO   rP   Útest_ImageSet_simplificationF  s   ÿþ&&,rE  c                  C   s@  dt jftttdt ft jv sJ ttttd  t j t j¡t ju s&J t	dd} ttttt
  t j t j¡}| t
t|  ¡ t j¡t ju sKJ ttttt
 t  t j t j¡}| t
d¡t ju sgJ | t
t|  t ¡ t j¡t ju szJ tdd tdd  d }tttt|  t j t j¡}|t jusJ d S )Nr4   r3   r5   Tr£   r   )r   ry   r   r+   rV   r   rD   rE   ru   r   r,   r  r$   r%   )r   Úqr.   rO   rO   rP   Útest_ImageSet_containsQ  s   $(
""&rG  c            
         s   t ddd} tdd}tdd}tdd	}t|| }tt|| || }d
dt  |v s0J ddt  |v s:J ddt  |v sDJ dd
t  |v sNJ d
dt  |vsXJ ddt  |vsbJ | t¡tt|ddkspJ | | ¡dksyJ | t¡tt|ddksJ | | ¡dksJ tdd tddtj	 t  dd}dtd d  |v s±J tj
td d  |v sŸJ tj
dt  |v sÉJ ddt  |v sÓJ t|v sÙJ d|v sßJ d|v såJ dt |vsíJ dt |vsõJ | t¡tt|ddksJ | | dt  ¡t| dt  |ddksJ | dd| d   ¡tdd| d   |ddks6J tdd}ttdt dd}t|| dd}	|	 d¡dksVJ |	 dt ¡dksbJ |	 dt ¡dksnJ |	 dt ¡dkszJ |	 dt ¡dksJ |	 d¡dksJ |	 d¡dksJ |	 t¡tt|	ddks©J |	 dd| d   ¡tdd| d   |	ddksÄJ tt fdd d S )Nr   Tr   r4   r5   r6   r7   ro   r`   g      @g      @rb   gffffff@g	@F©Úevaluater   r3   ©Úpolarr  r_   g333333ã?)Ú	left_openrn   c                      s   t   ddS )Nr4   rJ  )r   rO   ©Úr1Útheta1rO   rP   r]     r   z-test_ComplexRegion_contains.<locals>.<lambda>)r   r	   r   r
   r   rB   r+   r   r   r  ry   r   r*   rt   )
r   rJ   rK   rL   Úc1Úc2r   Úr2Útheta2Úc4rO   rM  rP   Útest_ComplexRegion_contains_  sd   



ÿÿ
ÿrU  c                     s  t d tt fdd tt fdd tt fdd tt fdd t ddd tt fd	d tt fd
d t  d d  ksMJ tt fdd t  d jdksbJ t dddd tt fdd tt fdd t d d dksJ t  d d  ksJ t j ksJ t d j d ksªJ t  d jdks¶J t dddd t d dksÇJ t  d d  ksÔJ t j ksÝJ t  d jdkséJ t dddd} t  |  d  ksýJ t  |  j| ks
J t  d jdksJ t  |  djt| d ks)J t ddddd} t  |  dj| d ksAJ d S )Nr  c                      rð   r¢   r¶   rO   r.  rO   rP   r]     r^   z%test_symbolic_Range.<locals>.<lambda>c                      ó   t   d S r¢   r¶   rO   r.  rO   rP   r]     r¡   c                      s   t   d d S )Nr3   r   r¶   rO   r.  rO   rP   r]     rš   c                      ró   r\   ©r   r   rO   r.  rO   rP   r]     rô   Tr£   c                      rð   r¢   r¶   rO   r.  rO   rP   r]     r^   c                      rV  r¢   r¶   rO   r.  rO   rP   r]     r¡   r3   r   c                      ró   r\   rW  rO   r.  rO   rP   r]      rô   )r€   Únonnegativec                      rð   r¢   r¶   rO   r.  rO   rP   r]   €  r^   c                      rV  r¢   r¶   rO   r.  rO   rP   r]   ¥  r¡   rÙ   r  r4   )r€   r   rö   )r   r*   rt   rÈ   r   r   r"   )r  rO   r.  rP   Útest_symbolic_Range  s>   $$rY  c                      sX   t ddd tt fdd t dddd tdd t tdd t ks*J d S )Nr  Tr£   c                      s   t dd t S )Nc                 S   ó   | d S r   rO   rç   rO   rO   rP   r]   ¿  rq   z4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>)r   r   rO   r.  rO   rP   r]   ¿  rš   z"test_issue_18400.<locals>.<lambda>rÙ   c                 S   rZ  r   rO   rç   rO   rO   rP   r]   Ã  rq   )r   r*   rt   r   r   rO   rO   r.  rP   Útest_issue_18400œ  s   ,r[  c                  C   sx  t tdttdtj dd} t tddtddtj  dd}t tddtdtj dd}t tdttdtj dd}t tdtttjdtj  dd}t tdtttj d tjd  dd}t tdttdtjd  dd}| |¡|ksJ | |¡|ksJ | |¡|ksJ | |¡| ksJ t tddtddtj  dd}| tdd¡tddksºJ | tdd¡tdksÈJ | tdd	¡tju sÕJ t tt ttd } t td
dtd
d }t td
dtdd }	t tt ttdt }
t tt ttt d }t tdttt t }t tdttdt }|
 |¡|	ks7J | |¡|ksAJ |
 |¡|ksKJ |
 |¡| ksUJ t tddtdd }| tdd¡tddksqJ | tdd¡tdksJ | tdd¡tju sJ t tddtddtj  dd}t td
dtd
d }| |¡t||ddksºJ d S )Nr   TrJ  r3   r4   r6   r0   r`   rf   rS   r1   r   r_   ro   r7   FrH  )	r   r	   r   r   r   r  r<   ru   r   )ÚX_axisÚ	unit_diskÚupper_half_unit_diskÚupper_half_diskÚlower_half_diskÚright_half_diskÚfirst_quad_diskrP  Úunit_squareÚupper_half_unit_squareÚupper_half_planeÚlower_half_planeÚright_half_planeÚfirst_quad_planeÚC1ÚC2rO   rO   rP   Útest_ComplexRegion_intersectÆ  sB   "$*"" ""rk  c                  C   sV  t tddtddtj  dd} t tddtdtj dd}t tdttdtj dd}t tdtttjdtj  dd}ttddtddtj  tddtdtj }ttdttdtj tdtttjdtj  }|  |¡t |ddk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s)J d S )Nr   r3   r4   TrJ  r0   r7   r`   r6   r_   rf   r   ra   r   rc   FrH  )r   r	   r   r  r   r
   r"  Ú	from_real)rP  rQ  r   rT  Úp1Úp2Úc5Úc6Úc7Úc8Úp3Úp4rO   rO   rP   Útest_ComplexRegion_unionõ  s$   "$24***0ru  c                      sd   t tddtddtj  dd tt fdd   tdd¡t tddtd d	ks0J d S )
Nr   r3   r4   TrJ  c                      s
       ¡S r\   )rl  rO   ©rP  rO   rP   r]     rô   z.test_ComplexRegion_from_real.<locals>.<lambda>rS   F)r   r	   r   r  r*   rt   rl  r   rO   rO   rv  rP   Útest_ComplexRegion_from_real  s   "0rw  c                  C   s~   t ddt dd} }t ddtj t dtj}}t| | }tt| | || dd}|jdks4J |jd	t ks=J d S )
Nr4   r0   r6   rb   r   TrJ  rf   r`   )r	   r   r  r   r
   Úmeasurer   )rJ   rK   rO  rS  rP  rQ  rO   rO   rP   Útest_ComplexRegion_measure  s   ry  c                	   C   s  t ttdt ttdt tdt ¡ksJ t tttdd dt ttd tks/J t tttdd td t ddt ¡ksGJ t t ttdd td ¡tt dtd ¡t td dt ¡kskJ t t ttdd ttdd ¡tt dtd ¡t td dt ¡ksJ t tt d td ttdtd t ttdd dt ¡ksµJ t t t d td ¡tt dtd ¡t ttdd dt ¡ksÚJ t tdt dt t ddt ¡ksïJ t tttdd t d ttd ttdd ksJ t t ddt ¡t ddt ¡ks"J t t t d td ¡tt dtd ¡t ttdd dt ¡ksHJ t t t d td ¡ttdtd t ttdd dt ¡ksmJ t tt d td ttdtd t ttdd dt ¡ksJ t t d	t ttdd ¡t dtd ¡ks«J t t d	t ttdd ¡t dtd ¡ksÅJ t t d	t ttdd ¡t dtd ¡ksßJ t t dt dt ¡tt dt¡t tdt ¡ksýJ t tdtdt tdtksJ t tdtd tdt tdtd tks'J t tdt d t d
t tdtttdd ksDJ t tttdd td ttd ks[J t tdt tdksjJ t ttdtd ttd tttdtd ttd tksJ t ttdttdt ttdd tdtks©J t	t
dd  t	tdd  t	tdd  t	tdd  t	tdd  d S )Nr4   r   r`   r0   rÂ   iùÿÿÿr5   rU   r6   rn   ro   c                   S   s
   t tjS r\   )r   r   r!  rO   rO   rO   rP   r]   O  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  r¡   c                   S   s   t tddt S rŽ   ©r   r	   r   rO   rO   rO   rP   r]   U  rš   c                   S   s   t tdt dS )Nr4   r_   rz  rO   rO   rO   rP   r]   V  rš   c                   S   s   t tdddt S )Nr   r5   )r   r   r   rO   rO   rO   rP   r]   W  rs   )r   r	   r   r
   r   ÚRopenr   r  rX   r*   rt   rË   rO   rO   rO   rP   Útest_normalize_theta_set#  sj   ÿ.0$ÿ"$ÿ(ÿ*ÿ*<**
ÿ(
ÿ(
ÿ444
ÿ$0:

ÿ 
ÿ&
ÿr|  c                  C   sÀ   t d\} }}}}}tt|||t| || t|t|   |t|  |t|  |t|   |t|  |t|  |t|   |t|  |t|  	ksJJ ttdtd tddt  ks^J d S )Nzx y z a b cr4   r5   )r   r   r   r   )r+   r,   r.   rJ   rK   rL   rO   rO   rP   Útest_ComplexRegion_FiniteSetZ  s   4(ÿÿ,r}  c                   C   s8   t j tdd¡t jksJ t j t j¡t jksJ d S rŽ   )r   r!  r"  r	   rV   rO   rO   rO   rP   Útest_union_RealSubSetd  s   r~  c                  C   sÎ   dd } | t ddjttu sJ | tddjttu s J tjjttu s*J tjjttu s4J tjjttu s>J t	djttu sIJ t dd}t dd}t
|| }|jttttu seJ d S )Nc                  W   s   t tttd g| ¢R  S r   rr   )rù   rO   rO   rP   r]   j  s    z'test_SetKind_fancySet.<locals>.<lambda>r3   r6   r5   r4   r7   )r	   Úkindr   r   r   r   Ú	Rationalsr8   rV   r   r   r   )ÚGrJ   rK   rP  rO   rO   rP   Útest_SetKind_fancySeti  s   

r  c                  C   s¢   t tddtdd } t tddtdd }t| |}t|t ttddtdd tddtdd dks;J | j| j | ksEJ |j|j |ksOJ d S )Nr3   r4   r5   r0   F)r   r	   r
   r   Úfuncrù   )rP  rQ  rÑ   rO   rO   rP   Útest_issue_9980w  s   
ÿ
ÿr  c                  C   sþ   t dd} tdddd}tdd}| tjv dksJ | tjv dks#J | tjv dks,J | tjv dks5J |tjv dks>J |tjv dksGJ |tjv dksPJ |tjv dksYJ |tjv dksbJ |tjv dkskJ |tjv dkstJ |tjv dks}J d S )Nr3   r4   r5   r6   r0   FT)r	   r   r   r   r8   rC   rV   r!  )Ú
interval12Úfiniteset1234ÚpointComplexrO   rO   rP   Útest_issue_11732  s   

r  c                  C   sx   t dd} t| d }ttjtttjksJ ttjttdtjks'J t| ||ks0J ttj	|| ks:J d S )Nr   r3   r4   r6   )
r	   r   r
   r   r!  r   r   r(   r   rE   )ÚunitÚsquarerO   rO   rP   Útest_issue_11730  s   
r  c            	      C   sú   t dd} t dd}t||  }t|tj|ksJ t|| tdks%J t dtj}ttj}t tjd dtj d }t| | dd}t| | dd}t| | dd}t|tjt ddksbJ t|tjt ddksoJ t|tjtdks{J d S )	Nr   r3   r4   r6   r5   TrJ  rS   )r	   r   r   r   rE   r   r  )	r  ÚivalÚcr1Úarg1Úarg2Úarg3Úcp1Úcp2Ú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 s3J d| |¡v s<J d| |¡vsEJ d S )	Nr   r3   r4   r5   TrJ  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¿  r   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 s#J d S )Nr3   r5   )r   r   r+   r   r   rV   rD   rO   rO   rO   rP   Útest_issue_16871Ã  s   ÿr  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   &r  c                  C   sX  t tttt d tjttttt d tjksJ t ttdt t d dt  tjtttdt t d dt  tjksDJ t ttdt dt  tjtttdt dt  tjksdJ tddd} t tt| t d	 tjttt| t d	 tjksJ t ttdt d d
t  tjtttdt d d
t  tjksªJ d S )Nr3   r5   r6   rb   r4   r   Tr   r_   r0   )r   r   r+   r   r   rV   r   r   ©r   rO   rO   rP   Útest_issue_18050Î  s    ÿ$$ÿÿÿ  ÿr  c                     s  t j t j¡s	J t j t j¡sJ t j t j¡sJ t j t j¡s$J t jjt u s-J t jj	tu s5J t
t j  fddtdD dddt jdtdddtdd	d	tdd	d
tdd	gksbJ t t jvsjJ t jt jv srJ t j d¡tdt jddksJ dt jv sJ tddd} | t jv sJ ttdd  t jjt jksŠJ t jjt jks¯J t jjdks·J t jjdks¿J d S )Nc                    s   g | ]}t  qS rO   r°   r¬   r±   rO   rP   r  æ  rs   z"test_Rationals.<locals>.<listcomp>rf   r   r3   rS   r4   rn   r5   rÂ   r  FrH  r   T)Ú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   rv   ry   r   r   rB   r   r   r*   r}   r=   Úclosurer>   r?   r  rO   r±   rP   Útest_RationalsÞ  s,   

þ r  c                     sH   t jt jt jt jt jt jf  fdd D } tdd | D s"J d S )Nc                 3   s$    | ]} D ]}t ||V  qqd S r\   )r
   )r­   rJ   rK   ©ÚnbrsetsrO   rP   r®   û  s   " z$test_NZQRC_unions.<locals>.<genexpr>c                 s   s    | ]}|j d u V  qdS )FN)Úis_Union)r­   r¥   rO   rO   rP   r®   ü  s    )r   r8   rC   rV   r  rE   r!  rÇ   )ÚunionsrO   r  rP   Útest_NZQRC_unions÷  s
   ÿr¢  c               	   C   s   t  } tt| t tdt |  td   tttt   tj	}| 
tj¡tt| dt |  ttdd  tj	ks>J d S )Nr4   r6   ro   )r   r   r   r   r   r!   r   r#   r   rV   r<   rE   r   )r  rN   rO   rO   rP   Útest_imageset_intersectionÿ  s    ÿÿ"ÿr£  c                   C   sX   dt t tv s
J dt tt dv sJ tt t tvsJ t t t tvs*J d S )Nr3   r   rS   r    rO   rO   rO   rP   Útest_issue_17858  s   r€  c                      sf   t t t tt fdd tt fdd t tt d tt fdd tt fdd d S )Nc                      ó    d d d S r   rO   rO   r  rO   rP   r]     r¡   z"test_issue_17859.<locals>.<lambda>c                      r¥  rò   rO   rO   r  rO   rP   r]     r¡   rS   c                      r¥  r   rO   rO   r  rO   rP   r]     r¡   c                      r¥  rò   rO   rO   r  rO   rP   r]     r¡   )r   r   r*   rt   rO   rO   r  rP   Útest_issue_17859  s   rŠ  )~Úsympy.core.exprr   Úsympy.sets.containsr   Úsympy.sets.fancysetsr   r   r   r   Úsympy.sets.setsr   r	   r
   r   r   r   r   Úsympy.sets.conditionsetr   Úsympy.simplify.simplifyr   Úsympy.core.basicr   Úsympy.core.containersr   r   Úsympy.core.functionr   Úsympy.core.kindr   Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   r   Ú$sympy.functions.elementary.complexesr   Ú&sympy.functions.elementary.exponentialr    r!   Ú#sympy.functions.elementary.integersr"   Ú(sympy.functions.elementary.miscellaneousr#   Ú(sympy.functions.elementary.trigonometricr$   r%   r&   Úsympy.logic.boolalgr'   Úsympy.matrices.denser(   Úsympy.testing.pytestr)   r*   r*  r+   r,   r-   r.   Úsympy.core.modr/   rÍ   rQ   rT   r[   r   r   r   r   r   rØ   rû   rÿ   r  r  r  r  r  r  r  r   r%  r(  r)  r-  r/  r0  r:  rC  rD  rE  rG  rU  rY  r[  rk  ru  rw  ry  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r¢  r£  r€  rŠ  rO   rO   rO   rP   Ú<module>   sŠ   $	>   ,6(	/
7



