
    \h                        S SK Jr  S SKJr  S SKJrJrJrJr  S SK	J
r
JrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  S SKJrJ r J!r!J"r"  S SK#J$r$  S SK%J&r&  S SK'J(r(J)r)J*r*  S SK+J,r,  S SK-J.r.J/r/  S SK0J1r1  S SK2J3r3  S SK4J5r5J6r6J7r7  S SK8J9r9  S SK:J;r;  S SK<J=r=J>r>  S SK?J@r@JArAJBrBJCrC  S SKDJErE  S SKFrFS rGS rHS rIS rJS rKS rL\=S  5       rMS! rNS" rOS# rPS$ rQS% rRS& rSS' rTS( rUS) rVS* rWS+ rXS, rYS- rZS. r[S/ r\S0 r]S1 r^S2 r_S3 r`S4 raS5 rbS6 rcS7 rdS8 reS9 rfS: rgS; rhS< riS= rjS> rkS? rlS@ rmSA rnSB roSC rpSD rqSE rrSF rsSG rtSH ruSI rvSJ rw\=SK 5       rxSL rySM rzSN r{SO r|SP r}SQ r~g)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                  0   [         R                  n SU ;   d   eSU ;  d   eSU ;  d   e[        U 5      n[        U5      [        U5      [        U5      [        U5      4u  p#pEX#XE4S:X  d   e[	        U[
        5      (       d   eU R                  [        SS5      5      [        SS5      :X  d   eU R                  [        SSSS5      5      [        SS5      :X  d   eU R                  U :X  d   eU R                  S:X  d   eU R                  S:X  d   eU R                  S:X  d   eU R                  [        L d   eU R                  [        5      (       a   e[         R                   [         R                  4 HM  nUR#                  [         R$                  5      UL d   eUR'                  [         R$                  5      (       a  MM   e   U R)                  [*        5      [-        [/        [1        [*        5      [*        5      [*        S:  [*        [        :  5      :X  d   eg )	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          W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/sets/tests/test_fancysets.pytest_naturalsrR       s   	

A6M6Q;;a<<	aBb48T"XtBx7JA!!<<'''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                  &   [         R                  n SU ;   d   eSU ;  d   e[        [        U 5      5      S:X  d   eU R	                  [
        5      (       a   eU R	                  [        [        5      5      [        [        [        5      U 5      :X  d   eg Nr   )	r   rE   r<   r;   rD   r   r&   r,   r   )rJ   s    rQ   test_naturals0rW   ;   sq    	A6M6Q;;Q=Azz"~~::c!f#a&!!4444rS   c                     [         R                  n SU ;   d   eSU ;   d   eSU ;  d   eU R                  [        5      (       a   eU R                  [        * 5      (       a   e[	        U 5      n[        U5      [        U5      [        U5      [        U5      4u  p#pEX#XE4S:X  d   e[        U[        5      (       d   eU R                  [        SS5      5      [        SS5      :X  d   eU R                  [        SSSS5      5      [        SS5      :X  d   eU R                  [        S[         R                  5      5      [        S[         R                  5      :X  d   eU R                  [        R                  " S[         R                  5      5      [        S[         R                  5      :X  d   eU R                  [        * L d   eU R                  [        L d   eU R                  U :X  d   eU R                   S:X  d   eU R"                  S:X  d   eU R%                  [&        5      [)        [+        [-        [&        5      [&        5      [        * [&        :  [&        [        :  5      :X  d   eg )	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7JA!!<=(((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                     [        [        S 5        [        [        [        S5      [
        R                  5      [        S5      :X  d   e[        [        [        [        5      [
        R                  5      [        1:X  d   e[        [        [        S5      [
        R                  5      [
        R                  :X  d   e[        [        [        S5      [        -  5      [
        R                  5      n [        [        [        [        S5      U 5      (       d   e[        [        [        [        S-  5      [
        R                  5      nSU;   d   eSU;  d   e[        [        S5      6 R!                  U5      [        SSS5      :X  d   eSUR!                  [#        S	S5      5      ;  d   e[%        U5      n['        U5      ['        U5      ['        U5      ['        U5      4u  p4pVX4XV4S
:X  d   e[        [        [        S[        -  5      [
        R                  5      n[)        SS5      U;   d   e[)        S5      U;   d   eUR+                  S5      [-        S[        [        [        S[        -  5      [
        R                  5      SS9:X  d   e[)        S5      U;  d   eSU;  d   eUR.                  (       d   e[1        [        [        * [#        S	S5      5      [#        SS	5      :X  d   e[        [        [        [        S-  5      [#        S	S5      5      R3                  5       [#        S	S5      :X  d   e[        [        [        [        4S[        -  5      S1S15      R3                  5       [        S5      :X  d   e[        [        [        [        4[        [        -   5      1 Sk1 Sk5      R3                  5       [        SSSSSSSSS5	      :X  d   e[#        SS5      [#        SS5      -  n[5        SS5      [        [        [        [        44[        S[        -  45      U5      ;   d   e[5        S[
        R6                  5      [        [        [        [        44[        S[        -  45      U5      ;   d   e[5        SS5      [        [        [        [        44[        [        S-  45      U5      ;  d   e[5        SS5      [        [        [        [        44[        S45      U5      ;   d   e[9        [#        SS 5      [#        SS5      [#        SS5      5      n[5        SSS5      [        [        [:        [        [        44[        [:        [        45      U5      ;   d   e[5        [)        SS5      SS5      [        [        [:        [        [        44S[        -  [:        [        45      U5      ;   d   eS[        -  [        [        [        [        44S[        -  5      U5      ;  d   eS[        S!5      -  [        [        [        [        44S[        -  5      U5      ;  d   e[)        SS5      [        [        [        [        44S[        -  5      U5      ;   d   e[1        S" [
        R                  [
        R                  5      n	U	R<                  [9        [
        R                  [
        R                  5      :X  d   eU	R>                  [
        R                  [
        R                  4:X  d   e[        [        [        [        [        S-  5      1 Sk5      (       d   e[        [        [        [        44[        [        -   5      SS#15      n
SU
R3                  5       ;   d   eU
RA                  S5      b   e[        [B        S$ 5        g )%Nc                  >    [        [        [        R                  5      $ N)r   r,   r   rZ    rS   rQ   <lambda>test_ImageSet.<locals>.<lambda>a   s    x1::6rS   r5   r6   r8   r2   
   	      r   )r5   r8   rg   rh   g      ?Fevaluateg333333?)r5   r6   rV   r7      >   r5   r6   r7   >   rf                                  !   r9      d   c                 
    X-   $ rb   rc   )r,   r-   s     rQ   rd   re      s    qurS   )r7   r8   c                  D    [        [        [        [        S-  5      S5      $ )Nr6   r5   r   r   r,   rc   rS   rQ   rd   re      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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7JA!!<=(((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            
          [        [        [        [        [	        [        5      5      [        S5      5      [        5      (       d   eg )Nr2   )r=   r   r,   r$   r&   r   r   rc   rS   rQ   test_image_is_ImageSetr      s*    hq$s1v,a98DDDDrS   c                  <   [        SSS9u  p[        X44U [        U5      -  U [        U5      -  45      n[	        U[        SS5      [        S[        5      -  5      nSU;   d   eSU;  d   eSU;   d   eUR                  U S45      b   eUR                  (       a   eg )	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*EAzAc"gIqRy12A!Xa^HQO;<JZ*$$$ZA'///%%%%%rS   c                      [        SSS9u  p[        X44U [        U5      -  U [        U5      -  45      n[	        U[        SS5      [        S[        5      -  5      nU S[        -  4U;  d   eg )Nr   Tr   r   r5   r6   )r   r   r%   r&   r   r
   r   r   s       rQ   test_halfcircle_failr      sh    JT*EAzAc"gIqRy12A!Xa^HQO;<Jqt9J&&&rS   c                      [        [        [        [        S-  -
  5      n [        U [        R                  5      n[        U5      n[        U5      [        U5      [        U5      [        U5      4S:X  d   eg )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                     [        [        S 5        [        S[        S5      R                  [
        R                  L d   e[        S[        * S5      R                  [
        R                  L d   e[        [        SS5      R                  [
        R                  L d   e[        [        * SS5      R                  [
        R                  L d   eg )Nc                  6    [        [        S[        S5      5      $ )Nr   r6   )lenr   r   rc   rS   rQ   rd   $test_inf_Range_len.<locals>.<lambda>   s    s5B?3rS   r   r6   rw   )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                  L  ^^^ [        S5      m[        S5      [        SS5      s=:X  a  [        SSS5      :X  d   e   e[        SSS5      n SU ;   d   eSU ;  d   eS	U ;  d   eS
U ;  d   e[        [        SS5      5      [        [        S5      5      :X  d   e[        [        SSS5      5      [        [        SSS5      5      :X  d   e[        SS5      R                  S:X  d   e[        SS5      R                  S:X  d   e[        SSS5      R                  S:X  d   e[        SSS5      R                  S:X  d   e[        SSS5      R                  S:X  d   e[        SSS5      R                  S:X  d   e[        [        SSS5      5      S:X  d   e[        SSS5      T:X  d   e[        [        [        S5      T:X  d   e[        [        SS5      T:X  d   e[        [        * SS5      T:X  d   e[        S[        S5      T:X  d   e[        S[        * S5      T:X  d   e[        SS[        5      T:X  d   e[        SSS9n[        SUS5      T:X  d   e[        SU* S5      T:X  d   e[        SS[        * 5      [        SS5      :X  d   e[        SS[        5      [        SS5      :X  d   e[        [        * [        5      R                  [        :X  d   e[        [        [        * S5      R                  [        :X  d   e[        [        S 5        [        [        S 5        [        [        S 5        S[        S[        S5      ;   d   eS[        [        * SS5      ;   d   e[        [        S[        5      ;  d   e[        SSS 9nU[        [        5      ;  d   e[        S!S S 9n[        [        5      R                  U5      SLd   e[        S"SS#9nU[        [        * [        5      ;  d   e[        [        S$ 5        [        [        S% 5        [        [        * SS5      S   [        R                  L d   e[        [        SS5      S   S:X  d   eU[        [        5      ;  d   e[        SSS5      S   S&:X  d   e[        S' [        SSS5       5       5      (       d   e[        [        [        * SS5      5      m[        [         U4S( j5        TR#                  [        R$                  5      T:X  d   e[        SSS5      R#                  [        R&                  5      [        SSS5      :X  d   e[        SSS5      R#                  [        R(                  5      [        SSS5      :X  d   e[        SSS5      R#                  [        R*                  5      [        SSS5      :X  d   e[        SSS5      R#                  [        R$                  5      [        SSS5      :X  d   e[        SSS5      R#                  [        R,                  5      [        SSS5      :X  d   e[        SSS5      R#                  [        R.                  5      [        SSS5      :X  d   e[        SSS5      S   S:X  d   e[        SSS5      S   S	:X  d   e[        SSS5      S   S&:X  d   e[        SSS5      S   S:X  d   e[        [        S) 5        [        [        S* 5        [        [        S+ 5        [        [        S, 5        [        [0        S- 5        [        [0        S. 5        [        [        S/ 5        [        S[        * S05      SSS2   T:X  d   e[        S[        * S05      S SS2   [        SS0S5      :X  d   e[        [        S1 5        [        [        * SS5      S S S02   [        S[        * S5      :X  d   e[        [        S2 5        [        [        SS05      S S  [        [        SS05      :X  d   e[        [        * SS5      S S0S02   [        SSS5      :X  d   e[        [        * SS5      S S0S2   [        [        * SS5      :X  d   e[        [        S3 5        [        [        S4 5        [        [        * SS5      S0S S02   [        S[        * S5      :X  d   e[        [        S5 5        [        [        S6 5        [        [        SS05      SS  [        [        SS05      :X  d   e[        [        S7 5        [        [        SS05      SS0 [        [        SS05      :X  d   e[        [        S8 5        [        [        S9 5        [        [        * SS5      S0S S2   [        SSS5      :X  d   e[        [        SS05      SSS2   T:X  d   e[        [        S: 5        [        [        S; 5        [        [        S< 5        [        [        SS05      SSS02   T:X  d   e[        [        SS05      S SS2   T:X  d   e[        [        S= 5        [        [2        [2        [4        5      T:X  d   eTR6                  T:X  d   eST;  d   e[        T5      / :X  d   e[        T5      S:X  d   eTR                  [        R                  L d   eTR#                  [9        S5      5      [        R:                  L d   e[=        T5      SL d   e[        [0        U4S> j5        TS S T:X  d   e[        [>        U4S? j5        [        [>        U4S@ j5        TRA                  [2        5      [        RB                  L d   eS /[        [        S5      5      -   n[        SS5      [        SSS5      4 H  n[        U5      n [D        RF                  " XU/ SAQ5       Hy  u  pxn	[        S5       Hd  n
[        [7        U 5      5      n UR6                  n[        XgX2   5      nXX2   nSBU< SCU< SDU< SDU	< SEU< SFU< 3nX:H  nU(       a  M_   U5       e   M{     M     [        SSS5      RH                  [        SSS5      :X  d   e[        SSS5      [        S[        S5      4 Hb  n U R6                  nU R                  UR                  :X  a  U R                  UR                  :X  d   eU RJ                  URJ                  * :X  a  Mb   e   [        m[        [         U4SG j5        [        T" S5      5      [        S5      :X  d   e[        T" SH5      5      [        SH5      :X  d   e[        SS5      RA                  [2        5      [2        S:  [2        S:*  -  [M        [O        [2        S5      S5      -  :X  d   e[        [        SS05      RA                  [2        5      [2        S:  [2        [        :  -  [M        [O        [2        S-   S05      S5      -  :X  d   eg )INr   r2   r5   rf   rl   r6   ro   rk   rn   rm   rV         r9   C   <   rx   &   r7   rY   ipTpositiver8   c                  .    [        [        * [        S5      $ Nr6   r   r   rc   rS   rQ   rd    test_Range_set.<locals>.<lambda>   s    ubS"a0rS   c                  4    [        [        [        [        5      $ rb   )r   r,   r   r-   rc   rS   rQ   rd   r      s    uQArS   c                  ,    [        [        [        S5      $ Nr   )r   r,   r-   rc   rS   rQ   rd   r      s    uQ1~rS   r3   rK   FintegerurB   infinitec                  *    [        S[        S5      S   $ )Nr   r6   rV   r   rc   rS   rQ   rd   r      s    uQAr2rS   c                  ,    [        S[        * S5      S   $ )Nr   rw   rV   r   rc   rS   rQ   rd   r      s    uQR04rS   rg   c              3   8   #    U  H  oR                   v   M     g 7frb   
is_Integer).0r   s     rQ   	<genexpr>!test_Range_set.<locals>.<genexpr>   s     5_||_s   c                     > [        T 5      $ rb   )r<   )its   rQ   rd   r     s	    d2hrS   c                  0    [        [        SS5      SSS2   $ )Nr   rV   r5   r7   r   rc   rS   rQ   rd   r     s    uR"~a!e4rS   c                  *    [        [        SS5      S S $ )Nr   rV   r5   r   rc   rS   rQ   rd   r     s    uR"~bq1rS   c                  (    [        S[        5      S   $ )Nr5   rw   r   rc   rS   rQ   rd   r     s    uQ|B/rS   c                  *    [        [        * S5      S   $ Nr5   r6   r   rc   rS   rQ   rd   r     s    ubS!}Q/rS   c                      [        S5      S   $ )Nrf   ir   rc   rS   rQ   rd   r     s    uRy~rS   c                      [        S5      S   $ )Nrf   rl   r   rc   rS   rQ   rd   r     s    uRy}rS   c                  2    [        S[        * S5      SSS2   $ Nr6   rw   r   r   rc   rS   rQ   rd   r     s    uQR01Q7rS   rw   c                  2    [        [        * SS5      S SS2   $ Nr8   r6   r   rc   rS   rQ   rd   r     s    ubS!Q/15rS   c                  2    [        [        * SS5      S S S2   $ r   r   rc   rS   rQ   rd   r     s    ubS!Q/!4rS   c                  2    [        [        * SS5      S SS2   $ Nr8   r6   r   rw   r   rc   rS   rQ   rd   r          ubS!Q/26rS   c                  2    [        [        * SS5      S SS2   $ )Nr8   r6   rw   r   rc   rS   rQ   rd   r   !  r   rS   c                  2    [        [        * SS5      SSS2   $ )Nr8   r6   rw   r   r   rc   rS   rQ   rd   r   #  s    ubS!Q/1R8rS   c                  2    [        [        * SS5      SS S2   $ )Nr8   r6   r   r   rc   rS   rQ   rd   r   $  s    ubS!Q/15rS   c                  2    [        [        * SS5      SSS2   $ r   r   rc   rS   rQ   rd   r   &  s    ubS!Q/"Q7rS   c                  *    [        [        SS5      SS $ r   r   rc   rS   rQ   rd   r   (  s    uRB/!5rS   c                  2    [        [        * SS5      SS S2   $ )Nr8   r6   rV   r   rc   rS   rQ   rd   r   )  s    ubS!Q/26rS   c                  *    [        [        SS5      S   $ Nr   rw   r   rc   rS   rQ   rd   r   ,  s    uRB/2rS   c                  0    [        [        SS5      SSS2   $ )Nr   rw   r   rf   r6   r   rc   rS   rQ   rd   r   -  s    uRB/Bq9rS   c                  0    [        [        SS5      SS S2   $ r   r   rc   rS   rQ   rd   r   .  s    uRB/26rS   c                  0    [        [        SS5      S SS2   $ )Nr   rw   r5   rV   r   rc   rS   rQ   rd   r   1  s    uRB/26rS   c                     > T S   $ r   rc   r   s   rQ   rd   r   <  s	    uQxrS   c                     > T R                   $ rb   rB   r   s   rQ   rd   r   >  	    		rS   c                     > T R                   $ rb   rC   r   s   rQ   rd   r   ?  r   rS   )rV   Nr5   r7   
[:z] = z -> c                  &   > [        T " S5      5      $ Nr5   r   )builtin_ranges   rQ   rd   r   \  s    eM!$45rS   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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 ((1EFGA! 8!%JJa!h!h1aFC)u!c!u $ G
  B?##uQA666Ar1ouQA/jjuuAEESWW$444vv#((""" 0
 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  ^^^^^^	^
 [        [        [        S-   S5      m
[        [        [        [        5      m	[	        SSS9m[	        SSSS9n [        U 5      m[        SU * S5      m[        TTS	-   S
5      n[        TTS-  ST-  5      m[	        SSS9m[        SSS9m[        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        T
R                  [        [        S-   S4:X  d   eT	R                  [        [        [        4:X  d   eUR                  TTS-   S
4:X  d   eTR                  TST-  ST-  4:X  d   e[        [        U
4S j5        [        [        U	4S j5        TR                  R                  U S-
  SS4:X  d   eTR                  R                  U * S-   SS4:X  d   eUR                  R                  TS-   TS
-
  S4:X  d   eTR                  R                  ST-  ST-  ST-  4:X  d   eTT	;  d   eTU;  d   eST;   d   eST;   d   e[        [        U4S j5        [        [        U4S j5        ST	;  d   eSU;  d   eTS-   U;  d   eTS
-   U;   d   e[        [        U
4S j5        [        [        U	4S  j5        [        [        U
4S! j5        [        [        U	4S" j5        [        [        U5      5      T:X  d   e[        [        T5      5      T:X  d   eT	R                  [        R                  5      T	:X  d   eT	R                  [!        [        5      5      [#        [        1T	5      :X  d   e[        [        U	4S# j5        [        [        U
4S$ j5        [        [        U	4S% j5        [%        U5      UR&                  s=:X  a  S:X  d   e   e[%        T5      TR&                  s=:X  a  S:X  d   e   e[        [        U
4S& j5        [        [        U
4S' j5        [        [        U	4S( j5        [        [        U	4S) j5        [)        [        S5      5      S*:X  d   e[)        T
5      (       d   e[)        U5      (       d   e[)        T5      (       d   e[)        T5      (       d   e[        [        U	4S+ j5        [        [        U4S, j5        [        [        U
4S- j5        [        [        U	4S. j5        TR*                  S:X  d   eTR*                  U * S-   :X  d   eUR*                  T:X  d   e[        [        U4S/ j5        [        [        U
4S0 j5        [        [        U	4S1 j5        TR,                  U S-
  :X  d   eTR,                  S:X  d   eUR*                  T:X  d   e[        [        U4S2 j5        [        [        U
4S3 j5        [        [        U	4S4 j5        [        [        U	4S5 j5        [        [        U	4S6 j5        US S
 [        TTS-   S
5      :X  d   eUS   T:X  d   eUS   TS7-   :X  d   eUS   TS-   :X  d   eTS S
 [        TST-  ST-  5      :X  d   eTS   T:X  d   eTS   ST-  :X  d   eTS   ST-  :X  d   e[        [        U4S8 j5        TS   TR*                  s=:X  a  S:X  d   e   eTS   TR,                  s=:X  a
  U S-
  :X  d   e   eTS   TR,                  s=:X  a  S:X  d   e   eTS   TR*                  s=:X  a  U * S-   :X  d   e   e[        [        U4S9 j5        UR*                  T:X  d   eUR,                  TS-   :X  d   e[        [        U4S: j5        UR/                  [        5      [        T:  [        TS-   :*  -  [1        [3        T* [        -   S
5      S5      -  :X  d   eTR/                  [        5      [1        [3        T* [        -   ST-  5      S5      [        T:  [        ST-  :*  -  ST-  S:  -  [        T:*  [        ST-  :  -  ST-  S:*  -  -  -  :X  d   e[        TTS-   5      R/                  [        5      [1        [        T5      :X  d   eT	R/                  [4        5      [1        [3        [        S5      S5      [1        [3        [        S5      S5      -  [1        [3        [        * [4        -   [        5      S5      -  [4        [        :  [4        [        * [        -   :*  -  [        S:  -  [4        [        :*  [4        [        * [        -   :  -  [        S:*  -  -  -  :X  d   eT
R/                  [4        5      [1        [4        [        5      [1        [3        [        S5      S5      -  :X  d   eT
R/                  [        5      [1        [3        [        S5      S5      :X  d   e[	        S;SSS<9n[	        S=SSS>9n[        S5      R7                  T5      [9        TS:  TS:*  5      :X  d   e[        S5      R7                  T5      [1        TS5      :X  d   e[        [:        * SS5      R7                  T5      TS:*  :X  d   e[        [:        * [:        5      R7                  T5      S:X  d   e[        SSS
5      R7                  T5      [=        T[        SSS
5      5      :X  d   e[        SSS
5      R7                  U5      [9        US:  US?:*  5      :X  d   e[        SSS
5      R7                  S
T-  5      [9        S
T-  S:  S
T-  S?:*  5      :X  d   e[        SSS
5      R7                  U5      S*:X  d   e[        SS@S
5      R7                  U5      S*:X  d   e[        SS@S
5      R7                  U5      [9        US:  US:*  5      :X  d   e[        SSS5      R7                  U5      S*:X  d   e[        S@SS5      R7                  U5      [9        US:  US@:*  5      :X  d   e[        [:        * SS
5      R7                  T5      [=        T[        [:        * SS
5      5      :X  d   eg )ANr8   r2   r   Tr   r   r   r   rV      r6   rk   r7   rB   r   c                     > [        T 5      $ rb   r   r   s   rQ   rd   %test_Range_symbolic.<locals>.<lambda>q  s	    uSzrS   c                     > [        T SS5      $ rU   r   r   s   rQ   rd   r
  r  s    uS!R0rS   c                     > [        T T S5      $ r   r   r   s   rQ   rd   r
  s  s    uS#q1rS   c                     > [        SST 5      $ r   r   r   s   rQ   rd   r
  t  s    uQ3/rS   rl   rf   c                     > T R                   $ rb   r   xrs   rQ   rd   r
  {  	    r{{rS   c                     > T R                   $ rb   r  srs   rQ   rd   r
  |  r  rS   r5      rw   rx   r   c                     > ST ;   $ r   rc   iprs   rQ   rd   r
    s	    a3hrS   c                     > ST ;   $ NrV   rc   )inrs   rQ   rd   r
    s	    bCirS   皙?c                     > [         T ;   $ rb   r,   r  s   rQ   rd   r
    s	    a2grS   c                     > ST ;   $ r   rc   r  s   rQ   rd   r
    s	    a2grS   c                  ,   > [        [        T 5      5      $ rb   r<   r;   r  s   rQ   rd   r
        tDH~rS   c                  ,   > [        [        T 5      5      $ rb   r"  r  s   rQ   rd   r
    r#  rS   c                     > T S S $ r   rc   r  s   rQ   rd   r
        r"1vrS   c                     > T S   $ r   rc   r  s   rQ   rd   r
    	    r!urS   c                     > T S   $ r   rc   r  s   rQ   rd   r
    r(  rS   c                     > [        T 5      $ rb   r   r  s   rQ   rd   r
    	    s2wrS   c                     > T R                   $ rb   r   r  s   rQ   rd   r
    	    rwwrS   c                     > [        T 5      $ rb   r+  r  s   rQ   rd   r
    r,  rS   c                     > T R                   $ rb   r.  r  s   rQ   rd   r
    r/  rS   Fc                     > [        T 5      $ rb   r   r  s   rQ   rd   r
    s	    tBxrS   c                     > [        T 5      $ rb   r3  ir2s   rQ   rd   r
    s	    tCyrS   c                     > T R                   $ rb   r   r  s   rQ   rd   r
    	    rvvrS   c                     > T R                   $ rb   r   r  s   rQ   rd   r
    r8  rS   c                     > T R                   $ rb   r   r5  s   rQ   rd   r
    	    swwrS   c                     > T R                   $ rb   r   r  s   rQ   rd   r
    r8  rS   c                     > T R                   $ rb   r   r  s   rQ   rd   r
    r8  rS   c                     > T R                   $ rb   r   r5  s   rQ   rd   r
    r;  rS   c                     > T S   $ r   rc   r  s   rQ   rd   r
    r(  rS   c                     > T S   $ r   rc   r  s   rQ   rd   r
    r(  rS   c                     > T S   $ r  rc   r  s   rQ   rd   r
    s	    r"vrS   c                     > T S S $ r   rc   r  s   rQ   rd   r
    r&  rS   rh   c                      > [        T 5      S   $ r  r   r   s   rQ   rd   r
    s    uQx|rS   c                     > T S   $ Nrw   rc   r  s   rQ   rd   r
    s	    s2wrS   c                  .   > [        T 5      R                  $ rb   )r   rB   rD  s   rQ   rd   r
    s    uQx||rS   e)r   eveno)r   oddr9   rg   )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   irrH  rJ  r   rB   r  r  r6  r  r  s       @@@@@@@rQ   test_Range_symbolicrN  e  s
   	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"""88O888O899999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                     [        S5      [        S5      [        R                  4[        S5      [        S[        5      [        R                  4[        S5      [        SS5      [        R                  4[        SS5      [        SS5      [        SS5      4[        SS5      [        SS5      [        SS5      4[        S[        S5      [        S[        S5      [        R                  4[        S[        S5      [        [        5      [        S[        S5      4[        S[        S5      [        S5      [        SSS5      4[        S[        S5      [        [        5      [        S[        S5      4[        S[        S5      [        S	S
5      [        R                  4[        SSS5      [        SSS5      [        SSS5      4[        SS
S5      [        [        * S	S5      [        R                  4[        S[        S5      [        S	[        S5      [        S[        S
5      4[        SS
S5      [        SSS5      [        R                  44 GH  u  pnU R	                  U5      U:X  d   eU R	                  UR
                  5      U:X  d   eU R
                  R	                  U5      U:X  d   eU R
                  R	                  UR
                  5      U:X  d   eXpU R	                  U5      U:X  d   eU R	                  UR
                  5      U:X  d   eU R
                  R	                  U5      U:X  d   eU R
                  R	                  UR
                  5      U:X  a  GM   e   g )Nr   r5   r7   r8   r   rV   r6   ry   r2   r9   P   7   G   rk   rh   rx   )r   r   r~   r   r>   r   )rL   rM   r   s      rQ   test_range_range_intersectionrS    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<a {{1~"""{{1::&!+++zz##A&!+++zz##AJJ/14441{{1~"""{{1::&!+++zz##A&!+++zz##AJJ/1444/<rS   c            	      F   [        SSS9n [        [        S5      R                  [	        X S-   5      5      [
        5      (       d   e[        S5      R                  [	        SS5      5      [        S5      :X  d   e[        S5      R                  [	        [        * [        5      5      [        S5      :X  d   e[        S5      R                  [	        S[        5      5      [        SS5      :X  d   e[        S5      R                  [	        S	[        5      5      [        SS5      :X  d   e[        S5      R                  [	        S
S5      5      [        SS5      :X  d   e[        S5      R                  [	        S
S5      5      [        SS5      :X  d   e[        S5      R                  [        R                  " SS5      5      [        SS5      :X  d   e[        S5      R                  [        R                  " S
S5      5      [        R                  L d   e[	        SS5      R                  [        R                  5      [	        SS5      :X  d   e[	        SS5      R                  [        R                  5      [	        SS5      :X  d   e[	        SS5      R                  [        R                  5      [        SS5      :X  d   e[	        SS5      R                  [        R                  5      [        SS5      :X  d   e[	        SS5      R                  [        R                  5      [        SS5      :X  d   e[        S5      R                  [	        SS5      5      [        R                  L d   e[        S5      R                  [	        [        * [        5      5      [        R                  L d   eg )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   )rU  s    rQ    test_range_interval_intersectionrX    s   d#AeAh((!U);<lK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                     [        SS5      R                  SL d   e[        S[        5      R                  SL d   e[        [        * S5      R                  SL d   e[        [        * [        5      R                  SL d   e[        [        [        * 5      R                  SL d   e[        SS5      R                  SL d   e[        [        [        5      R                  SL d   e[        [        * [        * 5      R                  SL d   e[        SSS	9n [        S
SS	9n[        X S-   5      R                  SL d   e[        U S5      R                  SL d   e[        SU S-   5      R                  SL d   e[        X5      R                  SL d   e[        X-   X-
  5      R                  SL d   e[        X U-   U -   5      R                  SL d   e[        U [        5      R                  SL d   e[        [        * U 5      R                  SL d   e[        U [        * 5      R                  SL d   e[        [        U 5      R                  SL d   eg )Nry   Tr6   F2   r   nr   m1   r   rx   )r   is_finite_setr   r   r\  r]  s     rQ   test_range_is_finite_setra    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F))T111A;$$,,,QU))T111;$$,,,,,444EAI,,444B<%%..."a=&&%///RC=&&$...Q<%%---rS   c                  V   [        SS5      R                  SL d   e[        S[        5      R                  SL d   e[        [        * S5      R                  SL d   e[        [        * [        5      R                  SL d   e[        [        [        * 5      R                  SL d   e[        SS5      R                  SL d   e[        [        [        5      R                  SL d   e[        [        * [        * 5      R                  SL d   e[        SSS	9n [        S
SS	9n[        SSSS9n[        X S-   5      R                  SL d   e[        U S5      R                  SL d   e[        SU S-   5      R                  SL d   e[        SUS-   5      R                  SL d   e[        X5      R                  SL d   e[        X-   X-
  5      R                  SL d   e[        X U-   U -   5      R                  SL d   e[        U [        5      R                  SL d   e[        [        * U 5      R                  SL d   e[        S5      n[        X3S-   5      R                  SL d   e[        US5      R                  SL d   e[        SUS-   5      R                  SL d   e[        X15      R                  SL d   e[        X1-   X-
  5      R                  SL d   e[        X3U-   U-   5      R                  SL d   e[        U[        5      R                  SL d   e[        [        * U5      R                  SL d   eg )NrZ  ry   Tr6   Fr[  r   r\  r   r]  rU  r  r^  r   rx   r,   )r   r   r   r   )r\  r]  rU  r,   s       rQ   test_Range_is_iterablerc  3  s   s''4///B<##u,,,"b>%%..."b>%%...bS>%%---A;""d***R=$$,,,"rc?&&$...sD!AsD!AsD40AF''4///A;""e+++QU''5000QU''5000;""e+++**e333EAI**e333B<##u,,,"a=$$---sAF''5000A;""e+++QU''5000;""e+++**e333EAI**e333B<##u,,,"a=$$---rS   c            
         [        [        [        S[        -  [        SS5      -   5      [        R
                  5      n [        [        [        S[        -  [        SS5      -   5      [        R
                  5      nX:X  d   e[        [        [        S[        -  [        SS5      -
  5      [        R
                  5      nX:X  d   e[        S5      n[        [        S[        -  U-   [        R
                  5      nUS-   U;   d   eSu  pEnU[        [        XF[        -  -   [        R
                  5      ;   d   eU[        [        XV[        -  -   [        R
                  5      ;   d   e[        S	S
S9nUS-  U-
  S-   n[        Xx[        R
                  5      R                  R                  US-  U-   S-   :X  d   eSU-  S-
  n[        Xx[        R
                  5      R                  R                  SU-  S-   :X  d   e[        [        [        S[        -  4[        R
                  5      [        [        [        [        S[        -  45      [        R
                  5      :X  d   eg )Nr6   r7   rx   rw   rn   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_imagesetrk  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::!GA!A!GQZZ0000A!GQZZ0000	t	$B	QaBBAJJ'--22b!ebj1nDDD	
2BBAJJ'--22adQh>>>A1Q3x,Aqs8$ajj12 2 2rS   c                  z   [        S5      u  pn[        [        U [        U-   -  U-   [        S5      5      [        [        U [        -  X-  -   U-   [        S5      5      :X  d   e[        S-   S-  n[        [        U[        S5      5      R                  R
                  U:X  d   eU [        U-   -  U-   n[        SSS5      n[        [        X45      nUR                  R
                  U:w  d   e[        U5      [        U5       Vs/ s H&  ocR                  [        U5      R                  5       PM(     sn:X  d   eg s  snf )Nza b cr7   r5   r6   r   rw   )	r   r   r,   r   rf  rg  r   subsexpand)rL   rM   rN   rj  r   imsetr   s          rQ   test_Range_eval_imagesetrp  j  s	   gGA!Aq!a%y1}eAh/AaC!#IM58,- - -
a%!BAr58$**//2555	
AEQBaRAQE;;r!!!;47C7a771a=//17CCCCCs   -D8c                      [        [        [        [        [	        [
        [        -  S-  5      5      [        SS5      5      6 [        S[        S5      * S-  S[        S5      S-  S5      :X  d   eg )Nr8   r   rn   rV   r6   r   r5   )r	   r   r   r,   r&   r   r   r$   rc   rS   rQ   test_funrr  w  sc    xq#bd1f+ 6c2 %b47(1*aaAFG H GrS   c                     [        SSS9n [        SSSS9n[        SSSS9n[        S5      R                  (       d   e[        S	5      R                  (       a   e[        S	S5      R                  (       d   e[        S
S5      R                  (       a   e[        U 5      R                  b   e[        U5      R                  (       d   e[        U5      R                  SL d   e[        US5      R                  SL d   e[        X5      R                  SL d   e[        X!5      R                  (       d   e[        US
5      R                  b   e[        X!S
5      R                  SL d   eg )Nr   Tr   r\  )re  r   rU  )r   r   r   r5   rV   F)r   r   is_empty)r   r\  rU  s      rQ   test_Range_is_emptyru  |  s2   sD!AsT40AsT40A8Qx    A;R|$$$$8$$$88%%%A;5(((;5(((;B<  (((r?##u,,,rS   c                     S[         R                  ;   d   e[         R                  [         R                  ;   d   e[        S5      * [         R                  ;   d   eS[         R                  ;  d   e[        S5      [         R                  ;  d   e[         R                  [	        [
        * [
        5      :X  d   e[         R                  [	        S[
        5      :w  d   e[         R                  R                  [	        [
        * [
        5      5      (       d   e[         R                  R                  [        [
        * [
        5      5      [        [
        * [
        5      :X  d   e[         R                  [         R                  ;  d   e[         R                  [         R                  ;  d   e[        [         R                  -   [         R                  ;  d   eg )Nr2   r6   )r6   r2   rV   r   )r   rG   Pir$   r
   r   rH   r>   r   ComplexInfinityNaNr,   rc   rS   rQ   
test_Realsrz    s5   <<44177??G8qww   8177"""77hsB''''77hq"o%%%77Xrc2.////77UB3^,rc2>>>AGG+++55q   ///rS   c                     S[         R                  ;   d   eSS[        -  -   [         R                  ;   d   e[         R                  [         R                  ;   d   e[	        S5      * [         R                  ;   d   e[        * [         R                  ;   d   e[	        S5      [         R                  ;   d   e[         R                  R                  [         R                  5      [         R                  :X  d   e[         R                  R                  [         R                  5      [         R                  :X  d   e[         R                  [        [         R                  [         R                  -  5      :X  d   e[         R                  [        [        SS5      [        SS5      -  5      :H  S:X  d   e[        [         R                  5      S:X  d   e[        [         R                  5      S:X  d   eg )	Nr2   r8   r6   rV   r5   r7   Fr   )r   r   r   rw  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                 @    [        [        R                  " X5      5      $ )z.Return first n items of the iterable as a list)r   r   islice)r\  iterables     rQ   taker    s    	  -..rS   c                     [         R                  R                  [         R                  5      [         R                  :X  d   eS[         R                  R                  [         R                  5      ;   d   eS[         R                  R                  [         R                  5      ;   d   eS[         R                  R                  [         R                  5      ;  d   eS[         R                  R                  [         R                  5      ;  d   eS[         R                  R                  [        S[        5      5      ;   d   eS[         R                  R                  [        [        * S5      5      ;   d   e[        S [        S[         R                  R                  [        S[        5      5      5       5       5      (       d   eg )Nr2   r3   r4   r7   c              3   :   #    U  H  nUR                   v   M     g 7frb   r   )r   r,   s     rQ   r   %test_intersections.<locals>.<genexpr>  s      GE ||Es   rf   )	r   rZ   r>   rG   r:   r
   r   r   r  rc   rS   rQ   test_intersectionsr    s:   ::(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 GrS   c            	         SSK Jn Jn  [        [	        X 5      [
        R                  5      [        [	        X5      [
        R                  5      :X  d   e[        [	        U SU -  5      [
        R                  5      R                  [        [	        USU-  S-   5      [
        R                  5      5      [
        R                  L d   e[        [	        U SU -  5      [
        R                  5      R                  [        [	        U SU -  S-   5      [
        R                  5      5      [
        R                  L d   e[        [	        USU-  5      [
        R                  5      R                  [        [	        U SU -  5      [
        R                  5      5      R                  [        [	        [        S[        -  5      [
        R                  5      5      (       d   e[        [        [        S-  [        SS5      -   [
        R                  5      R                  [
        R                  5      [
        R                  L d   e[        [        [        S-  [
        R                  -   [
        R                  5      R                  [
        R                  5      [
        R                  L d   e[        [	        U SU -  S-   5      [
        R                  5      nUR                  [
        R                  5      U:X  d   eg )Nr   r`  r6   r5   r7   r9   r2   )	sympy.abcr\  r]  r   r   r   rZ   r>   r~   dummy_eqr   r.   r,   r   r   )r\  r]  S53s      rQ   test_infinitely_indexed_set_1r    s   F1L!**-&,

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                  z   SSK Jn   [        SSS9n[        [	        X 5      [
        R                  5      [        [	        X U-   5      [
        R                  5      :X  d   e[        [	        X [        -   5      [
        R                  5      [        [	        X U-   [        -   5      [
        R                  5      :X  d   e[        [	        X 5      [
        R                  5      [        [	        X * U-   5      [
        R                  5      :X  d   e[        [	        U SU -  5      [
        R                  5      [        [	        U SU -  5      [
        R                  5      :X  d   e[        [	        U SU -  [        -   5      [
        R                  5      [        [	        U SU -  [        -   S-
  5      [
        R                  5      :X  d   eg )	Nr   r\  rL   Tr   ir9   r6   )	r  r\  r   r   r   r   rZ   r   r   )r\  rL   s     rQ   test_infinitely_indexed_set_2r    sP   sD!AF1L!**-q5!1::./ / /F1"f%qzz2q52:&

34 4 4F1L!**-26"AJJ/0 0 0F1bdOQZZ01Q3,- - -F1acBh'41Q38a<(!**56 6 6rS   c                     SSK Jn   [        [        X U S-
  U S-   -  [        -  -   5      [
        R                  5      R                  [
        R                  5      [        SS5      :X  d   eU S-
  U [
        R                  -   -  n[        [        X U[        -  -   5      [
        R                  5      R                  [
        R                  5      [        S5      :X  d   e[        [        X XS-   -  [        -  -   5      [
        R                  5      R                  [
        R                  5      [        S5      :X  d   e[        [        X S-  UR                  5       [        -  -   5      [
        R                  5      R                  [
        R                  5      [        [        [        [        S-  5      [        U [!        U S-  U S-  -
  [        S5      S-  -
  S5      [
        R                  5      5      :X  d   e[        [        X SU -  S-
  -  XS-   -  [        -  -   5      [
        R                  5      R                  [
        R                  5      [        [
        R                  5      :X  d   e[        [        X U S-
  -  U S-
  U S-   -  [        -  SU -  S-   -  -   5      [
        R                  5      R                  [
        R                  5      [        S5      :X  d   e[        [        X U S-  S-
  -  U S-
  U S-   -  [        -  SU -  S-   -  -   5      [
        R                  5      R                  [
        R                  5      [
        R"                  L d   e[        [        U [        * [        S[$        -  U -  [$        S	-  -
  -  ['        [)        [+        [        * 5      5      5      -   -  5      [
        R                  5      nUR                  [
        R                  5      [        [        U SU -  [$        -  [$        S	-  -
  5      [
        R                  5      s=:X  aG  [        [        U S[$        -  U -  [$        [-        S
S	5      -  -   5      [
        R                  5      :X  d   e   eg )Nr   r  r5   rV   r6   r9   r7   rg   r8   rx   )r  r\  r   r   r   r   rZ   r>   rG   r	   r   rE   rn  r   r,   r   r   r~   r   r"   r    r$   r   )r\  rh  rP   s      rQ   test_imageset_intersect_realr    s   F11q51q5/!"334ajjAKKAGGTXabdfgXhhhh
a%!aff*	BF1"Q$h' 

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

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

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

)AGG
	!&& 12 2 2F1Qi	
QQ1Q37#$ %&'jj22;)	3bM" " " F1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                  ,   SSK Jn   [        [        X [        -  5      [
        R                  5      n[        [        U SU -  5      [        S[        5      5      n[        [        U SU -  [        -  [        S-  -   5      [
        R                  5      n[        [        X [        -  [        -  5      [
        R                  5      n[        [        U S[        -  U -  [        -  [        S-  -   5      [
        R                  5      n[        [        U [        U 5      5      [
        R                  5      n[        [        X S-  5      [
        R                  5      n[        [        U [        U 5      5      [
        R                  5      n[        [        U [        U 5      5      [
        R                  5      n	UR                  [        SS5      5      [        S5      :X  d   eUR                  [        SS[        -  SS5      5      [        S[        5      :X  d   eUR                  [        SS5      5      [        SS5      :X  d   eUR                  [        SS5      5      [
        R                  :X  d   eUR                  [        SS	5      5      [        [        [!        S
S5      -  [        S-  5      :X  d   eUR                  [        SS5      5      [        S5      :X  d   eUR                  [        SS5      5      [
        R                  :X  d   eUR                  [        SS5      5      [
        R                  :X  d   eUR                  [        SS5      5      [        [
        R"                  [        S5      5      :X  d   eUR                  [        SS5      5      [%        U[        SS5      5      :X  d   eUR                  [        SS5      5      [%        U[        SS5      5      :X  d   eU	R                  [        SS5      5      [%        U	[        SS5      5      :X  d   eg )Nr   r  r6   rV   r5   FTr3   r2   r   rf   )r  r\  r   r   r   r   rZ   r
   r   r"   r    r!   rE   r>   r	   r~   r   r   r   )
r\  f1f2f3f4f5f6f7f8f9s
             rQ    test_imageset_intersect_intervalr     s   	&bD/1::	.B	&AaC.(1b/	2B	&AaCFRTM*AJJ	7B	&aCF#QZZ	0B	&AaCE"Hr!tO,ajj	9B	&CF#QZZ	0B	&qD/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                     SSK Jn Jn  [        [	        USU-  S-   5      [
        R                  5      n[        [	        USU-  S-   5      [
        R                  5      nUR                  U5      U:X  d   e[        [	        USU-  5      [
        R                  5      R                  [        [	        USU-  S-   5      [
        R                  5      5      [
        R                  :X  d   e[        [	        USU-  SU-  S-  -   5      [
        R                  5      R                  [
        R                  5      [        S	S
SS5      :X  d   e[        [	        XS-
  S-  5      [
        R                  5      R                  [        [	        XS-
  S-  * 5      [
        R                  5      5      [        S5      :X  d   e[        [	        XS-  S-   5      [
        R                  5      R                  [        [	        U SU -  5      [
        R                  5      5      R                  [        [	        USUS-  -  SU-  -   S-   5      [
        R                  5      5      (       d   e[        [	        XS-  S-
  5      [
        R                  5      R                  [        [	        X S-  * 5      [
        R                  5      5      [        SS5      :X  d   e[        [	        X S-  S-   5      [
        R                  5      R                  [        [	        USU-  5      [
        R                  5      5      R                  [        [        [	        X S-  S-   5      [
        R                  5      [        [	        USU-  5      [
        R                  5      5      5      (       d   e[        [	        XS-  S-
  5      [
        R                  5      R                  [        [	        X S-  * S-   5      [
        R                  5      5      [        SS5      :X  d   e[        [	        U[        S-  US-  [        -  S-  -   5      [
        R                  5      R                  [        [	        US[        -  S-  US-  [        -  S-  -   5      [
        R                  5      5      R                  [        [	        US[        -  U-  S-  S[        -  S-  -   5      [
        R                  5      5      (       d   e[        [	        X[        S5      -  5      [
        R                  5      R                  [
        R                  5      R                  [        [        [	        X[        S5      -  5      [
        R                  5      [
        R                  5      5      (       d   e[        [	        XS-  S-   5      [
        R                  5      R                  [        [	        XS-  5      [
        R                  5      5      R                  [        [        [	        XS-  S-   5      [
        R                  5      [        [	        XS-  5      [
        R                  5      5      5      (       d   eg )Nr   r]  r\  r6   r5   r8   rg   rl   r7   iirs   =   r2   r9   i(   )   rh   Q   A   ro   rx   rn   rQ     )r  r]  r\  r   r   r   rZ   r>   r~   r	   r  r   r   r"   rF   )r]  r\  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 F11uqj)1::6@@VAQ
{+QZZ8:=Fq\J J J F1dQh'4>>VAqs^QZZ022:(81a1fqslQ&'<5 366 6 6 F1dQh'4>>VA1u%qzz247@Q7GH H H F1dRi(!**5??VAr!t_ajj133;8LVA!tby)1::6VAr!t_ajj1=3 444 4 4
 F1dTk*AJJ7AAVA1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:: : : F1Ah'4AA	

H\(qCF(QZZ+)*+**6 77 7 7 F1dQh'4>>VA!t_ajj133;8LVA!tax(!**5VA!t_ajj1=3 444 4 4rS   c            	         SSK Jn Jn  [        [	        US[
        -  U-  5      [        R                  5      R                  [        [	        U S[
        -  U -  5      [        R                  5      5      R                  [        [	        [        S[
        -  [        -  5      [        R                  5      5      (       d   e[        [	        U SU -  S-   5      [        R                  5      [        [	        U SU -  S-
  5      [        R                  5      :X  d   e[        [	        U SU -  S-   5      [        R                  5      [        [	        U SU -  S-
  5      [        R                  5      :X  d   eg )Nr   r`  r6   r7   r9   r5   )r  r\  r]  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                     SSK Jn Jn  [        [	        X 5      [
        R                  5      [
        R                  :X  d   e[        [	        U [        U 5      5      [        [	        U[        U5      5      [
        R                  5      5      [        [	        U[        [        U5      5      5      [
        R                  5      :X  d   e[        U SSU -  -   [
        R                  5      [        S[        S5      :X  d   e[        U SSU -  -   [
        R                  5      [        S[        S5      :X  d   e[        U SSU -  -
  [
        R                  5      [        S[        * S5      :X  d   eg )Nr   r`  r5   r6   r7   rV   rw   )r  r\  r]  r   r   r   rZ   r&   r'   r:   r   r   rE   r`  s     rQ   test_ImageSet_simplificationr  S  s   F1L!**-;;;F1c!f%VAs1v.

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

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

+uR"b/AAAArS   c                  ,   S[         R                  4[        [        [        S[        -  4[         R                  5      ;   d   e[        [        [        [
        S-  -   [         R                  5      R                  [         R                  5      [         R                  L d   e[        SS9n [        [        [        [
        [        -  -   [         R                  5      R                  [         R                  5      nUR                  [        [
        U -  5      R                  [         R                  5      [         R                  L d   e[        [        [        [
        [        -  [        -  -   [         R                  5      R                  [         R                  5      nUR                  [        S5      [         R                  L d   eUR                  [        [
        U -  [        -  5      R                  [         R                  5      [         R                  L d   e[        S5      S-  [        S5      S-  -   S-
  n[        [        [        [
        U-  -   [         R                  5      R                  [         R                  5      nU[         R                  Ld   eg )Nr6   r5   r7   Tr   r   )r   r   r   r,   rZ   r   rF   rG   r~   r   r-   rm  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                    ^
^ [        SSS9n [        SS5      n[        SS5      n[        SS	5      n[        X-  5      n[        [        X-  X1-  5      5      nS
S[        -  -   U;   d   eSS[        -  -   U;   d   eSS[        -  -   U;   d   eSS
[        -  -   U;   d   eS
S[        -  -   U;  d   eSS[        -  -   U;  d   eUR                  [        5      [        [        USS9:X  d   eUR                  U 5      S:X  d   eUR                  [        5      [        [        USS9:X  d   eUR                  U 5      S:X  d   e[        SS5      m
[        SS[        R                  -  5      m[        T
T-  SS9nS[        S-  S-  -   U;   d   e[        R                  [        S-  S-  -   U;   d   e[        R                  S[        -  -   U;   d   eSS[        -  -   U;   d   e[        U;   d   eSU;   d   eSU;   d   eS[        -   U;  d   eS[        -
  U;  d   eUR                  [        5      [        [        USS9:X  d   eUR                  U S[        -  -   5      [        U S[        -  -   USS9:X  d   eUR                  SSU S-  -   -  5      [        SSU S-  -   -  USS9:X  d   e[        SS5      n[        [        S[        -  SS9n[        Xx-  SS9n	U	R                  S5      S:X  d   eU	R                  S[        -   5      S:X  d   eU	R                  S[        -   5      S:X  d   eU	R                  S[        -
  5      S:X  d   eU	R                  S[        -
  5      S:X  d   eU	R                  S5      S:X  d   eU	R                  S5      S:X  d   eU	R                  [        5      [        [        U	SS9:X  d   eU	R                  SSU S-  -   -  5      [        SSU S-  -   -  U	SS9:X  d   e[        [        U
U4S j5        g )Nr   Tr   r6   r7   r8   r9   rx   rg   g      @g      @rk   gffffff@g	@Fri   r   r5   polarrV  rf   g333333?)	left_openrw   c                     > [        T T-  SS9$ )Nr6   r  )r   )r1theta1s   rQ   rd   -test_ComplexRegion_contains.<locals>.<lambda>  s    }RYa@rS   )r   r
   r   r   r   rD   r,   r   r   rw  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	qs	B	uQS!#	'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	ry	-B;;q>T!!!;;q1u&&&;;rAv%''';;rAv$&&&;;q1u%%%;;r?e###;;q>T!!!;;q>Xae<<<<;;q!ad(|$	1q!t8b5)* * * * :@ArS   c                    ^ [        S5      m[        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        SSS9m[        [        U4S j5        [        [        U4S	 j5        [	        TTS
-   5      S   T:X  d   e[        [        U4S j5        [	        TTS
-   5      R
                  S
:X  d   e[        SSSS9m[        [        U4S j5        [        [        U4S j5        [	        TS
-   5      S   S:X  d   e[	        TTS
-   5      S   T:X  d   e[	        T5      R
                  T:X  d   e[	        TS
-   5      R
                  TS
-   :X  d   e[	        TTS
-   5      R
                  S
:X  d   e[        SSSS9m[	        T5      S   S:X  d   e[	        TTS
-   5      S   T:X  d   e[	        T5      R
                  T:X  d   e[	        TTS
-   5      R
                  S
:X  d   e[        SSSS9n [	        TTU -   5      S   T:X  d   e[	        TTU -   5      R
                  U :X  d   e[	        TTS
-   5      R
                  S
:X  d   e[	        TTU -   S5      R
                  [        U S-  5      :X  d   e[        SSSSS9n [	        TTU -   S5      R
                  U S-  :X  d   eg )Nr\  c                      > [        T 5      S   $ r   r   r  s   rQ   rd   %test_symbolic_Range.<locals>.<lambda>      uQx{rS   c                  "   > [        T T 5      S   $ r   r   r  s   rQ   rd   r        uQ{1~rS   c                  (   > [        T T S-   5      S   $ )Nr5   r   r   r  s   rQ   rd   r    s    uQ!}Q/rS   c                  .   > [        T 5      R                  $ rb   r   r   r  s   rQ   rd   r        uQx}}rS   Tr   c                      > [        T 5      S   $ r   r   r  s   rQ   rd   r    r  rS   c                  "   > [        T T 5      S   $ r   r   r  s   rQ   rd   r    r  rS   r5   r   c                  .   > [        T 5      R                  $ rb   r  r  s   rQ   rd   r    r  rS   )r   nonnegativec                      > [        T 5      S   $ r   r   r  s   rQ   rd   r    r  rS   c                  "   > [        T T 5      S   $ r   r   r  s   rQ   rd   r    r  rS   r  r]  r6   )r   r   rI  )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                     ^  [        SSS9m [        [        U 4S j5        [        SSSS9m [        S [	        T 5      5      [        S [	        T 5      5      :X  d   eg )Nr\  Tr   c                  0   > [        S [        T 5      5      $ )Nc                     U S-  $ r   rc   r  s    rQ   rd   4test_issue_18400.<locals>.<lambda>.<locals>.<lambda>  s    !A#rS   )r   r   r  s   rQ   rd   "test_issue_18400.<locals>.<lambda>  s    xuQx@rS   r  c                     U S-  $ r   rc   r  s    rQ   rd   r    s    acrS   c                     U S-  $ r   rc   r  s    rQ   rd   r    s    1Q3rS   )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                  l
   [        [        S[        5      [        S[        R
                  5      -  SS9n [        [        SS5      [        SS[        R
                  -  5      -  SS9n[        [        SS5      [        S[        R
                  5      -  SS9n[        [        S[        5      [        S[        R
                  5      -  SS9n[        [        S[        5      [        [        R
                  S[        R
                  -  5      -  SS9n[        [        S[        5      [        [        R
                  * S-  [        R
                  S-  5      -  SS9n[        [        S[        5      [        S[        R
                  S-  5      -  SS9nUR                  U5      U:X  d   eUR                  U5      U:X  d   eUR                  U5      U:X  d   eUR                  U5      U :X  d   e[        [        SS5      [        SS[        R
                  -  5      -  SS9nUR                  [        SS5      5      [        SS5      :X  d   eUR                  [        SS5      5      [        S5      :X  d   eUR                  [        SS	5      5      [        R                  L d   e[        [        [        * [        5      [        S5      -  5      n [        [        S
S5      [        S
S5      -  5      n[        [        S
S5      [        SS5      -  5      n	[        [        [        * [        5      [        S[        5      -  5      n
[        [        [        * [        5      [        [        * S5      -  5      n[        [        S[        5      [        [        * [        5      -  5      n[        [        S[        5      [        S[        5      -  5      nU
R                  U5      U	:X  d   eUR                  U5      U:X  d   eU
R                  U5      U:X  d   eU
R                  U5      U :X  d   e[        [        SS5      [        SS5      -  5      nUR                  [        SS5      5      [        SS5      :X  d   eUR                  [        SS5      5      [        S5      :X  d   eUR                  [        SS5      5      [        R                  L d   e[        [        SS5      [        SS[        R
                  -  5      -  SS9n[        [        S
S5      [        S
S5      -  5      nUR                  U5      [        XSS9:X  d   eg )Nr   Tr  r5   r6   r8   r2   rg   ro   rV   r3   r   rf   rx   r9   Fri   )	r   r
   r   r	   r   rw  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<<|BUCCCCrS   c            
      2   [        [        SS5      [        SS[        R                  -  5      -  SS9n [        [        SS5      [        S[        R                  5      -  SS9n[        [        S[        5      [        S[        R                  5      -  SS9n[        [        S[        5      [        [        R                  S[        R                  -  5      -  SS9n[        [        SS5      [        SS[        R                  -  5      -  [        SS5      [        S[        R                  5      -  5      n[        [        S[        5      [        S[        R                  5      -  [        S[        5      [        [        R                  S[        R                  -  5      -  5      nU R                  U5      [        USS9:X  d   eUR                  U5      [        USS9:X  d   e[        [        SS5      [        SS5      -  5      n[        [        S	S5      [        S
S5      -  5      n[        [        SS
5      [        SS5      -  5      n[        [        SS5      [        SS5      -  5      n	[        [        SS5      [        SS5      -  [        S	S5      [        S
S5      -  5      n
[        [        SS
5      [        SS5      -  [        SS5      [        SS5      -  5      nUR                  U5      [        U
5      :X  d   eUR                  U	5      [        U5      :X  d   eU R                  [        SS	5      5      [        U [        SS	5      SS9:X  d   eUR                  [        SS	5      5      [        U[         R                  " [        SS	5      5      5      :X  d   eg )Nr   r5   r6   Tr  r2   r9   rg   r8   rf   ro   r   rh   r   rl   Fri   )r   r
   r   rw  r   r   r|  	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                    ^  [        [        SS5      [        SS[        R                  -  5      -  SS9m [	        [
        U 4S j5        T R                  [        SS5      5      [        [        SS5      [        S5      -  S5      :X  d   eg )	Nr   r5   r6   Tr  c                  &   > T R                  T 5      $ rb   )r  r  s   rQ   rd   .test_ComplexRegion_from_real.<locals>.<lambda>"  s    r||B/rS   rV   F)r   r
   r   rw  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                  >   [        SS5      [        SS5      p[        SS[        R                  -  5      [        S[        R                  5      p2[        X-  5      n[        [	        X-  X-  5      SS9nUR
                  S:X  d   eUR
                  S	[        -  :X  d   eg )
Nr6   r2   r8   rk   r   Tr  ro   rg   )r
   r   rw  r   r   measurer   )rL   rM   r  r  r  r  s         rQ   test_ComplexRegion_measurer  &  s    Aq>8Aq>qa144((1add*;F	qs	B	uQXqx0	=B::::2rS   c                  v   [        [        [        S[        -  5      5      [        [	        S5      [        R
                  " [        S[        -  5      5      :X  d   e[        [        [        [        SS5      -  S[        -  5      5      [        [        S-  [        5      :X  d   e[        [        [        [        SS5      -  [        S-  5      5      [        R
                  " SS[        -  5      :X  d   e[        [        R                  " [        [        SS5      -  [        S-  5      5      [        [        R
                  " S[        S-  5      [        R                  " [        S-  S[        -  5      5      :X  d   e[        [        R                  " [        [        SS5      -  [        [        SS5      -  5      5      [        [        R
                  " S[        S-  5      [        R                  " [        S-  S[        -  5      5      :X  d   e[        [        [        * S-  [        S-  5      5      [        [        S[        S-  5      [        R
                  " [        [        SS5      -  S[        -  5      5      :X  d   e[        [        R                  " [        * S-  [        S-  5      5      [        [        R
                  " S[        S-  5      [        R                  " [        [        SS5      -  S[        -  5      5      :X  d   e[        [        S[        -  S[        -  5      5      [        R
                  " SS[        -  5      :X  d   e[        [        [        [        SS5      -  [        * S-  5      5      [        [        S-  [        [        SS5      -  5      :X  d   e[        [        R                  " SS[        -  5      5      [        R                  " SS[        -  5      :X  d   e[        [        R
                  " [        * S-  [        S-  5      5      [        [        R
                  " S[        S-  5      [        R
                  " [        [        SS5      -  S[        -  5      5      :X  d   e[        [        R                  " [        * S-  [        S-  5      5      [        [        S[        S-  5      [        R                  " [        [        SS5      -  S[        -  5      5      :X  d   e[        [        [        * S-  [        S-  5      5      [        [        S[        S-  5      [        R
                  " [        [        SS5      -  S[        -  5      5      :X  d   e[        [        R                  " S	[        -  [        [        SS5      -  5      5      [        R                  " S[        S-  5      :X  d   e[        [        R                  " S	[        -  [        [        SS5      -  5      5      [        R                  " S[        S-  5      :X  d   e[        [        R
                  " S	[        -  [        [        SS5      -  5      5      [        R
                  " S[        S-  5      :X  d   e[        [        R                  " S[        -  S[        -  5      5      [        [        R
                  " S[        5      [        R                  " [        S[        -  5      5      :X  d   e[        [	        S[        S[        -  5      5      [	        S[        5      :X  d   e[        [	        S[        S-  [        S[        -  5      5      [	        S[        S-  [        5      :X  d   e[        [	        S[        * S-  [        * S
[        -  5      5      [	        S[        [        [        SS5      -  5      :X  d   e[        [	        [        [        SS5      -  [        S-  5      5      [	        [        S-  5      :X  d   e[        [	        S[        -  5      5      [	        S5      :X  d   e[        [        [        S[        S-  5      [        [        S-  [        5      5      5      [        [        S[        S-  5      [        [        S-  [        5      5      :X  d   e[        [        [        S[        5      [        S[        -  [        [        SS5      -  5      5      5      [        S[        5      :X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        g )Nr6   r   rg   r2   r   ir7   rY   r8   rw   rx   c                  4    [        [        R                  5      $ rb   )r   r   r   rc   rS   rQ   rd   *test_normalize_theta_set.<locals>.<lambda>\  s    21;;?rS   c                  ,    [        [        SS5      5      $ )Nr   r5   )r   r
   rc   rS   rQ   rd   r  _  s    (;HQN(KrS   c                  :    [        [        SS[        -  5      5      $ r   r   r
   r   rc   rS   rQ   rd   r  b  s    (;HQ"<M(NrS   c                  :    [        [        S[        -  S5      5      $ )Nr6   rf   r  rc   rS   rQ   rd   r  c  s    (;HQrT2<N(OrS   c                  <    [        [        SSS[        -  5      5      $ )Nr   r7   )r   r	   r   rc   rS   rQ   rd   r  d  s    (;IaAbD<Q(RrS   )r   r
   r   r   r	   Ropenr   rW  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                     [        S5      u  pp#pE[        [        X4U5      [        XU5      -  5      [        U[        U -  -   U[        U-  -   U[        U-  -   U[        U -  -   U[        U-  -   U[        U-  -   U[        U -  -   U[        U-  -   U[        U-  -   5	      :X  d   e[        [        S5      [        S5      -  5      [        SS[        -  -   5      :X  d   eg )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    }-A! 1+IaA,>>?!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                      [         R                  R                  [        SS5      5      [         R                  :X  d   e[         R                  R                  [         R                  5      [         R                  :X  d   eg r   )r   r   r|  r
   rZ   rc   rS   rQ   test_union_RealSubSetr  q  sN    KKx1~.!++===KKqzz*akk999rS   c                     S n U " [        SS5      5      R                  [        [        5      L d   eU " [	        SS5      5      R                  [        [        5      L d   e[
        R                  R                  [        [        5      L d   e[
        R                  R                  [        [        5      L d   e[
        R                  R                  [        [        5      L d   e[        S5      R                  [        [        5      L d   e[        SS5      n[        SS5      n[        X-  5      nUR                  [        [        [        [        5      5      L d   eg )Nc                  D    [        [        [        [        S-  5      /U Q76 $ r   r|   )rL  s    rQ   rd   'test_SetKind_fancySet.<locals>.<lambda>w  s    hvaa0848rS   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	qs	B77gi
J?@@@@rS   c                     [        [        SS5      [        SS5      -  5      n [        [        SS5      [        SS5      -  5      n[        X5      n[        U5      [        [        [        SS5      [        SS5      -  [        SS5      [        SS5      -  5      S5      :X  d   eU R                  " U R
                  6 U :X  d   eUR                  " UR
                  6 U:X  d   eg )Nr5   r6   r7   r2   F)r   r
   r   r   funcrL  )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77BGG"""66166?arS   c                     [        SS5      n [        SSSS5      n[        SS5      nU [        R                  ;   S:X  d   eU [        R
                  ;   S:X  d   eU [        R                  ;   S:X  d   eU [        R                  ;   S:X  d   eU[        R                  ;   S:X  d   eU[        R
                  ;   S:X  d   eU[        R                  ;   S:X  d   eU[        R                  ;   S:X  d   eU[        R                  ;   S:X  d   eU[        R
                  ;   S:X  d   eU[        R                  ;   S:X  d   eU[        R                  ;   S:X  d   eg )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                     [        SS5      n [        U S-  5      n[        [        R                  [        [        5      5      [        R                  :w  d   e[        [        R                  [        [        S5      5      5      [        R                  :w  d   e[        X5      U:X  d   e[        [        R                  U5      U :X  d   eg )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???&((((D000rS   c                     [        SS5      n [        SS5      n[        X-  5      n[        U[        R                  5      U:X  d   e[        X 5      [        S5      :X  d   e[        S[        R                  5      n[        [        R                  5      n[        [        R                  S-  S[        R                  -  S-  5      n[        X-  SS9n[        X-  SS9n[        X-  SS9n[        U[        R                  5      [        SS5      :X  d   e[        U[        R                  5      [        SS5      :X  d   e[        U[        R                  5      [        S5      :X  d   eg )	Nr   r5   r6   r8   r7   Tr  rV   )r
   r   r   r   rG   r	   rw  )	r  ivalcr1arg1arg2arg3cp1cp2cp3s	            rQ   test_issue_11938r#    s   Aq>DAq>D

$CQWW%---"il222AqttDQTT?DADD1Ha!$$hl+D
4
0C
4
0C
4
0CQWW%"a888QWW%"a888QWW%1555rS   c                  >   [        SS5      [        S[        5      p[        SS5      [        [        S[        -  S-  5      p2[        X-  SS9n[        X#-  SS9nSUR                  U5      ;   d   eSUR                  U5      ;   d   eSUR                  U5      ;  d   eg )	Nr   r5   r6   r7   Tr  r   r3   )r
   r   r   r|  )rL   rM   rN   rO   r   r!  s         rQ   test_issue_11914r%    s    Aq>8Ar?qAq>8BB
3q
T
*C
T
*C33SYYs^###rS   c                      [        [        [        [        S-  5      [        R                  5      R                  [        R                  5      (       d   eg r   )r   r   r,   r   r:   rH   rG   rc   rS   rQ   test_issue_9543r'    s2    F1adOQZZ0::177CCCCrS   c                     [        [        [        [        5      [        S5      5      S1:X  d   e[        [        [        [        S-
  5      [        R
                  5      R                  [        R
                  5      [        R
                  L d   eg )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                      [        [        [        [        S-
  5      [        R                  5      R                  [        R                  5      (       d   eg )Nr7   )r   r   r,   r   rZ   rH   rc   rS   rQ   test_issue_16871br+    s3    F1a!e$ajj1;;AJJGGGGrS   c            	         [        [        [        [        [        -  S-   5      [        R
                  5      [        [        [        [        [        -  S-   5      [        R
                  5      :X  d   e[        [        [        S[        -  [        -  S-   S[        -  -   5      [        R
                  5      [        [        [        S[        -  [        -  S-   S[        -  -   5      [        R
                  5      :X  d   e[        [        [        S[        -  S[        -  -   5      [        R
                  5      [        [        [        S[        -  S[        -  -   5      [        R
                  5      :X  d   e[        SSS9n [        [        [        U [        -  S	-   5      [        R
                  5      [        [        [        U [        -  S	-   5      [        R
                  5      :X  d   e[        [        [        S[        -  S-   S
[        -  -   5      [        R
                  5      [        [        [        S[        -  S-   S
[        -  -   5      [        R
                  5      :X  d   eg )Nr5   r7   r8   rk   r6   r   Tr   rf   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                  
   [         R                  R                  [         R                  5      (       d   e[         R                  R                  [         R                  5      (       d   e[         R
                  R                  [         R                  5      (       d   e[         R                  R                  [         R                  5      (       d   e[         R                  R                  [        * L d   e[         R                  R                  [        L d   e[        [         R                  5      n [        S5       Vs/ s H  n[        U 5      PM     snSSS[         R                  S[        SS5      S[        SS5      S[        SS5      S[        SS5      /:X  d   e[        5       [         R                  ;  d   e[         R                  [         R                  ;   d   e[         R                  R!                  S	5      [#        S	[         R                  S
S9:X  d   eS[         R                  ;   d   e[%        SSS9nU[         R                  ;   d   e['        [(        S 5        [         R                  R*                  [         R                  :X  d   e[         R                  R,                  [         R                  :X  d   e[         R                  R.                  S
:X  d   e[         R                  R0                  S
:X  d   eg s  snf )Nro   r   r5   rV   r6   rw   r7   r   rV  Fri   r   T)rationalc                  0    [         [        R                  ;   $ rb   )r,   r   r   rc   rS   rQ   rd    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_Rationalsr4    s)   ::,,,,::,,,,;;  ----;;  ))));;??rc!!!;;??b   	akk	B#Bi(iDHi(	1b!&&!Xb!_bA8B?BA-@ @ @ @ 7!++%%%66Q[[   ;;$Q[[5)* * * *d#A
9./;;177***;;!'')));;%''';;  E))) )s   >L c                    ^ [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4mU4S jT 5       n [        S U  5       5      (       d   eg )Nc              3   N   >#    U  H  nT  H  n[        X5      v   M     M     g 7frb   )r   )r   rL   rM   nbrsetss      rQ   r   $test_NZQRC_unions.<locals>.<genexpr>	  s     <7aGqeAkkGk7s   "%c              3   <   #    U  H  oR                   S L v   M     g7f)FN)is_Union)r   r   s     rQ   r   r8  
  s     3FqzzU"Fs   )r   r:   rE   rZ   r   rG   r   r   )unionsr7  s    @rQ   test_NZQRC_unionsr<    sQ    zz1;;

AKK	G<7<F3F33333rS   c                     [        5       n [        [        U [        * [        S[        -  U -  [        S-  -
  -  [        [        [        [        * 5      5      5      -   -  5      [        R                  5      nUR                  [        R                  5      [        [        U S[        -  U -  [        [        SS5      -  -   5      [        R                  5      :X  d   eg )Nr6   r8   rx   )r   r   r   r   r   r"   r    r$   r   rZ   r>   rG   r   )r\  rP   s     rQ   test_imageset_intersectionr>    s    AA2q!B$q&2a4-0CaRM   jj	*A;;qww8q!B$q&2hq!n,,-qzz$; ; ; ;rS   c                      S[        [        * [        5      ;   d   eS[        [        [        * S5      ;   d   e[        [        [        * [        5      ;  d   e[        * [        [        * [        5      ;  d   eg )Nr5   r   rV   r   rc   rS   rQ   test_issue_17858r@    s_    rc2b2#r""""UB3^###3eRCn$$$rS   c                     ^  [        [        * [        5      m [        [        U 4S j5        [        [        U 4S j5        [        [        [        * S5      m [        [        U 4S j5        [        [        U 4S j5        g )Nc                     > T S S S2   $ r   rc   r-  s   rQ   rd   "test_issue_17859.<locals>.<lambda>      a!frS   c                     > T S S S2   $ rF  rc   r-  s   rQ   rd   rC        q2wrS   rV   c                     > T S S S2   $ r   rc   r-  s   rQ   rd   rC     rD  rS   c                     > T S S S2   $ rF  rc   r-  s   rQ   rd   rC  !  rF  rS   )r   r   r+   r}   r-  s   @rQ   test_issue_17859rI    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  rN  rS  rX  ra  rc  rk  rp  rr  ru  rz  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.  r4  r<  r>  r@  rI  rc   rS   rQ   <module>ra     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   