o
    oÇhâÊ  ã                   @   sL  d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZC d dlDmEZE d dlFZFdd ZGdd ZHdd ZId d! ZJd"d# ZKd$d% ZLe=d&d' ZMd(d) ZNd*d+ ZOd,d- ZPd.d/ ZQd0d1 ZRd2d3 ZSd4d5 ZTd6d7 ZUd8d9 ZVd:d; ZWd<d= ZXd>d? ZYd@dA ZZdBdC Z[dDdE Z\dFdG Z]dHdI Z^dJdK Z_dLdM Z`dNdO ZadPdQ ZbdRdS ZcdTdU ZddVdW ZedXdY ZfdZd[ Zgd\d] Zhd^d_ Zid`da Zjdbdc Zkddde Zldfdg Zmdhdi Zndjdk Zodldm Zpdndo Zqdpdq Zrdrds Zsdtdu Ztdvdw Zudxdy Zvdzd{ Zwe=d|d} Zxd~d Zydd Zzdd Z{dd Z|dd Z}dd Z~dS )é    )Ú	unchanged)ÚContains)ÚImageSetÚRangeÚnormalize_theta_setÚComplexRegion)Ú	FiniteSetÚIntervalÚUnionÚimagesetÚIntersectionÚ
ProductSetÚSetKind)ÚConditionSet)Úsimplify)ÚBasic)ÚTupleÚ	TupleKind)ÚLambda)Ú
NumberKind)ÚIÚRationalÚooÚpi)ÚEq)ÚS)ÚDummyÚSymbolÚsymbols)ÚAbs)ÚexpÚlog)Úfloor)Úsqrt)ÚcosÚsinÚtan)ÚAnd)Úeye)ÚXFAILÚraises)ÚxÚyÚtÚz)ÚModNc                  C   sr  t j} d| v s	J d| vsJ d| vsJ t| }t|t|t|t|f\}}}}||||fdks5J t|ts<J |  tdd¡tddksKJ |  tdddd¡tddks\J | j	| kscJ | j
dksjJ | jdksqJ | jdksxJ | jtu sJ |  t¡rJ t jt jfD ]}| t j¡|u sJ | t j¡s J q|  t¡ttttttdkttk ks·J d S )	Né   éûÿÿÿç      @)é   é   é   é   r3   é   TF)r   ÚNaturalsÚiterÚnextÚ
isinstancer   Ú	intersectr	   r   ÚboundaryÚis_openÚ	is_closedÚinfÚsupr   ÚcontainsÚ	Naturals0ÚintersectionÚRealsÚ	is_subsetÚas_relationalr+   r'   r   r"   )ÚNÚniÚaÚbÚcÚdÚs© rO   ús/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/sets/tests/test_fancysets.pyÚtest_naturals    s(   $"0rQ   c                  C   sd   t j} d| v s	J d| vsJ tt| dksJ |  t¡r J |  tt¡ttt| ks0J d S ©Nr   éÿÿÿÿ)	r   rC   r:   r9   rB   r   r%   r+   r   )rH   rO   rO   rP   Útest_naturals0;   s   $rT   c                  C   s  t j} d| v s	J d| v sJ d| vsJ |  t¡rJ |  t ¡r$J t| }t|t|t|t|f\}}}}||||fdksDJ t|tsKJ |  t	dd¡t
ddksZJ |  t	dddd¡t
ddkskJ |  t	dt j¡t
dt jks|J |  t	 dt j¡¡t
dt jksJ | jt u sJ | jtu 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¡tdtttdt tjddksÐJ td|vsØJ d|vsÞJ |jsãJ ttt td
dtdd
ksôJ ttttd td
d ¡ td
dksJ ttttfdt dhdh ¡ tdks#J ttttftt h d£h d£ ¡ tddddddddd	ksEJ tddtdd }tddttttfftdt f|v sfJ tdtjttttfftdt f|v s~J tdd ttttffttd f|vsJ tdd ttttfftd f|v sªJ ttdd!tddtdd}tdddtttttfftttf|v sÑJ ttddddtttttffdt ttf|v sîJ dt ttttffdt |vsJ dtd" ttttffdt |vsJ tddttttffdt |v s-J td#d tjtj}	|	jttjtjksDJ |	jtjtjfksPJ tttttd h d£s`J ttttfftt dd$h}
d|
 ¡ v sxJ |
  d¡d u sJ t t!d%d  d S )&Nc                   S   s   t ttjS ©N)r   r+   r   rV   rO   rO   rO   rP   Ú<lambda>a   ó    ztest_ImageSet.<locals>.<lambda>r3   r4   r6   r0   é
   é	   é   r   )r3   r6   r`   ra   g      Ð?F©Úevaluateg333333Ó?)r3   r4   rS   r5   é   >   r3   r4   r5   >   r_   é   é   é   é   é   é   é   é   é   é    é!   r7   éþÿÿÿé   éd   c                 S   s   | | S r\   rO   )r+   r,   rO   rO   rP   r]      ó    )r5   r6   c                   S   s   t tttd dS )Nr4   r3   ©r   r   r+   rO   rO   rO   rP   r]      ó    )"r*   Ú
ValueErrorr   r   r+   r   rV   r   r,   ÚEmptySetr   r!   r   r   r8   Úranger<   r	   r9   r:   r   rB   r   Úis_iterabler   Ú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 )	Núr, thetaT©Úrealr   r3   )r3   r   )r   rS   )r   r   )	r   r   r$   r%   r   r	   r   r~   ry   ©ÚrÚthÚLÚ
halfcirclerO   rO   rP   Útest_halfcircle£   s   $r   c                  C   sf   t ddd\} }t| |ff| t| | t| f}t|tddtdt }| dt f|vs1J d S )Nr   Tr   r   r3   r4   )r   r   r$   r%   r   r	   r   r   rO   rO   rP   Útest_halfcircle_fail¯   s   $r   c                  C   sN   t tttd  } t| tj}t|}t|t|t|t|fdks%J d S )Nr4   )r   r4   r6   r7   )r   r+   r   r   r8   r9   r:   )r   Ú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   rp   )r*   rv   r   r   Úsizer   rW   rO   rO   rO   rP   Útest_inf_Range_len¿   s
   r   c               
      sz  t dt dt dd  krt dddksJ  J t ddd} d| v s'J d| vs-J d	| vs3J d
| vs9J tt ddttdksHJ tt dddttdddksZJ t ddjdksdJ t ddjdksnJ t dddjdksyJ t dddjdksJ t dddjdk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 tj¡t dddksaJ t ddd tj¡t dddkstJ t ddd tj¡t dddksJ t dddd dksJ t dddd d	ks¡J t dddd d'ks®J t dddd dks»J t	t
d+d  t	t
d,d  t	t
d-d  t	t
d.d  t	td/d  t	td0d  t	t
d1d  t dt d2ddd ksýJ t dt d2d dd t dd2dksJ t	t
d3d  t t ddd d d2 t dt dks/J t	t
d4d  t tdd2d d  t tdd2ksIJ t t ddd d2d2 t dddks^J t t ddd d2d t t ddkstJ t	t
d5d  t	t
d6d  t t ddd2d d2 t dt dksJ t	t
d7d  t	t
d8d  t tdd2dd  t tdd2ks¹J t	t
d9d  t tdd2dd2 t tdd2ksÓJ t	t
d:d  t	t
d;d  t t ddd2d d t dddksöJ t tdd2ddd ksJ t	t
d<d  t	t
d=d  t	t
d>d  t tdd2ddd2 ks+J t tdd2d dd ks;J t	t
d?d  t tttksMJ jksUJ dvs\J tg kseJ tdksnJ jtju swJ  td¡tju sJ td u sJ t	tfd@d d d ks¡J t	tfdAd t	tfdBd   t¡tj!u sŸJ d gttd }t ddt dddfD ]M}t|} t" #||g dC¢¡D ]<\}}}	tdD ]1}
tt| } |j}t||||	 }| |||	 }dD||||	||f }||k}|sJ |qêqáqÒt dddj$t dddks0J t dddt dtdfD ] } | j}| j|jkrO| j|jksQJ | j%|j% ks[J q<t t	t fdEd t dt dksuJ t dFt dFksJ t dd  t¡tdktdk@ t&t'tdd@ ksJ 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_   re   r4   rh   rd   rg   rf   rS   é   é   r7   éC   é<   rq   éöÿÿÿé&   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   rp   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]     rs   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]     ru   c                   S   s   t dtd S )Nr3   rp   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_   re   r»   rO   rO   rO   rP   r]     r^   c                   S   s   t dt dddd S ©Nr4   rp   r   r¥   rO   rO   rO   rP   r]     ó    rp   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   rp   r¥   rO   rO   rO   rP   r]      rœ   c                   S   s   t t ddd dd S )Nr6   r4   rp   r¥   rO   rO   rO   rP   r]   !  rœ   c                   S   s   t t ddddd S )Nr6   r4   rp   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]   (  ru   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   rp   r¥   rO   rO   rO   rP   r]   ,  r   c                   S   s   t tddddd S )Nr   rp   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   rp   r3   rS   r¥   rO   rO   rO   rP   r]   1  rž   c                      ó    d S r§   rO   rO   ©r   rO   rP   r]   <  rs   c                      ó    j S r\   ©r@   rO   rÂ   rO   rP   r]   >  ó    c                      rÃ   r\   ©rA   rO   rÂ   rO   rP   r]   ?  rÅ   )éýÿÿÿrS   Nr3   r5   z
%s[%s:%s:%s] = %s -> %sc                      s   t  dS ©Nr3   r»   rO   )Úbuiltin_rangerO   rP   r]   \  r^   l    J)£)(r   Úlistrx   rA   r@   r   r   r   r   r*   rv   rB   r   ÚZeroÚallr9   r   r<   rV   Ú	ComplexesrE   Ú	Rationalsr8   rC   Ú
IndexErrorr+   r,   Úreversedr   rw   Ú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   rd   r5   r@   r«   c                      rŽ   r\   r»   rO   rÄ   rO   rP   r]   q  rs   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^   re   r_   c                      rÃ   r\   ©rÐ   rO   ©ÚxrrO   rP   r]   {  rÅ   c                      rÃ   r\   râ   rO   ©ÚsrrO   rP   r]   |  rÅ   r3   é   rp   rq   rÇ   c                      ó   d v S rÈ   rO   rO   ©ÚiprrO   rP   r]     rs   c                      rè   ©NrS   rO   rO   )ÚinrrO   rP   r]     rs   ç¹?c                      s   t  v S r\   ©r+   rO   rã   rO   rP   r]     rs   c                      rè   rÈ   rO   rO   rå   rO   rP   r]     rs   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]     rs   c                      rÁ   r§   rO   rO   rå   rO   rP   r]     rs   c                      rŽ   r\   ©r   rO   rã   rO   rP   r]     rs   c                      rÃ   r\   ©r   rO   rã   rO   rP   r]     rÅ   c                      rŽ   r\   rò   rO   rå   rO   rP   r]     rs   c                      rÃ   r\   ró   rO   rå   rO   rP   r]     rÅ   Fc                      rŽ   r\   ©rÑ   rO   rå   rO   rP   r]   ¥  rs   c                      rŽ   r\   rô   rO   ©Úir2rO   rP   r]   Š  rs   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]   ¶  rs   c                      rÁ   r§   rO   rO   rå   rO   rP   r]   ·  rs   c                      rÁ   rë   rO   rO   rå   rO   rP   r]   ž  rs   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Á   ©Nrp   rO   rO   ré   rO   rP   r]   Ç  rs   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*   rv   Ú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_symbolice  s  " &&"&&*&,ÿ
ÿÿÿ$

ÿÿÿÿþ* &"**6**2r  c                  C   s,  t dt dtjft dt dttjft dt ddtjft ddt ddt ddft ddt ddt ddft dtdt dtdtjft dtdt tt dtdft dtdt dt dddft dtdt tt dtdft dtdt d	d
tjft dddt dddt dddft dd
dt t d	dtjft dtdt d	tdt dtd
ft dd
dt dddtjffD ]\\} }}|  |¡|ksÅJ |  |j¡|ksÏJ | j |¡|ksÙJ | j |j¡|ksäJ || } }|  |¡|ksòJ |  |j¡|ksüJ | j |¡|ksJ | j |j¡|ksJ q·d S )Nr   r3   r5   r6   rÇ   rS   r4   rr   r0   r7   éP   é7   éG   rd   ra   rq   )r   r   rw   r   r<   rÐ   )rJ   rK   r   rO   rO   rP   Útest_range_range_intersectionë  s2     ò
ér  c                  C   s   t ddd} ttd t| | d ¡tsJ td tdd¡tdks'J td tt t¡tdks8J td tdt¡tddksIJ td td	t¡tddksZJ td td
d¡tddkskJ td td
d¡tddks|J td t dd¡¡tddksJ td t d
d¡¡tj	u sJ tdd tj
¡tddks®J tdd tj¡tddksŸJ tdd tj¡tddksÎJ tdd tj¡tddksÞJ tdd tj¡tddksîJ td tdd¡tj	u sýJ td tt t¡tj	u sJ d S )NÚpTr¢   r5   r4   r6   r   r3   gñ?rí   gÍÌÌÌÌÌ@ç      à?rS   r0   r7   gÉ?gé?)r   r;   r   r<   r	   r   r   Úopenr   rw   rÍ   rE   rV   r8   rC   )r  rO   rO   rP   Ú test_range_interval_intersection  s"   " """""$      &r
  c                  C   sª  t ddjdu s
J t dtjdu sJ t t djdu sJ t t tjdu s*J t tt jdu s5J t ddjdu s?J t ttjdu sIJ t t t jdu sUJ tddd	} td
dd	}t | | d jdu smJ t | djdu swJ t d| d jdu sJ t | |jdu 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éÿÿÿrr   Tr4   Fé2   r   Únrš   Úmé1   rÇ   rq   )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  rr   Tr4   Fr  r   r  rš   r  r  rà   r  rÇ   rq   r+   )r   ry   r   r   )r  r  r  r+   rO   rO   rP   Útest_Range_is_iterable3  s:   r  c            	      C   s  t ttdt tdd tj} tttdt tdd tj}|| ks&J tttdt tdd tj}|| ks<J td}ttdt | tj}|d |v sSJ d\}}}|tt||t  tjv sgJ |tt||t  tjv svJ td	d
d}|d | d }t||tjj	j
|d | d ksJ d| d }t||tjj	j
d| d ks®J tttdt ftjt tttdt ftjksÈJ d S )Nr4   r5   rq   rp   rg   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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Ç   rp   c                    s   g | ]
}   t|¡ ¡ qS rO   )Úsubsr+   Úexpandr±   ©r  rO   rP   Ú
<listcomp>t  s    z,test_Range_eval_imageset.<locals>.<listcomp>)r   r   r+   r   r  r  rÊ   )rJ   rK   rL   r   ÚimsetrO   r  rP   Útest_Range_eval_imagesetj  s   ÿ&r   c                   C   sP   t tttttt d tdd t dtd d dtdd dks&J d S )Nr6   r   rg   rS   r4   r   r3   )r   r   r   r+   r%   r   r   r#   rO   rO   rO   rP   Útest_funw  s
   ÿ ÿr!  c                  C   sü   t ddd} t dddd}t dddd}tdjsJ td	jr"J td	djs*J td
djr2J t| jd u s;J t|jsBJ t|jdu sKJ t|djdu sUJ t||jdu s_J t||jsgJ t|d
jd u sqJ t||d
jdu s|J d S )Nr   Trš   r  )r  r©   r  )r£   r©   r   r3   rS   F)r   r   Úis_empty)r   r  r  rO   rO   rP   Útest_Range_is_empty|  s   r#  c                   C   sð   dt jv sJ t jt jv sJ td t jv sJ dt jvs J tdt jvs)J t jtt tks4J t jtdtks>J t j tt t¡sJJ t j tt t¡tt tks\J t j	t jvsdJ t j
t jvslJ tt j	 t jvsvJ d S )Nr0   r4   )r4   r0   rS   r   )r   rE   ÚPir#   r	   r   rF   r<   r   ÚComplexInfinityÚNaNr+   rO   rO   rO   rP   Ú
test_Reals  s   $r'  c                   C   s  dt jv sJ ddt  t jv sJ t jt jv sJ td t jv s$J t t jv s,J tdt jv s5J t j t j¡t jksAJ t j t j¡t jksMJ t jtt jt j ksZJ t jtt	ddt	dd kdksmJ t
t jdksvJ tt jdksJ d S )	Nr0   r6   r4   rS   r3   r5   FrÍ   )r   rÍ   r   r$  r#   r<   rE   Úunionr   r	   ÚstrÚreprrO   rO   rO   rP   Útest_Complex  s   &r+  c                 C   s   t t || ¡S )z.Return first n items of the iterable as a list)rÊ   rÔ   Úislice)r  ÚiterablerO   rO   rP   Útake­  s   r.  c                	   C   sÔ   t j t j¡t jksJ dt j t j¡v sJ dt j t j¡v s"J dt j t j¡vs-J dt j t j¡vs8J dt j tdt¡v sEJ dt j tt d¡v sSJ tdd tdt j tdt¡D shJ d S )Nr0   r1   r2   r5   c                 s   r®   r\   r¯   )r²   r+   rO   rO   rP   r³   º  s    ÿz%test_intersections.<locals>.<genexpr>r_   )	r   rV   r<   rE   r8   r	   r   rÌ   r.  rO   rO   rO   rP   Útest_intersections²  s   ÿr/  c                  C   s  ddl m} m} tt| | tjtt||tjksJ tt| d|  tj tt|d| d tj¡tju s:J tt| d|  tj tt| d|  d tj¡tju sXJ tt|d| tj tt| d|  tj¡ 	t
ttdt tj¡s}J tttd tdd tj tj¡tju sJ tttd tj tj tj¡tju s©J t
t| d|  d tj}| tj¡|ksÀJ d S )Nr   r  r4   r3   r5   r7   r0   )Ú	sympy.abcr  r  r   r   r   rV   r<   rw   Údummy_eqr   r-   r+   r   r{   )r  r  ÚS53rO   rO   rP   Útest_infinitely_indexed_set_1Ÿ  s.   (ÿÿÿÿÿÿÿ.*r3  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   )	r0  r  r   r   r   r   rV   r   r   )r  rJ   rO   rO   rP   Útest_infinitely_indexed_set_2Ô  s"   ÿÿÿÿÿr5  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   r4  r3   rS   r4   r7   r5   r`   r6   rq   )r0  r  r   r   r   r   rV   r<   rE   r   r{   rC   r  r   r+   r   r   rw   r   r!   r   r#   r   )r  r  rN   rO   rO   rP   Útest_imageset_intersect_realã  s`   <ÿ ÿ &ÿÿ,ÿÿÿÿþÿÿÿ
þ4þÿ"ÿÿr6  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   r4  r4   rS   r3   FTr1   r0   rÇ   r_   )r0  r  r   r   r   r   rV   r	   r   r!   r   r    rC   r<   r   rw   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`   re   r5   iÃÿÿÿiéÿÿÿrl   é=   r0   r7   i÷ÿÿÿé(   é)   ra   éQ   éA   rh   rq   rg   r  é   )r0  r  r  r   r   r   rV   r<   rw   r   r1  r   r   r!   rD   )r  r  Úimg1Úimg2rO   rO   rP   Ú#test_imageset_intersect_diophantine  s   ÿÿ"ÿÿÿÿÿ ÿÿÿÿÿþÿÿ
ÿ&(ÿ$ÿÿÿÿÿÿÿþÿrI  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   )r0  r  r  r   r   r   r   rV   r<   r1  r   r-   r  rO   rO   rP   Útest_infinitely_indexed_set_3H  s   ÿÿÿÿÿrJ  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   rp   )r0  r  r  r   r   r   rV   r%   r&   r8   r   r   rC   r  rO   rO   rP   Útest_ImageSet_simplificationS  s   ÿþ&&,rK  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   r{   r   r+   rV   r   rD   rE   rw   r   r,   r  r$   r%   )r   Úqr.   rO   rO   rP   Útest_ImageSet_contains^  s   $(
""&rM  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   rq   r`   g      @g      @rd   gffffff@g	@Frb   r   r3   ©Úpolarr  r_   g333333ã?)Ú	left_openrp   c                      s   t   ddS )Nr4   rN  )r   rO   ©Úr1Útheta1rO   rP   r]     r   z-test_ComplexRegion_contains.<locals>.<lambda>)r   r	   r   r
   r   rB   r+   r   r   r$  r{   r   r*   rv   )
r   rJ   rK   rL   Úc1Úc2r   Úr2Útheta2Úc4rO   rQ  rP   Útest_ComplexRegion_containsl  sd   



ÿÿ
ÿrY  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   r4  rO   rP   r]   €  r^   z%test_symbolic_Range.<locals>.<lambda>c                      ó   t   d S r§   r»   rO   r4  rO   rP   r]   ¥  rŠ   c                      s   t   d d S )Nr3   r   r»   rO   r4  rO   rP   r]   Š  r­   c                      rú   r\   ©r   r   rO   r4  rO   rP   r]   §  rû   Trš   c                      r÷   r§   r»   rO   r4  rO   rP   r]   ª  r^   c                      rZ  r§   r»   rO   r4  rO   rP   r]   «  rŠ   r3   r   c                      rú   r\   r[  rO   r4  rO   rP   r]   ­  rû   )r©   Únonnegativec                      r÷   r§   r»   rO   r4  rO   rP   r]   ±  r^   c                      rZ  r§   r»   rO   r4  rO   rP   r]   ²  rŠ   rà   r  r4   )r©   r£   rý   )r   r*   rv   rÏ   r   r   r"   )r  rO   r4  rP   Útest_symbolic_Range¢  s>   $$r]  c                      sX   t ddd tt fdd t dddd tdd t tdd t ks*J d S )Nr  Trš   c                      s   t dd t S )Nc                 S   ó   | d S r€   rO   rî   rO   rO   rP   r]   Ì  rs   z4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>)r   r   rO   r4  rO   rP   r]   Ì  r­   z"test_issue_18400.<locals>.<lambda>rà   c                 S   r^  r€   rO   rî   rO   rO   rP   r]   Ð  rs   )r   r*   rv   r   r   rO   rO   r4  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   TrN  r3   r4   r6   r0   r`   rh   rS   r1   r   r_   rq   r7   Frb   )	r   r	   r   r   r   r$  r<   rw   r   )ÚX_axisÚ	unit_diskÚupper_half_unit_diskÚupper_half_diskÚlower_half_diskÚright_half_diskÚfirst_quad_diskrT  Ú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   "$*"" ""ro  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   TrN  r0   r7   r`   r6   r_   rh   r   ra   r   re   Frb   )r   r	   r   r$  r   r
   r(  Ú	from_real)rT  rU  r   rX  Úp1Úp2Úc5Úc6Úc7Úc8Úp3Úp4rO   rO   rP   Útest_ComplexRegion_union  s$   "$24***0ry  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   TrN  c                      s
       ¡S r\   )rp  rO   ©rT  rO   rP   r]   "  rû   z.test_ComplexRegion_from_real.<locals>.<lambda>rS   F)r   r	   r   r$  r*   rv   rp  r   rO   rO   rz  rP   Útest_ComplexRegion_from_real  s   "0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s4J |jd	t ks=J d S )
Nr4   r0   r6   rd   r   TrN  rh   r`   )r	   r   r$  r   r
   Úmeasurer   )rJ   rK   rS  rW  rT  rU  rO   rO   rP   Útest_ComplexRegion_measure&  s   r}  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   rp   rq   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_   r~  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  ru   )r   r	   r   r
   r   ÚRopenr   r	  rX   r*   rv   rÒ   rO   rO   rO   rP   Útest_normalize_theta_set0  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_FiniteSetg  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_RealSubSetq  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€   rt   )r   rO   rO   rP   r]   w  s    z'test_SetKind_fancySet.<locals>.<lambda>r3   r6   r5   r4   r7   )r	   Úkindr   r   r   r   rÎ   r8   rV   r   r   r   )ÚGrJ   rK   rT  rO   rO   rP   Útest_SetKind_fancySetv  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   )rT  rU  rØ   rO   rO   rP   Útest_issue_9980  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   TrN  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   TrN  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   rd   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  ó  ru   z"test_Rationals.<locals>.<listcomp>rh   r   r3   rS   r4   rp   r5   rÇ   r  Frb   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   rx   r{   r   r   rB   r   r   r*   r   r=   Úclosurer>   r?   r  rO   r¶   rP   Útest_Rationalsë  s0   

þÿr   c                     sH   t jt jt jt jt jt jf  fdd D } tdd | D s"J d S )Nc                 3   s$    | ]} D ]}t ||V  qqd S r\   )r
   )r²   rJ   rK   ©Ú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   rq   )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*   rv   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*   r0  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/  r3  r5  r6  r@  rI  rJ  rK  rM  rY  r]  r_  ro  ry  r{  r}  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



