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