o
    oÇhÀ ã                   @   s€  d dl 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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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l%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZEmFZFmGZGmHZH d dlImJZJmKZKmLZL d dlMmNZNmOZOmPZP d dlQmRZR d dlSmTZTmUZUmVZVmWZWmXZX ejYZYdd„ ZZdd„ Z[d d!„ Z\d"d#„ Z]d$d%„ Z^d&d'„ Z_d(d)„ Z`d*d+„ Zad,d-„ Zbd.d/„ Zcd0d1„ Zdd2d3„ Zed4d5„ Zfd6d7„ Zgd8d9„ Zhd:d;„ Zid<d=„ Zjd>d?„ Zkd@dA„ ZldBdC„ ZmdDdE„ ZndFdG„ ZodHdI„ ZpdJdK„ ZqdLdM„ ZrdNdO„ ZsdPdQ„ ZtdRdS„ ZudTdU„ ZvdVdW„ ZwdXdY„ ZxdZd[„ Zyd\d]„ Zzd^d_„ Z{d`da„ Z|dbdc„ Z}ddde„ Z~dfdg„ Zdhdi„ Z€djdk„ Zdldm„ Z‚dndo„ ZƒeOdpdq„ ƒZ„drds„ Z…dtdu„ Z†dvdw„ Z‡dxdy„ Zˆdzd{„ Z‰d|d}„ ZŠd~d„ Z‹d€d„ ZŒd‚dƒ„ Zd„d…„ ZŽd†d‡„ ZeOdˆd‰„ ƒZdŠd‹„ Z‘dŒd„ Z’dŽd„ Z“dd‘„ Z”d’d“„ Z•d”d•„ Z–eOd–d—„ ƒZ—d˜d™„ Z˜dšd›„ Z™dœd„ ZšdždŸ„ Z›d d¡„ Zœd¢d£„ Zd¤d¥„ Zžd¦d§„ ZŸd¨d©„ Z dªd«„ Z¡d¬d­„ Z¢d®d¯„ Z£d°d±„ Z¤d²d³„ Z¥d´dµ„ Z¦d¶d·„ Z§d¸d¹„ Z¨dºd»„ Z©d¼d½„ Zªd¾d¿„ Z«dÀdÁ„ Z¬dÂdÃ„ Z­dÄdÅ„ Z®dÆdÇ„ Z¯dÈdÉ„ Z°dÊdË„ Z±dÌdÍ„ Z²dÎdÏ„ Z³dÐdÑ„ Z´eOdÒdÓ„ ƒZµdÔdÕ„ Z¶dÖd×„ Z·dØdÙ„ Z¸dÚdÛ„ Z¹dÜdÝ„ ZºdÞdß„ Z»dàdá„ Z¼dâdã„ Z½dädå„ Z¾dædç„ Z¿dèdé„ ZÀdêdë„ ZÁdìdí„ ZÂdîdï„ ZÃdðdñ„ ZÄdòdó„ ZÅdôdõ„ ZÆeOdöd÷„ ƒZÇdødù„ ZÈdúdû„ ZÉdüdý„ ZÊdþdÿ„ ZËd S (  é    )ÚSum©ÚAdd)Ú	TupleKind)ÚLambda)Ú
NumberKindÚUndefinedKind)ÚFloatÚIÚRationalÚnanÚooÚpiÚzoo)ÚPow©ÚS)ÚSymbolÚsymbols)Úsympify)ÚMaxÚMinÚsqrt)Ú	Piecewise)ÚcosÚsin)ÚfalseÚtrue)Ú
MatrixKind)ÚMatrix)Úrootof)ÚContains)ÚImageSetÚRange)Ú
ComplementÚDisjointUnionÚ	FiniteSetÚIntersectionÚIntervalÚ
ProductSetÚSetÚSymmetricDifferenceÚUnionÚimagesetÚSetKind)Úmpi)Ú	unchanged)ÚEqÚNeÚLeÚLtÚLessThan)ÚAndÚOrÚXor)ÚraisesÚXFAILÚwarns_deprecated_sympy)Úcartes)ÚxÚyÚzÚmÚnc                     s  t j‰tttd t jƒt ju sJ ‚tttd t jƒt ju sJ ‚ttttƒt jƒt ju s-J ‚ttttƒt jƒt ju s;J ‚ttttƒt jƒt ju sIJ ‚tddd} ttttft jƒ 	d| f¡d ksaJ ‚ttttft jƒ 	d¡dksqJ ‚| | fttttft jƒv s€J ‚dt
 tttt
 t jƒv sJ ‚dhtttft jƒvsœJ ‚dtttft jƒvs¨J ‚tt‡fdd	„ƒ tt‡fd
d	„ƒ ttdd	„ ƒ dttttfttfƒˆˆƒv sÒJ ‚tt‡fdd	„ƒ ttˆƒtttttƒƒˆƒksìJ ‚dd„ }t|ˆƒttttƒˆƒksÿJ ‚dd	„ }t|ˆƒtttttƒƒˆƒksJ ‚ttdˆƒtdƒks"J ‚tttˆƒthks.J ‚tttfdtfˆt jƒdtfhksBJ ‚tdtd‰ tt‡ fdd	„tddƒƒjjƒdv s]J ‚tdƒ\}}tdd	„ tddƒtddƒƒ tt||f|| ƒtddƒtddƒƒ¡sˆJ ‚d S )Né   ÚrT©Úreal©rB   é   F©rB   rB   c                      s
   t tˆ ƒS ©N)r-   r=   © ©ÚintsrJ   ún/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/sets/tests/test_sets.pyÚ<lambda>0   ó   
 ztest_imageset.<locals>.<lambda>c                      s   t tttˆ ƒS rI   )r-   r=   r>   r?   rJ   rK   rJ   rM   rN   1   ó    c                   S   s   t ttttƒƒtƒS rI   )r-   r   r=   r   r>   rJ   rJ   rJ   rM   rN   2   ó    c                      s   t tttƒˆ ˆ ƒS rI   )r-   r   r=   rJ   rK   rJ   rM   rN   4   ó    c                 S   ó   t | ƒS rI   ©r   ©r=   rJ   rJ   rM   Úf6   s   ztest_imageset.<locals>.fc                 S   rS   rI   rT   rU   rJ   rJ   rM   rN   9   ó    r=   ©Úintegerc                    s   | ˆ  S rI   rJ   rU   )ÚclashrJ   rM   rN   ?   rW   éþÿÿÿ)zx0 + xzx + x0zx1, x2c                 S   s
   t | |ƒS rI   r   ©r=   r>   rJ   rJ   rM   rN   B   s   
rG   é   )r   ÚIntegersr-   r=   ÚNaturalsÚ	Naturals0Úabsr   ÚRealsÚ	_containsr
   r9   Ú	TypeErrorÚ
ValueErrorr   r>   r   r"   r&   r?   r   r   Ústrr(   ÚlamdaÚexprÚdummy_eq)rC   rV   Úx1Úx2rJ   )rZ   rL   rM   Útest_imageset!   sP   $ ""$(
ÿÿÿÿÿrl   c                  C   sD   t jt jt jt jt jt jfD ]	} | jdu sJ ‚qt jjdu s J ‚d S )NFT)	r   r_   r`   r^   Ú	Rationalsrb   ÚUniversalSetÚis_emptyÚEmptySet©ÚsrJ   rJ   rM   Útest_is_emptyH   s
   ÿrs   c                  C   sJ  t jt jt jt jt jt jfD ]	} | jdu sJ ‚qt jjdu s J ‚t	ddƒjdu s*J ‚t
ddƒjdu s4J ‚t
ttƒjd u s>J ‚tt	dƒt	dƒƒjdu sLJ ‚tt	dƒt
ddƒƒjdu s[J ‚tt	dƒt
ttƒƒjd u sjJ ‚tt
ddƒt
ddƒƒjdu szJ ‚tt	dƒt
ddƒƒjdu s‰J ‚tt	dƒt	dƒƒjdu s—J ‚tt	dƒt
ttƒƒjd u s¦J ‚tt
ttƒt	dƒƒjdu sµJ ‚tt
ttƒt
ddƒƒjd u sÅJ ‚tt	tƒt	tƒƒjdu sÓJ ‚tt	dƒt
ttƒƒjdu sâJ ‚tt
ttƒt	dƒƒjd u sñJ ‚tt
ddƒt	tƒƒjdu sJ ‚tt
ddƒt	ttƒƒjdu sJ ‚tt jt	ttƒt jƒjdu s#J ‚d S )NFTrB   rG   r   r]   éûÿÿÿ)r   r_   r`   r^   rm   rb   rn   Úis_finite_setrp   r&   r(   r=   r>   r)   r,   r'   r$   r%   rq   rJ   rJ   rM   Útest_is_finitesetP   s.   ÿ   "&rv   c                   C   sd   t ƒ  tjj W d   ƒ n1 sw   Y  t ƒ  tdƒj W d   ƒ d S 1 s+w   Y  d S ©NrB   )r;   r   rp   Úis_EmptySetr&   rJ   rJ   rJ   rM   Útest_deprecated_is_EmptySetk   s   
ÿ"ÿry   c                  C   s.  t dtƒt dtddƒksJ ‚t dtƒjtu sJ ‚t t dƒt t dddƒks(J ‚t t dƒjtu s3J ‚t tt ƒtjks>J ‚t ttƒtjksHJ ‚t t t ƒtjksTJ ‚t ttƒtjks^J ‚t ttƒtjkshJ ‚t tt ƒtjkssJ ‚t ttƒthks}J ‚tt ddƒt	ƒs‡J ‚t
ttddfƒ} tt | | ƒt	ƒs™J ‚t ddƒtjks£J ‚t ddƒjdks­J ‚t ddddƒtjks¹J ‚t ddddƒtjksÅJ ‚t ddddƒtjksÑJ ‚tt dtdƒƒt ƒsÝJ ‚t tddddƒtj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dd	„ ƒ d S )Nr   FTrB   r]   Úa©Úpositivec                   S   s   t dtjƒS ©Nr   )r(   r   ÚImaginaryUnitrJ   rJ   rJ   rM   rN   Ž   ó    z)test_interval_arguments.<locals>.<lambda>c                   S   s   t dtdddƒS )Nr   r?   F©Úextended_real)r(   r   rJ   rJ   rJ   rM   rN      rR   c                   S   s   t tttj ƒS rI   )r(   r=   r   r~   rJ   rJ   rJ   rM   rN      ó    c                   S   s   t ddtttƒƒS ©Nr   rB   ©r(   r6   r=   r>   rJ   rJ   rJ   rM   rN   ’   rR   c                   S   s   t dddtttƒƒS ©Nr   rB   Fr„   rJ   rJ   rJ   rM   rN   “   rQ   c                   S   s   t ddttttƒƒS rƒ   )r(   r?   r6   r=   r>   rJ   rJ   rJ   rM   rN   ”   rQ   )r(   r   Ú
right_openr   Ú	left_openr   rp   r=   Ú
isinstancer&   r   Úmeasurer   r9   re   ÚNotImplementedError)ÚerJ   rJ   rM   Útest_interval_argumentss   s6    rŒ   c                  C   sz   t ddd} ttd| ƒtddƒƒjt| dƒksJ ‚tt| dƒtddƒƒjtd| ƒks,J ‚td| ƒ d¡td| ƒks;J ‚d S )Nrz   TrD   r   r]   éýÿÿÿrB   )	r   r,   r(   Úsupr   Úinfr   Úcontainsr5   ©rz   rJ   rJ   rM   Ú!test_interval_symbolic_end_points—   s   &&"r’   c                  C   sØ  t dƒ\} }tddd}tddd}tddd}td	dd
}tddƒjdks(J ‚tddƒjdks2J ‚t||ƒjdks<J ‚t||| ƒjdksHJ ‚t| | ƒjdksRJ ‚tdtƒjdks\J ‚tt tƒjdksgJ ‚tt dƒjdksrJ ‚t| |ƒjd ks|J ‚t|tƒjdks†J ‚t|dƒjdksJ ‚t|dddjdksœJ ‚t|dƒjdks¦J ‚t|dƒjd ks°J ‚t||ƒjdksºJ ‚td|ddjdksÆJ ‚td|ddjdksÒJ ‚td|ddjd ksÞJ ‚td|ddjd ksêJ ‚d S )Nzx, yrC   TrD   Úpr{   rA   )ÚnegativeÚnn)ÚnonnegativerB   rG   Fr]   r   ©r‡   ©r†   )r   r   r(   ro   r   )r=   r>   rC   r“   rA   r•   rJ   rJ   rM   Útest_interval_is_empty    s0   r™   c                  C   sØ  t tddƒtddƒƒtddƒksJ ‚t tddƒtdddƒƒtddƒks%J ‚t tddƒtddƒƒtddƒks7J ‚t tddƒtddƒƒtddƒksIJ ‚t tddƒtddƒƒtddƒks[J ‚t tddddƒtddƒƒtddddƒksqJ ‚t tddƒtddddƒƒtddƒks…J ‚t tdddƒtddƒƒtddƒks˜J ‚t tdddƒtdddƒƒtdddƒks­J ‚t tdddƒtddddƒƒtddddƒksÄJ ‚t tddddƒtdddƒƒtdddƒksÚJ ‚t tddƒtddƒƒtddƒksìJ ‚t tddddƒtddƒƒtddƒksJ ‚t tddddƒtdddƒƒtddƒksJ ‚t tddƒtjƒtddƒks(J ‚t tjƒtjks3J ‚t tddƒgdd	„ tdd
ƒD ƒ¢R Ž tddƒksNJ ‚tdƒ} t tddƒtd| ƒƒt tddƒt| ƒƒksjJ ‚tt tddƒtd| ƒƒsyJ ‚tddƒ tddƒ¡tddƒtddƒ ks‘J ‚tddƒ tddƒ¡tddƒks¤J ‚t t	ƒ ƒt	ƒ ks¯J ‚tdƒtdƒ tdƒ tdddƒksÄJ ‚tdƒtdƒ tddƒksÔJ ‚tdddƒtj tdddƒksæJ ‚tdddƒtdddƒ@ tddƒksúJ ‚tdddƒtdddƒB tddddƒksJ ‚tdddƒtj@ tjksJ ‚tdddƒtjB tdddƒks1J ‚tdƒ} tdƒ}tdƒ}tjt| t||ƒƒB t| t||ƒƒksSJ ‚tddƒtdƒ tddƒksdJ ‚tddddƒtdƒ tddddƒksyJ ‚tddƒtdƒ }tddƒtdƒ }| 
|¡}d|v rŸd|v rŸd|v s¡J ‚| |¡r­| |¡s¯J ‚ttdd„ ƒ |jdu s¾J ‚t tjttt ƒ tt ƒƒƒttt ƒ tt ƒƒksÝJ ‚t tjtjƒtjksêJ ‚d S )NrB   rG   r]   Té   Fr   c                 S   s   g | ]}t d | ƒ‘qS )ç      ð?©r&   )Ú.0rA   rJ   rJ   rM   Ú
<listcomp>Ó   s    ztest_union.<locals>.<listcomp>é
   r=   ÚhamÚeggsr>   r?   é   c                   S   s   t dddƒS )NrB   rG   r]   ©r,   rJ   rJ   rJ   rM   rN   ü   r   ztest_union.<locals>.<lambda>)r,   r(   r   rp   Úranger   r&   r0   Úunionr*   Ú	intersectÚ	is_subsetr9   rd   Úis_iterabler   r
   rb   r^   )r=   r>   r?   ÚXÚYÚXandYrJ   rJ   rM   Ú
test_union»   sŠ   $&$$$ÿ(&
ÿÿ
ÿ$
ÿ
ÿ"$
ÿÿ
ÿ&* $(,$
ÿ"
ÿ
"
ÿr¬   c                  C   s4   t tdƒtdƒtdƒdd} t| ƒg d¢ksJ ‚d S )Nr]   r¢   rš   F©Úevaluate)r   r   r   rB   rB   rB   rG   rG   rG   r]   r]   rš   )r,   r#   Úlist)ÚurJ   rJ   rM   Útest_union_iter  s   r±   c                   C   s@   t ttƒtdƒ jdksJ ‚t ttƒt t tƒ jd ksJ ‚d S )NrB   F)r(   r=   r>   r&   ro   rJ   rJ   rJ   rM   Útest_union_is_empty  s   $r²   c                   C   s˜  t ddƒt ddƒ t dddƒksJ ‚t ddƒt ddƒ t ddddƒks%J ‚t dddƒt ddƒ t ddddƒks9J ‚t dddƒt dddƒ t ddddƒksNJ ‚t ddƒtdƒ tt ddddƒt ddddƒƒkshJ ‚tjttƒ tjkstJ ‚tjtt tƒ tjks‚J ‚t ddƒtt tƒ t ddƒks”J ‚t ddƒtdtƒ tt  dd¡t  dd¡ƒks­J ‚tjtddt tt	d ƒ t
tt  t d¡t  dt¡ƒttt	d ƒddksÕJ ‚tdddƒtdƒ tddƒksæJ ‚td	d
ƒtd
ƒ td	ƒksõJ ‚tddddƒt ddddƒ tddƒksJ ‚tddddƒtj tddddƒksJ ‚tt ddƒtdddƒƒt ddƒ tt ddddƒtdƒƒks?J ‚dtjtj v sJJ ‚d S )NrB   r]   rG   TFr   rŸ   r­   r    r¡   rš   éÿÿÿÿ)r(   r&   r,   r   rb   r
   ÚRopenÚLopenr=   r>   r$   Úopenr   rp   r_   rJ   rJ   rJ   rM   Útest_difference  s:   $&(ÿÿ$
ÿ&þ"
ÿ( 
ÿr·   c                     s
  t dddƒ‰ t ddƒ} tddƒ‰tddƒ}tˆ | ddjdu s!J ‚tˆ ˆddjdu s-J ‚tˆ|ddjd u s9J ‚t tˆ | ddŽ t dƒksHJ ‚t tˆ ˆddŽ t dƒksWJ ‚tt‡ ‡fdd	„ƒ ttddƒtddƒƒtdddƒkstJ ‚tt dddƒt ddƒƒt dƒks†J ‚tttd
dƒt dddƒƒtddƒƒttd
dddƒt dƒƒks¦J ‚dttd
dƒtddƒddvs·J ‚dttjtj	ddv sÄJ ‚dttjtj	ddvsÑJ ‚ttj
tjƒtksÜJ ‚tj tj
¡tksçJ ‚d
tj tj
t d
ƒ ¡vsöJ ‚tjtj
 tjksJ ‚tj
t d
ƒ t dƒ tj
t d
dƒ ksJ ‚tjttj	t tƒƒ ttjtj	 tjt tƒ ƒks4J ‚tt ttdƒtddƒƒtt ttƒtddƒƒksNJ ‚t tdƒŽ ‰ t tdƒŽ } tttˆ ˆ ƒ| ƒsfJ ‚tˆ ˆ ƒ}t| | | ƒ}|| |kszJ ‚|| |ksƒJ ‚d S )NrB   r]   rš   rG   Fr­   Tc                      s   t tˆˆ ddŽ S ©NFr­   )r&   r$   rJ   ©ÚAÚCrJ   rM   rN   >  rR   z!test_Complement.<locals>.<lambda>r   r¢   r³   éöÿÿÿrŸ   za:czd:f)r&   r(   r$   r¨   r9   rd   r,   r   rb   r_   r^   rn   rp   Ú
complementr¦   r   r'   r=   r>   r   r0   r)   )ÚBÚDÚA2ÚB3rJ   r¹   rM   Útest_Complement2  sL   


&$ÿþ",
ÿ
ÿ
rÂ   c               	      s  dd„ dd„ dd„ dd„ dd„ dd„ dd„ d	d„ g} t tƒ}t tƒ}d
ht d
ƒtd
dƒt|td
dƒƒt||ƒt||ƒt||ƒtj	g}dd
dtdƒtd
ƒtdƒg}|D ]4‰|D ]‰ | D ]‰t
t‡ ‡‡fdd„ƒ t
t‡ ‡‡fdd„ƒ qZqVt
t‡fdd„ƒ t
t‡fdd„ƒ qRdS )z1Tests that e.g. FiniteSet(1) * 2 raises TypeErrorc                 S   s   | | S rI   rJ   ©rz   ÚbrJ   rJ   rM   rN   f  rW   z-test_set_operations_nonsets.<locals>.<lambda>c                 S   s   | | S rI   rJ   rÃ   rJ   rJ   rM   rN   g  rW   c                 S   s   | | S rI   rJ   rÃ   rJ   rJ   rM   rN   h  rW   c                 S   s   | | S rI   rJ   rÃ   rJ   rJ   rM   rN   i  rW   c                 S   s   | | S rI   rJ   rÃ   rJ   rJ   rM   rN   j  rW   c                 S   s   | |B S rI   rJ   rÃ   rJ   rJ   rM   rN   k  rW   c                 S   s   | |@ S rI   rJ   rÃ   rJ   rJ   rM   rN   l  rW   c                 S   s   | |A S rI   rJ   rÃ   rJ   rJ   rM   rN   m  rW   rB   rG   r   c                      s
   ˆˆˆ ƒS rI   rJ   rJ   ©ÚniÚopÚsirJ   rM   rN   ‚  rO   c                      s
   ˆˆ ˆƒS rI   rJ   rJ   rÅ   rJ   rM   rN   ƒ  rO   c                      s
   ˆ t ƒ  S rI   )ÚobjectrJ   ©rÈ   rJ   rM   rN   „  rO   c                      s
   ˆ dh S rw   rJ   rJ   rÊ   rJ   rM   rN   …  rO   N)r&   r=   r>   r(   r,   r'   r$   r)   r   rp   r9   rd   )ÚopsÚSxÚSyÚsetsÚnumsrJ   rÅ   rM   Útest_set_operations_nonsetsc  s<   øø
þúrÐ   c                	      sz  t ddhdhƒdhksJ ‚tddƒ tj¡ttt dddƒtdtddƒƒks(J ‚tddddƒ tj¡ttt dddƒtdtddƒƒksEJ ‚tddddƒ tj¡ttt dddƒtdtddƒƒksbJ ‚tddddƒ tj¡ttt dddƒtdtddƒƒksJ ‚tj tj¡tjks‹J ‚tj tj¡tjks—J ‚tj tj¡tjks£J ‚tj tj¡tjks¯J ‚ttddƒtddƒƒ tj¡ttt dddƒtddddƒtdtddƒƒksÖJ ‚t	dƒ tj¡ttt dddƒtdtddƒƒksðJ ‚t	dƒttj
dƒ  tj¡tddddƒtdtjddƒ ksJ ‚t	dddƒ tj¡ttj
dddƒtddddƒ tddddƒ tdtjddƒ ks;J ‚t	tƒ tj¡t tjt	tƒƒksNJ ‚t	dtƒ tj¡t tt dddƒtdtddƒ t	tƒddkspJ ‚tddƒtddƒ ‰ˆ tjtj ¡‰ t‡fd	d
„dD ƒƒs‘J ‚t‡ fdd
„dD ƒƒrŸJ ‚t‡fdd
„dD ƒƒr­J ‚t‡ fdd
„dD ƒƒs»J ‚d S )NrB   rG   r   TFr]   r¢   r­   c                 3   ó    | ]}|ˆ v V  qd S rI   rJ   ©r   Úpt©ÚsquarerJ   rM   Ú	<genexpr>²  ó   € z"test_complement.<locals>.<genexpr>)©r   r   ©ç      à?rÚ   ©rB   r   rH   c                 3   rÑ   rI   rJ   rÒ   ©Ú	notsquarerJ   rM   rÖ   ³  s   € 
ÿc                 3   rÑ   rI   rJ   rÒ   rÔ   rJ   rM   rÖ   µ  r×   ))r³   r   )ç      ø?rÚ   )rŸ   rŸ   c                 3   rÑ   rI   rJ   rÒ   rÜ   rJ   rM   rÖ   ¶  r×   )r$   r(   r½   r   rb   r,   r   rn   rp   r&   ÚNegativeInfinityÚInfinityr=   ÚallÚanyrJ   rJ   )rÝ   rÕ   rM   Útest_complementˆ  sl   ÿÿÿÿÿÿÿÿ
þÿÿþ
ÿ& ÿþÿ rã   c                  C   s¤  t dd„ tjtjfD ƒƒsJ ‚t dd„ tjtjfD ƒƒsJ ‚tj} tj | ¡tju s,J ‚|  tj¡tju s7J ‚tdƒ}tddƒ tddƒ¡tddƒksMJ ‚tddƒ tdddƒ¡tdddƒksaJ ‚tdddƒ tddƒ¡tddd	d	ƒksvJ ‚tddddƒ tddƒ¡tddd	dƒksŒJ ‚tddƒ ttddƒtdd
ƒƒ¡ttddƒtddƒƒksªJ ‚t	ddƒ t	ddd
ƒ¡t	ddƒks½J ‚t	dd|ƒ t	|ƒ¡t	|ƒksÎJ ‚t	ddƒ t	dƒ¡t	dƒksÞJ ‚t	ddd
ddƒ tj
¡tj
ksïJ ‚tddƒ t	dd
ƒ¡t	dd
ƒksJ ‚tddddƒ t	dƒ¡tj
ksJ ‚ttddƒtdd
ƒƒ tddƒ¡ttddƒtddƒƒks3J ‚ttddƒtdd
ƒƒ tddƒ¡ttddƒtddƒƒksRJ ‚ttddƒtdd
ƒƒ tddddƒ¡tj
kskJ ‚ttddƒtdd
ƒƒ tj
¡tj
ks€J ‚ttddƒt	dƒƒ t	dd
dddƒ¡tt	dd
dddƒtt	dƒtddƒƒƒks©J ‚tt	ddd
ƒtd|ƒtd
tƒƒtt	d
ƒtd|ƒtd
tƒd	dksÌJ ‚tt	ddƒtdd
ƒt|tƒƒtddht|tƒd	dksêJ ‚tt	dddƒtdd
ƒt|tƒƒtddht|tƒd	dks	J ‚tddd\}}tt	|ƒt	||ƒt||d ƒƒt	|ƒks(J ‚tt	|ƒt	tƒƒtt	|ƒt	tƒd	dks?J ‚t	|ƒ tj¡ttjt	|ƒd	dksTJ ‚tddƒ t	dd
ƒ¡t	dd
ƒksgJ ‚tddddƒ t	dƒ¡tj
ksyJ ‚ttddƒtdd
ƒƒ tddƒ¡ttddƒtddƒƒks˜J ‚tdtdƒ d ƒ}tdƒtd
ƒ }t|dƒ t|dƒ¡t|dƒks½J ‚td|ƒ td|ƒ¡td|ƒksÐJ ‚d S )Nc                 s   s     | ]}t j |¡|u V  qd S rI   )r   r^   Úintersection©r   ÚirJ   rJ   rM   rÖ   º  ó   € z"test_intersect1.<locals>.<genexpr>c                 s   s     | ]}|  tj¡|u V  qd S rI   )rä   r   r^   rå   rJ   rJ   rM   rÖ   ¼  rç   r=   r   rG   rB   TFr]   r    r¡   rš   r¢   é   r­   zm, nrD   )rá   r   r_   r`   rä   r   r(   r¦   r,   r&   rp   r'   r>   r   rb   r   )rr   r=   r@   rA   rz   rÄ   rJ   rJ   rM   Útest_intersect1¹  s”   
ÿ
ÿ$
ÿÿÿ ÿ&"ÿ"&$ 
ÿ 
ÿ$
ÿ
ÿ$$
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ&$ 
ÿ&*ré   c                  C   s"  t t t ft t jt jft t jt jft t jt jft jt jt jft jt jt jft jt jt jft jt jt jft jt jt jft jt jt jfg
} dd„ }| D ]F\}}}||f||ffD ]8\}}tddgddgddgddgƒD ]$\}}}	}
|||	ƒ}|||
ƒ}||||ƒ||	|
ƒƒ}| |¡|ksŒJ ‚qhqUqHd S )Nc                 S   s   t |tƒr|S | S rI   )rˆ   Úfloat)Úa1Úa2rJ   rJ   rM   rN     rR   z2test_intersection_interval_float.<locals>.<lambda>rG   g       @r]   g      @)r(   r¶   rµ   r´   r<   r¦   )ÚtypsÚas_floatÚt1Út2Út3Út1iÚt2irë   rì   Úb1Úb2ÚI1ÚI2ÚI3rJ   rJ   rM   Ú test_intersection_interval_floatÿ  s,   ö*

üÿÿrù   c                     s®  t tdddƒtddƒdd‰ ˆ jsJ ‚tˆ ƒtdƒtdƒhks!J ‚tddd	} t td
dƒt| dƒƒ‰ dˆ v du s:J ‚tt‡ fdd„ƒ t td
dƒtj	ƒtj	ksQJ ‚t tt
 t
ƒtt
 | ƒƒtt
 | ƒksfJ ‚td
dƒ}t |d |d dd‰ dˆ vs|J ‚dˆ vs‚J ‚tt‡ fdd„ƒ t t tjtjddtjdd}|jtt tjtjddtjgƒks­J ‚t tjttjƒƒtj	ks»J ‚t ƒ tjksÃJ ‚t dhdh| hƒt dh| hƒksÕJ ‚d S )NrB   rG   r]   r¢   Fr­   r=   TrD   r   rè   c                      s   dˆ v S ©NrG   rJ   rJ   ©ræ   rJ   rM   rN   %  rW   z#test_intersection.<locals>.<lambda>©rG   rG   )rG   rG   rG   c                      ó   t ˆ ƒS rI   )r¯   rJ   rû   rJ   rM   rN   0  rW   )r'   r&   r(   r¨   Úsetr   r   r9   rd   rp   r   r^   r_   rb   Ú_argsetÚ	frozensetÚ	ComplexesÚComplexInfinityrn   )r=   Úlinerz   rJ   rû   rM   Útest_intersection  s&   
*
&(r  c                  C   sb   t dƒ} tj}tdtƒ}t| ƒ}t|||ƒt||ƒksJ ‚ttddƒtddƒt| ƒƒtks/J ‚d S )NrA   r   rB   rG   r]   rš   )r   r   rb   r(   r   r&   r'   rp   )rA   rz   rÄ   ÚcrJ   rJ   rM   Útest_issue_9623>  s   
(r  c                   C   s@   t ddƒ t ddƒ¡dksJ ‚t ddƒ t ddƒ¡dksJ ‚d S )Nr   rG   rB   Fr]   rš   T)r(   Úis_disjointrJ   rJ   rJ   rM   Útest_is_disjointI  s   "r  c                  C   sv   t ddƒ} t dddƒ}t| ƒ ¡ dksJ ‚t| ƒ ¡ tdƒus!J ‚t| |ƒ ¡ dks,J ‚t| |ƒ ¡ tdƒus9J ‚d S )NrB   rG   r]   rè   )r&   r)   Ú__len__r   ©rº   r¾   rJ   rJ   rM   Útest_ProductSet__len__N  s   
r  c                     s   t tjƒtjd ksJ ‚t tjtjƒtjd ksJ ‚t tjtjtjƒtjd ks*J ‚t tjƒtjks4J ‚t tjtjƒtjtj ksCJ ‚t tjtjtjƒtjtj tj ksWJ ‚t tjtjtjƒtjtj tj  ¡ ksmJ ‚dt tjƒvsvJ ‚dt tjƒv sJ ‚dt tjtjƒvsŠJ ‚dt tjtjƒv s•J ‚dtft tjtjƒvs¢J ‚dt tjtjtjƒv s¯J ‚dtjd v s¸J ‚dtjtj tj vsÅJ ‚dtjtj tj v sÒJ ‚dtjtj tj vsßJ ‚dtjtjtj  v sìJ ‚t ƒ td	ƒksõJ ‚t tjtjƒtjksJ ‚td
ƒD ]} t tjf|  Ž }d|  |v sJ ‚d|vs J ‚qtjtj tj tjtjtj  ks7J ‚tj}tj}t	}d}||v sHJ ‚||v sOJ ‚||f|| v sZJ ‚|| ‰ ||f}|ˆ v siJ ‚||fˆ ˆ  v stJ ‚|| ˆ ˆ  vsJ ‚t
tdd„ ƒ tƒ  t dd„ tdƒD ƒƒ W d   ƒ n	1 s w   Y  t
tdd„ ƒ tddƒ}tddƒ}t ||ƒ‰ ˆ  tt¡t| t¡| t¡ƒ  krêttttdƒttdƒƒtttdƒttdƒƒƒksíJ ‚ J ‚t
t‡ fdd„ƒ t
t‡ fdd„ƒ t
tdd„ ƒ t tjtjƒ}| d¡tju sJ ‚| d¡tju s#J ‚| t¡tt|ddks2J ‚| t¡ td¡tju sAJ ‚| tdf¡ td¡tju sRJ ‚| ttf¡tttjƒtttjƒ@ kshJ ‚ttttf|ƒssJ ‚td|ƒtju s~J ‚d S )NrB   rG   r]   )rB   rF   ©rB   rG   r]   )rF   r]   )rB   )rG   r]   rJ   r¢   c                   S   s
   t jd S )Nr³   )r   rb   rJ   rJ   rJ   rM   rN   ‰  rO   z!test_ProductSet.<locals>.<lambda>c                 s   s    | ]}t |ƒV  qd S rI   rœ   ©r   rr   rJ   rJ   rM   rÖ   ‹  r×   z"test_ProductSet.<locals>.<genexpr>c                   S   s   t d ƒS rI   )r)   rJ   rJ   rJ   rM   rN   Œ  rW   rš   c                      s
   ˆ   t¡S rI   ©Úas_relationalr=   rJ   ©ÚS3rJ   rM   rN   ”  rO   c                      s   ˆ   td¡S rw   r  rJ   r  rJ   rM   rN   •  r   c                   S   s   t tddƒƒ tt¡S rƒ   )r)   r(   r  r=   r>   rJ   rJ   rJ   rM   rN   –  ó    Fr­   )r)   r   rb   Úflattenr
   r&   rp   r¤   r^   r   r9   re   r;   rd   r  r=   r>   r6   r7   r1   r   r   r   r!   Úsubsr0   )rÆ   ÚRnÚS1ÚS2rj   rk   Úx3ÚZ2rJ   r  rM   Útest_ProductSetW  s|    (,*ÿ




ÿ,þ",r  c                   C   s0   t ttddƒƒs
J ‚t tttddƒƒƒsJ ‚d S rƒ   )r0   r)   r(   rJ   rJ   rJ   rM   Ú(test_ProductSet_of_single_arg_is_not_arg£  s   r  c                   C   s8   t tjtjƒjdksJ ‚t ttdƒtjƒjd ksJ ‚d S )NFrB   )r)   r   r^   rb   ro   r(   r=   rJ   rJ   rJ   rM   Útest_ProductSet_is_empty¨  s    r  c                  C   sL   t ddd} td| ƒ | d¡tddƒksJ ‚t| dƒ | d¡tjks$J ‚d S )Nrz   TrD   r   rG   )r   r(   r  r   rp   r‘   rJ   rJ   rM   Útest_interval_subs­  s     r  c                   C   sd   t ddƒ ¡ tddƒksJ ‚t ddddƒ ¡ tddƒksJ ‚tt ddƒ ¡ ƒttddƒƒks0J ‚d S )Nr   rB   TF)r(   Úto_mpir/   ÚtyperJ   rJ   rJ   rM   Útest_interval_to_mpi´  s    (r   c                   C   s¢   t tdƒd tjƒ ¡ t tdƒtdƒƒksJ ‚t ttjdd ¡ t ttdƒddks,J ‚t t tjƒ ¡ t t tdƒƒks?J ‚tdtƒ ¡ ttdƒtƒksOJ ‚d S )	Né   é@   z0.171875z0.5Tr˜   rG   z2.0)r(   r   ÚHalfÚevalfr	   r=   r   r&   rJ   rJ   rJ   rM   Útest_set_evalfº  s   
ÿ
ÿ&$r%  c                  C   s¤  t ddd} tddƒjdksJ ‚td| ƒj| ksJ ‚td| ƒj| d ks&J ‚ttddƒtddƒƒjdks6J ‚ttddƒtddƒtd	d
dƒƒjdksKJ ‚tddt| t dƒjdksZJ ‚tjjdksbJ ‚tddƒtddƒ }td	dƒtd	dƒ }tt tƒtddƒ }|j|j  krŽdks‘J ‚ J ‚|| jdksšJ ‚|| jdks£J ‚|tdddƒ jdks°J ‚| |¡jdksºJ ‚|| jtu sÃJ ‚|tdddƒ jt	u sÐJ ‚d S )Nrz   TrD   rB   r]   rG   r   rš   r¢   rè   é   rt   rŸ   é   éd   é¯   éK   é   )
r   r(   r‰   r,   r&   r   r   rp   r¦   r   )rz   rÕ   ÚoffsetsquareÚbandrJ   rJ   rM   Útest_measureÃ  s(     ÿ r.  c                  C   sF  t ddƒ t ddƒ¡du sJ ‚t ddƒ t ddƒ¡du sJ ‚t ddƒ tddƒ¡du s-J ‚tddƒ tddddƒ¡s<J ‚tddƒ tddddƒ¡du sMJ ‚tdƒ t ddƒ¡sYJ ‚tddƒ t ddddƒ¡du sjJ ‚t ddƒtdƒ  t ddddƒtddƒ ¡s‚J ‚t ddƒ tt ddƒt ddƒƒ¡du s—J ‚t dd	ƒ tt ddƒt ddƒƒ¡du s¬J ‚tddddƒ t ddƒ¡du s½J ‚tj tdddƒ¡du sËJ ‚t ddƒ tj¡du sØJ ‚tj tj¡du sãJ ‚ttd
d„ ƒ tddddƒ t ddƒ¡du sûJ ‚tj tdddƒ¡du s
J ‚tj	 tj
¡sJ ‚tj tj
¡sJ ‚ttƒ ttƒ¡d u s,J ‚ttƒ ttƒ tt¡¡du s>J ‚ttƒ ttƒ ttd ¡¡du sRJ ‚t ddƒ t dddd¡du sdJ ‚t ddƒ tt t dƒt dtƒƒ¡du s{J ‚tddd} tdddƒ tddƒ¡du s’J ‚ttdƒd ƒ tdddƒ¡du s¦J ‚td	ddƒ tddd	ƒ¡du s¸J ‚tdtƒ tddƒ¡du sÈJ ‚tt dƒ tdƒ¡du sØJ ‚tdƒ tdd| ƒ¡d u sèJ ‚t| | d ƒ t| | d ƒ¡du süJ ‚tdƒ t dddd¡du sJ ‚tt| d|  ƒtj
ƒ tj¡d u s!J ‚d S )Nr   rB   rG   Tr]   Frš   r¢   rè   c                   S   ó   t j d¡S rw   )r   rp   r§   rJ   rJ   rJ   rM   rN   ô  r   z test_is_subset.<locals>.<lambda>r—   r[   rA   rX   r   r¼   rŸ   r(  r˜   )r(   r§   r&   r,   r   rp   r9   re   Úissubsetr_   r^   r`   r=   r>   r  r   r   r#   r-   r   rb   ©rA   rJ   rJ   rM   Útest_is_subsetß  sH   ""ÿ**""$($."($   (",r2  c                   C   sj   t ddƒ t ddƒ¡du sJ ‚t ddƒ t ddƒ¡du sJ ‚tj tdddƒ¡du s,J ‚ttdd„ ƒ d S )	Nr   rB   rG   Tr]   Fc                   S   ó   t ddƒ d¡S rƒ   )r(   Úis_proper_subsetrJ   rJ   rJ   rM   rN     r‚   z'test_is_proper_subset.<locals>.<lambda>)r(   r4  r   rp   r&   r9   re   rJ   rJ   rJ   rM   Útest_is_proper_subset  ó   r5  c                   C   sÈ  t ddƒ t ddƒ¡dksJ ‚t ddƒ t ddƒ¡sJ ‚tddƒ tddddƒ¡dks-J ‚tddƒ tddddƒ¡dks>J ‚tdƒ t ddƒ¡dksLJ ‚tddƒ t ddddƒ¡dks]J ‚t ddƒtdƒ  t ddddƒtddƒ ¡dkswJ ‚t ddƒ tt ddƒt ddƒƒ¡dksŒJ ‚tddddƒ t ddƒ¡dksJ ‚tj tdddƒ¡dks«J ‚t ddƒ tj¡dks¸J ‚tj tj¡dksÃJ ‚ttd	d
„ ƒ t ddƒ tj¡dks×J ‚tj tj¡dksâJ ‚d S )Nr   rB   rG   Fr]   rš   r¢   Tc                   S   r/  rw   )r   rp   Úis_supersetrJ   rJ   rJ   rM   rN   +  r   z"test_is_superset.<locals>.<lambda>)	r(   r7  r&   r,   r   rp   r9   re   Ú
issupersetrJ   rJ   rJ   rM   Útest_is_superset  s&   """ÿÿ*"r9  c                   C   sj   t ddƒ t ddƒ¡du sJ ‚t ddƒ t ddƒ¡du sJ ‚tdddƒ tj¡du s,J ‚ttdd„ ƒ d S )	Nr   rB   rG   Fr]   Tc                   S   r3  rƒ   )r(   Úis_proper_supersetrJ   rJ   rJ   rM   rN   7  r‚   z)test_is_proper_superset.<locals>.<lambda>)r(   r:  r&   r   rp   r9   re   rJ   rJ   rJ   rM   Útest_is_proper_superset2  r6  r;  c                     s  t ddƒ d¡tju sJ ‚t ddƒ d¡tju sJ ‚t ddddƒ d¡tju s)J ‚t ddddƒ d¡tju s8J ‚t ddddƒ d¡tju sGJ ‚t ddddƒ d¡tju sVJ ‚t ddddƒ d¡tju seJ ‚t ddddƒ d¡tju stJ ‚t ddƒt ddƒv du s‚J ‚tdddƒ d¡tju sJ ‚tddtdƒƒ tdƒ¡tju s¢J ‚ttƒ t	¡t
tt	ddks²J ‚ttd	d
„ ƒ tt	thƒ t	h¡t
t	tht	hddksÏJ ‚tt	thƒ tt	¡ t	h¡tju sâJ ‚tt	thƒ tt	d ¡ t	h¡tju s÷J ‚ddlm‰ m}  t| ƒ ˆ  ¡t
| ˆ  ƒksJ ‚t| ƒ ˆ ¡t
| ˆ ƒksJ ‚tˆ ƒ d¡t
ˆ dƒks.J ‚tt‡ fdd
„ƒ ttdtd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|ƒ}|| tjkszJ ‚ddtjtdƒdg}t|Ž ‰t‡fdd„|D ƒƒs–J ‚t‡fdd„|D ƒƒs¤J ‚tt ddƒt ddƒƒ d¡tju s¸J ‚tt ddƒt ddƒƒ d¡tju sÌJ ‚tt ddƒtddƒƒ d¡tju sàJ ‚tj d¡tju sìJ ‚ttt	d t	 d dƒƒ tj¡tju sJ ‚tt	d t	d  d dƒtjv sJ ‚tt	d t	d  d dƒtjvs)J ‚tt ddƒt ddƒƒ t	¡tttjt	kt	dkƒttdƒt	kt	dkƒƒksPJ ‚tt dt	ƒt ddƒƒ t¡ttdktt	ktjtktdƒtkƒkssJ ‚tj tj¡tjks€J ‚d S )Nr   rG   rB   r]   TFr=   r­   c                   S   s   t ttƒv S rI   )r=   r&   r>   rJ   rJ   rJ   rM   rN   J  r   ztest_contains.<locals>.<lambda>rÃ   c                      s   dt ˆ ƒv S rw   rœ   rJ   r‘   rJ   rM   rN   T  r   é	   rš   r    gš™™™™™ñ¿c                 3   rÑ   rI   rJ   ©r   Úitem©ÚfsetrJ   rM   rÖ   _  r×   z test_contains.<locals>.<genexpr>c                 3   s     | ]}ˆ   |¡tju V  qd S rI   )r   r   r   r=  r?  rJ   rM   rÖ   `  rç   r¢   rè   )r(   r   r   r   r   r&   r   r>   rc   r=   r1   r9   rd   r  Ú	sympy.abcrz   rÄ   r   r   rp   rà   rá   r,   r    rb   r7   r6   ÚOner'   r  r  )rÄ   Úrad1Úrad2Ús1Ús2ÚitemsrJ   )rz   r@  rM   Útest_contains:  sX   $ ,&*" B(((.&&*
ÿ"
ÿrH  c                     sÜ   t dƒ‰tddƒ‰ ˆ  ˆ¡ttjˆkˆdkƒksJ ‚tt‡ ‡fdd„ƒ tddddƒ‰ ˆ  ˆ¡ttjˆk ˆdk ƒks<J ‚t ddd	} tˆˆd ƒ | ¡dksPJ ‚t d
dd‰ tt tƒ ˆ ¡ttj	ˆ k ˆ tj
k ƒkslJ ‚d S )Nr=   r   rB   c                      ó   ˆˆ v S rI   rJ   rJ   ©r‹   r=   rJ   rM   rN   y  rW   z(test_interval_symbolic.<locals>.<lambda>Tr  FrD   r‹   r€   )r   r(   r   r6   r   ÚZeror9   rd   r   rß   rà   )r  rJ   rJ  rM   Útest_interval_symbolicu  s   
""ÿrL  c                     sZ  t dƒ‰tddƒ} tddƒ}t| |ƒ‰ˆ ˆ¡tttjˆkˆdkƒttdƒˆkˆdkƒƒks0J ‚tt	‡‡fdd„ƒ ˆ 
ˆ¡}|ˆ ˆ¡ksHJ ‚| ˆd¡tu sRJ ‚| ˆd	¡tu s\J ‚| ˆd
¡tu sfJ ‚| ˆd¡tu spJ ‚| ˆd¡tu szJ ‚tddddƒtdtƒ tddddƒ ‰ t‡ fdd„ddt fD ƒƒsžJ ‚t‡ fdd„dD ƒƒs«J ‚d S )Nr=   r   rB   rG   r]   c                      rI  rI   rJ   rJ   )Úi3r=   rJ   rM   rN   ‰  rW   z%test_union_contains.<locals>.<lambda>g      à¿rÚ   rÞ   g      @g      @TrŸ   r³   r¢   rè   c                 3   s    | ]}|ˆ vV  qd S rI   rJ   ©r   Úel©ÚUrJ   rM   rÖ   “  r×   z&test_union_contains.<locals>.<genexpr>rš   c                 3   rÑ   rI   rJ   rN  rP  rJ   rM   rÖ   ”  r×   )rG   r¢   rŸ   )r   r(   r,   r  r7   r6   r   rK  r9   rd   r   r  r   r   r   r&   rá   )Úi1Úi2r‹   rJ   )rQ  rM  r=   rM   Útest_union_containsƒ  s    


:
&"rT  c                   C   s(   t ddƒjdu s
J ‚tƒ jdu sJ ‚d S r…   )r(   Ú	is_numberr*   rJ   rJ   rJ   rM   Útest_is_number—  ó   rV  c                   C   sF   t ddƒjdu s
J ‚t t dƒjdu sJ ‚t tdƒdƒjdu s!J ‚d S )Nr]   rš   FTz-inf)r(   Úis_left_unboundedr   r	   rJ   rJ   rJ   rM   Útest_Interval_is_left_unboundedœ  s   rY  c                   C   sD   t ddƒjdu s
J ‚t dtƒjdu sJ ‚t dtdƒƒjdu s J ‚d S )Nr]   rš   FTz+inf)r(   Úis_right_unboundedr   r	   rJ   rJ   rJ   rM   Ú test_Interval_is_right_unbounded¢  s   r[  c                  C   s  t dƒ} tddddƒ | ¡ttd| ƒt| dƒƒksJ ‚tddddƒ | ¡ttd| ƒt| dƒƒks2J ‚tddddƒ | ¡ttd| ƒt| dƒƒksIJ ‚tddddƒ | ¡ttd| ƒt| dƒƒks`J ‚tt ddd | ¡ttt | ƒt| dƒƒksyJ ‚tt ddd | ¡ttt | ƒt| dƒƒks’J ‚tdtdd | ¡ttd| ƒt| tƒƒks©J ‚tdtdd | ¡ttd| ƒt| tƒƒksÀJ ‚tt tƒ | ¡ttt | ƒt| tƒƒks×J ‚t ddd	} t d
dd	}t| |ƒ | ¡| |kksñJ ‚t|| ƒ | ¡|| kksÿJ ‚d S )Nr=   r³   rG   FTr˜   r[   r—   rD   r>   )r   r(   r  r6   r3   r4   r   r\   rJ   rJ   rM   Útest_Interval_as_relational¨  s,   ÿÿÿÿ22... r\  c                  C   sh   t dƒ} t dƒ}tddƒ | ¡tt| dƒt| dƒƒksJ ‚t|dƒ | ¡tt| |ƒt| dƒƒks2J ‚d S )Nr=   r>   rB   rG   rt   )r   r&   r  r7   r1   r\   rJ   rJ   rM   Útest_Finite_as_relationalÁ  s   *.r]  c                  C   sø   t dƒ} tddƒtdƒ  | ¡tttd| ƒt| dƒƒt| dƒƒks#J ‚tddddƒtdƒ  | ¡ttd| ƒt| dƒƒks>J ‚t| dk | dkƒ 	¡  | ¡t| t
 k| t
k t| dƒƒks\J ‚t dd¡t dd¡  | ¡tt| dƒ| dk| dkƒkszJ ‚d S )Nr=   r   rB   rG   Tr]   r¢   )r   r(   r&   r  r7   r6   r3   r1   r4   Úas_setr   r2   r´   rµ   rU   rJ   rJ   rM   Útest_Union_as_relationalÉ  s    ÿÿÿÿr_  c                  C   sP   t dƒ} ttddƒtdƒdd | ¡tttd| ƒt| dƒƒt| dƒƒks&J ‚d S ©Nr=   r   rB   rG   Fr­   )r   r'   r(   r&   r  r6   r3   r1   rU   rJ   rJ   rM   Útest_Intersection_as_relationalÕ  s   ÿ þra  c                  C   sP   t dƒ} ttddƒtdƒdd}| | ¡ttd| ƒt| dƒt| dƒƒks&J ‚d S r`  )r   r$   r(   r&   r  r6   r3   r2   ©r=   rh   rJ   rJ   rM   Útest_Complement_as_relationalÜ  s
   ÿrc  c                  C   sL   t dƒ} ttddƒtdƒdd}| | ¡d| k| dk@ t| dƒ@ ks$J ‚d S r`  )r   r$   r(   r&   r  r2   rb  rJ   rJ   rM   Ú"test_Complement_as_relational_failã  s
   ÿrd  c                  C   sR   t dƒ} ttddƒtdƒdd}| | ¡tt| dƒtd| ƒt| dƒ@ ƒks'J ‚d S r`  )r   r+   r(   r&   r  r8   r1   r3   rb  rJ   rJ   rM   Ú&test_SymmetricDifference_as_relationalí  s   2re  c                   C   sH   t j tdƒ¡t ju sJ ‚t j t j¡t jksJ ‚t jjt jks"J ‚d S )Nr=   )r   rp   r  r   r   r¦   rn   ÚboundaryrJ   rJ   rJ   rM   Útest_EmptySetó  s   rg  c                  C   sà  t dƒ} tdddƒ}tdddƒ}t||ƒ}| |¡}| |¡r$| |¡s&J ‚| |¡s-J ‚|tdƒks5J ‚|jdkr?|jdksAJ ‚|jdkrK|jdksMJ ‚t| ddƒjt| dƒks[J ‚t| ddƒjt| dƒksiJ ‚tt	j
ƒt	j
kssJ ‚ttdddƒƒtdddƒksƒJ ‚tdƒtdddƒksJ ‚td|d	| d
| d ƒsœJ ‚||kdu s¤J ‚||kdu s¬J ‚||k du s´J ‚||kdu s¼J ‚||krÄ||ksÆJ ‚||krÎ||ksÐJ ‚||krØ||ksÚJ ‚||krâ||ksäJ ‚||krì||ksîJ ‚d S )Nr=   rB   rG   r]   rš   r¢   r  rF   rt   r¡   F)r   r&   r,   r¦   r§   r   rŽ   r   r   r   rp   )r=   rº   r¾   ÚAorBÚAandBrJ   rJ   rM   Útest_finite_basicù  s2   

 rj  c               
      s‚  d\} }t ddƒ}tddddddƒ}tddddƒ}t| |ƒ‰ || }d	|v s(J ‚d|vs.J ‚| |fˆ d v s8J ‚d
||  ¡ v sBJ ‚d|| v sJJ ‚| ddfˆ | |  ¡ v sYJ ‚| dfdfˆ | | v sgJ ‚t| ƒt|ƒ}}tˆ d ƒ||f||f||f||fhks†J ‚||  || ¡s‘J ‚| t t tƒt t tƒ ¡tt t dddƒt dtddƒ t t tƒ t t tƒt t dddƒt dtddƒ  ƒksÍJ ‚t ddƒd  t ddƒd ¡sÞJ ‚t ddƒd  t ddƒd ¡rïJ ‚t ddƒd  t ddƒd ¡rJ ‚t ddƒtdƒ  |¡sJ ‚t	ˆ ˆ  ˆ  ƒdksJ ‚t	t
jt
j ƒdks*J ‚t	t
jˆ  ƒdks6J ‚tt‡ fdd„ƒ d S )N)ÚHÚTr   rB   rG   r]   rš   r¢   rè   rØ   )rÚ   rÚ   rÚ   )rÙ   rÚ   Trt   r¼   rŸ   gš™™™™™É?rÚ   é   c                      s   t ˆ tddƒ ƒS )Nr   rG   )Úlenr(   rJ   ©ÚcoinrJ   rM   rN   ?  rR   z$test_product_basic.<locals>.<lambda>)r(   r&   r  r   rþ   r§   r½   r   r,   rn  r   rp   r9   rd   )rk  rl  Ú	unit_lineÚd6Úd4rÕ   ÚHHÚTTrJ   ro  rM   Útest_product_basic  sD   

,ÿ
ÿÿ
ý""$rv  c                     sì   t ddd} tddƒ‰tddƒ‰tdd	d
| tjƒ‰ tddƒ‰tdƒ‰tddƒ‰tdd„ ˆˆˆ ˆˆfD ƒƒs7J ‚ˆ tj¡r?J ‚t‡ ‡‡‡‡fdd„ˆˆˆ ˆˆfD ƒƒsUJ ‚t‡fdd„ˆˆˆ ˆˆˆfD ƒƒrhJ ‚ˆˆ  ˆ  tj¡rtJ ‚d S )Nr=   TrD   r   r¢   rŸ   r+  rB   rG   é   éüÿÿÿr(  ÚHamÚEggsc                 s   s    | ]	}|  tj¡V  qd S rI   ©r§   r   rb   r  rJ   rJ   rM   rÖ   L  s   € ztest_real.<locals>.<genexpr>c                 3   s4    | ]}ˆˆˆ ˆˆfD ]}||   tj¡V  qqd S rI   r{  )r   rz   rÄ   )rº   r¾   r»   r
   ÚJrJ   rM   rÖ   N  s   €2 c                 3   s     | ]}|ˆ    tj¡V  qd S rI   r{  )r   rz   )r¿   rJ   rM   rÖ   O  rç   )	r   r(   r&   r   ÚPirá   r§   rb   râ   rU   rJ   )rº   r¾   r»   r¿   r
   r|  rM   Ú	test_realB  s   



 ,&r~  c                  C   sn  t ddd} t ddd}tddƒtdƒ jdksJ ‚tddƒtdƒ jdks(J ‚tddƒt| ƒ jtd| ƒks9J ‚tddƒt| ƒ jtd| ƒksJJ ‚tdd| ƒjtd| ƒksXJ ‚tdd| ƒjtd| ƒksfJ ‚tdd| |ƒjtd| |ƒksvJ ‚tdd| |ƒjtd| |ƒks†J ‚tdd| |tjtj	ƒjtjks—J ‚tdd| |tjtj	ƒjtj	ks¨J ‚td	d
ƒjtd	d
ƒksµJ ‚d S )Nr=   TrD   r>   r   rB   rG   r¢   ry  rz  )
r   r(   r&   rŽ   r   r   r   r   rà   rß   r\   rJ   rJ   rM   Útest_supinfT  s"   ""  ÿÿr  c                  C   s   t j} tdƒ}|  |¡t ju sJ ‚|  tddƒ¡| ksJ ‚|  tddƒ¡tddƒks,J ‚| jt j	u s4J ‚| j
t jks<J ‚|  d¡t ju sFJ ‚d S )Nr=   rG   rš   r   )r   rn   r   r  r   r¥   r(   r¦   r‰   rà   rf  rp   r   ©rQ  r=   rJ   rJ   rM   Útest_universalsetg  s   r  c                  C   s8   t ddƒ} tdddƒ}t| |  | | ƒ| |  ksJ ‚d S )Nr   rG   rB   )r(   r&   r,   )r  ÚpointsrJ   rJ   rM   Ú test_Union_of_ProductSets_sharess  s   
"rƒ  c                  C   s<   t ddƒjtƒ ksJ ‚tddd} t d| ƒj| hksJ ‚d S )Nr   rB   r=   TrD   )r(   Úfree_symbolsrþ   r   rU   rJ   rJ   rM   Útest_Interval_free_symbolsy  s   r…  c                  C   sš  t ddd} t ddd}t| d|  tddƒƒtddƒksJ ‚t| d|  tdddd	ƒƒtdddd	ƒks4J ‚t| | d tdddd	ƒƒtd
dd	dƒksJJ ‚t| | d tddƒƒtd
dƒks\J ‚t| | d tdddd	ƒƒtd
dd	dƒksrJ ‚t| | d tddddƒƒtd
dd	dƒksˆJ ‚t| | d d tddƒƒtd
dƒksœJ ‚t| d| d  d| d   d| d   d|   td
dƒƒtdd
ƒksÀJ ‚t| | d|   tt tƒƒtt dƒtdtƒ ksÛJ ‚t| d|  d| d d   td
ddd	ƒƒttddƒtd	ƒksûJ ‚tdd„ tddƒƒtddƒksJ ‚tt| ||  ƒtd
dƒƒtt| ||  ƒtd
dƒƒks*J ‚tt| tt| ƒƒƒtd
dƒƒtt| tt| ƒƒƒtd
dƒƒksKJ ‚d S )Nr=   TrD   rz   rG   r[   rB   rx  Fr   rš   r]   é   éN   éZ   iÝÿÿÿc                 S   s   d|  S rú   rJ   rU   rJ   rJ   rM   rN   –  rW   z%test_image_interval.<locals>.<lambda>)	r   r-   r(   r   r   r   r"   r   r   )r=   rz   rJ   rJ   rM   Útest_image_interval€  sB   $ÿÿ$ÿÿ(8ÿ$
ÿ(ÿ$
ÿÿr‰  c                  C   sž   t ttdkfdtd  tdkftd dfƒ} t dtdkfdtdkfdƒ}tt| td	dƒƒttd	dƒttdd
ƒtƒƒks=J ‚tt|tddƒƒtddƒksMJ ‚d S )Nr³   rB   rG   r¢   r]   Tr   )rG   Trt   é   )r   r=   r-   r(   r,   r   r   r&   )rV   Úf1rJ   rJ   rM   Útest_image_piecewiseŸ  s   ,2$rŒ  c               	   C   st   t ddd} t ddd}t| | d tddƒ t| |ƒ¡ƒtddƒ tt| d |d ƒt| d |d ƒƒ¡ks8J ‚d S )	Nr=   TrD   r>   rG   r[   r   rš   )r   r-   r(   r¦   r   r   r\   rJ   rJ   rM   Útest_image_Intersection¦  s
    0ÿr  c                  C   s8   t ddd} t| d|  tdddƒƒtdddƒksJ ‚d S )	Nr=   TrD   rG   rB   r]   rš   rè   )r   r-   r&   rU   rJ   rJ   rM   Útest_image_FiniteSet®  s   ,rŽ  c                  C   sH   t ddd} t| | d tddƒtdddƒ ƒtdd	ƒtd
ƒ ks"J ‚d S )Nr=   TrD   rG   r[   r   rB   r]   rš   r<  )r   r-   r(   r&   rU   rJ   rJ   rM   Útest_image_Union³  s    ÿr  c                  C   s,   t ddd} t| d|  tjƒtjksJ ‚d S )Nr=   TrD   rG   )r   r-   r   rp   rU   rJ   rJ   rM   Útest_image_EmptySet¹  s    r  c                   C   s.   t tjvsJ ‚tt tƒ t ¡tju sJ ‚d S rI   )r
   r   rb   r(   r   r   r   rJ   rJ   rJ   rM   Útest_issue_5724_7680¾  s    r‘  c                   C   s4   t dƒjt dƒksJ ‚tdd„ ttfD ƒƒsJ ‚d S )NrB   c                 s   s8    | ]}t tfD ]}td d||ƒjtd dƒkV  qqdS )r   rB   N)r   r   r(   rf  r&   )r   r‡   r†   rJ   rJ   rM   rÖ   Å  s   € ÿ$ÿz test_boundary.<locals>.<genexpr>)r&   rf  rá   r   r   rJ   rJ   rJ   rM   Útest_boundaryÃ  s   ÿr’  c                   C   s  t ddƒt ddƒ jtddddƒksJ ‚t ddddƒt ddddƒ jtdddƒks+J ‚t ddƒtdƒ jtdddƒks=J ‚tt ddƒt dd	ƒdd
jtdd	ƒksRJ ‚tt ddƒt ddƒdd
jtddƒksgJ ‚tt ddddƒt dd	ddƒdd
jtddd	ƒksJ ‚d S )Nr   rB   rG   r]   FTrŸ   r¢   r'  r­   )r(   rf  r&   r,   rJ   rJ   rJ   rM   Útest_boundary_UnionÉ  s&   (ÿÿ$ÿÿÿ
þr“  c                   C   s.   t tddƒtddƒddjtddƒksJ ‚dS )z2 Testing the boundary of unions is a hard problem r   rŸ   r'  Fr­   N)r,   r(   rf  r&   rJ   rJ   rJ   rM   Ú#test_union_boundary_of_joining_setsÙ  s   ÿr”  c                  C   sÂ   t ddddƒd } | jtddƒt ddƒ t ddƒtddƒ  ks"J ‚t ddddƒt ddddƒ }| | jtddƒt ddƒ tddƒt ddƒ  t ddƒtddƒ  t ddƒtddƒ  ks_J ‚d S )Nr   rB   TrG   )r(   rf  r&   )Úopen_squareÚsecond_squarerJ   rJ   rM   Útest_boundary_ProductSetà  s   
ÿÿþýÿr—  c                  C   s$   t ddƒtdƒ } | j| ksJ ‚d S rƒ   )r(   r&   rf  )Ú
line_in_r2rJ   rJ   rM   Útest_boundary_ProductSet_lineí  s   r™  c                   C   sb   t ddddƒjdu sJ ‚t ddddƒjdu sJ ‚t ddddƒjdu s$J ‚tdddƒjdu s/J ‚d S ©Nr   rB   FTrG   r]   )r(   Úis_openr&   rJ   rJ   rJ   rM   Útest_is_openò  s   rœ  c                   C   sJ   t ddddƒjdu sJ ‚t ddddƒjdu sJ ‚tdddƒjdu s#J ‚d S rš  )r(   Ú	is_closedr&   rJ   rJ   rJ   rM   Útest_is_closedù  s   rž  c                   C   s&   t ddddƒjt ddddƒksJ ‚d S ©Nr   rB   FT)r(   ÚclosurerJ   rJ   rJ   rM   Útest_closureÿ  ó   &r¡  c                   C   s&   t ddddƒjt ddddƒksJ ‚d S rŸ  )r(   ÚinteriorrJ   rJ   rJ   rM   Útest_interior  r¢  r¤  c                   C   s   t tdd„ ƒ d S )Nc                   S   s
   t tjv S rI   )r=   r   rb   rJ   rJ   rJ   rM   rN     rO   z!test_issue_7841.<locals>.<lambda>)r9   rd   rJ   rJ   rJ   rM   Útest_issue_7841  ó   r¥  c                  C   s  t tddƒtddƒƒsJ ‚t tddƒtddƒƒdksJ ‚tddƒ} tddƒ}t | | ƒs-J ‚t | |ƒdks6J ‚t | | | | ƒsAJ ‚t | | ||  ƒdksNJ ‚tt ttthƒtthƒƒs]J ‚t ttthƒ tt¡tthƒƒtju srJ ‚t ttthƒtthƒƒ tt¡tju s‡J ‚t ttthƒ ttd ¡tthƒƒtj	u sžJ ‚t ttthƒtthƒƒ ttd ¡tj	u sµJ ‚t t
dhdhƒtddƒƒtj	u sÇJ ‚t t
dhƒt
dhdhƒƒtj	u sÙJ ‚t tdƒtdƒƒtj	u sçJ ‚t t
ƒ tdƒƒtj	u sôJ ‚tddƒ}tttƒ}tt t
||ƒt
||ƒƒsJ ‚d S )Nr   rB   rG   FrJ   )r1   r(   r&   r0   r=   r>   r  r   r   r   r)   )rE  rF  rR  rS  rJ   rJ   rM   Útest_Eq  s(   

**..$$

"r§  c               	      s
  t ddddddƒ‰ t ddddd	ƒ} tdd	ƒ‰tˆ | d
djdu s"J ‚tˆ ˆd
djd u s.J ‚t tˆ | d
dŽ t ddddddd	ƒksCJ ‚tt‡ ‡fdd„ƒ tt ddddddƒt ddddd	ƒƒt ddddddd	ƒkskJ ‚tt dddƒt ddddƒƒt dƒksJ ‚t dddddƒt ddddƒA t dddƒks–J ‚ttdƒtdƒtdƒƒttdƒtdƒtdƒƒA tttdƒtdƒtdƒƒttdƒtdƒtdƒƒ ttdƒtdƒtdƒƒttdƒtdƒtdƒƒ ƒksáJ ‚tddƒtddƒA ttddƒtddƒ tddƒtddƒ ƒksJ ‚d S )Nr   rB   rG   r]   rš   r¢   rè   rm  rŸ   Fr­   Tc                      s   t tˆ ˆddŽ S r¸   )r&   r+   rJ   r¹   rJ   rM   rN   3  rR   z*test_SymmetricDifference.<locals>.<lambda>)	r&   r(   r+   r¨   r9   rd   r*   r   r,   )r¾   rJ   r¹   rM   Útest_SymmetricDifference)  s<   
ÿÿÿÿÿ
ÿ^.
ÿÿÿr¨  c                  C   sH   ddl m}  tddd}t| |ƒƒ tj¡ttjt| |ƒƒƒks"J ‚d S )Nr   )Úlogrz   TrD   )Ú&sympy.functions.elementary.exponentialr©  r   r&   r¦   r   rb   r'   )r©  rz   rJ   rJ   rM   Útest_issue_9536A  s   0r«  c               	   C   sæ   t dƒ} t| ƒ}td| ƒ}ttj|ƒttj|ddksJ ‚ttddƒ|ƒttddƒ|ddks1J ‚ttddƒ|ƒtttddddƒtddddƒƒ|ƒksMJ ‚t|tjƒt|tjddks]J ‚t|tddƒƒt|tddƒddksqJ ‚d S )NrA   rG   Fr­   rB   r]   T)r   r&   r$   r   rb   r(   r,   )rA   rz   rÄ   rJ   rJ   rM   Útest_issue_9637G  s   
 ("ÿ ,r¬  c                   C   sf   t ttƒtdƒƒt ttƒtdƒddksJ ‚t tddtƒtttddƒƒt tdƒttƒddks1J ‚d S )NrB   Fr­   rG   r]   )r$   r&   r>   r=   rJ   rJ   rJ   rM   Útest_issue_9808S  s   ,ÿr­  c                   C   sF   t tt tƒtdƒƒtt tƒksJ ‚tt tƒ d¡tju s!J ‚d S rw   )r,   r(   r   r&   r   r   r   rJ   rJ   rJ   rM   Útest_issue_9956Z  s   & r®  c                  C   sâ  t dtƒ} tj}tg d¢ƒ}t|| ttƒtttƒƒt| ttƒƒks#J ‚ttdttƒtttdƒ| ƒt| tttƒƒks;J ‚ttttt	ƒttt
ƒ|ƒtttt
httt	hƒ|ƒksWJ ‚ttttdƒtttt	ƒ|ƒttdttƒtttt	ƒ|ddkswJ ‚ttttdƒtttddƒ|ƒttdttƒ|ƒks‘J ‚t|t|dtƒtd|tƒƒt|ttƒƒks¨J ‚tttt	ƒtt	ƒƒttt	ƒtt	ƒdƒ|ƒt|ttt	ƒtt	ƒƒƒksËJ ‚ttt	d dtt	ƒƒtt	d dtt	ƒƒ|ƒt|tt	d tt	ƒƒƒksïJ ‚d S )Nr   )r   r   r   rB   rG   r]   Fr­   )r(   r   r   rb   r   r'   r&   r@   rA   r=   r?   r   r   )ræ   rC   ÚmatrJ   rJ   rM   Útest_issue_Symbol_inter_  s6   
ÿÿÿÿÿÿ(ÿ*ÿr°  c                   C   s   t jd sJ ‚d S )Nrš   )r   r`   rJ   rJ   rJ   rM   Útest_issue_11827u  r¦  r±  c                  C   sœ   t d t d d  } tt | tjƒttt dƒtdtddƒƒks!J ‚tt | tddƒƒtt dƒks2J ‚tt | tddƒƒttt dƒttdd	ƒtƒƒksLJ ‚d S )
NrG   rš   r   rB   Tr[   r]   r<  r¢   )r=   r-   r   rb   r,   r(   r   r   ©rV   rJ   rJ   rM   Útest_issue_10113y  s   ."8r³  c                  C   s<   t tdd„ ƒ tddd} tttjt| ƒƒƒ| gksJ ‚d S )Nc                   S   s   t ttjttƒƒƒS rI   )r¯   r'   r   rb   r&   r=   rJ   rJ   rJ   rM   rN   ‚  rQ   z"test_issue_10248.<locals>.<lambda>rº   TrD   )r9   rd   r   r¯   r'   r   rb   r&   )rº   rJ   rJ   rM   Útest_issue_10248€  s
   ÿ"r´  c                  C   s|   t ddƒt ddƒ } ttj| ƒttjtt ddƒt ddƒƒddks#J ‚ttj| ƒttjtt ddƒt ddƒƒddks<J ‚d S )Nr   rB   rG   r]   Fr­   )r(   r$   r   rn   r,   r_   r‘   rJ   rJ   rM   Útest_issue_9447ˆ  s   ÿÿrµ  c                   C   sd   t dƒdkdu s
J ‚t dƒdkdu sJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttd	d„ ƒ d S )
NrG   r]   FTc                   S   s   t dƒdk S ©NrG   r]   rœ   rJ   rJ   rJ   rM   rN   “  r   z"test_issue_10337.<locals>.<lambda>c                   S   s   t dƒdkS r¶  rœ   rJ   rJ   rJ   rM   rN   ”  r   c                   S   s   t dƒdkS r¶  rœ   rJ   rJ   rJ   rM   rN   •  r   c                   S   s   t dƒdkS r¶  rœ   rJ   rJ   rJ   rM   rN   –  r   )r&   r9   rd   rJ   rJ   rJ   rM   Útest_issue_10337  s   r·  c                  C   sò   t tdƒtddƒtjtjtjtjtjg} tddƒ}| D ]}||vs#J ‚qt	ddd}t	dd	d
}|d t||d ƒv s=J ‚|t||d ƒvsHJ ‚tddƒttddƒtddƒƒv sZJ ‚tt
 t
ƒ t
¡tju shJ ‚tt
 t
ƒ t
 ¡tju swJ ‚d S )NrB   rG   r   r¢   r=   TrD   ÚnrFr€   rš   )rp   r&   r(   r   r  r~   rà   ÚNaNrß   r   r   r   r   )ÚbadÚintervalræ   r=   r¸  rJ   rJ   rM   Útest_issue_10326™  s&   ø

$"r¼  c                  C   sb   t j} tddd}t|tƒ}t j}| | ||  ksJ ‚| | ||  ks%J ‚|| || ks/J ‚d S )Nrz   TrD   )r   rn   r   r(   r   rb   )rQ  rz   Úinf_intervalÚRrJ   rJ   rM   Útest_issue_2799±  s   
r¿  c                   C   sb   t t dƒjt t dddƒksJ ‚t dtƒjt dtddƒks J ‚t t tƒjt t tƒks/J ‚d S )Nr   TF)r(   r   r   rJ   rJ   rJ   rM   Útest_issue_9706¼  s   ""rÀ  c                  C   s¦   t tt tƒttƒƒ} t tt tƒtt ƒƒ}tt tƒttƒ | ks%J ‚ttƒtt tƒ | ks3J ‚tt tƒtt ƒ |ksBJ ‚tt ƒtt tƒ |ksQJ ‚d S rI   )r,   r(   r   r&   )Úreals_plus_infinityÚreals_plus_negativeinfinityrJ   rJ   rM   Útest_issue_8257Â  s   "rÃ  c                   C   s,   t jt j tks
J ‚t jt j tksJ ‚d S rI   )r   r^   rp   rb   rJ   rJ   rJ   rM   Útest_issue_10931Ë  s   rÄ  c                  C   sf   t tt tƒtt ƒdd} t tt ƒtjƒ| ksJ ‚t tjttƒdd} t ttƒtjƒ| ks1J ‚d S r¸   )r'   r(   r   r&   r=   r   rb   )ÚsolnrJ   rJ   rM   Útest_issue_11174Ð  s   rÆ  c                
   C   sh   t ttttt d d td  ƒƒtjƒ d¡tdt ttttt d d td  ƒƒtjƒƒks2J ‚d S )NrG   rB   r   )	r"   r   rA   r   r   r   r^   r   r!   rJ   rJ   rJ   rM   Útest_issue_18505Ø  s   ..ÿrÇ  c                	   C   sÚ  t tt tƒttƒƒttƒksJ ‚t  tt tƒtdtƒg¡ttƒks%J ‚t  tt tƒttƒg¡ttƒks8J ‚t  tddttƒtddtƒg¡t  tddtƒtddttƒg¡  kr{t tddtƒtddttƒƒ  kr{t tddtƒtdttƒƒks~J ‚ J ‚tdt t ƒtdƒ@ tdƒtdt t ƒ@   krªt tdt t ƒtdƒddks­J ‚ J ‚tdƒttƒ@ ttƒtdƒ@   krÍt tdƒttƒddksÐJ ‚ J ‚tthƒttthƒ@ t tthƒttthƒddksëJ ‚d S )Nr   rG   r]   rB   Fr­   )r'   r&   r   r=   Ú_handle_finite_setsr>   rJ   rJ   rJ   rM   Útest_finite_set_intersectionÝ  s*   "(&ÿþýÿþ$ÿÿrÉ  c                      sê   t dƒt dƒg‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fd	d„ƒ ttˆ ƒƒt ˆ Ž ksJJ ‚ttˆ ƒƒt ˆ Ž ksVJ ‚tdhdhƒt ddƒksdJ ‚tddhdd
hƒt dƒkssJ ‚d S )NrB   rG   c                      rý   rI   r£   rJ   ©rÎ   rJ   rM   rN   ø  rW   z5test_union_intersection_constructor.<locals>.<lambda>c                      rý   rI   ©r'   rJ   rÊ  rJ   rM   rN   ù  rW   c                      ó   t tˆ ƒƒS rI   )r,   ÚtuplerJ   rÊ  rJ   rM   rN   ú  r   c                      rÌ  rI   )r'   rÍ  rJ   rÊ  rJ   rM   rN   û  r   c                      ó   t dd„ ˆ D ƒƒS )Nc                 s   ó    | ]}|V  qd S rI   rJ   rå   rJ   rJ   rM   rÖ   ü  ó   € úHtest_union_intersection_constructor.<locals>.<lambda>.<locals>.<genexpr>r£   rJ   rÊ  rJ   rM   rN   ü  rR   c                      rÎ  )Nc                 s   rÏ  rI   rJ   rå   rJ   rJ   rM   rÖ   ý  rÐ  rÑ  rË  rJ   rÊ  rJ   rM   rN   ý  rR   r]   )r&   r9   Ú	Exceptionr,   rþ   r'   rJ   rJ   rÊ  rM   Ú#test_union_intersection_constructorõ  s   "rÓ  c                   C   s(   t tt t d¡t dt¡ƒvsJ ‚d S r}   )r   r,   r(   r¶   r   rJ   rJ   rJ   rM   Útest_Union_contains  s   ÿrÔ  c                   C   s*   t tttftjƒ tjd ¡du sJ ‚d S )NrG   T)r-   r=   r   rb   r§   rJ   rJ   rJ   rM   Útest_issue_16878b  s   *rÕ  c                  C   s*  t tdddƒtdddƒtdddƒƒ t¡tdddƒtdddƒ ks#J ‚t tddƒtddƒƒ t¡ttddƒtdƒ tddƒtdƒ ƒksFJ ‚t tddƒtddƒƒ t¡ttddƒtdƒ tddƒtdƒ ƒksiJ ‚t tddƒtjtjƒ t¡tddƒtdƒ ks‚J ‚t tddƒƒ t¡tddƒtdƒ ks—J ‚t tjtddƒtjƒ t¡tddƒtdƒ ks°J ‚t tt tƒƒ t¡tt tƒtdƒ ksÇJ ‚t tjƒ t¡tjksÔJ ‚t ƒ  t¡tjksßJ ‚tt	dd	„ ƒ t
d
ƒ} t
dƒ}t
dƒ}t t| ƒt||ƒƒ t¡t| ƒtdƒ t||ƒtdƒ  ksJ ‚d S )NrB   rG   r]   r   rš   r¢   r³   c                   S   s   t tdƒƒS )NrA   )r%   r   rJ   rJ   rJ   rM   rN     r   z$test_DisjointUnion.<locals>.<lambda>r=   r>   r?   )r%   r&   Úrewriter,   r(   r   rp   r   r9   rd   r   )r=   r>   r?   rJ   rJ   rM   Útest_DisjointUnion  s   FFF2*2.Fr×  c                   C   sN   t tjƒjdu s
J ‚t tjtjƒjdu sJ ‚t tjtdddƒƒjdu s%J ‚d S )NTrB   rG   r]   F)r%   r   rp   ro   r&   rJ   rJ   rJ   rM   Útest_DisjointUnion_is_empty%  s   "rØ  c                   C   sv   t tjtjtjƒjdu sJ ‚t tjtjƒjdu sJ ‚t tdddƒtjtt	t
ƒƒjdu s-J ‚t tjtjƒjdu s9J ‚d S )NTFrB   rG   r]   )r%   r   r^   r_   rm   r¨   rp   rb   r&   r=   r>   rJ   rJ   rJ   rM   Útest_DisjointUnion_is_iterable*  s   &rÙ  c                   C   s  dt tdddƒtdddƒtdddƒƒv sJ ‚dt tdddƒtdddƒtdddƒƒv s,J ‚dt tdddƒtdddƒtdddƒƒv sBJ ‚dt tdddƒtdddƒtdddƒƒv sXJ ‚dt tdddƒtdddƒtdddƒƒv snJ ‚d	t tdddƒtdddƒtdddƒƒv s„J ‚d
t tdddƒtdddƒtdddƒƒv sšJ ‚dt tdddƒtdddƒtdddƒƒv s°J ‚dt tdddƒtdddƒtdddƒƒv sÆJ ‚dt tdddƒtdddƒtdddƒƒvsÜJ ‚dt tdƒƒvsæJ ‚dt tdddƒtdddƒtdddƒƒvsüJ ‚tdft ttttƒtjttƒƒv sJ ‚tdft ttttƒtjttƒƒv s$J ‚tdft ttttƒtjttƒƒv s8J ‚tdft ttttƒtjttƒƒv sLJ ‚dt tddƒtddƒƒv s\J ‚dt tddƒtddƒƒv slJ ‚dt tddƒtddƒƒvs|J ‚dt tddƒtddƒƒv sŒJ ‚d S )NrØ   r   rB   rG   )r   rB   )r   rG   rÛ   rH   rF   )rG   r   ©rG   rB   rü   )r   rB   rG   )r   rÚ   rÚ   )r   r¢   )rÚ   r   )rÚ   rB   )rÞ   r   )rÞ   rB   )r%   r&   r=   r>   r?   r   rp   r(   rJ   rJ   rJ   rM   Útest_DisjointUnion_contains0  s(   ,,,,,,,,,,,((((   $rÛ  c                     s8  t tddddƒttttƒƒ} t| ƒ‰ tdftdftdfg}g d¢}tˆ ƒ}||v s+J ‚| |¡ tˆ ƒ}||v s:J ‚| |¡ tˆ ƒ}||v sIJ ‚| |¡ tˆ ƒ}||v sXJ ‚| |¡ tˆ ƒ}||v sgJ ‚| |¡ tˆ ƒ}||v svJ ‚| |¡ tˆ ƒ}||v s…J ‚| |¡ tt	‡ fdd„ƒ tt
d	d„ ƒ d S )
Nr]   r¢   r&  r<  rB   ))r]   r   )r¢   r   )r&  r   )r<  r   c                      rý   rI   )ÚnextrJ   ©ÚitrJ   rM   rN   `  rW   z)test_DisjointUnion_iter.<locals>.<lambda>c                   S   ó   t ttddƒtjƒƒS rƒ   )Úiterr%   r(   r   rp   rJ   rJ   rJ   rM   rN   b  r  )r%   r&   r=   r>   r?   rà  rÜ  Úremover9   ÚStopIterationre   )r¿   ÚL1ÚL2ÚnxtrJ   rÝ  rM   Útest_DisjointUnion_iterF  s6   






ræ  c                   C   sb   t ttddddƒttttƒƒƒdksJ ‚t ttjtjttttƒtjƒƒdks(J ‚tt	dd„ ƒ d S )Nr]   r¢   r&  r<  c                   S   rß  rƒ   )rn  r%   r(   r   rp   rJ   rJ   rJ   rM   rN   g  r  z(test_DisjointUnion_len.<locals>.<lambda>)
rn  r%   r&   r=   r>   r?   r   rp   r9   re   rJ   rJ   rJ   rM   Útest_DisjointUnion_lend  s   ((rç  c                  C   sz   t ttddgƒƒttddgƒƒƒ} ttƒ}tt||ƒƒ}| j|u s#J ‚t tddƒttddgƒƒƒjttt|ƒƒu s;J ‚d S ©NrB   rG   )	r)   r&   r   r   r   r.   r   Úkindr(   )r“   ÚmkÚkrJ   rJ   rM   Útest_SetKind_ProductSeti  s
   "4rì  c                   C   s   t ddƒjttƒu sJ ‚d S rè  )r(   ré  r.   r   rJ   rJ   rJ   rM   Útest_SetKind_Intervalp  s   rí  c                   C   s(   t jjttƒu s
J ‚tjtƒ u sJ ‚d S rI   )r   rn   ré  r.   r   rp   rJ   rJ   rJ   rM   Ú"test_SetKind_EmptySet_UniversalSets  rW  rî  c                   C   s<   t dtddgƒƒjttƒu sJ ‚t ddƒjttƒu sJ ‚d S rè  )r&   r   ré  r.   r   r   rJ   rJ   rJ   rM   Útest_SetKind_FiniteSetw  s    rï  c                   C   sR   t ttddgƒƒtddƒƒjttƒu sJ ‚t tddƒtddƒƒjttƒu s'J ‚d S )NrB   rG   r&  )r,   r&   r   r(   ré  r.   r   r   rJ   rJ   rJ   rM   Útest_SetKind_Unions{  s   *(rð  c                  C   s2   t dddƒ} tddƒ}t| |ƒjttƒu sJ ‚d S )NrB   rG   r]   r   r¢   )r&   r(   r%   ré  r.   r   r
  rJ   rJ   rM   Útest_SetKind_DisjointUnion  s   
rñ  c                  C   s"  dd„ } | dht ƒjttƒu sJ ‚| tddƒt ƒjttƒu s J ‚| dhtjƒjttƒu s.J ‚| tddƒtddƒtdƒƒjttƒu sCJ ‚dd„ }|dhtjƒjttƒu sUJ ‚|dht ƒjtƒ u saJ ‚dd„ }|tjh d	£ƒjttƒu stJ ‚|h d
£t ƒjttƒu s‚J ‚|t h d
£ƒjtƒ u sJ ‚d S )Nc                  W   ó   t | ddiŽS ©Nr®   Fr£   ©ÚargsrJ   rJ   rM   rN   …  rP   z-test_SetKind_evaluate_False.<locals>.<lambda>rB   rG   rš   r¢   c                  W   rò  ró  rË  rô  rJ   rJ   rM   rN   ‹  rP   c                  W   rò  ró  )r$   rô  rJ   rJ   rM   rN   Ž  rP   >   rB   rG   rš   r¢   >   rB   rG   r]   rš   r¢   )	rp   ré  r.   r   r(   r   rn   r   r&   )rQ  r
   r»   rJ   rJ   rM   Útest_SetKind_evaluate_False„  s    ÿÿrö  c                  C   sn   t tttd ƒtddƒƒ} | tdƒ jttƒu sJ ‚| tddƒ jttƒu s(J ‚| tdƒ jttƒu s5J ‚d S )NrG   rB   rš   r]   é   é   )r"   r   rA   r(   r&   ré  r.   r   r²  rJ   rJ   rM   Útest_SetKind_ImageSet_Special“  s   rù  c                  C   sÆ   t t ddƒt dƒƒ} d| vsJ ‚d| vsJ ‚tdt ddƒƒr J ‚t dƒ| v s(J ‚t ddƒ}|| v s3J ‚|  | ¡s:J ‚| | ¡rAJ ‚d|v sGJ ‚t t ddƒt dƒddƒ}| |¡sZJ ‚|  |¡saJ ‚d S )NrB   rG   r›   )r&   r1   r0  )r¾   rº   r»   rJ   rJ   rM   Útest_issue_20089™  s   
rú  c                  C   s¦   t ddƒ} t| | ƒ}t ddddƒ}| |¡du sJ ‚t dƒ}| |¡du s'J ‚t||ƒ ¡ tju s3J ‚t| |ƒ ¡ tju s?J ‚tdhthƒ ¡ tdhthƒksQJ ‚d S )	NrB   rG   rH   rF   rÚ  rü   TF)	r&   r)   r§   r1   Úsimplifyr   r   r   r=   )rz   rÄ   r  ÚdrJ   rJ   rM   Útest_issue_19378¨  s   

(rý  c                  C   sd   t dƒ} ttt| ƒtdƒƒtƒsJ ‚ttt| ƒtddƒƒtƒs!J ‚tttdƒtd| ƒƒtƒs0J ‚d S )NrA   r(  rB   )r   rˆ   r'   r#   r(   r1  rJ   rJ   rM   Útest_intersection_symbolic³  s   "rþ  c                  C   sz   t dddd} ttd| ƒtdddƒƒttd| ƒtdddƒƒks!J ‚ttd| ƒtdddƒƒttd| ƒtdddƒƒks;J ‚d S )	NrA   T)rY   r|   rŸ   rš   iô  r¢   é   )r   r'   r#   r(   r1  rJ   rJ   rM   Ú"test_intersection_symbolic_failing»  s   
ÿÿr   c                  C   s,   t d } t| ƒ d¡ttddƒƒksJ ‚d S )Ng-DTû!	@rG   z3.23108914886517e-15)r   r&   r$  r	   rU   rJ   rJ   rM   Útest_issue_20379Ä  s   $r  c                  C   s4   t dtdƒd tdƒd  ƒ} |  ¡ dhksJ ‚d S rè  )r&   r   r   rû  r   rJ   rJ   rM   Útest_finiteset_simplifyÉ  s   r  c                  C   s>   t j} tdƒ}| |  t|dƒ ¡ ¡8 } | |  t j ¡ ¡8 } d S )Nr=   rB   )r   r  r   r¦   r2   r^  r   r€  rJ   rJ   rM   Útest_issue_14336Í  s   r  c                  C   sF   t ddd\} }}td| ƒt|dƒ@ }tddƒ}| |¡d ks!J ‚d S )Nzx, y, zTrD   rB   rG   )r   r(   r§   )r=   r>   r?   rE  rF  rJ   rJ   rM   Útest_issue_9855Ô  s   
r  N)ÌÚsympy.concrete.summationsr   Úsympy.core.addr   Úsympy.core.containersr   Úsympy.core.functionr   Úsympy.core.kindr   r   Úsympy.core.numbersr	   r
   r   r   r   r   r   Úsympy.core.powerr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Ú(sympy.functions.elementary.miscellaneousr   r   r   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.logic.boolalgr   r   Úsympy.matrices.kindr   Úsympy.matrices.denser   Úsympy.polys.rootoftoolsr    Úsympy.sets.containsr!   Úsympy.sets.fancysetsr"   r#   Úsympy.sets.setsr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Úmpmathr/   Úsympy.core.exprr0   Úsympy.core.relationalr1   r2   r3   r4   r5   Úsympy.logicr6   r7   r8   Úsympy.testing.pytestr9   r:   r;   Úsympy.utilities.iterablesr<   rA  r=   r>   r?   r@   rA   rp   rl   rs   rv   ry   rŒ   r’   r™   r¬   r±   r²   r·   rÂ   rÐ   rã   ré   rù   r  r  r  r  r  r  r  r  r   r%  r.  r2  r5  r9  r;  rH  rL  rT  rV  rY  r[  r\  r]  r_  ra  rc  rd  re  rg  rj  rv  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¼  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  rJ   rJ   rJ   rM   Ú<module>   s&   $4'$	L1%1F#	L	1;
	"'

		

