
    sgj,                        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@y&)'    )	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                  J	   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kD  t        j                        v sJ dt        t        t        dz  dkD  t        j                        vsJ dt        t        t        dkD  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      }|j                  |      j                         t        j                   u sJ t        ddgddgg      }|j                  |      j                         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       y )Nr      FT               c            	      J    dt        t        t        dkD  t        dd            v S N   r(   r*   r+   r   r!   r"   r        U/var/www/html/venv/lib/python3.12/site-packages/sympy/sets/tests/test_conditionset.py<lambda>ztest_CondSet.<locals>.<lambda>.   s#    a<1q5A$  r1   Xc                  F    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                  ,    t        t        t        d      S r6   r   r!   r0   r1   r2   r3   ztest_CondSet.<locals>.<lambda>;   s    l1a3 r1   r*   r&   c            
      f      t         t         dkD    t         t        ft         dkD  dz              S Nr*   r&   r!   r"   )CIs   r2   r3   ztest_CondSet.<locals>.<lambda>T   s)    a1q5!QFAE1a4*@A r1   c                  J      t         t        ft         t        z   dk        S )Nr&   r<   )r=   Us   r2   r3   ztest_CondSet.<locals>.<lambda>V   s    aAA	1a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FA&.q!B$t&DF####a4))))R4))))''''Q1q!''2222LAqD1Hagg6666 LAE8Aq>:::: 9   	S!QAaAfq!fq!f-=&>$>!BCJAA Aq!&&(AFF222AA Aq!&&(AGG333l1a!eaV4==  
9<=
934	

A	AAQq>QZZ'''Qa=AQAqAE1~ 
q1q5QU#Q'( ( (QAqAE1~ 
q1q5QU#Q'( E)*1a!eQq!a%^)DE (QAqAE1~ 
q1q5QU#Q'( ( (QAqAE1~ 
q1q5QU#Q'( ( (Q1q5!Aq1ua.1111q5!**a/// a!e$--222aVQUAqD)AQ;;r7!
9AB
989r1   c            
          t        t        t        dz  dkD  t        dddd            } t        dddd      }t        t        t        dz  dkD  t        dddd            }t        | |      |k(  sJ y )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 Aq%/L&q!Q$(H	1eU5 *L 
 ! ! !r1   c            
      .   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 y )N)r   r!   r   r   Naturalsr   r   r   r0   r1   r2   test_issue_9849rY   c   sg    2a8QZZ 
ZZ  2c#a&k2.

 
ZZ  r1   c                  (   t        t        t        t        dk  t        dkD        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kD        t        ddd|             t        t        d      t        t        t        t        dkD        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 y )	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 
q\  1q5)Aq!"45AAA3q2v;1X===sACAJ	"aA(>?ilLCAJ	!EFG H GBs1ay!,i1a.CDi1o|Ar#a)Q/?!  	  r1   c                  h   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 y Nr   r&   )r   r!   r   r"   r   r#   free_symbolsr
   r   r   rI   setr0   r1   r2   test_free_symbolsra   w   s    2a8Yq\ 

,1a&! ! !2a8Yq\ 

,1#  2a8Yq!_ 

,1a&! ! !2a8XfQ1o	

& !\SU+ + +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kD  t        j                              j                  t        gk(  sJ y )Nr   
   r&   r*   )r   r!   r   r"   r   r#   bound_symbolsr
   r   r   rI   r0   r1   r2   test_bound_symbolsre      s    2a8Yq\ 

-A3  2a8Yq!_ 

-A3  1r68F1adOQZZ#H 

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

-A3  r1   c                  Z   t        d      \  } }t        t        t        dk  t        t        t
                    j                         t        | | dk  t        t        t
                    k(  sJ t        t        t        dk  t        t        t
                    j                         t        | | dk  t        t        t
                    k(  sJ t        t        t        dk  t        t        t        t        dz        t        j                              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 |j                         t        | |f| |k  t        j                  dz        k(  sJ |j                         t        t        t        ft        t        k  t        j                  dz        j                         k(  sJ y )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B B B1q5(1b/ 

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

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

(*  r1   c            
         t        t        t              } t        t        t        dk  |       }|j                  t        t              |k(  sJ |j                  t        t              t        t        t        dk  t        t                    k(  sJ |j                  t        t        i      t        t        t        dk  |       k(  sJ t        t        t        t        k  |       j                  t        t              t        t        t        t        k  | j                  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                        j                  t              t        t        k  t        j                        k(  sJ t        t        d        t        |t        k  t        d	d
            j                  t        |      t        d	d
      k(  s7J t        |t        k  t        d	d
            j                  t        |             t        t        k  t        t         d            j                  t        |      t        t         d      k(  sJ t        t!        t              t!        t              dk  t        t        h      j                  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            |      j                  t        t        j*                  dz        j/                  |      sJ dt        t        t        ft        t        z   dk  t        j                  dz        v sJ t        t0        fd       y )Nr&   nT)negativer   p)positivec                  T    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q1uajj " r1   r(   r*   kr'   rW   r   r*   c                  8    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 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~      sO   !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qzz:; ; ;
: " #	1q5(2q/##'41:"aA .BN	1q5(2q/C##'41:. A 	1q5(B3"$$(DA %
rc1   !adQhA 

$qtQ-<!adQhA?@ @ @ 	sAF1ac"ftAw./<DF1ac"ftAEE!G}45qzzBD8	8Bq> ""&$q!%%'"288D>B B B \1a&!a%!)QZZ]CCCC
9GHr1   c            
      d   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        y # 1 sw Y   y xY w)Nr*   r&   r   )r   r   r!   r"   r   rA   r   r0   r1   r2   test_subs_CondSet_tebrr      s    		! JQFQUAENAGGQJ?!QAE11q5!!<aggqjIJ 	J JJ J Js   BB&&B/c                  J   t         } t        j                  } | t        t        dk  |      }|j	                   | t
        t
        dk  |            sJ |j	                  d      dk(  sJ |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        }|j	                  |      sJ |j	                  |      du sJ |j	                  |      du sJ |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      |
      }|j	                  |      sJ y )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      s   A	

A	!QUAA::a1q5!n%%%::a=E!!!::a1q5!''*+u444	q!fbQlRAq\9177A:	FB	q!fbQlRAq\9177A:	FB	q!fbQlRAq\91;;>	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kD  t        dd            v sJ dt        t        t        dkD  t        dd            v du sJ t	        t
        d        t	        t
        d        t        t        t        dkD  t        dd            j                  d      t        dkD  k(  sJ t        t        t        dkD  t        dd            j                  d      t        j                  u sJ t        t        t        dkD  t        dd            j                  t              t        t        t        t        dd            t        dkD        k(  sJ t        t        dt        z  d	k\  t        j                        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kD  t        j                  dz        } | j                  d      rJ | j                  d      sJ | j                  d      rJ t        t        t        t        fft        t        z   t        z   dkD  t        j                  t        j                  dz  z        } | j                  d      rJ | j                  d      rJ | j                  d      rJ | j                  d      rJ | j                  d      sJ y )Nr.   r(   r*   r+      Fc            	      J    dt        t        t        dkD  t        dd            v S r-   r/   r0   r1   r2   r3   ztest_contains.<locals>.<lambda>   s    \!QUHQN;; r1   c                  X    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!8QWW#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      sZ   QAx1~6666aQA77EAAA 9;= 9EF1q5(1a. 

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

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

(1+Xa!Q8!a%@A A A
 1Q3!8QWW-66q9LAaC1Hagg6GH H HaVQUQY

A6Azz!}::fzz&!!!a!Q[!a%!)a-AJJM1IJAzz!}zz&!!!zz+&&&zz*+++::k"""r1   c                     t        t        t        ft        dkD  t        j                  dz        j                  t        t        f      t        dkD  t        t        t        j                        z  t        t        t        j                        z  k(  sJ t        t        t        dkD  t        j                        j                  t              t        t        t        j                        t        dkD  z  k(  sJ y r;   )r   r!   r"   r   rI   as_relationalr	   r0   r1   r2   test_as_relationalr     s    AAqzz1}5CCQF 
!ex1::..!QZZ1HHI I I1q5!**-;;A 
a$A./ / /r1   c            	         t        t        t        t              t        z   dkD        } t        t        t        t        |       t        j
                        }|t        t        t        t              t        z   dkD  t        j
                        k(  sJ t        t        t        t              t        z   dkD        } t        t        t        t        |       t        j
                        }|t        t        t        t              t        z   dkD  t        j
                        k7  sJ t        t        t        t              t        z   dkD        j                  t        dd            } t        t        t        t        |       t        j
                        }|t        t        t        t              t        z   dkD  t        dd            k(  sJ y)z4Tests whether there is basic denesting functionalityr   rW   r*   N)	r   r!   r   r	   r   rA   r"   	intersectr   )innerouters     r2   test_flattenr     s   CFQJN+EHQ.8ELCFQJNAGG<<<<CFQJN+EHQ.8ELCFQJNAGG<<<<CFQJN+55hr1oFEHQ.8ELCFQJNHRODDDDr1   c                  F    ddl m}  t        d      t        | fd       y )Nr   )BadSignatureErrorza,ac                  *    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     s    5
%.C
>?r1   c            	         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 y r^   )	r   r!   r   r   r   r   kindr   r   r0   r1   r2   test_SetKind_ConditionSetr   $  s]    2c!fa=(1ad*;<AAWZEX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  & ' * " / 4 @ # ' ; $ ? 3K
3K
3K
3KSM::z!
+ %IPJ6#B/E@>r1   