
    \h                       S SK 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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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K%J&r&J'r'  S SK(J)r)  S SK*J+r+  S SK,J-r-  S SK.J/r/  S SK0J1r1J2r2  S SK3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrDJErEJFrFJGrGJHrH  S SKIJJrJJKrKJLrL  S SKMJNrNJOrOJPrP  S SKQJRrR  S SKSJTrTJUrUJVrVJWrWJXrX  \R                  rYS rZS r[S r\S r]S  r^S! r_S" r`S# raS$ rbS% rcS& rdS' reS( rfS) rgS* rhS+ riS, rjS- rkS. rlS/ rmS0 rnS1 roS2 rpS3 rqS4 rrS5 rsS6 rtS7 ruS8 rvS9 rwS: rxS; ryS< rzS= r{S> r|S? r}S@ r~SA rSB rSC rSD rSE r\OSF 5       rSG rSH rSI rSJ rSK rSL rSM rSN rSO rSP rSQ r\OSR 5       rSS rST rSU rSV rSW rSX r\OSY 5       rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc rSd rSe rSf rSg rSh rSi rSj rSk rSl rSm rSn rSo rSp rSq rSr rSs rSt rSu rSv r\OSw 5       rSx rSy rSz rS{ rS| rS} rS~ rS rS rS rS rS rS rS rS rS rS r\OS 5       rS rS rS rS rg)    )SumAdd)	TupleKind)Lambda)
NumberKindUndefinedKind)FloatIRationalnanoopizoo)PowS)Symbolsymbols)sympify)MaxMinsqrt)	Piecewise)cossin)falsetrue)
MatrixKind)Matrix)rootof)Contains)ImageSetRange)
ComplementDisjointUnion	FiniteSetIntersectionInterval
ProductSetSetSymmetricDifferenceUnionimagesetSetKind)mpi)	unchanged)EqNeLeLtLessThan)AndOrXor)raisesXFAILwarns_deprecated_sympy)cartes)xyzmnc            
      	  ^^ [         R                  m[        [        [        S-
  [         R                  5      [         R
                  L d   e[        [        [        S-   [         R
                  5      [         R                  L d   e[        [        [        [        5      [         R
                  5      [         R
                  L d   e[        [        [        [        5      [         R                  5      [         R                  L d   e[        [        [        [        5      [         R                  5      [         R
                  L d   e[        SSS9n [        [        [        [        4[         R                  5      R                  SU 45      S :X  d   e[        [        [        [        4[         R                  5      R                  S5      S:X  d   eX 4[        [        [        [        4[         R                  5      ;   d   eS[        -   [        [        [        [        -   [         R                  5      ;   d   eS1[        [        [        4[         R                  5      ;  d   eS[        [        [        4[         R                  5      ;  d   e[        [        U4S j5        [        [        U4S	 j5        [        [        S
 5        S[        [        [        [        4[        [        45      TT5      ;   d   e[        [        U4S j5        [        [         T5      [#        [        [        [!        [        5      5      T5      :X  d   eS n[        UT5      [        [        [!        [        5      T5      :X  d   eS n[        UT5      [#        [        [        [!        [        5      5      T5      :X  d   e[        [        ST5      [%        S5      :X  d   e[        [        [        T5      [        1:X  d   e[        [        [        4S[&        4T[         R                  5      S[&        41:X  d   e[)        S[*        S9m[-        [        U4S j[/        SS5      5      R0                  R2                  5      S;   d   e[        S5      u  p#[        S [/        SS5      [/        SS5      5      R5                  [#        [        X#4X#-   5      [/        SS5      [/        SS5      5      5      (       d   eg )N   rTrealrD      FrD   rD   c                  $   > [        [        T 5      $ N)r.   r>   intss   R/var/www/auris/envauris/lib/python3.13/site-packages/sympy/sets/tests/test_sets.py<lambda>test_imageset.<locals>.<lambda>0   s    hq$/    c                  8   > [        [        [        [        T 5      $ rL   )r.   r>   r?   r@   rM   s   rO   rP   rQ   1   s    x1a6rR   c                  X    [        [        [        [        [        5      5      [        5      $ rL   )r.   r   r>   r   r?    rR   rO   rP   rQ   2   s    xq#a&(91=rR   c                  B   > [        [        [        [        5      T T 5      $ rL   )r.   r   r>   rM   s   rO   rP   rQ   4   s    xq!dDArR   c                     [        U 5      $ rL   r   r>   s    rO   ftest_imageset.<locals>.f6   s    1vrR   c                     [        U 5      $ rL   rX   rY   s    rO   rP   rQ   9   s    #a&rR   r>   integerc                    > U T-   $ rL   rU   )r>   clashs    rO   rP   rQ   ?   s	    1u9rR   )zx0 + xzx + x0zx1, x2c                     [        X5      $ rL   r   r>   r?   s     rO   rP   rQ   B   s	    A	rR   rI      )r   Integersr.   r>   Naturals	Naturals0absr   Reals	_containsr   r:   	TypeError
ValueErrorr   r?   r   r#   r'   r@   r   r   strr)   lamdaexprdummy_eq)rE   rZ   x1x2r`   rN   s       @@rO   test_imagesetrs   !   ss   ::DAq1uajj)Q[[888Aq1uakk*ajj888As1vq{{+q{{:::As1vqzz*ajj888As1vqzz*akk999$AA1vqww'111a&9TAAAA1vqww'11&9UBBB6Xa!Q1111q5HQAqww////3hq1$0000!aT1773333
9/0
:67
:=>XfaVaV4dDAAAA
:ABC(6!SV+<d"CCCCAtCFD 9999AAt3q6):D AAAAAq$9Q<///Aq$A3&&&QFQFD!''21vh>>>3%E,hr1o>DDIIJ  !  XFB Aq>8Aq>33;8"'*AA	(4)) ) )rR   c                  *   [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H  n U R                  SL a  M   e   [         R                  R                  SL d   eg )NFT)	r   rf   rg   re   	Rationalsri   UniversalSetis_emptyEmptySetss    rO   test_is_emptyr{   H   s`    jj!++qzz1;;NNzzU""" ::$&&&rR   c                     [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H  n U R                  SL a  M   e   [         R                  R                  SL d   e[        SS5      R                  SL d   e[        SS5      R                  SL d   e[        [        [        5      R                  b   e[        [        S5      [        S5      5      R                  SL d   e[        [        S5      [        SS5      5      R                  SL d   e[        [        S5      [        [        [        5      5      R                  b   e[        [        SS5      [        SS5      5      R                  SL d   e[        [        S5      [        SS5      5      R                  SL d   e[        [        S5      [        S5      5      R                  SL d   e[        [        S5      [        [        [        5      5      R                  b   e[        [        [        [        5      [        S5      5      R                  SL d   e[        [        [        [        5      [        SS5      5      R                  b   e[        [        [        5      [        [        5      5      R                  SL d   e[!        [        S5      [        [        [        5      5      R                  SL d   e[!        [        [        [        5      [        S5      5      R                  b   e[!        [        SS5      [        [        5      5      R                  SL d   e[#        [        SS5      [        [        [        5      5      R                  SL d   e[#        [         R                  [        [        [        5      [         R                  5      R                  SL d   eg )NFTrD   rI   r   rd   )r   rf   rg   re   ru   ri   rv   is_finite_setrx   r'   r)   r>   r?   r*   r-   r(   r%   r&   ry   s    rO   test_is_finitesetr   P   s   jj!++qzz1;;NN%''' ::##t+++Q?((D000Aq>''5000Aq>''///ilIaL1??4GGGilHQN3AAUJJJilHQN3AAIII!Q!Q0>>%GGG1x1~.<<EEE1y|,::dBBB1x1~.<<DDDA	!5CCtKKKAA7EEMMM	!il3AATIIIilHQN3AATIIIhq!nil3AAIIIhq!nil3AAUJJJ"a)Aq/:HHEQQQYq!_ajjAOOSWWWWrR   c                      [        5          [        R                  R                    S S S 5        [        5          [	        S5      R                    S S S 5        g ! , (       d  f       N7= f! , (       d  f       g = fNrD   )r<   r   rx   is_EmptySetr'   rU   rR   rO   test_deprecated_is_EmptySetr   k   sI    		!	

 
" 
 	!!   
"	! 
"	! 
"	!s   AA(
A%(
A6c                     [        S[        5      [        S[        SS5      :X  d   e[        S[        5      R                  [        L d   e[        [        * S5      [        [        * SSS5      :X  d   e[        [        * S5      R                  [        L d   e[        [        [        * 5      [
        R                  :X  d   e[        [        [        5      [
        R                  :X  d   e[        [        * [        * 5      [
        R                  :X  d   e[        [        [        5      [
        R                  :X  d   e[        [        [        5      [
        R                  :X  d   e[        [        [        * 5      [
        R                  :X  d   e[        [        [        5      [        1:X  d   e[        [        SS5      [        5      (       d   e[        [        [        SS45      n [        [        X 5      [        5      (       d   e[        SS5      [
        R                  :X  d   e[        SS5      R                  S:X  d   e[        SSSS5      [
        R                  :X  d   e[        SSSS5      [
        R                  :X  d   e[        SSSS5      [
        R                  :X  d   e[        [        S[        S5      5      [         5      (       d   e[        [        SSS9S5      [
        R                  :X  d   e[        [        S 5        [        [        S	 5        [        [        S
 5        [        [        S 5        [        [        S 5        [        [        S 5        g )Nr   FTrD   rd   apositivec                  6    [        S[        R                  5      $ Nr   )r)   r   ImaginaryUnitrU   rR   rO   rP   )test_interval_arguments.<locals>.<lambda>   s    x1??;rR   c                  *    [        S[        SSS95      $ )Nr   r@   Fextended_real)r)   r   rU   rR   rO   rP   r      s    x6#U+KLrR   c                  L    [        [        [        [        R                  -   5      $ rL   )r)   r>   r   r   rU   rR   rO   rP   r      s    x1q+>?rR   c                  @    [        SS[        [        [        5      5      $ Nr   rD   r)   r7   r>   r?   rU   rR   rO   rP   r      s    As1ay(ArR   c            	      B    [        SSS[        [        [        5      5      $ Nr   rD   Fr   rU   rR   rO   rP   r      s    Auc!Qi(HrR   c            	      J    [        SS[        [        [        [        5      5      $ r   )r)   r@   r7   r>   r?   rU   rR   rO   rP   r      s    Aq#a)(DrR   )r)   r   
right_openr   	left_openr   rx   r>   
isinstancer'   r   measurer   r:   rl   NotImplementedError)es    rO   test_interval_argumentsr   s   s   Ar?hq"eT::::Ar?%%---RCxQe<<<<RC%%---B

***Bqzz)))RC"+++B?ajj(((Bqzz)))Asqzz)))Aq>aS   hq!ni0000A1ayAhqni0000Aq>QZZ'''Aq>!!Q&&&Aq%&!**444Aq$&!**444Aq$%333 hq&+.9999F3.2ajj@@@
:;<
:LM
:?@
 AB
 HI
 DErR   c                  V   [        SSS9n [        [        SU 5      [        SS5      5      R                  [	        U S5      :X  d   e[        [        U S5      [        SS5      5      R
                  [        SU 5      :X  d   e[        SU 5      R                  S5      [        SU 5      :X  d   eg )Nr   TrF   r   rd   rD   )	r   r-   r)   supr   infr   containsr6   r   s    rO   !test_interval_symbolic_end_pointsr      s    sA!Q!Q044Aq	AAA!Q"a155RCCCAq>""1%!Q777rR   c                     [        S5      u  p[        SSS9n[        SSS9n[        SSS9n[        S	SS
9n[        SS5      R                  S:X  d   e[        SS5      R                  S:X  d   e[        X"5      R                  S:X  d   e[        X"U-   5      R                  S:X  d   e[        X 5      R                  S:X  d   e[        S[        5      R                  S:X  d   e[        [        * [        5      R                  S:X  d   e[        [        * S5      R                  S:X  d   e[        X5      R                  S :X  d   e[        U[        5      R                  S:X  d   e[        US5      R                  S:X  d   e[        USSS9R                  S:X  d   e[        US5      R                  S:X  d   e[        US5      R                  S :X  d   e[        XC5      R                  S:X  d   e[        SUSS9R                  S:X  d   e[        SUSS9R                  S:X  d   e[        SUSS9R                  S :X  d   e[        SUSS9R                  S :X  d   eg )Nzx, yrE   TrF   pr   rB   )negativenn)nonnegativerD   rI   Frd   r   r   r   )r   r   r)   rw   r   )r>   r?   rE   r   rB   r   s         rO   test_interval_is_emptyr      s;   6?DAsAsT"AsT"A	$	'BAq>""e+++Aq>""e+++A>""e+++A2v''5000A>""e+++Ar?##u,,,RC%%...RC$$---A>""d***Ar?##u,,,Aq>""e+++AqD)22e;;;Aq>""d***B?##t+++A>""e+++AqD)22e;;;AqT*33u<<<ArT*33t;;;Ard+44<<<rR   c            
         [        [        SS5      [        SS5      5      [        SS5      :X  d   e[        [        SS5      [        SSS5      5      [        SS5      :X  d   e[        [        SS5      [        SS5      5      [        SS5      :X  d   e[        [        SS5      [        SS5      5      [        SS5      :X  d   e[        [        SS5      [        SS5      5      [        SS5      :X  d   e[        [        SSSS5      [        SS5      5      [        SSSS5      :X  d   e[        [        SS5      [        SSSS5      5      [        SS5      :X  d   e[        [        SSS5      [        SS5      5      [        SS5      :X  d   e[        [        SSS5      [        SSS5      5      [        SSS5      :X  d   e[        [        SSS5      [        SSSS5      5      [        SSSS5      :X  d   e[        [        SSSS5      [        SSS5      5      [        SSS5      :X  d   e[        [        SS5      [        SS5      5      [        SS5      :X  d   e[        [        SSSS5      [        SS5      5      [        SS5      :X  d   e[        [        SSSS5      [        SSS5      5      [        SS5      :w  d   e[        [        SS5      [        R                  5      [        SS5      :X  d   e[        [        R                  5      [        R                  :X  d   e[        [        SS5      /[	        SS5       V s/ s H  n [        S	U -  5      PM     sn Q76 [        SS5      :X  d   e[        S
5      n[        [        SS5      [        SU5      5      [        [        SS5      [        U5      5      :X  d   e[        [         [        SS5      [        SU5      5      (       d   e[        SS5      R                  [        SS5      5      [        SS5      [        SS5      -   :X  d   e[        SS5      R                  [        SS5      5      [        SS5      :X  d   e[        [        5       5      [        5       :X  d   e[        S5      [        S5      -   [        S5      -   [        SSS5      :X  d   e[        S5      [        S5      -   [        SS5      :X  d   e[        SSS5      [        R                  -   [        SSS5      :X  d   e[        SSS5      [        SSS5      -  [        SS5      :X  d   e[        SSS5      [        SSS5      -  [        SSSS5      :X  d   e[        SSS5      [        R                  -  [        R                  :X  d   e[        SSS5      [        R                  -  [        SSS5      :X  d   e[        S
5      n[        S5      n[        S5      n[        R                  [        U[        X#5      5      -  [        U[        X#5      5      :X  d   e[        SS5      [        S5      -   [        SS5      :X  d   e[        SSSS5      [        S5      -   [        SSSS5      :X  d   e[        SS5      [        S5      -   n[        SS5      [        S5      -   nUR                  U5      nSU;   a  SU;   a  SU;   d   eUR                  U5      (       a  UR                  U5      (       d   e[        [        S 5        UR                  SL d   e[        [        R                  [        [        [         * 5      * [        [         * 5      5      5      [        [        [         * 5      * [        [         * 5      5      :X  d   e[        [        R"                  [        R$                  5      [        R"                  :X  d   eg s  sn f )NrD   rI   rd   T   Fr   
         ?r>   hameggsr?   r@      c                      [        SSS5      $ )NrD   rI   rd   r-   rU   rR   rO   rP   test_union.<locals>.<lambda>   s    eAq!nrR   )r-   r)   r   rx   ranger'   r   r1   unionr+   	intersect	is_subsetr:   rk   is_iterabler   r   ri   re   )rB   r>   r?   r@   XYXandYs          rO   
test_unionr      s   !Q!Q0HQNBBB!Q!Q!56(1a.HHH!Q!Q0HQNBBB!Q!Q0HQNBBB!Q!Q0HQNBBB!Qt,hq!n=Aud#$ $ $!Q!Qt!<=!QOOO!Q%x1~6(1a.HHH!Q%x1d';<At  !Q%x1dD'ABAtT"# # #!Qd+XaD-ABAt  !Q!Q0HQNBBB!Qt,hq!n=A  !Qt,hq!T.BCA  !Q,A>>>

***!QKU1b\"J\9SU#3\"JKA   	sA!Q1a1UA	!6& & & &UHQNIaO<<<<Aq>A/A!Q'( ( ( Aq>A/8Aq>AAA<35   Q<)A,&151a9KKKKUi//9UF3KKKKQ1

*i1a.@@@@Q1	!Q 22i1oEEEQ1	!Q 22i1a6KKKKQ1

*ajj888Q1

*i1a.@@@@sAsAsA::	!Yq_55!Yq_%& & & Aq>IaL(HQN:::Aq$%	!4AtU#$ $ $A1%AA1%AKKNE6a1fe++??1%//!"4"444
9,-==E!!! YaRy$r(;<48)T1"X&' ' ' !**%000c #Ks   :_
c                  x    [        [        S5      [        S5      [        S5      SS9n [        U 5      / SQ:X  d   eg )Nrd   r   r   Fevaluate)r   r   r   rD   rD   rD   rI   rI   rI   rd   rd   r   )r-   r$   list)us    rO   test_union_iterr     s3    eAha%(U;A 7::::rR   c                      [        [        [        5      [        S5      -   R                  S:X  d   e[        [        [        5      [        [        * [        5      -   R                  S :X  d   eg )NrD   F)r)   r>   r?   r'   rw   rU   rR   rO   test_union_is_emptyr     sL    QNYq\)33u<<<QNXqb!_,66$>>>rR   c            
      B   [        SS5      [        SS5      -
  [        SSS5      :X  d   e[        SS5      [        SS5      -
  [        SSSS5      :X  d   e[        SSS5      [        SS5      -
  [        SSSS5      :X  d   e[        SSS5      [        SSS5      -
  [        SSSS5      :X  d   e[        SS5      [        S5      -
  [        [        SSSS5      [        SSSS5      5      :X  d   e[        R                  [        [
        5      -
  [        R                  :X  d   e[        R                  [        [
        * [
        5      -
  [        R                  :X  d   e[        SS5      [        [
        * [
        5      -
  [        SS5      :X  d   e[        SS5      [        S[
        5      -
  [        [         R                  " SS5      [         R                  " SS5      5      :X  d   e[        R                  [        SS[
        -   [        [        S-  5      -
  [        [        [         R                  " [        * S5      [         R                  " S[        5      5      [        [        [        S-  5      SS9:X  d   e[        SSS5      [        S5      -
  [        SS5      :X  d   e[        S	S
5      [        S
5      -
  [        S	5      :X  d   e[        SSSS5      [        SSSS5      -
  [        SS5      :X  d   e[        SSSS5      [        R                  -
  [        SSSS5      :X  d   e[        [        SS5      [        SSS5      5      [        SS5      -
  [        [        SSSS5      [        S5      5      :X  d   eS[        R                  [        R                  -
  ;   d   eg )NrD   rd   rI   TFr   r   r   r   r   r   )r)   r'   r-   r   ri   r   RopenLopenr>   r?   r%   openr   rx   rf   rU   rR   rO   test_differencer     s-   Aq>HQN*hq!T.BBBBAq>HQN*hq!UD.IIIIAq$(1a.0HQ44NNNNAq$(1a"66AtU#$ $ $Aq>IaL(hq!UD)8Aq$+FGH H H 77Yq\!QWW,,,77Yr1%%000Ar?Yr1--!R@@@Ar?Yq!_,q!hnnQ315 5 5 577Yq!a%AqD11ZhmmRC#X]]1b%9:IaA<N6    Q1	!,	!Q???UF#i&779U;KKKKQ1a 8Ar4#??!Q  Q1a 1::-1aA1FFFF!Q1a!34x1~Ehq!UD)9Q<89 9 9 1::%%%%rR   c            
       	  ^^ [        SSS5      m[        SS5      n [        SS5      m[        SS5      n[        TU SS9R                  SL d   e[        TTSS9R                  SL d   e[        TUSS9R                  b   e[        [        TU SS96 [        S5      :X  d   e[        [        TTSS96 [        S5      :X  d   e[	        [
        UU4S j5        [        [        SS5      [        SS5      5      [        SSS5      :X  d   e[        [        SSS5      [        SS5      5      [        S5      :X  d   e[        [        [        S	S5      [        SSS5      5      [        SS5      5      [        [        S	SSS5      [        S5      5      :X  d   eS[        [        S	S
5      [        SS5      SS9;  d   eS[        [        R                  [        R                  SS9;   d   eS[        [        R                  [        R                  SS9;  d   e[        [        R                  [        R                  5      [        :X  d   e[        R                  R                  [        R                  5      [        :X  d   eS	[        R                  R                  [        R                  [        S	5      -
  5      ;  d   e[        R                  [        R                  -
  [        R                  :X  d   e[        R                  [        S	5      -
  [        S5      -
  [        R                  [        S	S5      -
  :X  d   e[        R                  [        [        R                  [        [        5      5      -
  [!        [        R                  [        R                  -
  [        R                  [        [        5      -
  5      :X  d   e[        [        ["        [$        S5      [        SS5      5      [        [        ["        [$        5      [        SS5      5      :X  d   e[        ['        S5      6 m[        ['        S5      6 n [)        [        [+        TT5      U 5      (       d   e[+        TT5      n[+        X U 5      nX#-
  U:X  d   eX2-
  U:X  d   eg )NrD   rd   r   rI   Fr   Tc                  &   > [        [        TT SS96 $ NFr   )r'   r%   ACs   rO   rP   !test_Complement.<locals>.<lambda>>  s    iAq5)IJrR   r   r   r   r   za:czd:f)r'   r)   r%   r   r:   rk   r-   r   ri   rf   re   rv   rx   
complementr   r   r(   r>   r?   r   r1   r*   )BDA2B3r   r   s       @@rO   test_Complementr   2  s   !QA!QAAAAAaU+774???aU+774???aU+77???jA679Q<GGGjA679Q<GGG
9JKhq!nhq!n5!Q9MMMMi1a()Aq/:ilJJJeHQNIaA,>?q!n&hq!UD)9Q<89 9 9 Jx1~x1~NNNNAGGQZZ%@@@@Jqww

UCCCCajj!..1X===>>$$QZZ0H<<<QWW&&qzzIaL'@AABA::

"ajj000JJ1%15iPQSTo9UUUU77U1::y}551::-qww2/FGH H H i1a((3*;<yAb(9:; ; ; 	75>"A75>"AZAq!115555	Aq	B	A!	B7b==7b==rR   c            
      D  ^^^ S S S S S S S S /n [        [        5      n[        [        5      nS	1[        S	5      [        S	S
5      [	        U[        S	S
5      5      [        X5      [        X5      [        X5      [        R                  /nSS	S
[        S5      [        S	5      [        S
5      /nU Hi  mU H8  mU  H/  m[        [        UUU4S j5        [        [        UUU4S j5        M1     M:     [        [        U4S j5        [        [        U4S j5        Mk     g)z1Tests that e.g. FiniteSet(1) * 2 raises TypeErrorc                 
    X-   $ rL   rU   r   bs     rO   rP   -test_set_operations_nonsets.<locals>.<lambda>f      QUrR   c                 
    X-
  $ rL   rU   r   s     rO   rP   r   g  r   rR   c                 
    X-  $ rL   rU   r   s     rO   rP   r   h  r   rR   c                 
    X-  $ rL   rU   r   s     rO   rP   r   i  r   rR   c                 
    X-  $ rL   rU   r   s     rO   rP   r   j  s    QVrR   c                 
    X-  $ rL   rU   r   s     rO   rP   r   k  r   rR   c                 
    X-  $ rL   rU   r   s     rO   rP   r   l  r   rR   c                 
    X-  $ rL   rU   r   s     rO   rP   r   m  r   rR   rD   rI   r   c                     > T" TT 5      $ rL   rU   niopsis   rO   rP   r         2b":rR   c                     > T" T T5      $ rL   rU   r   s   rO   rP   r     r   rR   c                     > T [        5       -  $ rL   )objectr   s   rO   rP   r     s    ".rR   c                     > T S1-  $ r   rU   r   s   rO   rP   r     s    ")rR   N)r'   r>   r?   r)   r-   r(   r%   r*   r   rx   r:   rk   )opsSxSysetsnumsr   r   r   s        @@@rO   test_set_operations_nonsetsr   c  s     	C 
1B	1B	
!Ab(1a.!R22	

	D q!QqT1Q41&DBy"56y"56   	y01y+, rR   c                    ^ ^ [        SS1S15      S1:X  d   e[        SS5      R                  [        R                  5      [        [        [        * SSS5      [        S[        SS5      5      :X  d   e[        SSSS5      R                  [        R                  5      [        [        [        * SSS5      [        S[        SS5      5      :X  d   e[        SSSS5      R                  [        R                  5      [        [        [        * SSS5      [        S[        SS5      5      :X  d   e[        SSSS5      R                  [        R                  5      [        [        [        * SSS5      [        S[        SS5      5      :X  d   e[        R                  R                  [        R                  5      [        R                  :X  d   e[        R                  R                  [        R                  5      [        R                  :X  d   e[        R                  R                  [        R                  5      [        R                  :X  d   e[        R                  R                  [        R                  5      [        R                  :X  d   e[        [        SS5      [        SS5      5      R                  [        R                  5      [        [        [        * SSS5      [        SSSS5      [        S[        SS5      5      :X  d   e[        S5      R                  [        R                  5      [        [        [        * SSS5      [        S[        SS5      5      :X  d   e[        S5      [        [        R                  S5      -   R                  [        R                  5      [        SSSS5      [        S[        R                  SS5      -   :X  d   e[        SSS5      R                  [        R                  5      [        [        R                  SSS5      [        SSSS5      -   [        SSSS5      -   [        S[        R                  SS5      -   :X  d   e[        [        5      R                  [        R                  5      [        [        R                  [        [        5      5      :X  d   e[        S[        5      R                  [        R                  5      [        [        [        * SSS5      [        S[        SS5      -   [        [        5      SS9:X  d   e[        SS5      [        SS5      -  mTR                  [        R                  [        R                  -  5      m [        U4S	 jS
 5       5      (       d   e[        U 4S jS
 5       5      (       a   e[        U4S jS 5       5      (       a   e[        U 4S jS 5       5      (       d   eg )NrD   rI   r   TFrd   r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7frL   rU   .0ptsquares     rO   	<genexpr>"test_complement.<locals>.<genexpr>  s     I&HV|&H   )r   r         ?r  rD   r   rJ   c              3   ,   >#    U  H	  oT;   v   M     g 7frL   rU   r   r   	notsquares     rO   r   r     s      F"DBi"Dr  c              3   ,   >#    U  H	  oT;   v   M     g 7frL   rU   r   s     rO   r   r     s     I*HB<*Hr  ))r   r   )      ?r  )r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7frL   rU   r  s     rO   r   r     s     H)G2Y)Gr  )r%   r)   r   r   ri   r-   r   rv   rx   r'   NegativeInfinityInfinityr>   allany)r  r   s   @@rO   test_complementr    s   q!fqc"qc)))Aq>$$QWW-hsAtT*HQD$,GHI I IAq$&11!'':hsAtU+XaT4-HIJ J JAq%&11!'':hsAtT*HQE4,HIJ J JAq$%009hsAtU+XaUD-IJK K K >>$$QZZ0AJJ>>>>>$$QWW-;;;>>$$Q^^4

BBB::  )QWW444!Q!Q0;;AGGDhsAtT*HQ4,Fq"dD)	++ + + Q<""177+hsAtT*HQD$,GHI I I aL8A$6$6$%' '(2
177(;AtT"XaT4%HHI I I Q1((1##Qd3AtT"	#%-aD$%?	@AJJd+	,, , ,
 Q<""177+z!''9Q</PPPPQ?%%agg.*Xrc1dTX=Y=EaTSW=X>Y?H|V[3] ] ] ] a^hq!n,F!!!''!''/2II&HIIIII F"DF F F F FI*HIIIIIH)GHHHHHrR   c                     [        S [        R                  [        R                  4 5       5      (       d   e[        S [        R                  [        R                  4 5       5      (       d   e[        R                  n [        R                  R	                  U 5      [        R                  L d   eU R	                  [        R                  5      [        R                  L d   e[        S5      n[        SS5      R                  [        SS5      5      [        SS5      :X  d   e[        SS5      R                  [        SSS5      5      [        SSS5      :X  d   e[        SSS5      R                  [        SS5      5      [        SSSS5      :X  d   e[        SSSS5      R                  [        SS5      5      [        SSSS5      :X  d   e[        SS5      R                  [        [        SS5      [        SS	5      5      5      [        [        SS5      [        SS5      5      :X  d   e[        SS5      R                  [        SSS	5      5      [        SS5      :X  d   e[        SSU5      R                  [        U5      5      [        U5      :X  d   e[        S
S5      R                  [        S
5      5      [        S
5      :X  d   e[        SSS	SS5      R                  [        R                  5      [        R                  :X  d   e[        SS5      R                  [        SS	5      5      [        SS	5      :X  d   e[        SSSS5      R                  [        S5      5      [        R                  :X  d   e[        [        SS5      [        SS	5      5      R                  [        SS5      5      [        [        SS5      [        SS5      5      :X  d   e[        [        SS5      [        SS	5      5      R                  [        SS5      5      [        [        SS5      [        SS5      5      :X  d   e[        [        SS5      [        SS	5      5      R                  [        SSSS5      5      [        R                  :X  d   e[        [        SS5      [        SS	5      5      R                  [        R                  5      [        R                  :X  d   e[        [        SS5      [        S
5      5      R                  [        SS	SSS5      5      [        [        SS	SSS5      [        [        S
5      [        SS5      5      5      :X  d   e[        [        SSS	5      [        SU5      [        S	[        5      5      [        [        S	5      [        SU5      [        S	[        5      SS9:X  d   e[        [        SS5      [        SS	5      [        U[        5      5      [        SS1[        U[        5      SS9:X  d   e[        [        SSS5      [        SS	5      [        U[        5      5      [        SS1[        U[        5      SS9:X  d   e[        SSS9u  p#[        [        U5      [        X#5      [        X"S-   5      5      [        U5      :X  d   e[        [        U5      [        [        5      5      [        [        U5      [        [        5      SS9:X  d   e[        U5      R                  [        R                  5      [        [        R                  [        U5      SS9:X  d   e[        SS5      R	                  [        SS	5      5      [        SS	5      :X  d   e[        SSSS5      R	                  [        S5      5      [        R                  :X  d   e[        [        SS5      [        SS	5      5      R	                  [        SS5      5      [        [        SS5      [        SS5      5      :X  d   e[        S[        S5      -  S-   5      n[        S5      [        S	5      -   n[        US5      R	                  [        US5      5      [        US5      :X  d   e[        SU5      R	                  [        SU5      5      [        SU5      :X  d   eg )Nc              3   d   #    U  H&  n[         R                  R                  U5      UL v   M(     g 7frL   )r   re   intersectionr   is     rO   r   "test_intersect1.<locals>.<genexpr>  s+      #! 45qzz&&q)Q.!s   .0c              3   b   #    U  H%  oR                  [        R                  5      UL v   M'     g 7frL   )r  r   re   r  s     rO   r   r    s'      #! 45~~ajj)Q.!s   -/r>   r   rI   rD   TFrd   r   r   r   r      r   zm, nrF   )r  r   rf   rg   r  r   r)   r   r-   r'   rx   r(   r?   r   ri   r   )rz   r>   rA   rB   r   r   s         rO   test_intersect1r    s"    #	
Q[[!# # # # # #	
Q[[!# # # # #	
A::""1%333>>!**%333sAAq>##HQN3x1~EEEAq>##HQ4$89At  Aq$))(1a.9Aue$% % %Aq$%//A?Aud#$ $ $Aq>##E(1a.(1a.$IJhq!nhq!n-. . . Q?$$Yq!Q%78IaOKKKQ1''	!51EEEUF#--i.>?%  Q1a#--ajj9QZZGGGAq>##IaO4	!QGGGAq$%//	!=KKK!Q!Q0::8Aq>Jhq!nhq!n-. . .!Q!Q0::8Aq>Jhq!nhq!n-. . .!Q!Q0::8Aq$PT;UV	

  !Q!Q0::1::F	

  !Q5!12<<Yq!QPQST=UVYq!Q1-uYu5ExPQST~/VWX X X	!Q*HQNHQNKYq\8Aq>8Aq>ERS S S	!Q!Q!QHaVXa^e<= = =	!Q*HQNHQNKaVXa^e<= = = 6%DA	!ioxQ37GH!   	!il3Yq\9Q<%@A A AQ<!!!''*QWWilU;< < < Aq>&&yA79Q?JJJAq$%229Q<@AJJNNN!Q!Q0==hq!nMhq!nhq!n-. . . 	QtAwY]AQ$q'AAq>&&x1~6(1a.HHHAq>&&x1~6(1a.HHHrR   c                     [         [         [         4[         [         R                  [         R                  4[         [         R                  [         R                  4[         [         R                  [         R                  4[         R                  [         R                  [         R                  4[         R                  [         R                  [         R                  4[         R                  [         R                  [         R                  4[         R                  [         R                  [         R                  4[         R                  [         R                  [         R                  4[         R                  [         R                  [         R                  4/
n S nU  Hq  u  p#nX#4X244 Ha  u  pV[	        SS/SS/SS/SS/5       HB  u  pxpU" Xy5      nU" X5      nU" U" Xx5      U" X5      5      nUR                  U5      U:X  a  MB   e   Mc     Ms     g )Nc                 4    [        U[        5      (       a  U$ U $ rL   )r   float)a1a2s     rO   rP   2test_intersection_interval_float.<locals>.<lambda>  s    Jr5$9$9bArArR   rI   g       @rd   g      @)r)   r   r   r   r=   r   )typsas_floatt1t2t3t1it2ir  r  b1b2I1I2I3s                 rO    test_intersection_interval_floatr,    sc   
 
8X&	8==(--0	8>>8>>2	8>>8>>2	x}}5	6	6	8	7	8D BH
B8,HC"(!SAs8aX3x"PZZ((2*:;||B'2---	 #Q - rR   c            	        ^ [        [        SSS5      [        SS5      SS9mTR                  (       d   e[	        T5      [        S5      [        S5      1:X  d   e[        SSS	9n [        [        S
S5      [        U S5      5      mST;   SL d   e[        [        U4S j5        [        [        S
S5      [
        R                  5      [
        R                  :X  d   e[        [        [        * [        5      [        [        * U 5      5      [        [        * U 5      :X  d   e[        S
S5      n[        US-  US-  SS9mST;  d   eST;  d   e[        [        U4S j5        [        [        [
        R                  [
        R                  SS9[
        R                  SS9nUR                  [        [        [
        R                  [
        R                  SS9[
        R                  /5      :X  d   e[        [
        R                   [        [
        R"                  5      5      [
        R                  :X  d   e[        5       [
        R$                  :X  d   e[        S1S1U 15      [        S1U 15      :X  d   eg )NrD   rI   rd   r   Fr   r>   TrF   r   r  c                     > ST ;   $ NrI   rU   r  s   rO   rP   #test_intersection.<locals>.<lambda>%  	    a1frR   rI   rI   )rI   rI   rI   c                     > [        T 5      $ rL   )r   r0  s   rO   rP   r1  0  s	    d1grR   )r(   r'   r)   r   setr   r   r:   rk   rx   r   re   rf   ri   _argset	frozenset	ComplexesComplexInfinityrv   )r>   liner   r  s      @rO   test_intersectionr;    s   Yq!Q'!Q%HA===q6adAaD\!!! 	sAXa^Xa^4AFu
9n% A

3qzzAAA"b)8RC+;<"a@PPPP Aq>DT1WdAg6A??A
9o&\!**ajj5I177]bcA99	<

AJJQV#WYZY`Y`"abbbbYq/@/@%ABajjPPP >Q^^+++ aS1#&,sQC*@@@@rR   c                     [        S5      n [        R                  n[        S[        5      n[        U 5      n[        XU5      [        X#5      :X  d   e[        [        SS5      [        SS5      [        U 5      5      [        :X  d   eg )NrB   r   rD   rI   rd   r   )r   r   ri   r)   r   r'   r(   rx   )rB   r   r   cs       rO   test_issue_9623r>  >  si    sA	ABA!Aa L$6666AA	!EQQQrR   c                      [        SS5      R                  [        SS5      5      S:X  d   e[        SS5      R                  [        SS5      5      S:X  d   eg )Nr   rI   rD   Frd   r   T)r)   is_disjointrU   rR   rO   test_is_disjointrA  I  sL    Aq>%%hq!n5>>>Aq>%%hq!n5===rR   c                  N   [        SS5      n [        SSS5      n[        U 5      R                  5       S:X  d   e[        U 5      R                  5       [        S5      Ld   e[        X5      R                  5       S:X  d   e[        X5      R                  5       [        S5      Ld   eg )NrD   rI   rd   r  )r'   r*   __len__r   r   r   s     rO   test_ProductSet__len__rE  N  s    !QA!QAa=  "a'''a=  "!A$...a##%***a##%QqT111rR   c                  P  ^ [        [        R                  5      [        R                  S-  :X  d   e[        [        R                  [        R                  5      [        R                  S-  :X  d   e[        [        R                  [        R                  [        R                  5      [        R                  S-  :X  d   e[        [        R                  5      [        R                  :w  d   e[        [        R                  [        R                  5      [        R                  [        R                  -  :X  d   e[        [        R                  [        R                  [        R                  5      [        R                  [        R                  -  [        R                  -  :w  d   e[        [        R                  [        R                  [        R                  5      [        R                  [        R                  -  [        R                  -  R                  5       :X  d   eS[        [        R                  5      ;  d   eS[        [        R                  5      ;   d   eS[        [        R                  [        R                  5      ;  d   eS[        [        R                  [        R                  5      ;   d   eS[        4[        [        R                  [        R                  5      ;  d   eS[        [        R                  [        R                  [        R                  5      ;   d   eS[        R                  S-  ;   d   eS[        R                  [        R                  -  [        R                  -  ;  d   eS[        R                  [        R                  -  [        R                  -  ;   d   eS[        R                  [        R                  -  [        R                  -  ;  d   eS[        R                  [        R                  [        R                  -  -  ;   d   e[        5       [        S	5      :X  d   e[        [        R                  [        R                  5      [        R                  :X  d   e[        S
5       H0  n [        [        R                  4U -  6 nSU -  U;   d   eSU;  a  M0   e   [        R                  [        R                  -  [        R                  -  [        R                  [        R                  [        R                  -  -  :w  d   e[        R                  n[        R                  n[        nSnXB;   d   eXS;   d   eXE4X#-  ;   d   eX#-  mXE4nUT;   d   eXf4TT-  ;   d   eXf-   TT-  ;  d   e[        [        S 5        [        5          [        S [        S5       5       5        S S S 5        [        [        S 5        [        SS5      n[        SS5      n[        X#5      mTR                  [        [         5      [#        UR                  [        5      UR                  [         5      5      s=:X  a]  [#        [%        ['        [        S5      ['        [        S5      5      [%        ['        [         S5      ['        [         S5      5      5      :X  d   e   e[        [        U4S j5        [        [        U4S j5        [        [        S 5        [        [        R                  [        R                  5      nUR)                  S5      [        R*                  L d   eUR)                  S5      [        R,                  L d   eUR)                  [        5      [/        [        USS9:X  d   eUR)                  [        5      R1                  [        S5      [        R,                  L d   eUR)                  [        S45      R1                  [        S5      [        R*                  L d   eUR)                  [        [         45      [/        [        [        R                  5      [/        [         [        R                  5      -  :X  d   e[3        [.        [        [         4U5      (       d   e[/        SU5      [        R*                  L d   eg ! , (       d  f       GN= f)NrD   rI   rd   )rD   rH   rD   rI   rd   )rH   rd   )rD   )rI   rd   rU   r   c                  (    [         R                  S-  $ )Nr   )r   ri   rU   rR   rO   rP   !test_ProductSet.<locals>.<lambda>  s    qww{rR   c              3   8   #    U  H  n[        U5      v   M     g 7frL   r'   r   rz   s     rO   r   "test_ProductSet.<locals>.<genexpr>  s     2A9Q<<s   c                      [        S 5      $ rL   )r*   rU   rR   rO   rP   rI    s	    j.rR   r   c                  .   > T R                  [        5      $ rL   as_relationalr>   S3s   rO   rP   rI    s    r//2rR   c                  0   > T R                  [        S5      $ r   rP  rR  s   rO   rP   rI    s    r//15rR   c                  \    [        [        SS5      5      R                  [        [        5      $ r   )r*   r)   rQ  r>   r?   rU   rR   rO   rP   rI    s    z(1a.9GG1MrR   Fr   )r*   r   ri   flattenr   r'   rx   r   re   r   r:   rl   r<   rk   rQ  r>   r?   r7   r8   r2   r   r   r   r"   subsr1   )	r   RnS1S2rq   rr   x3Z2rS  s	           @rO   test_ProductSetr]  W  s   agg!''Q,...aggqww'177a<777aggqww0AGGqL@@@agg!'')))aggqww'177QWW+<<<<aggqww0AGGagg4E4OOOOaggqww0QWWqww5F5P4Y4Y4[[[[Jqww'''':agg&&&&Jqww0000Z1111q6AGGQWW5555
177AGGQWW====1$$$AGGagg-7777!''AGG+agg5555agg/!''9999!''QWWqww%67777<9R=(((aggqzz*ajj888 Ah!''b)byB{{ 
 GGagg(AGGqww7H,IIII	
B	
B	B	
B8O88O88rw	B
B8O88rBw7"r'!!!
:*+		!2q22 
"
9./	1aB	1aB	B	BQ"2##A&(8(8(;<C2bAh1a)2bAh1a+ABC D C D C :23
:56
:MN	AJJ

	+B;;v!&&(((;;t''';;q>Xae<<<<;;q>q!$///;;1v##Aq)QVV333;;1v(1ajj"9HQ

<S"SSSSX1vr****FB166)))- 
"	!s   %b
b%c            	          [        [        [        SS5      5      (       d   e[        [        [        [        SS5      5      5      (       d   eg r   )r1   r*   r)   rU   rR   rO   (test_ProductSet_of_single_arg_is_not_argr_    s9    Z!Q0000ZHQN!;<<<<rR   c                      [        [        R                  [        R                  5      R                  S:X  d   e[        [        [        S5      [        R                  5      R                  S :X  d   eg )NFrD   )r*   r   re   ri   rw   r)   r>   rU   rR   rO   test_ProductSet_is_emptyra    sJ    ajj!''*33u<<<hq!nagg.774???rR   c                      [        SSS9n [        SU 5      R                  U S5      [        SS5      :X  d   e[        U S5      R                  U S5      [        R                  :X  d   eg )Nr   TrF   r   rI   )r   r)   rW  r   rx   r   s    rO   test_interval_subsrc    sZ    sAAq>q!$A666Aq>q!$

222rR   c                  (   [        SS5      R                  5       [        SS5      :X  d   e[        SSSS5      R                  5       [        SS5      :X  d   e[        [        SS5      R                  5       5      [        [        SS5      5      :X  d   eg )Nr   rD   TF)r)   to_mpir0   typerU   rR   rO   test_interval_to_mpirg    sy    Aq>  "c!Qi///Aq$&--/3q!9<<<A%%'(DQO;;;rR   c                  J   [        [        S5      S-  [        R                  5      R                  5       [        [	        S5      [	        S5      5      :X  d   e[        [
        [        R                  SS9R                  5       [        [
        [	        S5      SS9:X  d   e[        [        * [        R                  5      R                  5       [        [        * [	        S5      5      :X  d   e[        S[
        5      R                  5       [        [	        S5      [
        5      :X  d   eg )	N   @   z0.171875z0.5Tr   rI   z2.0)r)   r   Halfevalfr
   r>   r   r'   rU   rR   rO   test_set_evalfrm    s    AbE"Haff%++-j5<2) ) ) )Aqvv$/5578	5<D<* * * *RC &&(HbS%,,GGGGQ?  "iea&@@@@rR   c            	      j   [        SSS9n [        SS5      R                  S:X  d   e[        SU 5      R                  U :X  d   e[        SU 5      R                  U S-
  :X  d   e[        [        SS5      [        SS5      5      R                  S:X  d   e[        [        SS5      [        SS5      [	        S	S
S5      5      R                  S:X  d   e[	        SS[
        U [
        * S5      R                  S:X  d   e[        R                  R                  S:X  d   e[        SS5      [        SS5      -  n[        S	S5      [        S	S5      -  n[        [
        * [
        5      [        SS5      -  nUR                  UR                  s=:X  a  S:X  d   e   eX-   R                  S:X  d   eX-
  R                  S:X  d   eU[	        SSS5      -  R                  S:X  d   eUR                  U5      R                  S:X  d   eX-   R                  [
        L d   eU[	        SSS5      -  R                  [        L d   eg )Nr   TrF   rD   rd   rI   r   r   r   r     r}   r      d      K      )
r   r)   r   r-   r'   r   r   rx   r   r   )r   r   offsetsquarebands       rO   test_measurerw    s   sAAq>!!Q&&&Aq>!!Q&&&Aq>!!QU***!Q!Q088A===!Q!Q1a1CDLL   Q2q2#r*22a777::"""a_x2.FAr?Xa_4LRCx1~-D>>\118S88888!**c111!**b000Yq!Q''00A555T"++r111M""b(((9Q1%%..#555rR   c            	         [        SS5      R                  [        SS5      5      SL d   e[        SS5      R                  [        SS5      5      SL d   e[        SS5      R                  [        SS5      5      SL d   e[        SS5      R                  [        SSSS5      5      (       d   e[        SS5      R                  [        SSSS5      5      SL d   e[        S5      R                  [        SS5      5      (       d   e[        SS5      R                  [        SSSS5      5      SL d   e[        SS5      [        S5      -   R                  [        SSSS5      [        SS5      -   5      (       d   e[        SS5      R                  [        [        SS5      [        SS5      5      5      SL d   e[        SS	5      R                  [        [        SS5      [        SS5      5      5      SL d   e[        SSSS5      R                  [        SS5      5      SL d   e[        R
                  R                  [        SSS5      5      SL d   e[        SS5      R                  [        R
                  5      SL d   e[        R
                  R                  [        R
                  5      SL d   e[        [        S
 5        [        SSSS5      R                  [        SS5      5      SL d   e[        R
                  R                  [        SSS5      5      SL d   e[        R                  R                  [        R                  5      (       d   e[        R                  R                  [        R                  5      (       d   e[        [        5      R                  [        [        5      5      b   e[        [        5      R                  [        [        5      R                  [        [        5      5      SL d   e[        [        5      R                  [        [        5      R                  [        [        S-   5      5      SL d   e[        SS5      R                  [        SSSS95      SL d   e[        SS5      R                  [        [        [        * S5      [        S[        5      5      5      SL d   e[!        SSS9n [#        SSS5      R                  [        SS5      5      SL d   e[#        [	        S5      S-  5      R                  [        SSS5      5      SL d   e[#        S	SS5      R                  [        SSS	5      5      SL d   e[#        S[        5      R                  [        SS5      5      SL d   e[#        [        * S5      R                  [        S5      5      SL d   e[#        S5      R                  [        SSU 5      5      b   e[#        X S-   5      R                  [        X S-   5      5      SL d   e[#        S5      R                  [        SSSS95      SL d   e[%        ['        U SU -  5      [        R                  5      R                  [        R(                  5      b   eg )Nr   rD   rI   Trd   Fr   r   r  c                  @    [         R                  R                  S5      $ r   )r   rx   r   rU   rR   rO   rP    test_is_subset.<locals>.<lambda>  s    qzz33A6rR   r   ra   rB   r]   r   r   r   rq  r   )r)   r   r'   r-   r   rx   r:   rl   issubsetrf   re   rg   r>   r?   rW  r   r   r$   r.   r   ri   rB   s    rO   test_is_subsetr}    s@   Aq>##HQN3t;;;Aq>##HQN3u<<<Aq>##IaO4===Q?$$Yq!Q%:;;;;Q?$$Yq!Q%:;uDDDQ<!!(1a.1111Q?$$XaD$%?@EIIIQNYq\)44Aud#i1o57 7 7 7 Aq>##E(1a.(1a.$IJdRRRAq>##E(1a.(1a.$IJeSSSQ1a **8Aq>:dBBB::	!Q 23t;;;Aq>##AJJ/5888::

+t333
:67 Q1a ))(1a.9TAAA::yAq12d:::::

++++;;  ,,,,Q<!!)A,/777Q<!!)A,"3"3Aq"9:dBBBQ<!!)A,"3"3Aqs";<EEEAq>##HQT$BCuLLLB?$$U8RC+<hq"o%NOSXXXXsD!AQ?$$YsB%78EAAA2&&yAq'9:eCCCAr?$$Yq!Q%78D@@@B<!!)Aq/2e;;;"a=""9Q<0E9998i1a01999E?$$Yqa%%89TAAA8hq!=>%GGGF1acNAJJ/99!''BJJJrR   c                  ,   [        SS5      R                  [        SS5      5      SL d   e[        SS5      R                  [        SS5      5      SL d   e[        R                  R                  [	        SSS5      5      SL d   e[        [        S 5        g )Nr   rD   rI   Trd   Fc                  8    [        SS5      R                  S5      $ r   )r)   is_proper_subsetrU   rR   rO   rP   'test_is_proper_subset.<locals>.<lambda>  s    x1~>>qArR   )r)   r  r   rx   r'   r:   rl   rU   rR   rO   test_is_proper_subsetr    s}    Aq>**8Aq>:dBBBAq>**8Aq>:eCCC::&&yAq'9:dBBB
:ABrR   c            	         [        SS5      R                  [        SS5      5      S:X  d   e[        SS5      R                  [        SS5      5      (       d   e[        SS5      R                  [        SSSS5      5      S:X  d   e[        SS5      R                  [        SSSS5      5      S:X  d   e[        S5      R                  [        SS5      5      S:X  d   e[        SS5      R                  [        SSSS5      5      S:X  d   e[        SS5      [        S5      -   R                  [        SSSS5      [        SS5      -   5      S:X  d   e[        SS5      R                  [        [        SS5      [        SS5      5      5      S:X  d   e[        SSSS5      R                  [        SS5      5      S:X  d   e[        R
                  R                  [        SSS5      5      S:X  d   e[        SS5      R                  [        R
                  5      S:X  d   e[        R
                  R                  [        R
                  5      S:X  d   e[        [        S	 5        [        SS5      R                  [        R
                  5      S:X  d   e[        R
                  R                  [        R
                  5      S:X  d   eg )
Nr   rD   rI   Frd   r   r   Tc                  @    [         R                  R                  S5      $ r   )r   rx   is_supersetrU   rR   rO   rP   "test_is_superset.<locals>.<lambda>+  s    qzz55a8rR   )	r)   r  r'   r-   r   rx   r:   rl   
issupersetrU   rR   rO   test_is_supersetr    sP   Aq>%%hq!n5>>>Aq>%%hq!n5555Q?&&yAq!'<=FFFQ?&&yAq!'<=FFFQ<##HQN3u<<<Q?&&x1dD'ABeKKKQNYq\)66Aud#i1o57:?@ @ @ Aq>%%eHQNHQN&KLPUUUUQ1a ,,Xa^<EEE::!!)Aq!"45>>>Aq>%%ajj1T999::!!!**-555
:89 Aq>$$QZZ0D888::  ,444rR   c                  ,   [        SS5      R                  [        SS5      5      SL d   e[        SS5      R                  [        SS5      5      SL d   e[        SSS5      R                  [        R                  5      SL d   e[        [        S 5        g )Nr   rD   rI   Frd   Tc                  8    [        SS5      R                  S5      $ r   )r)   is_proper_supersetrU   rR   rO   rP   )test_is_proper_superset.<locals>.<lambda>7  s    x1~@@CrR   )r)   r  r'   r   rx   r:   rl   rU   rR   rO   test_is_proper_supersetr  2  s}    Aq>,,Xa^<EEEAq>,,Xa^<DDDQ100<DDD
:CDrR   c            	        ^^ [        SS5      R                  S5      [        R                  L d   e[        SS5      R                  S5      [        R                  L d   e[        SSSS5      R                  S5      [        R                  L d   e[        SSSS5      R                  S5      [        R                  L d   e[        SSSS5      R                  S5      [        R                  L d   e[        SSSS5      R                  S5      [        R                  L d   e[        SSSS5      R                  S5      [        R                  L d   e[        SSSS5      R                  S5      [        R                  L d   e[        SS5      [        SS5      ;   SL d   e[        SSS5      R                  S5      [        R                  L d   e[        SS[        S5      5      R                  [        S5      5      [        R                  L d   e[        [        5      R                  [        5      [        [        [        SS9:X  d   e[        [        S	 5        [        [        [        15      R                  [        15      [        [        [        1[        1SS9:X  d   e[        [        [        15      R                  [        [        5      R                  [        15      [        R                  L d   e[        [        [        15      R                  [        [        S-   5      R                  [        15      [        R                  L d   eSS
KJmJn   [        U 5      R                  T* 5      [        U T* 5      :X  d   e[        U 5      R                  T5      [        U T5      :X  d   e[        T5      R                  S5      [        TS5      :X  d   e[        [        U4S j5        [#        [#        S[%        SS5      5      S-
  [%        SS5      5      n[#        [%        SS5      [%        SS5      5      [#        [%        SS5      [%        SS5      5      -
  [#        [%        SS5      [%        SS5      5      -   n[        U5      n[        U5      nX4-
  [        R&                  :X  d   eSS[        R(                  [        S5      S/n[        U6 m[+        U4S jU 5       5      (       d   e[+        U4S jU 5       5      (       d   e[-        [        SS5      [        SS5      5      R                  S5      [        R                  L d   e[-        [        SS5      [        SS5      5      R                  S5      [        R                  L d   e[-        [        SS5      [        SS5      5      R                  S5      [        R                  L d   e[        R&                  R                  S5      [        R                  L d   e[        [/        [        S-  [        -   S-
  S5      5      R                  [        R(                  5      [        R                  L d   e[/        [        S-  [        S-  -   S-   S5      [        R0                  ;   d   e[/        [        S-  [        S-  -   S-   S5      [        R0                  ;  d   e[-        [        SS5      [        SS5      5      R                  [        5      [3        [5        [        R6                  [        :*  [        S:*  5      [5        [        S5      [        :*  [        S:*  5      5      :X  d   e[9        [        S[        5      [        SS5      5      R                  [        5      [5        [        S:*  [        [        :*  [        R6                  [        :*  [        S5      [        :*  5      :X  d   e[        R:                  R                  [        R<                  5      [        R                  :X  d   eg )Nr   rI   rD   rd   TFr>   r   c                  .    [         [        [        5      ;   $ rL   )r>   r'   r?   rU   rR   rO   rP   test_contains.<locals>.<lambda>J  s    a9Q</rR   r   c                      > S[        T 5      ;   $ r   rK  r   s   rO   rP   r  T  s    a9Q</rR   	   r   r   gc              3   ,   >#    U  H	  oT;   v   M     g 7frL   rU   r   itemfsets     rO   r    test_contains.<locals>.<genexpr>_  s     .t|r  c              3   f   >#    U  H&  nTR                  U5      [        R                  L v   M(     g 7frL   )r   r   r   r  s     rO   r   r  `  s#     ?t}}T"aff,   .1r   r  )r)   r   r   r   r   r'   r   r?   rj   r>   r2   r:   rk   rW  	sympy.abcr   r   r   r   rx   r  r  r-   r!   ri   r8   r7   Oner(   r8  r9  )r   rad1rad2s1s2itemsr   r  s         @@rO   test_containsr  :  s   Aq>""1%///Aq>""1%000Aq$&//2agg===Aq$&//2aff<<<Aq%&//2aff<<<Aq%&//2agg===Aq$%..q1QWW<<<Aq$%..q1QWW<<<QNhq!n,666Q1&&q)QVV333Q6#;'00=GGGQ<!!!$1a%(@@@@
9/0aV&&s+r1a&1#/NNNNaV!!!Q'111#6!&&@@@aV!!!QqS)33QC8AGGCCC Q<  !$1qb	111Q<  #r!Qx///Q<  #r!Qx///
9/0 s1hq!n%)8Aq>:Dx1~x1~.Xa^XaQR^1TTWZ[cdegh[ikstuwxkyWzzD	4B	4B7ajj   1::qx.EeD......??????!Q!Q099!<FFF!Q!Q099!<GGG!Q1a1::1=HHH::q!QWW,,,VAqD1HqL!,-66qzzBaggMMM!Q$A+/1%000adQTkAoq)QWW444 !Q!Q099!<
3quuz16"C!	16$:;< < <AA7@@CAFAFAEEQJ!	23 3 3 KK!!!"3"34???rR   c                  l  ^^ [        S5      m[        SS5      mTR                  T5      [        [        R
                  T:*  TS:*  5      :X  d   e[        [        UU4S j5        [        SSSS5      mTR                  T5      [        [        R
                  T:  TS:  5      :X  d   e[        SSS9n [        TTS-   5      R                  U 5      S:X  d   e[        S	SS
9m[        [        * [        5      R                  T5      [        [        R                  T:  T[        R                  :  5      :X  d   eg )Nr>   r   rD   c                     > TT ;   $ rL   rU   )r   r>   s   rO   rP   (test_interval_symbolic.<locals>.<lambda>y  r2  rR   Tr=  FrF   r   r   )r   r)   r   r7   r   Zeror:   rk   r   r  r  )r=  r   r>   s    @@rO   test_interval_symbolicr  u  s   sAAA::a=C!Q!V4444
9n%AtT"A::a=C
AE2222sAAq1u&&q)U222s$'ARC%%a(C	QAJJ-0 0 0 0rR   c            	      z  ^^^ [        S5      m[        SS5      n [        SS5      n[        X5      mTR                  T5      [	        [        [        R                  T:*  TS:*  5      [        [        S5      T:*  TS:*  5      5      :X  d   e[        [        UU4S j5        TR                  T5      nUTR                  T5      :X  d   eUR                  TS5      [        L d   eUR                  TS5      [        L d   eUR                  TS	5      [        L d   eUR                  TS
5      [        L d   eUR                  TS5      [        L d   e[        SSSS5      [        S[        5      -   [        SSSS5      -   m[!        U4S jSS[        * 4 5       5      (       d   e[!        U4S jS 5       5      (       d   eg )Nr>   r   rD   rI   rd   c                     > TT ;   $ rL   rU   )i3r>   s   rO   rP   %test_union_contains.<locals>.<lambda>  s	    a2grR   g      r  r
  g      @g      @Tr   r   r   r  c              3   ,   >#    U  H	  oT;  v   M     g 7frL   rU   r   elUs     rO   r   &test_union_contains.<locals>.<genexpr>  s     1[r{[r  r   c              3   ,   >#    U  H	  oT;   v   M     g 7frL   rU   r  s     rO   r   r    s     ,2Qwr  )rI   r   r   )r   r)   r-   rQ  r8   r7   r   r  r:   rk   r   rW  r   r   r   r'   r  )i1i2r   r  r  r>   s      @@@rO   test_union_containsr    s|   sA	!QB	!QB	rBA"S1a1f%=s1Q419aSTf?U"VVVV
9o&
AA  ####66!T?e###66!S>T!!!66!S>U"""66!S>T!!!66!S>U"""AtT"Xb"%55	"aA8NNA1aRC[11111,,,,,,rR   c                  l    [        SS5      R                  SL d   e[        5       R                  SL d   eg r   )r)   	is_numberr+   rU   rR   rO   test_is_numberr    s0    Aq>##u,,,5??e###rR   c                      [        SS5      R                  SL d   e[        [        * S5      R                  SL d   e[        [        S5      S5      R                  SL d   eg )Nrd   r   FTz-inf)r)   is_left_unboundedr   r
   rU   rR   rO   test_Interval_is_left_unboundedr    sX    Aq>++u444RC--555E&M1%774???rR   c                      [        SS5      R                  SL d   e[        S[        5      R                  SL d   e[        S[        S5      5      R                  SL d   eg )Nrd   r   FTz+inf)r)   is_right_unboundedr   r
   rU   rR   rO    test_Interval_is_right_unboundedr    sU    Aq>,,555Ar?--555AuV}%88D@@@rR   c                     [        S5      n [        SSSS5      R                  U 5      [        [	        SU 5      [	        U S5      5      :X  d   e[        SSSS5      R                  U 5      [        [        SU 5      [	        U S5      5      :X  d   e[        SSSS5      R                  U 5      [        [	        SU 5      [        U S5      5      :X  d   e[        SSSS5      R                  U 5      [        [        SU 5      [        U S5      5      :X  d   e[        [        * SSS9R                  U 5      [        [        [        * U 5      [	        U S5      5      :X  d   e[        [        * SSS9R                  U 5      [        [        [        * U 5      [        U S5      5      :X  d   e[        S[        SS9R                  U 5      [        [	        SU 5      [        U [        5      5      :X  d   e[        S[        SS9R                  U 5      [        [        SU 5      [        U [        5      5      :X  d   e[        [        * [        5      R                  U 5      [        [        [        * U 5      [        U [        5      5      :X  d   e[        SSS	9n [        S
SS	9n[        X5      R                  U 5      X:*  :X  d   e[        X5      R                  U 5      X:*  :X  d   eg )Nr>   r   rI   FTr   ra   r   rF   r?   )r   r)   rQ  r7   r4   r5   r   rc   s     rO   test_Interval_as_relationalr    s|   sAB5%(66q9Br1Ir!Qx ! ! !B4'55a8Br1Ir!Qx ! ! !B5$'55a8Br1Ir!Qx ! ! !B4&44Q7Br1Ir!Qx ! ! ! RCu-;;A>#b"ajRTUVXYRZB[[[[RCt,::1=RQZQSTUWXQYAZZZZBe,::1=RAYPRSTVXPYAZZZZBd+99!<Br1IrRSUWy@YYYYRC**1-RQZAr1KKKKsAsAA>''*qv666A>''*qv666rR   c                  *   [        S5      n [        S5      n[        SS5      R                  U 5      [        [	        U S5      [	        U S5      5      :X  d   e[        US5      R                  U 5      [        [	        X5      [	        U S5      5      :X  d   eg )Nr>   r?   rD   rI   r}   )r   r'   rQ  r8   r2   rc   s     rO   test_Finite_as_relationalr    sw    sAsAQ?((+r"Q(Bq!H/EEEEQ))!,2a8R2Y0GGGGrR   c            
         [        S5      n [        SS5      [        S5      -   R                  U 5      [	        [        [        SU 5      [        U S5      5      [        U S5      5      :X  d   e[        SSSS5      [        S5      -   R                  U 5      [        [        SU 5      [        U S5      5      :X  d   e[	        U S:  U S:  5      R                  5       R                  U 5      [        U [        * :  U [        :  [        U S5      5      :X  d   e[        R                  " SS5      [        R                  " SS5      -   R                  U 5      [        [        U S5      U S:  U S:*  5      :X  d   eg )Nr>   r   rD   rI   Trd   r   )r   r)   r'   rQ  r8   r7   r4   r2   r5   as_setr   r3   r   r   rY   s    rO   test_Union_as_relationalr    sB   sAQNYq\)88;
3r!QxAq"Bq!H-. . .Q4&15DDQGBq!HbAh     a!eQU""$2215Q"WBAq*+ + +NN1a 8>>!Q#77
-
c"Qq'1a4!Q$89 9 9rR   c            
          [        S5      n [        [        SS5      [        S5      SS9R	                  U 5      [        [        [        SU 5      [        U S5      5      [        U S5      5      :X  d   eg Nr>   r   rD   rI   Fr   )r   r(   r)   r'   rQ  r7   r4   r2   rY   s    rO   test_Intersection_as_relationalr    s`    sA!Q1)M!,3r!QxAq*Bq!H56 7 6rR   c            	          [        S5      n [        [        SS5      [        S5      SS9nUR	                  U 5      [        [        SU 5      [        U S5      [        U S5      5      :X  d   eg r  )r   r%   r)   r'   rQ  r7   r4   r3   r>   ro   s     rO   test_Complement_as_relationalr    s^    sAhq!nilUCDa Bq!HbAh1a)* * *rR   c                      [        S5      n [        [        SS5      [        S5      SS9nUR	                  U 5      SU :*  U S:*  -  [        U S5      -  :X  d   eg r  )r   r%   r)   r'   rQ  r3   r  s     rO   "test_Complement_as_relational_failr    s]    sAhq!nilUCD a !VQ"Q(*+ + +rR   c            	          [        S5      n [        [        SS5      [        S5      SS9nUR	                  U 5      [        [        U S5      [        SU 5      [        U S5      -  5      :X  d   eg r  )r   r,   r)   r'   rQ  r9   r2   r4   r  s     rO   &test_SymmetricDifference_as_relationalr    sZ    sAx1~y|eLDa C1a"Q(R1X2E$FFFFrR   c                  X   [         R                  R                  [        S5      5      [         R                  L d   e[         R                  R                  [         R                  5      [         R                  :X  d   e[         R                  R                  [         R                  :X  d   eg )Nr>   )r   rx   rQ  r   r   r   rv   boundaryrU   rR   rO   test_EmptySetr    sh    ::##F3K0AGG;;;::/1::===::!**,,,rR   c            	      ,   [        S5      n [        SSS5      n[        SSS5      n[        X5      nUR                  U5      nUR	                  U5      (       a  UR	                  U5      (       d   eUR	                  U5      (       d   eU[        S5      :X  d   eUR
                  S:X  a  UR                  S:X  d   eUR
                  S:X  a  UR                  S:X  d   e[        U SS5      R                  [        U S5      :X  d   e[        U SS5      R
                  [        U S5      :X  d   e[        [        R                  5      [        R                  :w  d   e[        [        SSS5      5      [        SSS5      :w  d   e[        S5      [        SSS5      :w  d   e[        SUS	U S
U S-  5      (       d   eX:  SL d   eX:  SL d   eX:  SL d   eX:*  SL d   eX1:  a  X2:  d   eX1:  a  X2:  d   eX:  a  X::  d   eX:  a  X$:  d   eX:  a  X$:  d   eg )Nr>   rD   rI   rd   r   r   rG  rH   r}   r   F)r   r'   r-   r   r   r   r   r   r   r   rx   )r>   r   r   AorBAandBs        rO   test_finite_basicr    s   sA!QA!QA;DKKNE;;tT!2!222??1IaL   55A:!%%1*$$88q=TXX]**Q1!!SAY...Q1!!SAY... QZZ AJJ...Yq!Q'(IaA,>>>>Y9Q1#5555 VQAvq!t4444EeFuEeFu8  9""6af:!*$$9""rR   c                    ^ Su  p[        SS5      n[        SSSSSS5      n[        SSSS5      n[        X5      mX"-  nS	U;   d   eSU;  d   eX4TS-  ;   d   eS
XR-  R                  5       ;   d   eSXR-  ;   d   eU SS4TU-  U-  R                  5       ;   d   eU S4S4TU-  U-  ;   d   e[        U 5      [        U5      pv[	        TS-  5      Xf4Xg4Xv4Xw41:X  d   eXD-  R                  X3-  5      (       d   eUR                  [        [        * [        5      [        [        * [        5      -  5      [        [        [        * SSS5      [        S[        SS5      -   [        [        * [        5      -  [        [        * [        5      [        [        * SSS5      [        S[        SS5      -   -  5      :X  d   e[        SS5      S-  R                  [        SS5      S-  5      (       d   e[        SS5      S-  R                  [        SS5      S-  5      (       a   e[        SS5      S-  R                  [        SS5      S-  5      (       a   e[        SS5      [        S5      -  R                  U5      (       d   e[        TT-  T-  5      S:X  d   e[        [        R                  [        R                  -  5      S:X  d   e[        [        R                  T-  5      S:X  d   e[        [        U4S j5        g )N)HTr   rD   rI   rd   r   r   r  r  )r  r  r  )r  r  Tr}   r   r   g?r     c                  4   > [        T [        SS5      -  5      $ )Nr   rI   )lenr)   )coins   rO   rP   $test_product_basic.<locals>.<lambda>?  s    c$x1~"56rR   )r)   r'   rV  r   r5  r   r   r   r-   r  r   rx   r:   rk   )	r  r  	unit_lined6d4r   HHTTr  s	           @rO   test_product_basicr    s   DAAI	1aAq!	$B	1aA	BQ?D"FVF??6TQYF.779999V////q!9R002222FA;$)b.(((QZtQw<RHrh2(CCCCERU####Xrc2.xR/@@AU	2#q$	%	!Rt	$
%&.sB&7	8	2#r	HbS!T481b$-. 
/F0 0 0 0 ROQ))(3*;Q*>????b!1$//Q0BCCCCQ"--hsB.?.BCCCCRYr]*55f====tDy~!###qzz!**$%***qzz$1$$$
967rR   c            	      B  ^^^^^^ [        SSS9n [        SS5      m[        SS5      m[        SS	S
U [        R                  5      m[        SS5      m[        S5      m[        SS5      m[        S TTTTT4 5       5      (       d   eTR                  [        R                  5      (       a   e[        UUUUU4S jTTTTT4 5       5      (       d   e[        U4S jTTTTTT4 5       5      (       a   eTT-   T-   R                  [        R                  5      (       a   eg )Nr>   TrF   r   r   r   rt  rD   rI      rq  HamEggsc              3   ^   #    U  H#  oR                  [        R                  5      v   M%     g 7frL   r   r   ri   rL  s     rO   r   test_real.<locals>.<genexpr>L  s     =_{{177##_s   +-c              3      >#    U  H5  nTTTTT4  H&  o!U-   R                  [        R                  5      v   M(     M7     g 7frL   r  )r   r   r   r   r   r   r   Js      rO   r   r  N  s<     \?aQPQSTVWYZOqA  ))O)?s   =A c              3   f   >#    U  H&  oT-   R                  [        R                  5      v   M(     g 7frL   r  )r   r   r   s     rO   r   r  O  s'     J7I!E$$QWW--7Ir  )	r   r)   r'   r   Pir  r   ri   r  )r>   r   r   r   r   r   r  s    @@@@@@rO   	test_realr  B  s   sAAARA!QAqtt$A"aA#A% A=aAq!_====={{177####\\Aq!Q?\\\\\J1aAq7IJJJJJA	$$QWW-----rR   c                  <   [        SSS9n [        SSS9n[        SS5      [        S5      -   R                  S:X  d   e[        SS5      [        S5      -   R                  S:X  d   e[        SS5      [        U 5      -   R                  [        SU 5      :X  d   e[        SS5      [        U 5      -   R                  [        SU 5      :X  d   e[        SSU 5      R                  [        SU 5      :X  d   e[        SSU 5      R                  [        SU 5      :X  d   e[        SSX5      R                  [        SX5      :X  d   e[        SSX5      R                  [        SX5      :X  d   e[        SSX[        R                  [        R                  5      R                  [        R                  :X  d   e[        SSX[        R                  [        R                  5      R                  [        R                  :X  d   e[        S	S
5      R                  [        S	S
5      :X  d   eg )Nr>   TrF   r?   r   rD   rI   r   r  r  )
r   r)   r'   r   r   r   r   r   r  r  rc   s     rO   test_supinfr  T  s   sAsAQNYq\)..!333QNYq\)..!333QNYq\)..#a);;;QNYq\)..#a);;;Q1!!SAY...Q1!!SAY...Q1 $$Aq444Q1 $$Aq444Q1Q-?-?@DD	

  Q1Q-?-?@DD	  UF#''3uf+====rR   c                     [         R                  n [        S5      nU R                  U5      [         R                  L d   eU R                  [        SS5      5      U :X  d   eU R                  [        SS5      5      [        SS5      :X  d   eU R                  [         R                  L d   eU R                  [         R                  :X  d   eU R                  S5      [         R                  L d   eg )Nr>   rI   r   r   )r   rv   r   rQ  r   r   r)   r   r   r  r  rx   r   r  r>   s     rO   test_universalsetr  g  s    	AsA??1'''778Aq>"a''';;x1~&(1a.88899

"""::###::a=AFF"""rR   c                  f    [        SS5      n [        SSS5      n[        X -  X-  5      X -  :X  d   eg )Nr   rI   rD   )r)   r'   r-   )r:  pointss     rO    test_Union_of_ProductSets_sharesr  s  s6    Aq>Dq!QFdm,;;;rR   c                      [        SS5      R                  [        5       :X  d   e[        SSS9n [        SU 5      R                  U 1:X  d   eg )Nr   rD   r>   TrF   )r)   free_symbolsr5  r   rY   s    rO   test_Interval_free_symbolsr  y  sF    Aq>&&#%///sAAq>&&1#---rR   c                     [        SSS9n [        SSS9n[        U SU -  [        SS5      5      [        SS5      :X  d   e[        U SU -  [        SSSS	5      5      [        SSSS	5      :X  d   e[        X S-  [        SSSS	5      5      [        S
SS	S5      :X  d   e[        X S-  [        SS5      5      [        S
S5      :X  d   e[        X S-  [        SSSS	5      5      [        S
SS	S5      :X  d   e[        X S-  [        SSSS5      5      [        S
SS	S5      :X  d   e[        X S-
  S-  [        SS5      5      [        S
S5      :X  d   e[        U SU S-  -  SU S-  -  -
  SU S-  -  -   SU -  -
  [        S
S5      5      [        SS
5      :X  d   e[        X SU -  -   [        [        * [        5      5      [        [        * S5      [        S[        5      -   :X  d   e[        U SU -  SU S-
  S-  -  -   [        S
SSS	5      5      [        [	        SS5      [        S	5      :X  d   e[        S [        SS5      5      [        SS5      :X  d   e[        [        XU -  5      [        S
S5      5      [        [        XU -  5      [        S
S5      5      :X  d   e[        [        U [        [        U 5      5      5      [        S
S5      5      [        [        U [        [        U 5      5      5      [        S
S5      5      :X  d   eg )Nr>   TrF   r   rI   ra   rD   r  Fr   r   rd      N   Z   ic                     SU -  $ r/  rU   rY   s    rO   rP   %test_image_interval.<locals>.<lambda>  s    acrR   )	r   r.   r)   r   r   r   r#   r   r   )r>   r   s     rO   test_image_intervalr    s    sAsAAqsHRO,Q???AqsHRD%89Qe$% % %A!tXb!T59:Aud#$ $ $A!tXb!_-!Q???A!tXb!T59:Aud#$ $ $A!tXb!T489Aud#$ $ $AAz8Aq>2hq!nDDDAqAv1a4'"QT'1BqD8(1a.Ia  A1Q3w"b 12hsB6G
1b/7   AqsQ!axZ'!Qe)DE!QU+, , , M8B?3xAFFFF1cNHQN3VAs^Xa^45 5 5 F1c#a&k*HQN;VAs3q6{+Xa^<= = =rR   c            
         [        [        [        S:*  4S[        S-  -  [        S:*  4[        S-  S45      n [        S[        S:*  4S[        S:*  4S5      n[        [        U [        S	S5      5      [	        [        S	S5      [        [        SS
5      [        5      5      :X  d   e[        [        U[        SS5      5      [        SS5      :X  d   eg )Nr   rD   rI   r   rd   Tr   )rI   Tr}      )r   r>   r.   r)   r-   r   r   r'   )rZ   f1s     rO   test_image_piecewiser    s    1a2g,1a4a 01a4,?A	AqAv;AFY	7BAq(2q/*eHR4DhxXY[]`bFc.ddddAr8Aq>*i1o===rR   c                      [        SSS9n [        SSS9n[        X S-  [        SS5      R                  [        X5      5      5      [        SS5      R                  [        [	        U S-  US-  5      [        U S-  US-  5      5      5      :X  d   eg )	Nr>   TrF   r?   rI   ra   r   r   )r   r.   r)   r   r   r   rc   s     rO   test_image_Intersectionr    s    sAsAA!tXb!_66x~FGAq>##HSAq!t_c!Q$1o$NOP P PrR   c            	      p    [        SSS9n [        U SU -  [        SSS5      5      [        SSS5      :X  d   eg )	Nr>   TrF   rI   rD   rd   r   r  )r   r.   r'   rY   s    rO   test_image_FiniteSetr	    s;    sAAqsIaA./9Q13EEEErR   c            
          [        SSS9n [        X S-  [        SS5      [        SSS5      -   5      [        SS	5      [        S
5      -   :X  d   eg )Nr>   TrF   rI   ra   r   rD   rd   r   r  )r   r.   r)   r'   rY   s    rO   test_image_Unionr    sQ    sAA!tXb!_yAq/AABa^il*, , ,rR   c                  |    [        SSS9n [        U SU -  [        R                  5      [        R                  :X  d   eg )Nr>   TrF   rI   )r   r.   r   rx   rY   s    rO   test_image_EmptySetr    s1    sAAqsAJJ'1::555rR   c                      [         [        R                  ;  d   e[        [        * [        5      R                  [         5      [        R                  L d   eg rL   )r   r   ri   r)   r   r   r   rU   rR   rO   test_issue_5724_7680r    s:    AGGRC%%a(AGG333rR   c                      [        S5      R                  [        S5      :X  d   e[        S [        [        4 5       5      (       d   eg )NrD   c              3      #    U  H=  n[         [        4  H)  n[        S SX5      R                  [	        S S5      :H  v   M+     M?     g7f)r   rD   N)r   r   r)   r  r'   )r   r   r   s      rO   r    test_boundary.<locals>.<genexpr>  sC      L*	dE]z 1i4==1aP=J Q*s   AA)r'   r  r  r   r   rU   rR   rO   test_boundaryr    sL    Q<  IaL000 L"E]L L L L LrR   c            	         [        SS5      [        SS5      -   R                  [        SSSS5      :X  d   e[        SSSS5      [        SSSS5      -   R                  [        SSS5      :X  d   e[        SS5      [        S5      -   R                  [        SSS5      :X  d   e[        [        SS5      [        SS	5      SS
9R                  [        SS	5      :X  d   e[        [        SS5      [        SS5      SS
9R                  [        SS5      :X  d   e[        [        SSSS5      [        SS	SS5      SS
9R                  [        SSS	5      :X  d   eg )Nr   rD   rI   rd   FTr   r   rp  r   )r)   r  r'   r-   rU   rR   rO   test_boundary_Unionr    sX   QNXa^+551aA9NNNNaE4(aD%()*2(i1a6HI J I QNYq\)33yAq7IIII!R(1b/EBKKB      !R(1a.5AJJB     !Rt,"b$-??GxB#$ $ $rR   c                  v    [        [        SS5      [        SS5      SS9R                  [        SS5      :X  d   eg)z1Testing the boundary of unions is a hard problem r   r   rp  Fr   N)r-   r)   r  r'   rU   rR   rO   #test_union_boundary_of_joining_setsr    s<     !R(2r"2UCLLB     rR   c                     [        SSSS5      S-  n U R                  [        SS5      [        SS5      -  [        SS5      [        SS5      -  -   :X  d   e[        SSSS5      [        SSSS5      -  nX-   R                  [        SS5      [        SS5      -  [        SS5      [        SS5      -  -   [        SS5      [        SS5      -  -   [        SS5      [        SS5      -  -   :X  d   eg )Nr   rD   TrI   )r)   r  r'   )open_squaresecond_squares     rO   test_boundary_ProductSetr    s    1at,1KIaOhq!n$D$,QNYq!_$D%E F F F Q4.!Qd1KKM'11!Q(1a.0!Q(1a.01A1a01 A1a012 2 2rR   c                  X    [        SS5      [        S5      -  n U R                  U :X  d   eg r   )r)   r'   r  )
line_in_r2s    rO   test_boundary_ProductSet_liner    s*    !Q)A,.J*,,,rR   c                      [        SSSS5      R                  SL d   e[        SSSS5      R                  SL d   e[        SSSS5      R                  SL d   e[        SSS5      R                  SL d   eg Nr   rD   FTrI   rd   )r)   is_openr'   rU   rR   rO   test_is_openr"    s|    Aq%'//5888Aq$&..%777Aq$%--555Q1%%...rR   c                      [        SSSS5      R                  SL d   e[        SSSS5      R                  SL d   e[        SSS5      R                  SL d   eg r   )r)   	is_closedr'   rU   rR   rO   test_is_closedr%    s]    Aq%'11T999Aq$&00E999Q1''4///rR   c                  X    [        SSSS5      R                  [        SSSS5      :X  d   eg Nr   rD   FT)r)   closurerU   rR   rO   test_closurer)    s,    Aq%&..(1a2NNNNrR   c                  X    [        SSSS5      R                  [        SSSS5      :X  d   eg r'  )r)   interiorrU   rR   rO   test_interiorr,    s,    Aq%&//8Aq$3MMMMrR   c                  &    [        [        S 5        g )Nc                  0    [         [        R                  ;   $ rL   )r>   r   ri   rU   rR   rO   rP   !test_issue_7841.<locals>.<lambda>  s    a177lrR   )r:   rk   rU   rR   rO   test_issue_7841r0    s    
9*+rR   c                     [        [        SS5      [        SS5      5      (       d   e[        [        SS5      [        SS5      5      S:X  d   e[        SS5      n [        SS5      n[        X 5      (       d   e[        X5      S:X  d   e[        X-  X-  5      (       d   e[        X-  X-  5      S:X  d   e[        [         [        [        [
        15      [        [        15      5      (       d   e[        [        [        [
        15      R                  [
        [        5      [        [        15      5      [        R                  L d   e[        [        [        [
        15      [        [        15      5      R                  [
        [        5      [        R                  L d   e[        [        [        [
        15      R                  [
        [        S-   5      [        [        15      5      [        R                  L d   e[        [        [        [
        15      [        [        15      5      R                  [
        [        S-   5      [        R                  L d   e[        [        S1S15      [        SS5      5      [        R                  L d   e[        [        S15      [        S1S15      5      [        R                  L d   e[        [        S5      [        S5      5      [        R                  L d   e[        [        5       [        S5      5      [        R                  L d   e[        SS5      n[        [        [
        5      n[        [         [        X"5      [        X35      5      (       d   eg )Nr   rD   rI   FrU   )r2   r)   r'   r1   r>   r?   rW  r   r   r   r*   )r  r  r  r  s       rO   test_Eqr2    sq   hq!nhq!n----hq!nhq!n-666	1aB	1aBb:::b:beRUbeRUu$$$RAq6*IqcN;;;;iA$$Q*IqcN;qvvEEEiAA3055a;qvvEEEiA$$Q!,in=HHHiAA3055a1=HHHj!qc"HQN3qww>>>j!oz1#s34???imYq\*agg555jlIaL)QWW444	!QB	!QBRB+Z-?@@@@rR   c                    ^^ [        SSSSSS5      m[        SSSSS	5      n [        SS	5      m[        TU S
S9R                  SL d   e[        TTS
S9R                  b   e[        [        TU S
S96 [        SSSSSSS	5      :X  d   e[	        [
        UU4S j5        [        [        SSSSSS5      [        SSSSS	5      5      [        SSSSSSS	5      :X  d   e[        [        SSS5      [        SSSS5      5      [        S5      :X  d   e[        SSSSS5      [        SSSS5      -  [        SSS5      :X  d   e[        [        S5      [        S5      [        S5      5      [        [        S5      [        S5      [        S5      5      -  [        [        [        S5      [        S5      [        S5      5      [        [        S5      [        S5      [        S5      5      -
  [        [        S5      [        S5      [        S5      5      [        [        S5      [        S5      [        S5      5      -
  5      :X  d   e[        SS5      [        SS5      -  [        [        SS5      [        SS5      -
  [        SS5      [        SS5      -
  5      :X  d   eg )Nr   rD   rI   rd   r   r   r  r  r   Fr   Tc                  &   > [        [        T TSS96 $ r   )r'   r,   r   s   rO   rP   *test_SymmetricDifference.<locals>.<lambda>3  s    	.q!eDErR   )	r'   r)   r,   r   r:   rk   r+   r   r-   r   r   r   s    @@rO   test_SymmetricDifferencer7  )  s{   !Q1a#A!Q1b!ABAq!e4@@DHHHq!e4@@HHH)!Q?@!Q1aB'( ( (
9EG yAq!Q:aAq"%'*3Aq!Q1b*IJ J JyAq19Q1a3HI|  Q1a#i1a&;;aA  qtQqT1Q4 3qtQqT1Q4#88E#adAaDRSTURVBWZ]^_`a^bdefgdhjklmjnZoBo!adAaD!C!adAaD$99=; ; ; ;Aq>HQN*eHQNQN5$QNXa^;/= = = =rR   c            	          SSK Jn   [        SSS9n[        U " U5      5      R	                  [
        R                  5      [        [
        R                  [        U " U5      5      5      :X  d   eg )Nr   )logr   TrF   )&sympy.functions.elementary.exponentialr9  r   r'   r   r   ri   r(   )r9  r   s     rO   test_issue_9536r;  A  sN    :sASV&&qww/<SVWXSYIZ3[[[[rR   c                  p   [        S5      n [        U 5      n[        SU 5      n[        [        R                  U5      [        [        R                  USS9:X  d   e[        [        SS5      U5      [        [        SS5      USS9:X  d   e[        [        SS5      U5      [        [        [        SSSS5      [        SSSS5      5      U5      :X  d   e[        U[        R                  5      [        U[        R                  SS9:X  d   e[        U[        SS5      5      [        U[        SS5      SS9:X  d   eg )NrB   rI   Fr   rD   rd   T)r   r'   r%   r   ri   r)   r-   )rB   r   r   s      rO   test_issue_9637r=  G  s   sA!A!QAaggq!ZU%KKKKhq!na(Jx1~qSX,YYYYhq!na(5!Qt4hq!T56QRTUVW W Wa!Z177U%KKKKa!Q(Jq(1a.SX,YYYYrR   c            	      :   [        [        [        5      [        S5      5      [        [        [        5      [        S5      SS9:X  d   e[        [        SS[        5      [        [        [        SS5      5      [        [        S5      [        [        5      SS9:X  d   eg )NrD   Fr   rI   rd   )r%   r'   r?   r>   rU   rR   rO   test_issue_9808r?  S  ss    ilIaL1Z	!iXYlej5kkkki1a()Aq!Q*?@9Q<1>? ? ?rR   c                      [        [        [        * [        5      [        S5      5      [        [        * [        5      :X  d   e[        [        * [        5      R	                  S5      [
        R                  L d   eg r   )r-   r)   r   r'   r   r   r   rU   rR   rO   test_issue_9956rA  Z  sS    2#r"IaL1Xrc25FFFFRC%%a(AFF222rR   c            
         [        S[        5      n [        R                  n[	        / SQ5      n[        X[        [        5      [        [        [        5      5      [        U [        [        5      5      :X  d   e[        [        S[        [        5      [        [        [        S5      U 5      [        U [        [        [        5      5      :X  d   e[        [        [        [        [        5      [        [        [        5      U5      [        [        [        [        1[        [        [        15      U5      :X  d   e[        [        [        [        S5      [        [        [        [        5      U5      [        [        S[        [        5      [        [        [        [        5      USS9:X  d   e[        [        [        [        S5      [        [        [        SS5      U5      [        [        S[        [        5      U5      :X  d   e[        U[        US[        5      [        SU[        5      5      [        U[        [        5      5      :X  d   e[        [        [        [        5      [        [        5      5      [        [        [        5      [        [        5      S5      U5      [        U[        [        [        5      [        [        5      5      5      :X  d   e[        [        [        S-  S[        [        5      5      [        [        S-  S[        [        5      5      U5      [        U[        [        S-  [        [        5      5      5      :X  d   eg )Nr   )r   r   r   rD   rI   rd   Fr   )r)   r   r   ri   r    r(   r'   rA   rB   r>   r@   r   r   )r  rE   mats      rO   test_issue_Symbol_interrD  _  sN   BA	A

CilIaO<Q	!%& & &	!Q*IaA,>BQ	!Q() ) )	!Q*IaOQ?\1a&1a)4a89 9 9	!Q*IaA,>BYq!Q'1a);QOP P P	!Q*IaAq,A1EYq!Q'+, , ,9S!Q/1c11EFQ	!%& & &	#a&#a&19SVSVQ3OQRSQ	#a&#a&123 3 3	!Q$3q62IadAs1v4NPQRQ	!Q$A/01 1 1rR   c                  8    [         R                  S-  (       d   eg )Nr   )r   rg   rU   rR   rO   test_issue_11827rF  u  s    ;;>>rR   c            
         [         S-  [         S-  S-
  -  n [        [         U [        R                  5      [	        [        [        * S5      [        S[        SS5      5      :X  d   e[        [         U [        SS5      5      [        [        * S5      :X  d   e[        [         U [        SS5      5      [	        [        [        * S5      [        [        SS	5      [        5      5      :X  d   eg )
NrI   r   r   rD   Tra   rd   r  r   )r>   r.   r   ri   r-   r)   r   r   rZ   s    rO   test_issue_10113rI  y  s    	1adQhAAq!''"eHbS!,<hq"dTX>Y&ZZZZAq(2q/*hsA.>>>>Aq(2q/*eHbS!4DhxXY[\~_aFb.ccccrR   c                      [        [        S 5        [        SSS9n [        [	        [
        R                  [        U 5      5      5      U /:X  d   eg )Nc                  b    [        [        [        R                  [	        [
        5      5      5      $ rL   )r   r(   r   ri   r'   r>   rU   rR   rO   rP   "test_issue_10248.<locals>.<lambda>  s    4QWWil CDrR   r   TrF   )r:   rk   r   r   r(   r   ri   r'   )r   s    rO   test_issue_10248rM    sB    
D 	sAQWWil34;;;rR   c                     [        SS5      [        SS5      -   n [        [        R                  U 5      [        [        R                  [	        [        SS5      [        SS5      5      SS9:X  d   e[        [        R
                  U 5      [        [        R
                  [	        [        SS5      [        SS5      5      SS9:X  d   eg )Nr   rD   rI   rd   Fr   )r)   r%   r   rv   r-   rf   r   s    rO   test_issue_9447rO    s    A!Q'Aanna(JNNE(1a.(1a.AE-S S S Sajj!$
JJhq!nhq!n=)O O O OrR   c                      [        S5      S:H  SL d   e[        S5      S:g  SL d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        g )	NrI   rd   FTc                      [        S5      S:  $ NrI   rd   rK  rU   rR   rO   rP   "test_issue_10337.<locals>.<lambda>      ilQ.rR   c                      [        S5      S:*  $ rR  rK  rU   rR   rO   rP   rS        ila/rR   c                      [        S5      S:  $ rR  rK  rU   rR   rO   rP   rS    rT  rR   c                      [        S5      S:  $ rR  rK  rU   rR   rO   rP   rS    rV  rR   )r'   r:   rk   rU   rR   rO   test_issue_10337rY    s\    aLA%'''aLA$&&&
9./
9/0
9./
9/0rR   c                     [         [        S5      [        SS5      [        R                  [        R
                  [        R                  [        R                  [        R                  /n [        SS5      nU  H
  nX!;  a  M
   e   [        SSS9n[        SS	S
9nUS-   [        X3S-   5      ;   d   eU[        X3S-   5      ;  d   e[        SS5      [        [        SS5      [        SS5      5      ;   d   e[        [        * [        5      R                  [        5      [        R                  L d   e[        [        * [        5      R                  [        * 5      [        R                  L d   eg )NrD   rI   r   r   r>   TrF   nrFr   r   )rx   r'   r)   r   r9  r   r  NaNr  r   r   r   r   )badintervalr  r>   r[  s        rO   test_issue_10326r_    s'   !A			

			
C 1~H     	sA	E	*Bq5HQA&&&&XaQ''''Aq>Yx1~x1~FFFFRC%%b)QWW444RC%%rc*agg555rR   c                      [         R                  n [        SSS9n[        U[        5      n[         R
                  nX-   X -   :X  d   eX-   X0-   :X  d   eX2-   X#-   :X  d   eg )Nr   TrF   )r   rv   r   r)   r   ri   )r  r   inf_intervalRs       rO   test_issue_2799rc    sc    	AsAAr?L	A|////5AE>>|////rR   c                  8   [        [        * S5      R                  [        [        * SSS5      :X  d   e[        S[        5      R                  [        S[        SS5      :X  d   e[        [        * [        5      R                  [        [        * [        5      :X  d   eg )Nr   TF)r)   r   r(  rU   rR   rO   test_issue_9706re    sw    RC##xQe'DDDDAr?""hq"eT&BBBBRC$$"b(9999rR   c                     [        [        [        * [        5      [        [        5      5      n [        [        [        * [        5      [        [        * 5      5      n[        [        * [        5      [        [        5      -   U :X  d   e[        [        5      [        [        * [        5      -   U :X  d   e[        [        * [        5      [        [        * 5      -   U:X  d   e[        [        * 5      [        [        * [        5      -   U:X  d   eg rL   )r-   r)   r   r'   )reals_plus_infinityreals_plus_negativeinfinitys     rO   test_issue_8257ri    s    "b 19R=A"'"b(99bS>"JRCy},0CCCCR=8RC,,0CCCCRCy"~-1LLLLbS>HbS"--1LLLLrR   c                      [         R                  [         R                  -
  [        :X  d   e[         R                  [         R                  -
  [        :X  d   eg rL   )r   re   rx   ri   rU   rR   rO   test_issue_10931rk    s8    ::

"h...::8+++rR   c                  ^   [        [        [        * [        5      [        [        * 5      SS9n [        [        [        * 5      [
        R                  5      U :X  d   e[        [
        R                  [        [        5      SS9n [        [        [        5      [
        R                  5      U :X  d   eg r   )r(   r)   r   r'   r>   r   ri   )solns    rO   test_issue_11174rn    sq    "b)9aR=5ID	1"qww/47771>D	!agg.$666rR   c                  n   [        [        [        [        [        [        -  S-  S-
  [        S-  -   5      5      [
        R                  5      R                  S5      [        S[        [        [        [        [        [        -  S-  S-
  [        S-  -   5      5      [
        R                  5      5      :X  d   eg )NrI   rD   r   )	r#   r   rB   r   r   r   re   r   r"   rU   rR   rO   test_issue_18505rp    s    F1d2a46A:1#456

CLLQOQ41Q
RT0A+B!CQZZPQR R RrR   c            
         [        [        [        * [        5      [        [        5      5      [        [        5      :X  d   e[         R                  " [        [        * [        5      [        S[        5      /5      [        [        5      :X  d   e[         R                  " [        [        * [        5      [        [        5      /5      [        [        5      :X  d   e[         R                  " [        SS[        [
        5      [        SS[        5      /5      [         R                  " [        SS[        5      [        SS[        [
        5      /5      s=:X  ag  [        [        SS[        5      [        SS[        [
        5      5      s=:X  a3  [        [        SS[        5      [        S[        [
        5      5      :X  d   e   e[        S[        -   [
        -
  5      [        S5      -  [        S5      [        S[        -   [
        -
  5      -  s=:X  a0  [        [        S[        -   [
        -
  5      [        S5      SS9:X  d   e   e[        S5      [        [        5      -  [        [        5      [        S5      -  s=:X  a&  [        [        S5      [        [        5      SS9:X  d   e   e[        [        15      [        [        [
        15      -  [        [        [        15      [        [        [
        15      SS9:X  d   eg )Nr   rI   rd   rD   Fr   )r(   r'   r   r>   _handle_finite_setsr?   rU   rR   rO   test_finite_set_intersectionrs    sT    	2#q)9Q<8IaLHHH++YsA->	!Q,PQU^_`Uaaaa++YsA->	!,MNR[\]R^^^^++Yq!Q-BIaQRTUDV,WX(()Aq!*<i1aQR>S)TU=Yq!Q'1aA)>?= 	Yq!Q'1a);<= = = = =
 QqSUil*!y1Q''EYqs1u%y|eDE E E E E Q<)A,&)A,1*E AYq\9Q<%@A A A A A aS>Iq!f--Ys^Y1v%6GH H HrR   c                    ^  [        S5      [        S5      /m [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [	        T 5      5      [        T 6 :X  d   e[        [	        T 5      5      [        T 6 :X  d   e[        S1S15      [        SS5      :X  d   e[        SS1SS	15      [        S5      :X  d   eg )
NrD   rI   c                     > [        T 5      $ rL   r   r   s   rO   rP   5test_union_intersection_constructor.<locals>.<lambda>  s	    eDkrR   c                     > [        T 5      $ rL   r(   rv  s   rO   rP   rw    s
    l40rR   c                  ,   > [        [        T 5      5      $ rL   )r-   tuplerv  s   rO   rP   rw    s    eE$K0rR   c                  ,   > [        [        T 5      5      $ rL   )r(   r{  rv  s   rO   rP   rw    s    l5;7rR   c                  (   > [        S T  5       5      $ )Nc              3   $   #    U  H  ov   M     g 7frL   rU   r  s     rO   r   Htest_union_intersection_constructor.<locals>.<lambda>.<locals>.<genexpr>  s     #4t!At   r   rv  s   rO   rP   rw    s    e#4t#44rR   c                  (   > [        S T  5       5      $ )Nc              3   $   #    U  H  ov   M     g 7frL   rU   r  s     rO   r   r    s     *;d1dr  ry  rv  s   rO   rP   rw    s    l*;d*;;rR   rd   )r'   r:   	Exceptionr-   r5  r(   rv  s   @rO   #test_union_intersection_constructorr    s    aL)A,'D
9)*
901
901
978
945
9;< Ty$////D	"i&6666!qc?i1o---AA'9Q<777rR   c                      [         [        [        R                  " [        * S5      [        R                  " S[        5      5      ;  d   eg r   )r   r-   r)   r   r   rU   rR   rO   test_Union_containsr    s8    erc1x}}Q35 5 5 5rR   c                      [        [        [        [        4[        R                  5      R	                  [        R                  S-  5      SL d   eg )NrI   T)r.   r>   r   ri   r   rU   rR   rO   test_issue_16878br    s6    
 A1vqww'11!''1*=EEErR   c            	      J   [        [        SSS5      [        SSS5      [        SSS5      5      R                  [        5      [        SSS5      [        SSS5      -  :X  d   e[        [	        SS5      [	        SS5      5      R                  [        5      [        [	        SS5      [        S5      -  [	        SS5      [        S5      -  5      :X  d   e[        [	        SS5      [	        SS5      5      R                  [        5      [        [	        SS5      [        S5      -  [	        SS5      [        S5      -  5      :X  d   e[        [	        SS5      [
        R                  [
        R                  5      R                  [        5      [	        SS5      [        S5      -  :X  d   e[        [	        SS5      5      R                  [        5      [	        SS5      [        S5      -  :X  d   e[        [
        R                  [	        SS5      [
        R                  5      R                  [        5      [	        SS5      [        S5      -  :X  d   e[        [	        [        * [        5      5      R                  [        5      [	        [        * [        5      [        S5      -  :X  d   e[        [
        R                  5      R                  [        5      [
        R                  :X  d   e[        5       R                  [        5      [
        R                  :X  d   e[        [        S 5        [        S	5      n [        S
5      n[        S5      n[        [        U 5      [        X5      5      R                  [        5      [        U 5      [        S5      -  [        X5      [        S5      -  -   :X  d   eg )NrD   rI   rd   r   r   r   r   c                  *    [        [        S5      5      $ )NrB   )r&   r   rU   rR   rO   rP   $test_DisjointUnion.<locals>.<lambda>  s    mF3K8rR   r>   r?   r@   )r&   r'   rewriter-   r)   r   rx   r   r:   rk   r   )r>   r?   r@   s      rO   test_DisjointUnionr    sN   1a+Yq!Q-?1aQRAST\\]bchqrsuvxyhz  ~G  HI  KL  NO  ~P  iP  Q  Q  Q!Q!Q8@@G5QYZ[]^Q_bklmbnQnpxyz|}p~  BK  LM  BN  qN  LO  O  O  O!Q!Q8@@G5QYZ[]^Q_bklmbnQnpxyz|}p~  BK  LM  BN  qN  LO  O  O  O"a!**ajjAII%PT\]_abTcfopqfrTrrrr"a)11%8HROiXYl<ZZZZXb!_ajjAII%PT\]_abTcfopqfrTrrrr2#r*+33E:hsB>OR[\]R^>^^^^$,,U3qzzAAA?""5)QZZ777
989sAsAsA1y7??F9UV<ZcdeZfKfktuvkz  ~G  HI  ~J  lJ  KK  K  K  KrR   c                  *   [        [        R                  5      R                  SL d   e[        [        R                  [        R                  5      R                  SL d   e[        [        R                  [	        SSS5      5      R                  SL d   eg )NTrD   rI   rd   F)r&   r   rx   rw   r'   rU   rR   rO   test_DisjointUnion_is_emptyr  %  sj    $--555QZZ099TAAAYq!Q%78AAUJJJrR   c                     [        [        R                  [        R                  [        R                  5      R
                  SL d   e[        [        R                  [        R                  5      R
                  SL d   e[        [        SSS5      [        R                  [        [        [        5      5      R
                  SL d   e[        [        R                  [        R                  5      R
                  SL d   eg )NTFrD   rI   rd   )r&   r   re   rf   ru   r   rx   ri   r'   r>   r?   rU   rR   rO   test_DisjointUnion_is_iterabler  *  s    QZZ=IITQQQQWW-99UBBB1a+QZZ1aIUUY]]]]QZZ0<<EEErR   c            
      8   S[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS	[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS
[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;   d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;  d   eS[        [        S5      5      ;  d   eS[        [        SSS5      [        SSS5      [        SSS5      5      ;  d   e[        S4[        [        [        [        [        5      [
        R                  [        [        5      5      ;   d   e[        S4[        [        [        [        [        5      [
        R                  [        [        5      5      ;   d   e[        S4[        [        [        [        [        5      [
        R                  [        [        5      5      ;   d   e[        S4[        [        [        [        [        5      [
        R                  [        [        5      5      ;   d   eS[        [        SS5      [        SS5      5      ;   d   eS[        [        SS5      [        SS5      5      ;   d   eS[        [        SS5      [        SS5      5      ;  d   eS[        [        SS5      [        SS5      5      ;   d   eg )Nr  r   rD   rI   )r   rD   )r   rI   r  rJ   rH   )rI   r   rI   rD   r3  )r   rD   rI   )r   r  r  )r   r   )r  r   )r  rD   )r
  r   )r
  rD   )r&   r'   r>   r?   r@   r   rx   r)   rU   rR   rO   test_DisjointUnion_containsr  0  s   ]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^]9Q1#5yAq7I9UVXY[\K]^^^^M)Aq!*<i1a>PR[\]_`bcRdeeee=38888yAq'99Q1;MyYZ\]_`Oabbbbq6]9Q1#5qzz9Q<PPPPq6]9Q1#5qzz9Q<PPPPq6]9Q1#5qzz9Q<PPPPq6]9Q1#5qzz9Q<PPPP}Xa^Xa^DDDD}Xa^Xa^DDDD=!Q!QHHHH}Xa^Xa^DDDDrR   c                    ^ [        [        SSSS5      [        [        [        [        5      5      n [        U 5      m[        S4[        S4[        S4/n/ SQn[        T5      nX2;   d   eUR                  U5        [        T5      nX1;   d   eUR                  U5        [        T5      nX2;   d   eUR                  U5        [        T5      nX1;   d   eUR                  U5        [        T5      nX2;   d   eUR                  U5        [        T5      nX1;   d   eUR                  U5        [        T5      nX2;   d   eUR                  U5        [        [        U4S j5        [        [        S 5        g )	Nrd   r   ro  r  rD   ))rd   r   )r   r   )ro  r   )r  r   c                     > [        T 5      $ rL   )next)its   rO   rP   )test_DisjointUnion_iter.<locals>.<lambda>`  s	    $r(rR   c                  \    [        [        [        SS5      [        R                  5      5      $ r   )iterr&   r)   r   rx   rU   rR   rO   rP   r  b  s    tM(1a.!**$MNrR   )r&   r'   r>   r?   r@   r  r  remover:   StopIterationrl   )r   L1L2nxtr  s       @rO   test_DisjointUnion_iterr  F  s1   i1a+Yq!Q-?@A	aBa&1a&1a&	!B	)B
r(C99IIcN
r(C99IIcN
r(C99IIcN
r(C99IIcN
r(C99IIcN
r(C99IIcN
r(C99IIcN
=*+
:NOrR   c                  ^   [        [        [        SSSS5      [        [        [        [
        5      5      5      S:X  d   e[        [        [        R                  [        R                  [        [        [        [
        5      [        R                  5      5      S:X  d   e[        [        S 5        g )Nrd   r   ro  r  c                  \    [        [        [        SS5      [        R                  5      5      $ r   )r  r&   r)   r   rx   rU   rR   rO   rP   (test_DisjointUnion_len.<locals>.<lambda>g  s    s=!Q#LMrR   )
r  r&   r'   r>   r?   r@   r   rx   r:   rl   rU   rR   rO   test_DisjointUnion_lenr  d  so    }Yq!Q2IaA4FGHAMMM}QZZYq!Q5GTUYZZZZ
:MNrR   c            	      t   [        [        [        SS/5      5      [        [        SS/5      5      5      n [        [        5      n[        [        X5      5      nU R                  UL d   e[        [        SS5      [        [        SS/5      5      5      R                  [        [        [        U5      5      L d   eg NrD   rI   )	r*   r'   r    r   r   r/   r   kindr)   )r   mkks      rO   test_SetKind_ProductSetr  i  s    9VQF^,i1v.GHA	J	B	"!"A66Q;;hq!ni1v&?@EEQZ[egiQjIkkkkrR   c                  T    [        SS5      R                  [        [        5      L d   eg r  )r)   r  r/   r   rU   rR   rO   test_SetKind_Intervalr  p  s!    Aq>'*"5555rR   c                      [         R                  R                  [        [        5      L d   e[
        R                  [        5       L d   eg rL   )r   rv   r  r/   r	   rx   rU   rR   rO   "test_SetKind_EmptySet_UniversalSetr  s  s3    >>'-"8888==GI%%%rR   c                      [        S[        SS/5      5      R                  [        [        5      L d   e[        SS5      R                  [        [
        5      L d   eg r  )r'   r    r  r/   r	   r   rU   rR   rO   test_SetKind_FiniteSetr  w  sI    Q1v',,0FFFFQ?7:#6666rR   c                     [        [        [        SS/5      5      [        SS5      5      R                  [        [        5      L d   e[        [        SS5      [        SS5      5      R                  [        [        5      L d   eg )NrD   rI   ro  )r-   r'   r    r)   r  r/   r	   r   rU   rR   rO   test_SetKind_Unionsr  {  sa    61a&>*HQN;@@GMDZZZZ!Q!Q0559LLLLrR   c                      [        SSS5      n [        SS5      n[        X5      R                  [	        [
        5      L d   eg )NrD   rI   rd   r   r   )r'   r)   r&   r  r/   r   rD  s     rO   test_SetKind_DisjointUnionr    s9    !QAAA##wz'::::rR   c                  |   S n U " S1[         5      R                  [        [        5      L d   eU " [	        SS5      [         5      R                  [        [        5      L d   eU " S1[
        R                  5      R                  [        [        5      L d   eU " [	        SS5      [	        SS5      [        S5      5      R                  [        [        5      L d   eS nU" S1[
        R                  5      R                  [        [        5      L d   eU" S1[         5      R                  [        5       L d   eS nU" [
        R                  1 Sk5      R                  [        [        5      L d   eU" 1 S	k[         5      R                  [        [        5      L d   eU" [         1 S	k5      R                  [        5       L d   eg )
Nc                      [        U SS06$ Nr   Fr   argss    rO   rP   -test_SetKind_evaluate_False.<locals>.<lambda>  s    eT2E2rR   rD   rI   r   r   c                      [        U SS06$ r  ry  r  s    rO   rP   r    s    lD959rR   c                      [        U SS06$ r  )r%   r  s    rO   rP   r    s    j$77rR   >   rD   rI   r   r   >   rD   rI   rd   r   r   )	rx   r  r/   r   r)   r   rv   r	   r'   )r  r   r   s      rO   test_SetKind_evaluate_Falser    s_   2AaS(  GJ$7777Xa^X&++wz/BBBBaS!..!&&'-*@@@@Xa^Xa^aL$'*"56 6 69AaS!..!&&'**====aS(  GI---7AQ^^\*//7=3IIII_h',,
0CCCCX',,	999rR   c                  X   [        [        [        [        S-  5      [        SS5      5      n U [	        S5      -
  R
                  [        [        5      L d   eU [        SS5      -   R
                  [        [        5      L d   eU [	        S5      -   R
                  [        [        5      L d   eg )NrI   rD   r   rd         )r#   r   rB   r)   r'   r  r/   r   rH  s    rO   test_SetKind_ImageSet_Specialr    s    16"HQN3A	!""gj&9999R  &&'**====	"##wz'::::rR   c                     [        [        SS5      [        S5      5      n SU ;  d   eSU ;  d   e[        S[        SS5      5      (       a   e[        S5      U ;   d   e[        SS5      nX;   d   eU R                  U 5      (       d   eUR                  U 5      (       a   eSU;   d   e[        [        SS5      [        S5      SS5      nUR                  U5      (       d   eU R                  U5      (       d   eg )NrD   rI   r   )r'   r2   r{  r6  s      rO   test_issue_20089r    s    )Aq/9Q<0AA::a<<!Yq!_%%%%Q<1!QA6M6::a===zz!}}6M6)Aq/9Q<A6A::a===::a===rR   c                     [        SS5      n [        X 5      n[        SSSS5      nUR                  U5      SL d   e[        S5      nUR                  U5      SL d   e[        X!5      R	                  5       [
        R                  L d   e[        X5      R	                  5       [
        R                  L d   e[        S1[        15      R	                  5       [        S1[        15      :X  d   eg )	NrD   rI   rJ   rH   r  r3  TF)	r'   r*   r   r2   simplifyr   r   r   r>   )r   r   r=  ds       rO   test_issue_19378r    s    !QA1A&&&&1A;;q>T!!!!A;;q>U"""a8!&&(((a8!'')))qcA3<  "b!qcl222rR   c            	      P   [        S5      n [        [        [        U 5      [        S5      5      [        5      (       d   e[        [        [        U 5      [	        SS5      5      [        5      (       d   e[        [        [        S5      [	        SU 5      5      [        5      (       d   eg )NrB   rq  rD   )r   r   r(   r$   r)   r|  s    rO   test_intersection_symbolicr    sv    sAl58U3Z8,GGGGl58Xa-=>MMMMl5:x1~>MMMMrR   c            	      2   [        SSSS9n [        [        SU 5      [        SSS5      5      [        [        SU 5      [        SSS5      5      :X  d   e[        [        SU 5      [        SSS5      5      [        [        SU 5      [        SSS5      5      :X  d   eg )	NrB   T)r^   r   r   r   i  r      )r   r(   r$   r)   r|  s    rO   "test_intersection_symbolic_failingr    s    sD40Ab!eAsA&67<b!eBQ'<) ) ) )Qq#q)9:lQr3*?, , , ,rR   c                  |    [         S-
  n [        U 5      R                  S5      [        [        SS5      5      :X  d   eg )Ng-DT!	@rI   z3.23108914886517e-15)r   r'   rl  r
   rY   s    rO   test_issue_20379r    s7    
AQ<a Ie4JA.N$OOOOrR   c                      [        S[        S5      S-  [        S5      S-  -   5      n U R                  " 5       S1:X  d   eg r  )r'   r   r   r  r   s    rO   test_finiteset_simplifyr    s9    !SVQYQ*+A::<A3rR   c                      [         R                  n [        S5      nX R                  [	        US5      R                  5       5      -  n X R                  [         R                  R                  5       5      -  n g )Nr>   rD   )r   r8  r   r   r3   r  r   r  s     rO   test_issue_14336r    sM    	AsAR1X__&	''AQVV]]_	%%ArR   c                      [        SSS9u  pn[        SU 5      [        US5      -  n[        SS5      nUR                  U5      S :X  d   eg )Nzx, y, zTrF   rD   rI   )r   r)   r   )r>   r?   r@   r  r  s        rO   test_issue_9855r    sJ    id+GA!	!Q(1a.	(B	!QB<<t###rR   N)sympy.concrete.summationsr   sympy.core.addr   sympy.core.containersr   sympy.core.functionr   sympy.core.kindr   r	   sympy.core.numbersr
   r   r   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   (sympy.functions.elementary.miscellaneousr   r   r   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   sympy.logic.boolalgr   r   sympy.matrices.kindr   sympy.matrices.denser    sympy.polys.rootoftoolsr!   sympy.sets.containsr"   sympy.sets.fancysetsr#   r$   sympy.sets.setsr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   mpmathr0   sympy.core.exprr1   sympy.core.relationalr2   r3   r4   r5   r6   sympy.logicr7   r8   r9   sympy.testing.pytestr:   r;   r<   sympy.utilities.iterablesr=   r  r>   r?   r@   rA   rB   rx   rs   r{   r   r   r   r   r   r   r   r   r   r   r   r  r  r,  r;  r>  rA  rE  r]  r_  ra  rc  rg  rm  rw  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r"  r%  r)  r,  r0  r2  r7  r;  r=  r?  rA  rD  rF  rI  rM  rO  rY  r_  rc  re  ri  rk  rn  rp  rs  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  rU   rR   rO   <module>r     sH   )  + & 5 E E E   " / & E E : ? - * ' * ( 2 [  [  [  [  % : : $ $ F F , # #::$)N'X6!!FH8=6I1X;?
&<.b"-J.IbCIL.8 AFR>
2I*X=
@
3<A68/KbC54E8@v0-($
@A72H	97* + +G-#D$8N.$>&	#<.=>> P PF
,6
4
L$     
2-
/0ON,A<=0\	Z?3
1,d<O1600:M,
7R
H08&5
 F FK"K
FE,P<O
l6&7M;
:;	3N , ,P
&$rR   