
    sg                        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 ZGd ZHd ZId ZJd ZKd ZLe=d         ZMd! ZNd" ZOd# ZPd$ ZQd% ZRd& ZSd' ZTd( ZUd) ZVd* ZWd+ ZXd, ZYd- ZZd. Z[d/ Z\d0 Z]d1 Z^d2 Z_d3 Z`d4 Zad5 Zbd6 Zcd7 Zdd8 Zed9 Zfd: Zgd; Zhd< Zid= Zjd> Zkd? Zld@ ZmdA ZndB ZodC ZpdD ZqdE ZrdF ZsdG ZtdH ZudI ZvdJ Zwe=dK        ZxdL ZydM ZzdN Z{dO Z|dP Z}dQ Z~y)R    )	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                     t         j                  } d| v sJ d| vsJ d| vsJ t        |       }t        |      t        |      t        |      t        |      f\  }}}}||||fdk(  sJ t	        |t
              sJ | j                  t        dd            t        dd      k(  sJ | j                  t        dddd            t        dd      k(  sJ | j                  | k(  sJ | j                  dk(  sJ | j                  dk(  sJ | j                  dk(  sJ | j                  t        u sJ | j                  t              rJ t         j                   t         j                  fD ]F  }|j#                  t         j$                        |u sJ |j'                  t         j$                        rFJ  | j)                  t*              t-        t/        t1        t*              t*              t*        dk\  t*        t        k        k(  sJ y )	N         @)            r5      TF)r   Naturalsiternext
isinstancer   	intersectr
   r   boundaryis_open	is_closedinfsupr   contains	Naturals0intersectionReals	is_subsetas_relationalr,   r(   r   r#   )Nniabcdss          R/var/www/html/venv/lib/python3.12/site-packages/sympy/sets/tests/test_fancysets.pytest_naturalsrR       s   	

A6M6Q;;a<<	aBb48T"XtBx7JAq!Qq!Q<<'''a;;xA'5A;666;;xAtT23uQ{BBB::??99;;$55A::55B;;zz"~kk1::& $~~agg&!+++{{177###$ ??1Ra!_a1fa"f!EEEE    c                     t         j                  } d| v sJ d| vsJ t        t        |             dk(  sJ | j	                  t
              rJ | j	                  t        t                    t        t        t              |       k(  sJ y Nr   )	r   rE   r<   r;   rD   r   r&   r,   r   )rJ   s    rQ   test_naturals0rW   ;   so    	A6M6Q;;Q=Azz"~::c!f#a&!!4444rS   c                     t         j                  } d| v sJ d| v sJ d| vsJ | j                  t              rJ | j                  t               rJ t	        |       }t        |      t        |      t        |      t        |      f\  }}}}||||fdk(  sJ t        |t              sJ | j                  t        dd            t        dd      k(  sJ | j                  t        dddd            t        dd      k(  sJ | j                  t        dt         j                              t        dt         j                        k(  sJ | j                  t        j                  dt         j                              t        dt         j                        k(  sJ | j                  t         u sJ | j                  t        u sJ | j                  | k(  sJ | j                   dk(  sJ | j"                  dk(  sJ | j%                  t&              t)        t+        t-        t&              t&              t         t&        k  t&        t        k        k(  sJ y )	Nr2   r3   r4   )r   r5   rV   r6   r9   TF)r   IntegersrD   r   r;   r<   r=   r   r>   r
   r   InfinityLopenrB   rC   r?   r@   rA   rI   r,   r(   r   r#   )ZzirL   rM   rN   rO   s         rQ   test_integersr_   D   s   	

A6M67N7a<<zz"~zz2#	aBb48T"XtBx7JAq!Qq!Q<=(((a;;xA'5Q<777;;xAtT23uR|CCC;;x1::./5AJJ3GGGG;;x~~a45q!**9MMMM55RC<<55B;;::??99;;$??1Ra!_rcAgq2v!FFFFrS   c                  ~   t        t        d        t        t        t        d      t
        j                        t        d      k(  sJ t        t        t        t              t
        j                        t        hk(  sJ t        t        t        d      t
        j                        t
        j                  k(  sJ t        t        t        d      t        z        t
        j                        } t        t        t        t        d      |       sJ t        t        t        t        dz        t
        j                        }d|v sJ d|vsJ t        t        d       j!                  |      t        ddd      k(  sJ d|j!                  t#        d	d            vsJ t%        |      }t'        |      t'        |      t'        |      t'        |      f\  }}}}||||fd
k(  sJ t        t        t        dt        z        t
        j                        }t)        dd      |v sJ t)        d      |v sJ |j+                  d      t-        dt        t        t        dt        z        t
        j                        d      k(  sJ t)        d      |vsJ d|vsJ |j.                  sJ t1        t        t         t#        d	d            t#        dd	      k(  sJ t        t        t        t        dz        t#        d	d            j3                         t#        d	d      k(  sJ t        t        t        t        fdt        z        dhdh      j3                         t        d      k(  sJ t        t        t        t        ft        t        z         h dh d      j3                         t        ddddddddd	      k(  sJ t#        dd      t#        dd      z  }t5        dd      t        t        t        t        fft        dt        z  f      |      v sJ t5        dt
        j6                        t        t        t        t        fft        dt        z  f      |      v sJ t5        dd      t        t        t        t        fft        t        dz  f      |      vsJ t5        dd      t        t        t        t        fft        df      |      v sJ t9        t#        dd       t#        dd      t#        dd            }t5        ddd      t        t        t:        t        t        fft        t:        t        f      |      v sJ t5        t)        dd      dd      t        t        t:        t        t        ffdt        z  t:        t        f      |      v sJ dt        z  t        t        t        t        ffdt        z        |      vsJ dt        d!      z  t        t        t        t        ffdt        z        |      vsJ t)        dd      t        t        t        t        ffdt        z        |      v sJ t1        d" t
        j                  t
        j                        }	|	j<                  t9        t
        j                  t
        j                        k(  sJ |	j>                  t
        j                  t
        j                  fk(  sJ t        t        t        t        t        dz        h d      sJ t        t        t        t        fft        t        z         dd#h      }
d|
j3                         v sJ |
jA                  d      J t        tB        d$        y )%Nc                  >    t        t        t        j                        S N)r   r,   r   rZ    rS   rQ   <lambda>ztest_ImageSet.<locals>.<lambda>a   s    x1::6 rS   r5   r6   r8   r2   
   	      r   )r5   r8   rf   rg   g      ?Fevaluateg333333?)r5   r6   rV   r7      >   r5   r6   r7   >   re                                  !   r9      d   c                     | |z   S rb   rc   )r,   r-   s     rQ   rd   ztest_ImageSet.<locals>.<lambda>   s
    q1u rS   )r7   r8   c                  D    t        t        t        t        dz        d      S )Nr6   r5   r   r   r,   rc   rS   rQ   rd   ztest_ImageSet.<locals>.<lambda>   s    hvaA: rS   )"r+   
ValueErrorr   r   r,   r   rZ   r	   r-   EmptySetr   r"   r   r   r:   ranger>   r
   r;   r<   r   rD   r   is_iterabler   doitr   Halfr   r.   	base_pset	base_sets	_contains	TypeError)emptysquaressirL   rM   rN   rO   	harmonicsc3S1S2s              rQ   test_ImageSetr   `   s   
:67F1aL!**-1===F1aL!**-!444F1aL!**-;;;3q6"9-qzz:EXva|U333vaA

3G<<GeBi **73yAq7IIIIW&&x27777	gBb48T"XtBx7JAq!Qq!Q<=(((1Q34IAq>Y&&&C=I%%%c"hhva1~qzz2U'D D D DB<y((("""    Ar8Aq>*hr1o===F1adOXa^499;x1~MMMFAq61Q3'!qc2779Yq\IIIVQFAaC()\BGGI"b"b"b"b"=> ? > 	A!Q'AA;(6Aq6)a1X#>BBBBAFFxAy1ac((CQGGGGB<xAy1ad)(DaHHHHB<8FQF9q"g$>BBBB	HQNHQOXa^	DBAq>Xfq!Qi\Aq!9&ErJJJJ!QA&(6Aq!9,1aQR3TVX*YYYYR4xAy!A# 6::::QsV88FQF9ac$:A>>>>Aq>Xfq!fY!&<a@@@@	$ajj!**	=B<<:ajj!**====<<AJJ

3333 XvaA	:::	&1a&AaC(66*:	;B	>> <<?"""
9:;rS   c            
          t        t        t        t        t	        t                    t        d            t              sJ y )Nr2   )r=   r   r,   r$   r&   r   r   rc   rS   rQ   test_image_is_ImageSetr      s'    hq$s1v,a98DDDrS   c                  .   t        dd      \  } }t        | |ff| t        |      z  | t        |      z  f      }t	        |t        dd      t        dt              z        }d|v sJ d|vsJ d|v sJ |j                  | df      J |j                  rJ y )	Nr, thetaTrealr   r5   )r5   r   )r   rV   )r   r   )	r   r   r%   r&   r   r
   r   r   r   rthL
halfcircles       rQ   test_halfcircler      s    JT*EArBzAc"gIqRy12A!Xa^HQO;<JZ*$$$ZA'///%%%%%rS   c                      t        dd      \  } }t        | |ff| t        |      z  | t        |      z  f      }t	        |t        dd      t        dt              z        }| dt        z  f|vsJ y )Nr   Tr   r   r5   r6   )r   r   r%   r&   r   r
   r   r   s       rQ   test_halfcircle_failr      sl    JT*EArBzAc"gIqRy12A!Xa^HQO;<Jqt9J&&&rS   c                      t        t        t        t        dz  z
        } t        | t        j                        }t        |      }t        |      t        |      t        |      t        |      fdk(  sJ y )Nr6   )r   r6   r8   r9   )r   r,   r   r   r:   r;   r<   )r   evensis      rQ   $test_ImageSet_iterator_not_injectiver      sV    q!a!e)AQ

#EUAGT!Wd1gtAw/<???rS   c                     t        t        d        t        dt        d      j                  t
        j                  u sJ t        dt         d      j                  t
        j                  u sJ t        t        dd      j                  t
        j                  u sJ t        t         dd      j                  t
        j                  u sJ y )Nc                  6    t        t        dt        d            S )Nr   r6   )lenr   r   rc   rS   rQ   rd   z$test_inf_Range_len.<locals>.<lambda>   s    s5B?3 rS   r   r6   rv   )r+   r|   r   r   sizer   r[   rc   rS   rQ   test_inf_Range_lenr      s    
:34B?1::---RC!!QZZ///Q  AJJ..."a  AJJ...rS   c                     t        d      t        d      t        dd      cxk(  rt        ddd      k(  sJ  J t        ddd      } d| v sJ d| vsJ d	| vsJ d
| vsJ t        t        dd            t        t        d            k(  sJ t        t        ddd            t        t        ddd            k(  sJ t        dd      j                  dk(  sJ t        dd      j                  dk(  sJ t        ddd      j                  dk(  sJ t        ddd      j                  dk(  sJ t        ddd      j                  dk(  sJ t        ddd      j                  dk(  sJ t        t        ddd            dk(  sJ t        ddd      k(  sJ t        t        t        d      k(  sJ t        t        dd      k(  sJ t        t         dd      k(  sJ t        dt        d      k(  sJ t        dt         d      k(  sJ t        ddt              k(  sJ t        dd      }t        d|d      k(  sJ t        d| d      k(  sJ t        ddt               t        dd      k(  sJ t        ddt              t        dd      k(  sJ t        t         t              j                  t        k(  sJ t        t        t         d      j                  t        k(  sJ t        t        d        t        t        d        t        t        d        dt        dt        d      v sJ dt        t         dd      v sJ t        t        dt              vsJ t        dd       }|t        t              vsJ t        d!d        }t        t              j                  |      dusJ t        d"d#      }|t        t         t              vsJ t        t        d$        t        t        d%        t        t         dd      d   t        j                  u sJ t        t        dd      d   dk(  sJ |t        t              vsJ t        ddd      d   d&k(  sJ t        d' t        ddd      D              sJ t        t        t         dd            t        t         fd(       j#                  t        j$                        k(  sJ t        ddd      j#                  t        j&                        t        ddd      k(  sJ t        ddd      j#                  t        j(                        t        ddd      k(  sJ t        ddd      j#                  t        j*                        t        ddd      k(  sJ t        ddd      j#                  t        j$                        t        ddd      k(  sJ t        ddd      j#                  t        j,                        t        ddd      k(  sJ t        ddd      j#                  t        j.                        t        ddd      k(  sJ t        ddd      d   dk(  sJ t        ddd      d   d	k(  sJ t        ddd      d   d&k(  sJ t        ddd      d   dk(  sJ t        t        d)        t        t        d*        t        t        d+        t        t        d,        t        t0        d-        t        t0        d.        t        t        d/        t        dt         d0      ddd   k(  sJ t        dt         d0      d dd   t        dd0d      k(  sJ t        t        d1        t        t         dd      d d d0   t        dt         d      k(  sJ t        t        d2        t        t        dd0      d d  t        t        dd0      k(  sJ t        t         dd      d d0d0   t        ddd      k(  sJ t        t         dd      d d0d   t        t         dd      k(  sJ t        t        d3        t        t        d4        t        t         dd      d0d d0   t        dt         d      k(  sJ t        t        d5        t        t        d6        t        t        dd0      dd  t        t        dd0      k(  sJ t        t        d7        t        t        dd0      dd0 t        t        dd0      k(  sJ t        t        d8        t        t        d9        t        t         dd      d0d d   t        ddd      k(  sJ t        t        dd0      ddd   k(  sJ t        t        d:        t        t        d;        t        t        d<        t        t        dd0      ddd0   k(  sJ t        t        dd0      d dd   k(  sJ t        t        d=        t        t2        t2        t4              k(  sJ j6                  k(  sJ dvsJ t              g k(  sJ t              dk(  sJ j                  t        j                  u sJ j#                  t9        d            t        j:                  u sJ t=              du sJ t        t0        fd>       d d k(  sJ t        t>        fd?       t        t>        fd@       jA                  t2              t        jB                  u sJ d gt        t        d            z   }t        dd      t        ddd      fD ]  }t        |      } tE        jF                  ||g dA      D ]q  \  }}}	t        d      D ]]  }
t        t7        |             } |j6                  }t        ||||	         }| |||	   }dB|dC|dD|dD|	dE|dF|}||k(  }|rXJ |        s  t        ddd      jH                  t        ddd      k(  sJ t        ddd      t        dt        d      fD ]^  } | j6                  }| j                  |j                  k(  r| j                  |j                  k(  sJ | jJ                  |jJ                   k(  r^J  t        t        t         fdG       t         d            t        d      k(  sJ t         dH            t        dH      k(  sJ t        dd      jA                  t2              t2        dk\  t2        dk  z  tM        tO        t2        d      d      z  k(  sJ t        t        dd0      jA                  t2              t2        dk\  t2        t        k  z  tM        tO        t2        dz   d0      d      z  k(  sJ y )INr   r2   r5   re   rk   r6   rn   rj   rm   rl   rV         r9   C   <   rw   &   r7   rY   ipTpositiver8   c                  .    t        t         t        d      S Nr6   r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>   s    ubS"a0 rS   c                  4    t        t        t        t              S rb   )r   r,   r   r-   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>   s    uQA rS   c                  ,    t        t        t        d      S Nr   )r   r,   r-   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>   s    uQ1~ rS   r3   rK   FintegerurB   infinitec                  *    t        dt        d      d   S )Nr   r6   rV   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>   s    uQAr2 rS   c                  ,    t        dt         d      d   S )Nr   rv   rV   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>   s    uQR04 rS   rf   c              3   4   K   | ]  }|j                     y wrb   
is_Integer).0r   s     rQ   	<genexpr>z!test_Range_set.<locals>.<genexpr>   s     5q||5   c                      t               S rb   )r<   )its   rQ   rd   z test_Range_set.<locals>.<lambda>  s    d2h rS   c                  0    t        t        dd      ddd   S )Nr   rV   r5   r7   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    uR"~a!e4 rS   c                  *    t        t        dd      d d S )Nr   rV   r5   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    uR"~bq1 rS   c                  (    t        dt              d   S )Nr5   rv   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    uQ|B/ rS   c                  *    t        t         d      d   S Nr5   r6   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    ubS!}Q/ rS   c                      t        d      d   S )Nre   ir   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    uRy~ rS   c                      t        d      d   S )Nre   rk   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    uRy} rS   c                  2    t        dt         d      ddd   S Nr6   rv   r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    uQR01Q7 rS   rv   c                  2    t        t         dd      d dd   S Nr8   r6   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    ubS!Q/15 rS   c                  2    t        t         dd      d d d   S r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>  s    ubS!Q/!4 rS   c                  2    t        t         dd      d dd   S Nr8   r6   r   rv   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>       ubS!Q/26 rS   c                  2    t        t         dd      d dd   S )Nr8   r6   rv   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>!  r   rS   c                  2    t        t         dd      ddd   S )Nr8   r6   rv   r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>#  s    ubS!Q/1R8 rS   c                  2    t        t         dd      dd d   S )Nr8   r6   r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>$  s    ubS!Q/15 rS   c                  2    t        t         dd      ddd   S r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>&  s    ubS!Q/"Q7 rS   c                  *    t        t        dd      dd S r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>(  s    uRB/!5 rS   c                  2    t        t         dd      dd d   S )Nr8   r6   rV   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>)  s    ubS!Q/26 rS   c                  *    t        t        dd      d   S Nr   rv   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>,  s    uRB/2 rS   c                  0    t        t        dd      ddd   S )Nr   rv   r   re   r6   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>-  s    uRB/Bq9 rS   c                  0    t        t        dd      dd d   S r   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>.  s    uRB/26 rS   c                  0    t        t        dd      d dd   S )Nr   rv   r5   rV   r   rc   rS   rQ   rd   z test_Range_set.<locals>.<lambda>1  s    uRB/26 rS   c                       d   S r   rc   r   s   rQ   rd   z test_Range_set.<locals>.<lambda><  s    uQx rS   c                       j                   S rb   rB   r   s   rQ   rd   z test_Range_set.<locals>.<lambda>>      		 rS   c                       j                   S rb   rC   r   s   rQ   rd   z test_Range_set.<locals>.<lambda>?  r   rS   )rV   Nr5   r7   
[:z] = z -> c                  &    t          d            S Nr5   r   )builtin_ranges   rQ   rd   z test_Range_set.<locals>.<lambda>\  s    eM!$45 rS   l    J))(r   listr~   rC   rB   r   r   r   r   r+   r|   rD   r   Zeroallr;   r   r>   rZ   	ComplexesrG   	Rationalsr:   rE   
IndexErrorr,   r-   reversedr	   r}   boolNotImplementedErrorrI   false	itertoolsproductr?   stepr   r0   )r   r   rK   r   rB   ABRrL   rM   rN   reverseresultanstxtcheckrevr   r   r   s                   @@@rQ   test_Range_setr     s"   !HE8uQ{4eAq!n44444b"aA7N7A::Q;;Q;;aU1X...aB Dq!R$9999 B<r!!!B<q   Q2%%%Q1$$$R  B&&&Q  B&&&uRR !Q&&&Aq>U"""Ru$$$Q?e###"a%%%Bu$$$RCu$$$Bu$$$		%BBu$$$RCu$$$Ba+++Ar?eAqk)))"b>"$$$bS"""b(((
:01
:./
:-.aQsAq!!!!U1b\!!!	u	%BU2YT"A9a ---
%$
'CeRCn$$$
:23
:45"aB166)))QB1$$$eBiB?2!###5U1b!_5555	eRCA	B
9&'??1::&%///R%%akk2eBA6FFFFR%%agg.%B2BBBBR%%akk2eBA6FFFFR%%ajj1U2r15EEEER%%ajj1U1b!_DDDR%%akk2eAr1oEEE B?1"""B?1###B?2!###B?2!###
:45
:12
:/0
:/0
:-.
:,-
:78RCQqU#u,,,RCTaT"eAr2&6666
:56"aDbD!U1rc2%6666
:45QB5Q#3333"aFRF#uQ2666"aERE"eRCA&6666
:67
:67"aBFF#uQR'8888
:89
:56QAC E"a$4444
:78QAb"eB2&6666
:56
:67"aBEE"eAq!n444QC!G$---
:23
:9:
:67QAbG$---QDQqD!U***
:67 Aq>U""">>U"""E>>;"u:??::??9Q<(AJJ666;%
:'(!9
 12
 12q!QWW,,,
$uRy/	!B!RL!RO
 " G ((R1EF 		"GAq! 8 "!%JJa!Ah!Ah1aFC)v!c!u"		""  B?##uQA666Ar1ouQA/ #jjuuAEESWW$444vv#(("""#
 M
956]259,,,]=)*eM.BBBB A;$$Q'AFqAv+>"SAYPQBR+RRRRQ))!,aAF0Cr#aRSeUW.Z[G\0\\\\rS   c            	      p  	
 t        t        t        dz   d      
t        t        t        t              	t	        dd      t	        ddd      } t        |       t        d|  d      t        d	z   d
      }t        dz  dz        t	        dd      t        dd      t        t        fd       t        t        fd       t        t        fd       t        t        fd       
j                  t        t        dz   dfk(  sJ 	j                  t        t        t        fk(  sJ |j                  dz   d
fk(  sJ j                  dz  dz  fk(  sJ t        t        
fd       t        t        	fd       j                  j                  | dz
  ddfk(  sJ j                  j                  |  dz   ddfk(  sJ |j                  j                  dz   d
z
  dfk(  sJ j                  j                  dz  dz  dz  fk(  sJ 	vsJ |vsJ dv sJ dv sJ t        t        fd       t        t        fd       d	vsJ d|vsJ dz   |vsJ d
z   |v sJ t        t        
fd       t        t        	fd        t        t        
fd!       t        t        	fd"       t        t        |            k(  sJ t        t                    k(  sJ 	j                  t        j                        	k(  sJ 	j                  t!        t                    t#        t        h	      k(  sJ t        t        	fd#       t        t        
fd$       t        t        	fd%       t%        |      |j&                  cxk(  rdk(  sJ  J t%              j&                  cxk(  rdk(  sJ  J t        t        
fd&       t        t        
fd'       t        t        	fd(       t        t        	fd)       t)        t        d            d*k(  sJ t)        
      sJ t)        |      sJ t)              sJ t)              sJ t        t        	fd+       t        t        fd,       t        t        
fd-       t        t        	fd.       j*                  dk(  sJ j*                  |  dz   k(  sJ |j*                  k(  sJ t        t        fd/       t        t        
fd0       t        t        	fd1       j,                  | dz
  k(  sJ j,                  dk(  sJ |j*                  k(  sJ t        t        fd2       t        t        
fd3       t        t        	fd4       t        t        	fd5       t        t        	fd6       |d d
 t        dz   d
      k(  sJ |d   k(  sJ |d   d7z   k(  sJ |d   dz   k(  sJ d d
 t        dz  dz        k(  sJ d   k(  sJ d   dz  k(  sJ d   dz  k(  sJ t        t        fd8       d   j*                  cxk(  rdk(  sJ  J d   j,                  cxk(  r	| dz
  k(  sJ  J d   j,                  cxk(  rdk(  sJ  J d   j*                  cxk(  r
|  dz   k(  sJ  J t        t        fd9       |j*                  k(  sJ |j,                  dz   k(  sJ t        t        fd:       |j/                  t              t        k\  t        dz   k  z  t1        t3         t        z   d
      d      z  k(  sJ j/                  t              t1        t3         t        z   dz        d      t        k\  t        dz  k  z  dz  dk\  z  t        k  t        dz  k\  z  dz  dk  z  z  z  k(  sJ t        dz         j/                  t              t1        t              k(  sJ 	j/                  t4              t1        t3        t        d      d      t1        t3        t        d      d      z  t1        t3        t         t4        z   t              d      z  t4        t        k\  t4        t         t        z   k  z  t        dk\  z  t4        t        k  t4        t         t        z   k\  z  t        dk  z  z  z  k(  sJ 
j/                  t4              t1        t4        t              t1        t3        t        d      d      z  k(  sJ 
j/                  t              t1        t3        t        d      d      k(  sJ t	        d;dd<      }t	        d=dd>      }t        d      j7                        t9        dk\  dk        k(  sJ t        d      j7                        t1        d      k(  sJ t        t:         dd      j7                        dk  k(  sJ t        t:         t:              j7                        dk(  sJ t        ddd
      j7                        t=        t        ddd
            k(  sJ t        ddd
      j7                  |      t9        |dk\  |d?k        k(  sJ t        ddd
      j7                  d
z        t9        d
z  dk\  d
z  d?k        k(  sJ t        ddd
      j7                  |      d*k(  sJ t        dd@d
      j7                  |      d*k(  sJ t        dd@d
      j7                  |      t9        |dk\  |dk        k(  sJ t        ddd      j7                  |      d*k(  sJ t        d@dd      j7                  |      t9        |dk\  |d@k        k(  sJ t        t:         dd
      j7                        t=        t        t:         dd
            k(  sJ y )ANr8   r2   r   Tr   r   r   r   rV      r6   rj   r7   rB   r   c                      t               S rb   r   r   s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>q  s    uSz rS   c                      t         dd      S rU   r   r   s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>r  s    uS!R0 rS   c                      t          d      S r   r   r   s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>s  s    uS#q1 rS   c                      t        dd       S r   r   r   s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>t  s    uQ3/ rS   rk   re   c                       j                   S rb   r   xrs   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>{      r{{ rS   c                       j                   S rb   r  srs   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>|  r  rS   r5      rv   rw   r   c                      d v S r   rc   iprs   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    a3h rS   c                      d v S NrV   rc   )inrs   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    bCi rS   皙?c                      t          v S rb   r,   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    a2g rS   c                      d v S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    a2g rS   c                  ,    t        t                     S rb   r<   r;   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      tDH~ rS   c                  ,    t        t                     S rb   r  r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r  rS   c                       d d S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      r"1v rS   c                       d   S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      r!u rS   c                       d   S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r$  rS   c                      t               S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      s2w rS   c                       j                   S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      rww rS   c                      t               S rb   r'  r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r(  rS   c                       j                   S rb   r*  r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r+  rS   Fc                      t               S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    tBx rS   c                      t               S rb   r/  ir2s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    tCy rS   c                       j                   S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      rvv rS   c                       j                   S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r4  rS   c                       j                   S rb   r   r1  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>      sww rS   c                       j                   S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r4  rS   c                       j                   S rb   r   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r4  rS   c                       j                   S rb   r   r1  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r7  rS   c                       d   S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r$  rS   c                       d   S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r$  rS   c                       d   S r  rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    r"v rS   c                       d d S r   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  r"  rS   rg   c                       t               d   S r  r   r   s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    uQx| rS   c                       d   S Nrv   rc   r  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    s2w rS   c                  .    t               j                  S rb   )r   rB   r@  s   rQ   rd   z%test_Range_symbolic.<locals>.<lambda>  s    uQx|| rS   e)r   eveno)r   oddr9   rf   )r   r,   r-   r.   r   r   r+   r|   argsr   r   r<   r;   r>   r   rZ   r	   r   r   r   r   rB   rC   rI   r   r0   r/   rD   r(   r   r   )r   irrD  rF  r   rB   r  r  r2  r  r  s       @@@@@@@rQ   test_Range_symbolicrJ  e  sz
   	q!a%	B	q!QBsD!A	TD	1B
)C
B3
C	q!b&!	B
1Q3!
CsD!A
%$
'C
:)*
:01
:12
:/077q!a%m###77q!Qi77q!b&!n$$$882a41~%%%
:*+
:*+<<aR 0000<<"q!Q///;;BAr2222<<1bdBqD 1111b==b==8O88O8
9&'
9'(R<<R<<q5??q5B;;
9o&
9o&
:-.
:-.R>QS	?a<<

#r)))<<	!%qc2)>>>>
:~&
:}%
:}%r7bgg######s8sxx$1$$$$$
:'
:'
:'
:'a>U"""8O88O89999
:'(
:()
:~&
:~&77a<<77rcAg66Q;;
:'
:~&
:~&77b1f77a<<66Q;;
:'
:}%
:}%
:~&
:~&bq6U1a!eQ''''a5A::b6QVb6QVr7eAqsAaC((((q6Q;;r7ac>>r7ac>>
:+,q6SWW!!!!!!r7cgg'a'''''q6SWW!!!!!!r7cgg("q(((((
:'66Q;;66QV
:+,AAFqAF{#;
3rAvq>1$   Q2QBFAaC!$"#q&Q!A#X!6!A#(!C
q&Q!A#X	!A#)	,!.$/ / / / AE?((+r!Qx777A"Aq	1#3q!9a(#)+-c1"q&!na ,
#
Av!rAv+&!q&1
q&Q1"q&[	!Q"W	-/#0 0 0 0 A"Q(RAq	1-="====A"SAY"2222sDt,AsDd+A8Q3qAvqAv#66668Q2a8+++"a$$Q'AF333"b>""1%---Aq>""1%!U1a^)DDDDAq>""1%Q!VQ!V)<<<<Aq>""1Q3'3qsax1+BBBBAq>""1%...Aq>""1%...Aq>""1%Q!VQ!V)<<<<Ar?##A&%///Ar?##A&#a1fa1f*===="a$$Q'8AubS!Q7G+HHHHrS   c                     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 ]  \  } }}| j	                  |      |k(  sJ | j	                  |j
                        |k(  sJ | j
                  j	                  |      |k(  sJ | j
                  j	                  |j
                        |k(  sJ || }} | j	                  |      |k(  sJ | j	                  |j
                        |k(  sJ | j
                  j	                  |      |k(  sJ | j
                  j	                  |j
                        |k(  rJ  y )Nr   r5   r7   r8   r   rV   r6   rx   r2   r9   P   7   G   rj   rg   rw   )r   r   r}   r   r>   r   )rL   rM   r   s      rQ   test_range_range_intersectionrO    s   1XuQx,1XuQ|QZZ01XuR}ajj11a[%1+uQ{31a[%1+uQ{31b!_eAr1oqzz:1b!_eBiq"a91b!_eCj%3*:;1b!_eBiq"a91b!_eAqk1::61b!_eBA.b"a0@A1a^UB31-qzz:1b!_eAr1ouQA?1a^U1b!_ajj9< 51a {{1~"""{{1::&!+++zz##A&!+++zz##AJJ/1444!1{{1~"""{{1::&!+++zz##A&!+++zz##AJJ/1444/5rS   c            	      "   t        dd      } t        t        d      j                  t	        | | dz               t
              sJ t        d      j                  t	        dd            t        d      k(  sJ t        d      j                  t	        t         t                    t        d      k(  sJ t        d      j                  t	        dt                    t        dd      k(  sJ t        d      j                  t	        d	t                    t        dd      k(  sJ t        d      j                  t	        d
d            t        dd      k(  sJ t        d      j                  t	        d
d            t        dd      k(  sJ t        d      j                  t	        j                  dd            t        dd      k(  sJ t        d      j                  t	        j                  d
d            t        j                  u sJ t	        dd      j                  t        j                        t	        dd      k(  sJ t	        dd      j                  t        j                        t	        dd      k(  sJ t	        dd      j                  t        j                        t        dd      k(  sJ t	        dd      j                  t        j                        t        dd      k(  sJ t	        dd      j                  t        j                        t        dd      k(  sJ t        d      j                  t	        dd            t        j                  u sJ t        d      j                  t	        t         t                    t        j                  u sJ y )NpTr   r7   r6   r8   r   r5   g?r  g@      ?rV   r2   r9   g?g?)r   r=   r   r>   r
   r   r   openr   r}   r   rG   rZ   r:   rE   )rQ  s    rQ    test_range_interval_intersectionrT    s   d#AeAh((!QU);<lKKK8hq!n-q9998hsB/0E!H<<<8hq"o.%1+===8hsB/0E!QK???8hsA./5A;>>>8hsC01U1a[@@@8hmmAq12eAqkAAA8hmmC56!**DDDB?$$Q[[1Xb!_DDDB?$$QWW-"a@@@B?$$QZZ0E"aL@@@B?$$QZZ0E!QK???B?$$Q[[1U1a[@@@ 8hsC01QZZ???8hsB/0AJJ>>>rS   c                     t        dd      j                  du sJ t        dt              j                  du sJ t        t         d      j                  du sJ t        t         t              j                  du sJ t        t        t               j                  du sJ t        dd      j                  du sJ t        t        t              j                  du sJ t        t         t               j                  du sJ t        dd	      } t        d
d	      }t        | | dz         j                  du sJ t        | d      j                  du sJ t        d| dz         j                  du sJ t        | |      j                  du sJ t        | |z   || z
        j                  du sJ t        | | |z   | z         j                  du sJ t        | t              j                  du sJ t        t         |       j                  du sJ t        | t               j                  du sJ t        t        |       j                  du sJ y )Nrx   Tr6   F2   r   nr   m1   r   rw   )r   is_finite_setr   r   rX  rY  s     rQ   test_range_is_finite_setr]    s   s))T111B<%%..."b>''5000"b>''5000bS>''4///A;$$,,,R=&&$..."rc?((D000sD!AsD!AAF))T111A;$$,,,QU))T111A;$$,,,QA,,444AEAI,,444B<%%..."a=&&%///RC=&&$...Q<%%---rS   c                  J   t        dd      j                  du sJ t        dt              j                  du sJ t        t         d      j                  du sJ t        t         t              j                  du sJ t        t        t               j                  du sJ t        dd      j                  du sJ t        t        t              j                  du sJ t        t         t               j                  du sJ t        dd	      } t        d
d	      }t        ddd      }t        | | dz         j                  du sJ t        | d      j                  du sJ t        d| dz         j                  du sJ t        d|dz         j                  du sJ t        | |      j                  du sJ t        | |z   || z
        j                  du sJ t        | | |z   | z         j                  du sJ t        | t              j                  du sJ t        t         |       j                  du sJ t        d      }t        ||dz         j                  du sJ t        |d      j                  du sJ t        d|dz         j                  du sJ t        ||      j                  du sJ t        ||z   ||z
        j                  du sJ t        |||z   |z         j                  du sJ t        |t              j                  du sJ t        t         |      j                  du sJ y )NrV  rx   Tr6   FrW  r   rX  r   rY  rQ  r  rZ  r   rw   r,   )r   r   r   r   )rX  rY  rQ  r,   s       rQ   test_Range_is_iterabler_  3  s   s''4///B<##u,,,"b>%%..."b>%%...bS>%%---A;""d***R=$$,,,"rc?&&$...sD!AsD!AsD40AAF''4///A;""e+++QU''5000QU''5000A;""e+++QA**e333AEAI**e333B<##u,,,"a=$$---sAAF''5000A;""e+++QU''5000A;""e+++QA**e333AEAI**e333B<##u,,,"a=$$---rS   c            
         t        t        t        dt        z  t        dd      z         t        j
                        } t        t        t        dt        z  t        dd      z         t        j
                        }|| k(  sJ t        t        t        dt        z  t        dd      z
        t        j
                        }|| k(  sJ t        d      }t        t        dt        z  |z   t        j
                        }|dz   |v sJ d\  }}}|t        t        ||t        z  z   t        j
                        v sJ |t        t        ||t        z  z   t        j
                        v sJ t        d	d
      }|dz  |z
  dz   }t        ||t        j
                        j                  j                  |dz  |z   dz   k(  sJ d|z  dz
  }t        ||t        j
                        j                  j                  d|z  dz   k(  sJ t        t        t        dt        z  ft        j
                        t        t        t        t        dt        z  f      t        j
                        k(  sJ y )Nr6   r7   rw   rv   rm   r-   r8   )gZd;O?gʡE?gm?r,   T)negativer5   )r   r   r,   r   r   rZ   r   r   r   lamdaexpr)	r   imr-   r   rL   rM   rN   _xeqs	            rQ   test_Integers_eval_imagesetrg  S  s   
6!QqS8Aq>12AJJ
?C	&BqD8Aq>12AJJ	?B99	&BqD8B?23QZZ	@B99sAAaC!GQZZ(Aq5A::!GAq!A!GQZZ0000A!GQZZ0000	t	$B	QaBBAJJ'--22b!ebj1nDDD	
2BBAJJ'--22adQh>>>A1Q3x,Aqs8$ajj12 2 2rS   c                  t   t        d      \  } }}t        t        | t        |z   z  |z   t        d            t        t        | t        z  | |z  z   |z   t        d            k(  sJ t        dz   dz  }t        t        |t        d            j                  j
                  |k(  sJ | t        |z   z  |z   }t        ddd      }t        t        ||      }|j                  j
                  |k7  sJ t        |      t        |      D cg c]&  }|j                  t        |      j                         ( c}k(  sJ y c c}w )Nza b cr7   r5   r6   r   rv   )	r   r   r,   r   rb  rc  r   subsexpand)rL   rM   rN   rf  r   imsetr   s          rQ   test_Range_eval_imagesetrl  j  s   gGAq!Aq!a%y1}eAh/AaC!A#IM58,- - -
a%!BAr58$**//2555	
AEQBaRAQAE;;r!!!;47Ca2771a=//1CCCCCs   +D5c                      t        t        t        t        t	        t
        t        z  dz              t        dd             t        dt        d       dz  dt        d      dz  d      k(  sJ y )Nr8   r   rm   rV   r6   r   r5   )r	   r   r   r,   r&   r   r   r$   rc   rS   rQ   test_funrn  w  sc    xq#bd1f+ 6c2 %b47(1*aaAFG H GrS   c                     t        dd      } t        ddd      }t        ddd      }t        d      j                  sJ t        d	      j                  rJ t        d	d      j                  sJ t        d
d      j                  rJ t        |       j                  J t        |      j                  sJ t        |      j                  du sJ t        |d      j                  du sJ t        ||      j                  du sJ t        ||      j                  sJ t        |d
      j                  J t        ||d
      j                  du sJ y )Nr   Tr   rX  )ra  r   rQ  )r   r   r   r5   rV   F)r   r   is_empty)r   rX  rQ  s      rQ   test_Range_is_emptyrq  |  s8   sD!AsT40AsT40A8Qx    A;R|$$$$8$$$88%%%A;5(((A;5(((A;B<  (((Ar?##u,,,rS   c                  z   dt         j                  v sJ t         j                  t         j                  v sJ t        d       t         j                  v sJ dt         j                  vsJ t        d      t         j                  vsJ t         j                  t	        t
         t
              k(  sJ t         j                  t	        dt
              k7  sJ t         j                  j                  t	        t
         t
                    sJ t         j                  j                  t        t
         t
                    t        t
         t
              k(  sJ t         j                  t         j                  vsJ t         j                  t         j                  vsJ t        t         j                  z   t         j                  vsJ y )Nr2   r6   )r6   r2   rV   r   )r   rG   Pir$   r
   r   rH   r>   r   ComplexInfinityNaNr,   rc   rS   rQ   
test_Realsrv    s2   <<44177??G8qww   8177"""77hsB''''77hq"o%%%77Xrc2.///77UB3^,rc2>>>AGG+++55q   ///rS   c                     dt         j                  v sJ ddt        z  z   t         j                  v sJ t         j                  t         j                  v sJ t	        d       t         j                  v sJ t         t         j                  v sJ t	        d      t         j                  v sJ t         j                  j                  t         j                        t         j                  k(  sJ t         j                  j                  t         j                        t         j                  k(  sJ t         j                  t        t         j                  t         j                  z        k(  sJ t         j                  t        t        dd      t        dd      z        k(  dk(  sJ t        t         j                        dk(  sJ t        t         j                        dk(  sJ y )	Nr2   r8   r6   rV   r5   r7   Fr   )r   r   r   rs  r$   r>   rG   unionr   r
   strreprrc   rS   rQ   test_Complexr{    sN   qs7akk!!!441;;G8q{{"""28q{{""";;  )QWW444;;QWW%444;;-8888KK=!QA)FGGEQQQq{{{***+++rS   c                 @    t        t        j                  ||             S )z.Return first n items of the iterable as a list)r   r   islice)rX  iterables     rQ   taker    s    	  1-..rS   c                  d   t         j                  j                  t         j                        t         j                  k(  sJ dt         j                  j                  t         j                        v sJ dt         j                  j                  t         j                        v sJ dt         j                  j                  t         j                        vsJ dt         j                  j                  t         j                        vsJ dt         j                  j                  t        dt                    v sJ dt         j                  j                  t        t         d            v sJ t        d t        dt         j                  j                  t        dt                          D              sJ y )Nr2   r3   r4   r7   c              3   4   K   | ]  }|j                     y wrb   r   )r   r,   s     rQ   r   z%test_intersections.<locals>.<genexpr>  s      G || Gr   re   )	r   rZ   r>   rG   r:   r
   r   r   r  rc   rS   rQ   test_intersectionsr    s4   ::(AJJ666

$$QWW----

$$QWW----QZZ))!''2222ajj**1773333

$$Xa_5555%%hsA&67777 G"ajj228Ar?CEG G G GrS   c            	         ddl m} m} t        t	        | |       t
        j                        t        t	        ||      t
        j                        k(  sJ t        t	        | d| z        t
        j                        j                  t        t	        |d|z  dz         t
        j                              t
        j                  u sJ t        t	        | d| z        t
        j                        j                  t        t	        | d| z  dz         t
        j                              t
        j                  u sJ t        t	        |d|z        t
        j                        j                  t        t	        | d| z        t
        j                              j                  t        t	        t        dt        z        t
        j                              sJ t        t        t        dz  t        dd      z   t
        j                        j                  t
        j                        t
        j                  u sJ t        t        t        dz  t
        j                  z   t
        j                        j                  t
        j                        t
        j                  u sJ t        t	        | d| z  dz         t
        j                        }|j                  t
        j                        |k(  sJ y )Nr   r\  r6   r5   r7   r9   r2   )	sympy.abcrX  rY  r   r   r   rZ   r>   r}   dummy_eqr   r.   r,   r   r   )rX  rY  S53s      rQ   test_infinitely_indexed_set_1r    s   F1aL!**-&A,

1SSSSF1acNAJJ/99VAqsQw'469:D D D F1acNAJJ/99VAqsQw'469:D D D F1acNAJJ/991Q3466>hVAqs^QZZ0722 2 2 AqsXa^+QZZ8BB1::NRSR\R\\\\AqsQVV|QZZ0::1::F!**TTT 6!QqS1W%qzz
2C==$+++rS   c                     ddl m}  t        dd      }t        t	        | |       t
        j                        t        t	        | | |z         t
        j                        k(  sJ t        t	        | | t        z         t
        j                        t        t	        | | |z   t        z         t
        j                        k(  sJ t        t	        | |       t
        j                        t        t	        | |  |z         t
        j                        k(  sJ t        t	        | d| z        t
        j                        t        t	        | d| z        t
        j                        k(  sJ t        t	        | d| z  t        z         t
        j                        t        t	        | d| z  t        z   dz
        t
        j                        k(  sJ y )	Nr   rX  rL   Tr   ir9   r6   )	r  rX  r   r   r   r   rZ   r   r   )rX  rL   s     rQ   test_infinitely_indexed_set_2r    s\   sD!AF1aL!**-1q5!1::./ / /F1a"f%qzz21q52:&

34 4 4F1aL!**-A26"AJJ/0 0 0F1bdOQZZ01Q3,- - -F1acBh'41Q38a<(!**56 6 6rS   c                     ddl m}  t        t        | | | dz
  | dz   z  t        z  z         t
        j                        j                  t
        j                        t        dd      k(  sJ | dz
  | t
        j                  z   z  }t        t        | | |t        z  z         t
        j                        j                  t
        j                        t        d      k(  sJ t        t        | | || dz   z  t        z  z         t
        j                        j                  t
        j                        t        d      k(  sJ t        t        | | dz  |j                         t        z  z         t
        j                        j                  t
        j                        t        t        t        t        dz        t        | t!        | dz  | dz  z
  t        d      dz  z
  d      t
        j                              k(  sJ t        t        | | d| z  dz
  z  || dz   z  t        z  z         t
        j                        j                  t
        j                        t        t
        j                        k(  sJ t        t        | | | dz
  z  | dz
  | dz   z  t        z  d| z  dz   z  z         t
        j                        j                  t
        j                        t        d      k(  sJ t        t        | | | dz  dz
  z  | dz
  | dz   z  t        z  d| z  dz   z  z         t
        j                        j                  t
        j                        t
        j"                  u sJ t        t        | t         t        dt$        z  | z  t$        d	z  z
  z  t'        t)        t+        t                           z   z        t
        j                        }|j                  t
        j                        t        t        | d| z  t$        z  t$        d	z  z
        t
        j                        cxk(  rFt        t        | dt$        z  | z  t$        t-        d
d	      z  z         t
        j                        k(  sJ  J y )Nr   r  r5   rV   r6   r9   r7   rf   r8   rw   )r  rX  r   r   r   r   rZ   r>   rG   r	   r   rE   rj  r   r,   r   r   r}   r   r"   r    r$   r   )rX  rd  rP   s      rQ   test_imageset_intersect_realr    s   F1a1q51q5/!"334ajjAKKAGGTXabdfgXhhhh
a%!aff*	BF1a"Q$h' 

)AGG
	!- - -F1a"a!e*Q,./ 

)AGG
	!- - -F1acBIIKM12AJJ 

)AGG
1Q3	2adQqSj1Q46!1%qzz:3 !44 4 4 F1a1qkBAJqL891:: 

)AGG
	!&& 12 2 2F1aQi	
QQ1Q37#$ %&'jj22;)	3bM" " " F1aAl	
QQ1Q37#$ %&'jj22;)	3JJ   	q1"a2a"Q$'#c$r(m*<<=>	

	A
 ;;qww8q!A#b&2a4- !**$. ;19q!B$q&2hq!n,,-qzz2;; ; ; ; ;rS   c                     ddl m}  t        t        | | t        z        t
        j                        }t        t        | d| z        t        dt                    }t        t        | d| z  t        z  t        dz  z         t
        j                        }t        t        | | t        z  t        z        t
        j                        }t        t        | dt        z  | z  t        z  t        dz  z         t
        j                        }t        t        | t        |             t
        j                        }t        t        | | dz        t
        j                        }t        t        | t        |             t
        j                        }t        t        | t        |             t
        j                        }	|j                  t        dd            t        d      k(  sJ |j                  t        ddt        z  dd            t        dt              k(  sJ |j                  t        dd            t        dd      k(  sJ |j                  t        dd            t
        j                  k(  sJ |j                  t        dd	            t        t        t!        d
d      z  t        dz        k(  sJ |j                  t        dd            t        d      k(  sJ |j                  t        dd            t
        j                  k(  sJ |j                  t        dd            t
        j                  k(  sJ |j                  t        dd            t        t
        j"                  t        d            k(  sJ |j                  t        dd            t%        |t        dd            k(  sJ |j                  t        dd            t%        |t        dd            k(  sJ |	j                  t        dd            t%        |	t        dd            k(  sJ y )Nr   r  r6   rV   r5   FTr3   r2   r   re   )r  rX  r   r   r   r   rZ   r
   r   r"   r    r!   rE   r>   r	   r}   r   r   r   )
rX  f1f2f3f4f5f6f7f8f9s
             rQ    test_imageset_intersect_intervalr     s   	&AbD/1::	.B	&AaC.(1b/	2B	&AaCFRTM*AJJ	7B	&AaCF#QZZ	0B	&AaCE"Hr!tO,ajj	9B	&CF#QZZ	0B	&AqD/1::	.B	&CF#QZZ	0B	&CF#Q[[	1B<<Q(IaL888<<AbD%679Q;KKKK<<A'8Aq>999<<Q(AJJ666<<Q(Ib"a6H"Q$,OOOO<<Q(IaL888<<A'1::555<<A'1::555<<A'9QVVSV+DDDD<<B(LXa_,MMMM<<A'<HQN+KKKK<<A'<HQN+KKKKrS   c                  j   ddl m} m} t        t	        |d|z  dz         t
        j                        }t        t	        |d|z  dz         t
        j                        }|j                  |      |k(  sJ t        t	        |d|z        t
        j                        j                  t        t	        |d|z  dz         t
        j                              t
        j                  k(  sJ t        t	        |d|z  d|z  dz  z         t
        j                        j                  t
        j                        t        d	d
dd      k(  sJ t        t	        ||dz
  dz        t
        j                        j                  t        t	        ||dz
  dz         t
        j                              t        d      k(  sJ t        t	        ||dz  dz         t
        j                        j                  t        t	        | d| z        t
        j                              j                  t        t	        |d|dz  z  d|z  z   dz         t
        j                              sJ t        t	        ||dz  dz
        t
        j                        j                  t        t	        | | dz         t
        j                              t        dd      k(  sJ t        t	        | | dz  dz         t
        j                        j                  t        t	        |d|z        t
        j                              j                  t        t        t	        | | dz  dz         t
        j                        t        t	        |d|z        t
        j                                    sJ t        t	        ||dz  dz
        t
        j                        j                  t        t	        | | dz   dz         t
        j                              t        dd      k(  sJ t        t	        |t        dz  |dz  t        z  dz  z         t
        j                        j                  t        t	        |dt        z  dz  |dz  t        z  dz  z         t
        j                              j                  t        t	        |dt        z  |z  dz  dt        z  dz  z         t
        j                              sJ t        t	        ||t        d      z        t
        j                        j                  t
        j                        j                  t        t        t	        ||t        d      z        t
        j                        t
        j                              sJ t        t	        ||dz  dz         t
        j                        j                  t        t	        ||dz        t
        j                              j                  t        t        t	        ||dz  dz         t
        j                        t        t	        ||dz        t
        j                                    sJ y )Nr   rY  rX  r6   r5   r8   rf   rk   r7   iirr   =   r2   r9   i(   )   rg   Q   A   rn   rw   rm   rM     )r  rY  rX  r   r   r   rZ   r>   r}   r	   r  r   r   r"   rF   )rY  rX  img1img2s       rQ   #test_imageset_intersect_diophantiner    s   F1acAg&

3DF1acAg&

3D>>$4'''F1acNAJJ/99VAqsQw'469:D D D F1acBqDFl+QZZ8BBJJ$S#r267 7 7 F1q1uqj)1::6@@VAQ
{+QZZ8:=Fq\J J J F1adQh'4>>VAqs^QZZ022:(81a1fqslQ&'<5 366 6 6 F1adQh'4>>VA1u%qzz247@Q7GH H H F1adRi(!**5??VAr!t_ajj133;8LVAq!tby)1::6VAr!t_ajj1=3 444 4 4
 F1adTk*AJJ7AAVA1ut|,ajj9;>G2>NO O OF1beac"fRi/0!**=GGVAqtBw2b34ajjACCK8H1beAgbj2b57*+QZZM9 D:: : : F1aAh'4AA	

H\(q!CF(QZZ+)*+**6 77 7 7 F1adQh'4>>VAq!t_ajj133;8LVAq!tax(!**5VAq!t_ajj1=3 444 4 4rS   c            	         ddl m} m} t        t	        |dt
        z  |z        t        j                        j                  t        t	        | dt
        z  | z        t        j                              j                  t        t	        t        dt
        z  t        z        t        j                              sJ t        t	        | d| z  dz         t        j                        t        t	        | d| z  dz
        t        j                        k(  sJ t        t	        | d| z  dz         t        j                        t        t	        | d| z  dz
        t        j                        k(  sJ y )Nr   r\  r6   r7   r9   r5   )r  rX  rY  r   r   r   r   rZ   r>   r  r   r.   r\  s     rQ   test_infinitely_indexed_set_3r  H  s   F1ad1f%qzz2<<VAqtAv&

355=X1R46"AJJ/611 1 1 F1acAg&

31Q37#QZZ01 1 1F1acAg&

31Q37#QZZ01 1 1rS   c                     ddl m} m} t        t	        | |       t
        j                        t
        j                  k(  sJ t        t	        | t        |             t        t	        |t        |            t
        j                              t        t	        |t        t        |                  t
        j                        k(  sJ t        | dd| z  z   t
        j                        t        dt        d      k(  sJ t        | dd| z  z   t
        j                        t        dt        d      k(  sJ t        | dd| z  z
  t
        j                        t        dt         d      k(  sJ y )Nr   r\  r5   r6   r7   rV   rv   )r  rX  rY  r   r   r   rZ   r&   r'   r:   r   r   rE   r\  s     rQ   test_ImageSet_simplificationr  S  s   F1aL!**-;;;F1c!f%VAs1v.

;=VAs3q6{+QZZ89 9 9 Aq1Q3w

+uQA>>>Aq1Q3w,aQ???Aq1Q3w

+uR"b/AAAArS   c                  $   dt         j                  ft        t        t        dt        z  ft         j                        v sJ t        t        t        t
        dz  z   t         j                        j                  t         j                        t         j                  u sJ t        d      } t        t        t        t
        t        z  z   t         j                        j                  t         j                        }|j                  t        t
        | z        j                  t         j                        t         j                  u sJ t        t        t        t
        t        z  t        z  z   t         j                        j                  t         j                        }|j                  t        d      t         j                  u sJ |j                  t        t
        | z  t        z        j                  t         j                        t         j                  u sJ t        d      dz  t        d      dz  z   dz
  }t        t        t        t
        |z  z   t         j                        j                  t         j                        }|t         j                  usJ y )Nr6   r5   r7   Tr   r   )r   r   r   r,   rZ   r   rF   rG   r}   r   r-   ri  r%   r&   )r   qr/   s      rQ   test_ImageSet_containsr  ^  s   qvv;(1q!A#h

;;;;Aq1Q3w

+88AQZZOOOdAA!GQZZ(55agg>A66!QqS>&&qzz2ajj@@@A!AIqzz*77@A66!Q<1::%%%66!QqSU((4

BBBA	CFAI!AA!GQZZ(55agg>AAJJrS   c                    
 t        dd      } t        dd      }t        dd      }t        dd	      }t        ||z        }t        t        ||z  ||z              }d
dt        z  z   |v sJ ddt        z  z   |v sJ ddt        z  z   |v sJ dd
t        z  z   |v sJ d
dt        z  z   |vsJ ddt        z  z   |vsJ |j                  t              t        t        |d      k(  sJ |j                  |       dk(  sJ |j                  t              t        t        |d      k(  sJ |j                  |       dk(  sJ t        dd      
t        ddt        j                  z        t        
z  d      }dt        dz  dz  z   |v sJ t        j                  t        dz  dz  z   |v sJ t        j                  dt        z  z   |v sJ ddt        z  z   |v sJ t        |v sJ d|v sJ d|v sJ dt        z   |vsJ dt        z
  |vsJ |j                  t              t        t        |d      k(  sJ |j                  | dt        z  z         t        | dt        z  z   |d      k(  sJ |j                  dd| dz  z   z        t        dd| dz  z   z  |d      k(  sJ t        dd      }t        t        dt        z  d      }t        ||z  d      }	|	j                  d      dk(  sJ |	j                  dt        z         dk(  sJ |	j                  dt        z         dk(  sJ |	j                  dt        z
        dk(  sJ |	j                  dt        z
        dk(  sJ |	j                  d      dk(  sJ |	j                  d      dk(  sJ |	j                  t              t        t        |	d      k(  sJ |	j                  dd| dz  z   z        t        dd| dz  z   z  |	d      k(  sJ t        t        
fd       y )Nr   Tr   r6   r7   r8   r9   rw   rf   g      @g      @rj   gffffff@g	@Frh   r   r5   polarrR  re   g333333?)	left_openrv   c                  $    t         z  d      S )Nr6   r  )r   )r1theta1s   rQ   rd   z-test_ComplexRegion_contains.<locals>.<lambda>  s    }RYa@ rS   )r   r
   r   r   r   rD   r,   r   r   rs  r   r   r+   r|   )r   rL   rM   rN   c1c2r   r2theta2c4r  r  s             @@rQ   test_ComplexRegion_containsr  l  s   sAAAAAAA	qs	B	uQqS!A#	'BQ;"qs7b==qs7b==s1u9??Q;b   Q;b   ;;q>Xae<<<<;;q>U""";;q>Xae<<<<;;q>U"""	!QBa144 F	r&y	-B!A#b&LRFFQqSVO"""FFRTMb   "Q$J27N77N77N7q5??q5??;;q>Xae<<<<;;q1Q3w8	AaCe$% % % %;;q!ad(|$	1q!t8b5)* * * * 
!QBb!B$$/F	r&y	-B;;q>T!!!;;q1u&&&;;rAv%''';;rAv$&&&;;q1u%%%;;r?e###;;q>T!!!;;q>Xae<<<<;;q!ad(|$	1q!t8b5)* * * * :@ArS   c                  v   t        d      t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        dd      t        t        fd       t        t        fd	       t	        d
z         d   k(  sJ t        t        fd       t	        d
z         j
                  d
k(  sJ t        ddd      t        t        fd       t        t        fd       t	        d
z         d   dk(  sJ t	        d
z         d   k(  sJ t	              j
                  k(  sJ t	        d
z         j
                  d
z   k(  sJ t	        d
z         j
                  d
k(  sJ t        ddd      t	              d   dk(  sJ t	        d
z         d   k(  sJ t	              j
                  k(  sJ t	        d
z         j
                  d
k(  sJ t        ddd      } t	        | z         d   k(  sJ t	        | z         j
                  | k(  sJ t	        d
z         j
                  d
k(  sJ t	        | z   d      j
                  t        | dz        k(  sJ t        dddd      } t	        | z   d      j
                  | dz  k(  sJ y )NrX  c                       t               d   S r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>      uQx{ rS   c                  "    t                d   S r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>      uQ{1~ rS   c                  (    t          dz         d   S )Nr5   r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>  s    uQ!}Q/ rS   c                  .    t               j                  S rb   r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>      uQx}} rS   Tr   c                       t               d   S r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>  r  rS   c                  "    t                d   S r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>  r  rS   r5   r   c                  .    t               j                  S rb   r  r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>  r  rS   )r   nonnegativec                       t               d   S r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>  r  rS   c                  "    t                d   S r   r   r  s   rQ   rd   z%test_symbolic_Range.<locals>.<lambda>  r  rS   r  rY  r6   )r   r   rE  )r   r+   r|   r   r   r   r#   r  s    @rQ   test_symbolic_Ranger    s   sA
:*+
:-.
:/0
:,-sD!A
:*+
:-.AaC=q   
:,-AaC="""sDd3A
:*+
:-.1:a=AAaC=q   8==A1:??ac!!!AaC="""sD40A8A;!AaC=q   8==AAaC="""sD40AAaC=q   AaC="""AaC="""AaC  E!A#J...sD4d;AAaC  AaC'''rS   c                       t        dd       t        t         fd       t        ddd       t        d t	                     t        d t	                     k(  sJ y )NrX  Tr   c                  0    t        d t                     S )Nc                     | dz  S r   rc   r  s    rQ   rd   z4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>  s
    !A# rS   )r   r   r  s   rQ   rd   z"test_issue_18400.<locals>.<lambda>  s    xuQx@ rS   r  c                     | dz  S r   rc   r  s    rQ   rd   z"test_issue_18400.<locals>.<lambda>  s
    ac rS   c                     | dz  S r   rc   r  s    rQ   rd   z"test_issue_18400.<locals>.<lambda>  s
    1Q3 rS   )r   r+   r|   r   r   r  s   @rQ   test_issue_18400r    sL    sD!A
:@AsD40AM58,a0QQQQrS   c                  
   t        t        dt              t        dt        j
                        z  d      } t        t        dd      t        ddt        j
                  z        z  d      }t        t        dd      t        dt        j
                        z  d      }t        t        dt              t        dt        j
                        z  d      }t        t        dt              t        t        j
                  dt        j
                  z        z  d      }t        t        dt              t        t        j
                   dz  t        j
                  dz        z  d      }t        t        dt              t        dt        j
                  dz        z  d      }|j                  |      |k(  sJ |j                  |      |k(  sJ |j                  |      |k(  sJ |j                  |      | k(  sJ t        t        dd      t        ddt        j
                  z        z  d      }|j                  t        dd            t        dd      k(  sJ |j                  t        dd            t        d      k(  sJ |j                  t        dd	            t        j                  u sJ t        t        t         t              t        d      z        } t        t        d
d      t        d
d      z        }t        t        d
d      t        dd      z        }	t        t        t         t              t        dt              z        }
t        t        t         t              t        t         d      z        }t        t        dt              t        t         t              z        }t        t        dt              t        dt              z        }|
j                  |      |	k(  sJ |j                  |      |k(  sJ |
j                  |      |k(  sJ |
j                  |      | k(  sJ t        t        dd      t        dd      z        }|j                  t        dd            t        dd      k(  sJ |j                  t        dd            t        d      k(  sJ |j                  t        dd            t        j                  u sJ t        t        dd      t        ddt        j
                  z        z  d      }t        t        d
d      t        d
d      z        }|j                  |      t        ||d      k(  sJ y )Nr   Tr  r5   r6   r8   r2   rf   rn   rV   r3   r   re   rw   r9   Frh   )	r   r
   r   r	   r   rs  r>   r}   r   )X_axis	unit_diskupper_half_unit_diskupper_half_disklower_half_diskright_half_diskfirst_quad_diskr  unit_squareupper_half_unit_squareupper_half_planelower_half_planeright_half_planefirst_quad_planeC1C2s                   rQ   test_ComplexRegion_intersectr    s!   8Ar?9Q+==TJFhq!nXa144-@@MI(!QADD8I)IQUV#HQOHQ4E$ETRO#HQOHQTT1QTT64J$JRVWO#HQOHaddU1Wadd1f4M$MUYZO#HQOHQQ4G$GtTO$$Y/3GGGG$$_5HHH$$_5HHH$$_5???	x1~hq!ADD&&99	FB<<A'8Aq>999<<A'9Q<777<<B(AJJ666 8RC,Yq\9:FQQ ?@K*8B?8Aq>+IJ$Xrc2%6x2%FG$Xrc2%6xQ7G%GH$Xa_Xrc25F%FG$Xa_Xa_%DE%%k26LLLL%%&67;KKKK%%&67;KKKK%%&676AAA	xAxR'88	9B<<A'8Aq>999<<A'9Q<777<<A'1::555 
x1~hq!ADD&&99	FB	xAxA6	7B<<|BUCCCCrS   c            
      N   t        t        dd      t        ddt        j                  z        z  d      } t        t        dd      t        dt        j                        z  d      }t        t        dt              t        dt        j                        z  d      }t        t        dt              t        t        j                  dt        j                  z        z  d      }t        t        dd      t        ddt        j                  z        z  t        dd      t        dt        j                        z        }t        t        dt              t        dt        j                        z  t        dt              t        t        j                  dt        j                  z        z        }| j                  |      t        |d      k(  sJ |j                  |      t        |d      k(  sJ t        t        dd      t        dd      z        }t        t        d	d      t        d
d      z        }t        t        dd
      t        dd      z        }t        t        dd      t        dd      z        }	t        t        dd      t        dd      z  t        d	d      t        d
d      z        }
t        t        dd
      t        dd      z  t        dd      t        dd      z        }|j                  |      t        |
      k(  sJ |j                  |	      t        |      k(  sJ | j                  t        dd	            t        | t        dd	      d      k(  sJ |j                  t        dd	            t        |t        j                  t        dd	                  k(  sJ y )Nr   r5   r6   Tr  r2   r9   rf   r8   re   rn   r   rg   r   rk   Frh   )r   r
   r   rs  r   r   rx  	from_real)r  r  r   r  p1p2c5c6c7c8p3p4s               rQ   test_ComplexRegion_unionr    s   	x1~hq!ADD&&99	FB	x1~hq!$$&77t	DB	x2x144'88	EB	x2xaf'==T	JB	x1~hq!ADD&118Aq>(1addBS3S	TB	x2x14400(1b/(144QRSTSWSWQWBX2X	YB88B<=4888888B<=48888 
x1~hq!n4	5B	x1~hr2&66	7B	x2xQ'77	8B	xB'R(88	9B	x1~hq!n,hq!nXb"=M.M	NB	x2xQ//"b1A(2rBR1R	SB88B<=,,,,88B<=,,,,88HQN#uR!Q%'PPPP88HQN#uR1H1HRSUV1X'YYYYrS   c                      t        t        dd      t        ddt        j                  z        z  d       t	        t
         fd        j                  t        dd            t        t        dd      t        d      z  d      k(  sJ y )	Nr   r5   r6   Tr  c                  &     j                         S rb   )r  r  s   rQ   rd   z.test_ComplexRegion_from_real.<locals>.<lambda>"  s    r||B/ rS   rV   F)r   r
   r   rs  r+   r|   r  r	   r  s   @rQ   test_ComplexRegion_from_realr    si    	x1~AH(==T	JB
:/0<<Q(M(2q/IVWL:XZ_,````rS   c                  J   t        dd      t        dd      }} t        ddt        j                  z        t        dt        j                        }}t        | |z        }t        t	        | |z  ||z        d      }|j
                  dk(  sJ |j
                  d	t        z  k(  sJ y )
Nr6   r2   r8   rj   r   Tr  rn   rf   )r
   r   rs  r   r   measurer   )rL   rM   r  r  r  r  s         rQ   test_ComplexRegion_measurer  &  s    Aq>8Aq>qAa144((1add*;FF	qs	B	uQvXqx0	=B::::2rS   c                  
   t        t        t        dt        z              t        t	        d      t        j
                  t        dt        z              k(  sJ t        t        t        t        dd      z  dt        z              t        t        dz  t              k(  sJ t        t        t        t        dd      z  t        dz              t        j
                  ddt        z        k(  sJ t        t        j                  t        t        dd      z  t        dz              t        t        j
                  dt        dz        t        j                  t        dz  dt        z              k(  sJ t        t        j                  t        t        dd      z  t        t        dd      z              t        t        j
                  dt        dz        t        j                  t        dz  dt        z              k(  sJ t        t        t         dz  t        dz              t        t        dt        dz        t        j
                  t        t        dd      z  dt        z              k(  sJ t        t        j                  t         dz  t        dz              t        t        j
                  dt        dz        t        j                  t        t        dd      z  dt        z              k(  sJ t        t        dt        z  dt        z              t        j
                  ddt        z        k(  sJ t        t        t        t        dd      z  t         dz              t        t        dz  t        t        dd      z        k(  sJ t        t        j                  ddt        z              t        j                  ddt        z        k(  sJ t        t        j
                  t         dz  t        dz              t        t        j
                  dt        dz        t        j
                  t        t        dd      z  dt        z              k(  sJ t        t        j                  t         dz  t        dz              t        t        dt        dz        t        j                  t        t        dd      z  dt        z              k(  sJ t        t        t         dz  t        dz              t        t        dt        dz        t        j
                  t        t        dd      z  dt        z              k(  sJ t        t        j                  d	t        z  t        t        dd      z              t        j                  dt        dz        k(  sJ t        t        j                  d	t        z  t        t        dd      z              t        j                  dt        dz        k(  sJ t        t        j
                  d	t        z  t        t        dd      z              t        j
                  dt        dz        k(  sJ t        t        j                  dt        z  dt        z              t        t        j
                  dt              t        j                  t        dt        z              k(  sJ t        t	        dt        dt        z              t	        dt              k(  sJ t        t	        dt        dz  t        dt        z              t	        dt        dz  t              k(  sJ t        t	        dt         dz  t         d
t        z              t	        dt        t        t        dd      z        k(  sJ t        t	        t        t        dd      z  t        dz              t	        t        dz        k(  sJ t        t	        dt        z              t	        d      k(  sJ t        t        t        dt        dz        t        t        dz  t                          t        t        dt        dz        t        t        dz  t                    k(  sJ t        t        t        dt              t        dt        z  t        t        dd      z                    t        dt              k(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nr6   r   rf   r2   r   ir7   rY   r8   rv   rw   c                  4    t        t        j                        S rb   )r   r   r   rc   rS   rQ   rd   z*test_normalize_theta_set.<locals>.<lambda>\  s    21;;? rS   c                  ,    t        t        dd            S )Nr   r5   )r   r
   rc   rS   rQ   rd   z*test_normalize_theta_set.<locals>.<lambda>_  s    (;HQN(K rS   c                  :    t        t        ddt        z              S r   r   r
   r   rc   rS   rQ   rd   z*test_normalize_theta_set.<locals>.<lambda>b  s    (;HQ"<M(N rS   c                  :    t        t        dt        z  d            S )Nr6   re   r  rc   rS   rQ   rd   z*test_normalize_theta_set.<locals>.<lambda>c  s    (;HQrT2<N(O rS   c                  <    t        t        dddt        z              S )Nr   r7   )r   r	   r   rc   rS   rQ   rd   z*test_normalize_theta_set.<locals>.<lambda>d  s    (;IaAbD<Q(R rS   )r   r
   r   r   r	   Ropenr   rS  r\   r+   r|   r   rc   rS   rQ   test_normalize_theta_setr  0  s   xAbD12ilHNN2qt456 6 6x8Aq>(91R4@AXbQRdTVEWWWWx8B?(:BqDABhnnUVXYZ\X\F]]]]x}}RQ-?AFGhnnQ1%x}}RT1R4'@AB B Bx}}RQ-?HRQROASTUhnnQ1%x}}RT1R4'@AB B BxAr!t45hq"Q$8Aq>0A1R4!HIJ J Jx}}bSUBqD9:hnnQ1%x}}RA5F"'MNO O Ox2qt451R49PPPPx8B?(:RCEBCxPRSTPTVXYabcefYgVgGhhhhx}}Q"56(--1R4:PPPPx~~rc!eRT:;hnnQ1%x~~b!Q6G2'NOP P Px~~rc!eRT:;hq"Q$r(1a./@!B$!GHI I IxAr!t45hq"Q$8Aq>0A1R4!HIJ J Jx}}QrT2hq!n3DEF(--XY[]^_[_J````x~~adBx1~4EFG8>>Z[]_`a]aKbbbbx~~adBx1~4EFG8>>Z[]_`a]aKbbbbx}}QrT1R489hnnQ#X]]2qt%<=> > > yB"56)Ar:JJJJyBqD"ad;<	!RPQTSU@VVVVyRCEB32>?9QPRTVW_`acdWeTeCffffyHRO);RTBC"Q$  y2/9Q<??? uXaA%6Ar8JKLhq"Q$"Q$!345 5 5uXa_hqtRQRTUEV6WXYB   :?@  KL  NO
 OP
 RSrS   c                     t        d      \  } }}}}}t        t        |||      t        | ||      z        t        |t        | z  z   |t        |z  z   |t        |z  z   |t        | z  z   |t        |z  z   |t        |z  z   |t        | z  z   |t        |z  z   |t        |z  z   	      k(  sJ t        t        d      t        d      z        t        ddt        z  z         k(  sJ y )Nzx y z a b cr6   r7   )r   r   r	   r   )r,   r-   r/   rL   rM   rN   s         rQ   test_ComplexRegion_FiniteSetr  g  s    }-Aq!Q1 1a+IaA,>>?!ac'1qs7A!GQ1Wa!A#gac'1qs7A!GQ1W	66 6 6 1il23yQqS7IIIIrS   c                      t         j                  j                  t        dd            t         j                  k(  sJ t         j                  j                  t         j                        t         j                  k(  sJ y r   )r   r   rx  r
   rZ   rc   rS   rQ   test_union_RealSubSetr  q  sN    KKx1~.!++===KKqzz*akk999rS   c                     d }  | t        dd            j                  t        t              u sJ  | t	        dd            j                  t        t              u sJ t
        j                  j                  t        t              u sJ t
        j                  j                  t        t              u sJ t
        j                  j                  t        t              u sJ t        d      j                  t        t              u sJ t        dd      }t        dd      }t        ||z        }|j                  t        t        t        t                    u sJ y )Nc                  D    t        t        t        t        dz        g|  S r   r{   )rH  s    rQ   rd   z'test_SetKind_fancySet.<locals>.<lambda>w  s    hvaa0848 rS   r5   r8   r7   r6   r9   )r
   kindr   r   r	   r   r   r:   rZ   r   r   r   )GrL   rM   r  s       rQ   test_SetKind_fancySetr  v  s    8AXa^!!WZ%8888Yq!_""gj&9999;;wz2222::??gj1111::??gj11118==GJ////AAAA	qs	B77gi
J?@@@@rS   c                     t        t        dd      t        dd      z        } t        t        dd      t        dd      z        }t        | |      }t        |      t        t        t        dd      t        dd      z  t        dd      t        dd      z        d      k(  sJ  | j                  | j
                   | k(  sJ  |j                  |j
                   |k(  sJ y )Nr5   r6   r7   r2   F)r   r
   r   r   funcrH  )r  r  r   s      rQ   test_issue_9980r    s    	x1~hq!n4	5B	x1~hq!n4	5Bb"AA;-hq!nXa^.K$,QN8Aq>$A)CDIK K K K277BGG"""166166?arS   c                  x   t        dd      } t        dddd      }t        dd      }| t        j                  v dk(  sJ | t        j
                  v dk(  sJ | t        j                  v dk(  sJ | t        j                  v dk(  sJ |t        j                  v dk(  sJ |t        j
                  v dk(  sJ |t        j                  v dk(  sJ |t        j                  v dk(  sJ |t        j                  v dk(  sJ |t        j
                  v dk(  sJ |t        j                  v dk(  sJ |t        j                  v dk(  sJ y )Nr5   r6   r7   r8   r2   FT)r
   r	   r   r   r:   rE   rZ   r   )
interval12finiteset1234pointComplexs      rQ   test_issue_11732r	    s<   !QJaAq)MA;L!**$...!++%%///!**$...!++%%///QZZ'E111Q[[(U222QZZ'E111Q[[(U222AJJ&5000AKK'E111AJJ&5000AKK'D000rS   c                     t        dd      } t        | dz        }t        t        j                  t        t                    t        j                  k7  sJ t        t        j                  t        t        d                  t        j                  k7  sJ t        | |      |k(  sJ t        t        j                  |      | k(  sJ y )Nr   r5   r6   r8   )
r
   r   r   r   r   r	   r   r)   r   rG   )unitsquares     rQ   test_issue_11730r    s    Aq>D419%Fim,;;;iA/0AKK???v&((((D000rS   c                     t        dd      } t        dd      }t        || z        }t        |t        j                        |k(  sJ t        ||       t        d      k(  sJ t        dt        j                        }t        t        j                        }t        t        j                  dz  dt        j                  z  dz        }t        | |z  d      }t        | |z  d      }t        | |z  d      }t        |t        j                        t        dd      k(  sJ t        |t        j                        t        dd      k(  sJ t        |t        j                        t        d      k(  sJ y )	Nr   r5   r6   r8   r7   Tr  rV   )r
   r   r   r   rG   r	   rs  )	r  ivalcr1arg1arg2arg3cp1cp2cp3s	            rQ   test_issue_11938r    s    Aq>DAq>D
t
$CQWW%---T"il222AqttDQTT?DADD1Ha!$$hl+D
t4
0C
t4
0C
t4
0CQWW%"a888QWW%"a888QWW%1555rS   c                  F   t        dd      t        dt              }} t        dd      t        t        dt        z  dz        }}t        | |z  d      }t        ||z  d      }d|j                  |      v sJ d|j                  |      v sJ d|j                  |      vsJ y )	Nr   r5   r6   r7   Tr  r   r3   )r
   r   r   rx  )rL   rM   rN   rO   r  r  s         rQ   test_issue_11914r    s    Aq>8Ar?qAAq>8BB
3qA
AT
*C
AT
*C33SYYs^###rS   c                      t        t        t        t        dz        t        j                        j                  t        j                        sJ y r   )r   r   r,   r   r:   rH   rG   rc   rS   rQ   test_issue_9543r    s/    F1adOQZZ0::177CCCrS   c                     t        t        t        t              t        d            dhk(  sJ t        t        t        t        dz
        t        j
                        j                  t        j
                        t        j
                  u sJ y )Nr5   r7   )r   r   r,   r	   r   rZ   rF   rc   rS   rQ   test_issue_16871r    sa    F1aL)A,/A3666F1a!e$ajj 

,qzz
"ajj1 1 1rS   c                      t        t        t        t        dz
        t        j                        j                  t        j                        sJ y )Nr7   )r   r   r,   r   rZ   rH   rc   rS   rQ   test_issue_16871br    s0    F1a!e$ajj1;;AJJGGGrS   c            	         t        t        t        t        t        z  dz         t        j
                        t        t        t        t        t        z  dz         t        j
                        k(  sJ t        t        t        dt        z  t        z  dz   dt        z  z         t        j
                        t        t        t        dt        z  t        z  dz   dt        z  z         t        j
                        k(  sJ t        t        t        dt        z  dt        z  z         t        j
                        t        t        t        dt        z  dt        z  z         t        j
                        k(  sJ t        dd      } t        t        t        | t        z  d	z         t        j
                        t        t        t        | t        z  d	z         t        j
                        k(  sJ t        t        t        dt        z  dz   d
t        z  z         t        j
                        t        t        t        dt        z  dz   d
t        z  z         t        j
                        k(  sJ y )Nr5   r7   r8   rj   r6   r   Tr   re   r2   )r   r   r,   r   r   rZ   r   r   r   s    rQ   test_issue_18050r"    s   F1acAg&

 
fQ!a(!**56 6 6F1ac!eai!A#o.

 
fQ!A	AaC0!**=> > > F1acAaCi(!** 
fQ!ac	*AJJ78 8 8sT"AF1acBh' 
fQ!b)1::67 7 7 F1acAg!m,ajj 
fQ!a!A#.

;< < <rS   c                     t         j                  j                  t         j                        sJ t         j                  j                  t         j                        sJ t         j
                  j                  t         j                        sJ t         j                  j                  t         j                        sJ t         j                  j                  t         u sJ t         j                  j                  t        u sJ t        t         j                        } t        d      D cg c]  }t        |        c}dddt         j                  dt        dd      dt        dd      dt        dd      dt        dd      gk(  sJ t               t         j                  vsJ t         j                  t         j                  v sJ t         j                  j!                  d	      t#        d	t         j                  d
      k(  sJ dt         j                  v sJ t%        dd      }|t         j                  v sJ t'        t(        d        t         j                  j*                  t         j                  k(  sJ t         j                  j,                  t         j                  k(  sJ t         j                  j.                  d
k(  sJ t         j                  j0                  d
k(  sJ y c c}w )Nrn   r   r5   rV   r6   rv   r7   r   rR  Frh   r   T)rationalc                  .    t         t        j                  v S rb   )r,   r   r   rc   rS   rQ   rd   z test_Rationals.<locals>.<lambda>  s    a1;;. rS   )r   rZ   rH   r   r:   rE   rG   rB   r   rC   r;   r~   r<   r   r   r   rD   r   r   r+   r   r?   closurer@   rA   )r   r   r   s      rQ   test_Rationalsr'    s   ::,,,::,,,;;  ---;;  )));;??rc!!!;;??b   	akk	B#Bi(DH(	1b!&&!Xb!_bA8B?BA-@ @ @ @ 7!++%%%66Q[[   ;;$Q[[5)* * * *d#A
9./;;177***;;!'')));;%''';;  E))) )s   (Kc                      t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  ffdD        } t        d | D              sJ y )Nc              3   D   K   | ]  }D ]  }t        ||         y wrb   )r   )r   rL   rM   nbrsetss      rQ   r   z$test_NZQRC_unions.<locals>.<genexpr>	  s#     <aG<qeAqk<k<s    c              3   8   K   | ]  }|j                   d u   yw)FN)is_Union)r   r   s     rQ   r   z$test_NZQRC_unions.<locals>.<genexpr>
  s     3qqzzU"3s   )r   r:   rE   rZ   r   rG   r   r   )unionsr*  s    @rQ   test_NZQRC_unionsr.    sN    zz1;;

AKK	G<7<F3F3333rS   c                     t               } t        t        | t         t        dt        z  | z  t        dz  z
  z  t        t        t        t                           z   z        t        j                        }|j                  t        j                        t        t        | dt        z  | z  t        t        dd      z  z         t        j                        k(  sJ y )Nr6   r8   rw   )r   r   r   r   r   r"   r    r$   r   rZ   r>   rG   r   )rX  rP   s     rQ   test_imageset_intersectionr0    s    AA2q!B$q&2a4-0CaRM   jj	*A;;qww8q!B$q&2hq!n,,-qzz$; ; ; ;rS   c                      dt        t         t              v sJ dt        t        t         d      v sJ t        t        t         t              vsJ t         t        t         t              vsJ y )Nr5   r   rV   r   rc   rS   rQ   test_issue_17858r2    s_    rc2b2#r""""UB3^###3eRCn$$$rS   c                       t        t         t               t        t         fd       t        t         fd       t        t        t         d       t        t         fd       t        t         fd       y )Nc                       d d d   S r   rc   r!  s   rQ   rd   z"test_issue_17859.<locals>.<lambda>      a!f rS   c                       d d d   S rB  rc   r!  s   rQ   rd   z"test_issue_17859.<locals>.<lambda>      q2w rS   rV   c                       d d d   S r   rc   r!  s   rQ   rd   z"test_issue_17859.<locals>.<lambda>   r5  rS   c                       d d d   S rB  rc   r!  s   rQ   rd   z"test_issue_17859.<locals>.<lambda>!  r7  rS   )r   r   r+   r|   r!  s   @rQ   test_issue_17859r:    sH    rc"A
:n%
:'b"RA
:n%
:'rS   )sympy.core.exprr   sympy.sets.containsr   sympy.sets.fancysetsr   r   r   r   sympy.sets.setsr	   r
   r   r   r   r   r   sympy.sets.conditionsetr   sympy.simplify.simplifyr   sympy.core.basicr   sympy.core.containersr   r   sympy.core.functionr   sympy.core.kindr   sympy.core.numbersr   r   r   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   r   r   $sympy.functions.elementary.complexesr    &sympy.functions.elementary.exponentialr!   r"   #sympy.functions.elementary.integersr#   (sympy.functions.elementary.miscellaneousr$   (sympy.functions.elementary.trigonometricr%   r&   r'   sympy.logic.boolalgr(   sympy.matrices.denser)   sympy.testing.pytestr*   r+   r  r,   r-   r.   r/   sympy.core.modr0   r   rR   rW   r_   r   r   r   r   r   r   r  rJ  rO  rT  r]  r_  rg  rl  rn  rq  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.  r0  r2  r:  rc   rS   rQ   <module>rR     s   % (1 1@ @ @ 0 , " 2 & & 4 4 $ " 6 6 4 = 5 9 D D # $ .      F65G8<<~E	& ' '@/[]|CIL56?,...@2.
DH
-&0,/
	G,,6;:L8)4X1B3Bl%(PR,D^Z:a4TnJ:
A 1*16($D1 H H< *44;%(rS   