
    gj,                        d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZ d dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl
m)Z) d dl*m+Z+m,Z,  ed          Z- ed          Z. ed          Z/ ed          Z0 ed          Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d  Z;d! Z<d" Z=d# Z>d$ Z?d% Z@d&S )'    )	unchanged)ConditionSetIntersection	FiniteSetEmptySetUnionContainsImageSet)SetKind)FunctionLambda)Mod)
NumberKind)oopi)EqNe)S)Symbolsymbols)Abs)asinsin)And)Matrix)MatrixSymbol)Interval)raiseswarns_deprecated_sympywxyzfc                     t          t          t          t          t                    d          t	          ddt
          z  dd                    } t
          | v sJ t
          dz  | vsJ dt
          z  | vsJ t          | vsJ dt          t          t          dz  dk    t          j                  v sJ dt          t          t          dz  dk    t          j                  vsJ dt          t          t          dk    t	          dd	                    vsJ t          t          d
            t          ddd          }t          |t          |t          ddgddgg          z  |                    }t          ddgddgg          }|                    |                                          t          j        u sJ t          ddgddgg          }|                    |                                          t          j        u sJ t%          t          t          t          dk     t          t          h          j        t(                    sJ t          t          d            t          t          d            t          j        t          j        t            t          d          t          j        u sJ  t          d          u sJ  t          t          dk      t          t          dk                          t          t          dk     t          dk     z            k    sJ  t          t          dk      t          t          dk                          t          t          dk     t          dk     z            k    s<J  t          t          dk      t          t          dk                                      t          t          dk      t          t          dk                          t          t          dk     t          dk     z            k    sJ  t          t          dk      t          t          t          k                          t          t          dk     t          t          k     z            k    sJ t1          t          t          dk      t          t          t          k                         sJ t          t          t          dk               j        u sJ t          t          ft          dk               j        u sJ t          t          t          ft          t          k     dz            }d|v sJ dt
          f|vsJ t          t          fd           t          t          fd           d S )Nr      FT               c            	      `    dt          t          t          dk    t          dd                    v S N   r(   r*   r+   r   r!   r"   r        ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/sets/tests/test_conditionset.py<lambda>ztest_CondSet.<locals>.<lambda>.   s*    a<1q5A$ $  r1   Xc                  V    t          t          t          dz   t          t          h          S Nr*   )r   r!   r"   r0   r1   r2   r3   ztest_CondSet.<locals>.<lambda>:   s    l1a!eaV<< r1   c                  8    t          t          t          d          S r6   r   r!   r0   r1   r2   r3   ztest_CondSet.<locals>.<lambda>;   s    l1a33 r1   r*   r&   c            
            t           t           dk      t           t          ft           dk    dz                      S Nr*   r&   r!   r"   )CIs   r2   r3   ztest_CondSet.<locals>.<lambda>T   s3    aa1q5!!QFAE1a4*@*@AA r1   c                  Z      t           t          ft           t          z   dk               S )Nr&   r<   )r=   Us   r2   r3   ztest_CondSet.<locals>.<lambda>V   s#    aaAA	1a88 r1   )r   r!   r   r   r   r   r   r   Realsr"   r   	TypeErrorr   r   containsdoittruefalse
isinstancebase_setr   IntegersUniversalSetr   r   )	sin_sols_principalr4   
matrix_setYZcr=   r>   r@   s	         @@@r2   test_CondSetrP      s:   %aCFFA&.q!B$t&D&DF F#####a4)))))R4)))))'''''Q1q!'222222LAqD1Hag666666 LAE8Aq>>:::::: 9      	S!QAaAfq!fq!f-=&>&>$>!B!BCCJAA  Aq!!&&((AF2222AA  Aq!!&&((AG3333l1a!eaV44=    
9<<===
933444	
A	AA1Qq>>QZ''''1Qa==A1QAqqAE1~~ 
 
Qq1q5QU#Q''( ( ( (1QAqqAE1~~ 
 
Qq1q5QU#Q''( ( ()*1a!eQQq!a%^^)D)D( ( (1QAqqAE1~~ 
 
Qq1q5QU#Q''( ( ( (1QAqqAE1~~ 
 
Qq1q5QU#Q''( ( ( (Q1q5!!Aq1ua..111111q5!!*a//// a!e$$-2222aVQUAqD))AQ;;;;r7!
9AAAAABBB
98888899999r1   c            
         t          t          t          dz  dk    t          dddd                    } t          dddd          }t          t          t          dz  dk    t          dddd                    }t          | |          |k    sJ d S )Nr&   r)   r*   Fr   r'   )r   r!   r   r   )input_conditionsetother_domainoutput_conditionsets      r2   test_CondSet_intersectrU   Y   s    %aA8Aq%4 4  Aq%//L&q!Q$(H	1eU5 5  *L 
 
 ! ! ! ! ! !r1   c            
      L   t          t          t          t          t                    t          j                  t          j        u sJ t          t          t          t          t          t                              d          t          j                  t          j        k    sJ d S )N)r   r!   r   r   Naturalsr   r   r   r0   r1   r2   test_issue_9849rY   c   s    2a88QZ 
 
Z   2c#a&&kk2..
 
 
Z     r1   c                  <   t          t          t          t          dk     t          dk              t          ddd                    t          d          k    sJ t          t          t          dk     t          ddd                    t          k    sJ t          t          t          t          dk               t                    t          k    sJ t          d          } t          t          t          t          dk              t          ddd|                     t          t          d          t          t          t          t          dk              t          |                               k    sJ t          t          t          t          t          d          d          t          ddd|                     t          t          dd          t          t          t          t          t          d          d          t          |                               k    sJ d S )	Nr*   r   r&   r"   rW   r'   r)   )	r   r!   r   r   r   r   r   r   r   )r"   s    r2   $test_simplified_FiniteSet_in_CondSetr\   j   s   3q1ua"f--yAq/A/A 
 
q\\   1q5)Aq!"4"455AAAA3q2v;;11X====sACAJJ	"aA(>(>??illLCAJJ	!EEFFG G G GBs1ayy!,,i1a.C.CDDi1oo|Ar#a))Q/?/?!    	 	     r1   c                     t          t          t          t          d          t	          t
                              j        t          t
          hk    sJ t          t          t          t          d          t	          t
                              j        t
          hk    sJ t          t          t          t          d          t	          t          t
                              j        t          t
          hk    sJ t          t          t          t          d          t          t          t          t          dz            t          j
                            j        t                      k    sJ d S Nr   r&   )r   r!   r   r"   r   r#   free_symbolsr
   r   r   rI   setr0   r1   r2   test_free_symbolsra   w   s   2a88Yq\\ 
 

1a&! ! ! !2a88Yq\\ 
 

1#   2a88Yq!__ 
 

1a&! ! ! !2a88XfQ1oo	
& &  !SUU+ + + + + +r1   c                     t          t          t          t          d          t	          t
                              j        t          gk    sJ t          t          t          t          d          t	          t          t                              j        t          gk    sJ t          t          t          dk     t          t          t          t          dz            t          j
                            j        t          gk    sJ t          t          t          dk     t          t          t          dk    t          j
                            j        t          gk    sJ d S )Nr   
   r&   r*   )r   r!   r   r"   r   r#   bound_symbolsr
   r   r   rI   r0   r1   r2   test_bound_symbolsre      s   2a88Yq\\ 
 

A3   2a88Yq!__ 
 

A3   1r68F1adOOQZ#H#H 
 

A3   1r6<1q5!*#E#E 
 

A3     r1   c                  <   t          d          \  } }t          t          t          dk     t          t          t
                                                              t          | | dk     t          t          t
                              k    sJ t          t          t          dk     t          t          t
                                                              t          | | dk     t          t          t
                              k    sJ t          t          t          dk     t          t          t          t          dz            t          j
                                                            t          | | dk     t          t          | | dz            t          j
                            k    sJ t          t          t          ft          t          k    t          j        dz            }|j        t          t          gk    sJ |                                t          | |f| |k    t          j        dz            k    sJ |                                t          t          t          ft          t          k    t          j        dz                                            k    sJ d S )Nz_0 _1r*   r&   )r   r   r!   r   r"   r   as_dummyr
   r   r   rI   rA   rd   )_0_1es      r2   test_as_dummyrk      s   WFB1q5(1b// 
 

(**Ra!RAAB B B B1q5(1b// 
 

(**Ra!RAAB B B B1q5(6!QT??AJ"G"G 
 

(**QBE!2!2AJ??A AA A A A 	aVQ!VQWaZ00A?q!f$$$$::<<<R"(AGQJGGGGGG::<<<AQ
 
 

(**     r1   c            
      
   t          t          t                    } t          t          t          dk     |           }|                    t          t                    |k    sJ |                    t          t                    t          t          t          dk     t          t                              k    sJ |                    t          t          i          t          t          t          dk     |           k    sJ t          t          t          t          k     |                               t          t                    t          t          t          t          k     |                     t          t                              k    sJ t          dd          t          dk     t          j
                  t          j        u sJ t          dd          }t          t          k     t          j
                                      t                    t          t          k     t          j
                  k    sJ t          t          d            t          |t          k     t          d	d
                                        t          |          t          d	d
          k    sIJ t          |t          k     t          d	d
                                        t          |                      t          t          k     t          t           d                                        t          |          t          t           d          k    sJ t          t!          t                    t!          t                    dk     t          t          h                              t!          t                    t                    t          t!          t                    t!          t                    dk     t          t          h          k    sJ t          d          }t#          t%          |d|z  t&          z  t)          t                    z             t          j
                  }t#          t%          |d|z  t&          z  t)          t          j        dz            z             t          j
                  }t          t          t-          t          t          dd                    |                              t          t          j        dz                                |          sJ dt          t          t          ft          t          z   dk     t          j
        dz            v sJ t          t0          fd           d S )Nr&   nT)negativer   p)positivec                  Z    t          t          dz   t          dk     t          j                  S r6   )r   r!   r   rI   r0   r1   r2   r3   z#test_subs_CondSet.<locals>.<lambda>   s!    |	Aq1uaj "  " r1   r(   r*   kr'   rW   r   r*   c                  J    t            dk     t          dd                    S )Nir   rc   )r   r   )rm   s   r2   r3   z#test_subs_CondSet.<locals>.<lambda>   s    l1a#gx2GG r1   )r   r#   r"   r   r!   subsxreplacer    r   r   rI   r   r   
ValueErrorr   r   r$   r
   r   r   r   Oner	   dummy_eqrB   )srO   ro   rs   img1img2rm   s         @r2   test_subs_CondSetr~      s+   !QAQAq!!A66!Q<<166!Q<<<1q5)A,,??????::q!faQ!:!:::::1q5! 
 

$q!**QAqvva||<<= = = = 	sT"""A1q5!*--;;;;sT"""A1q5!* 
 

$q!**QAqz::; ; ; ;
: " " # # #	1q5(2q//# ##'41::"aA A ABN	1q5(2q//C# C##'41::A A A 	1q5(B3""$ $$(DA %
 %
rc1    !addQhA 
 

$qttQ--<!addQhA??@ @ @ @ 	sAF1ac"ftAww.//<<DF1ac"ftAE!G}}455qzBBD8	8Bq>>  " ""&$q!%'"2"288D>>B B B \1a&!a%!)QZ]CCCCCC
9GGGGHHHHHr1   c            
         t                      5  t          t          t          ft          dz   t          t          z   ht          j        dz            t          t          t          ft          t          dz   d          t          t          t          z   d          z  t          j        dz            k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr*   r&   r   )r   r   r!   r"   r   rA   r   r0   r1   r2   test_subs_CondSet_tebrr      s    		!	! J JQFQUAENAGQJ??!QAE11q5!!<agqjIIJ J J J JJ J J J J J J J J J J J J J J J J Js   B$CCCc                  D   t           } t          j        } | t          t          dk     |          }|                     | t
          t
          dk     |                    sJ |                    d          dk    sJ |                     | t          t          dk     t          j                            dk    sJ t          t          t
          ft          t          dz   d          t          t          t
          z   d          z  t          j        dz            }t          t          t
          ft          t          dz   d          t          t          t
          z   d          z  t          j        dz            }t          t          t
          ft          t          dz   d          t          t          t
          z   d          z  t          j        dz            }|                    |          sJ |                    |          du sJ |                    |          du sJ |                    |          du sJ t          d          }t          d          }t          d          }t          t          ||t          z            t          j                  }	t          t          ||t          z            t          j                  }
t          t          t          |d          |	          }t          t          t          |d          |
          }|                    |          sJ d S )Nr*   Fr   r&   mrm   a)r   r   rI   r!   rz   r"   rA   r   	Complexesr   r
   r   r   r   )r=   r>   rO   c1c2c3r   rm   r   d1d2s              r2   test_dummy_eqr      sQ   A	
A	!QUAA::aa1q5!nn%%%%%::a==E!!!!::aa1q5!'**++u4444	q!fbQllRAq\\917A:	F	FB	q!fbQllRAq\\917A:	F	FB	q!fbQllRAq\\91;>	J	JB;;r??;;r??e####::b>>U"""";;q>>U"""" 	sAsAsA	&AbD//1:	.	.B	&AbD//1:	.	.B	aAq2	&	&B	aAq2	&	&B;;r??r1   c            
         dt          t          t          dk    t          dd                    v sJ dt          t          t          dk    t          dd                    v du sJ t	          t
          d            t	          t
          d            t          t          t          dk    t          dd                                        d          t          dk    k    sJ t          t          t          dk    t          dd                                        d          t          j        u sJ t          t          t          dk    t          dd                                        t                    t          t          t          t          dd                    t          dk              k    sJ t          t          dt          z  d	k    t          j                                      d	          t          d	t          t          dt          z  d	k    t          j                  d
          k    sJ t          t          t          ft          t          z   dk    t          j        dz            } |                     d          rJ |                     d          sJ |                     d          rJ t          t          t          t          fft          t          z   t          z   dk    t          j        t          j        dz  z            } |                     d          rJ |                     d          rJ |                     d          rJ |                     d          rJ |                     d          sJ d S )Nr.   r(   r*   r+      Fc            	      `    dt          t          t          dk    t          dd                    v S r-   r/   r0   r1   r2   r3   ztest_contains.<locals>.<lambda>   s#    \!QUHQNN;;; r1   c                  ^    dt          t          dt          z  dk    t          j                  v S )Nr   r*   )r   r!   r   rA   r0   r1   r2   r3   ztest_contains.<locals>.<lambda>   s!    a<1Q3!8QW#E#EE r1   r   )evaluater&   )r&   r*   rt   r9   )r9   r'   )r9   r'   r)   )r*   r   )r   r!   r   r"   r   rB   rC   r   rF   r    r   r	   rA   rI   )rO   s    r2   test_containsr      s   QAx1~~666666aQA777EAAAA 9;;= = = 9EEFFF1q5(1a.. 
 

(1++!a%! ! ! !1q5(1a.. 
 

(1++! ! ! !1q5(1a.. 
 

(1++Xa!Q88!a%@@A A A A
 1Q3!8QW--66q99LAaC1Hag66GGGH H H HaVQUQY
A66Azz!}}::fzz&!!!!!a!Q[!a%!)a-AJM1IJJAzz!}}zz&!!!!!zz+&&&&&zz*+++++::k"""""""r1   c                  (   t          t          t          ft          dk    t          j        dz                                t          t          f          t          dk    t          t          t          j                  z  t          t          t          j                  z  k    sJ t          t          t          dk    t          j                                      t                    t          t          t          j                  t          dk    z  k    sJ d S r;   )r   r!   r"   r   rI   as_relationalr	   r0   r1   r2   test_as_relationalr     s    AAqz1}55CCQF 
 
!ex1:...!QZ1H1HHI I I I1q5!*--;;A 
 
a$$A./ / / / / /r1   c            	      L   t          t          t          t                    t          z   dk              } t          t          t          t          |           t          j                  }|t          t          t          t                    t          z   dk    t          j                  k    sJ t          t          t          t                    t          z   dk              } t          t          t          t          |           t          j                  }|t          t          t          t                    t          z   dk    t          j                  k    sJ t          t          t          t                    t          z   dk                                  t          dd                    } t          t          t          t          |           t          j                  }|t          t          t          t                    t          z   dk    t          dd                    k    sJ dS )z4Tests whether there is basic denesting functionalityr   rW   r*   N)	r   r!   r   r	   r   rA   r"   	intersectr   )innerouters     r2   test_flattenr     sY   CFFQJN++EHQ..88ELCFFQJNAG<<<<<<CFFQJN++EHQ..88ELCFFQJNAG<<<<<<CFFQJN++55hr1ooFFEHQ..88ELCFFQJNHROODDDDDDDDr1   c                  X    ddl m}  t          d          t          | fd           d S )Nr   )BadSignatureErrorza,ac                  6    t           t          dk               S )Nr   r8   )dups   r2   r3   z test_duplicate.<locals>.<lambda>!  s    l3A&>&> r1   )sympy.core.functionr   r   r   )r   r   s    @r2   test_duplicater     sA    555555
%..C
>>>>?????r1   c            	      F   t          t          t          t          t                    d          t	          ddt
          z                      j        t          t                    u sJ t          t          t          dk               j        t          t                    u sJ d S r^   )	r   r!   r   r   r   r   kindr   r   r0   r1   r2   test_SetKind_ConditionSetr   $  sv    2c!ffa==(1ad*;*;<<AWZEXEXXXXX1q5!!&'**=*=======r1   N)Asympy.core.exprr   
sympy.setsr   r   r   r   r   r	   r
   sympy.sets.setsr   r   r   r   sympy.core.modr   sympy.core.kindr   sympy.core.numbersr   r   sympy.core.relationalr   r   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   (sympy.functions.elementary.trigonometricr   r   sympy.logic.boolalgr   sympy.matrices.denser   "sympy.matrices.expressions.matexprr   r   sympy.testing.pytestr   r   r    r!   r"   r#   r$   rP   rU   rY   r\   ra   re   rk   r~   r   r   r   r   r   r   r   r0   r1   r2   <module>r      s   % % % % % %) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) # # # # # # 2 2 2 2 2 2 2 2       & & & & & & ' ' ' ' ' ' ' ' * * * * * * * * " " " " " " / / / / / / / / 4 4 4 4 4 4 @ @ @ @ @ @ @ @ # # # # # # ' ' ' ' ' ' ; ; ; ; ; ; $ $ $ $ $ $ ? ? ? ? ? ? ? ? F3KK
F3KK
F3KK
F3KKHSMM:: :: ::z! ! !  
 
 
+ + +     %I %I %IPJ J J  6# # #B/ / /E E E@ @ @> > > > >r1   