
    oVh2                        d dl Z d dlmZmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZ d d	lmZ d
 Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z' ed      d        Z(y)    N)FunctionUndefinedFunction)IRationalpi)GreaterThanLessThanStrictGreaterThanStrictLessThan)DummySymbolWildsymbols)sympify)uniquely_named_symbol_symbolStr)raisesskip_under_pyodide)disambiguatec                      t        d      } t        d      }t        d      }| |cxk(  r|k7  sJ  J t        t        d        y )Nabc                      t               S N)r        L/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_symbol.py<lambda>ztest_Str.<locals>.<lambda>   s    ce r   )r   r   	TypeError)a1a2r   s      r   test_Strr#      s<    	SB	SBCA=q===
9m$r   c                     t        d      } t        d      }t        d      }t        d      }t        d      }| |k7  sJ | |k7  sJ ||k(  sJ ||k7  sJ ||k7  sJ t        d      t        d      k(  sJ t        d      t        d      k7  sJ t        dt              }t        |t              sJ t        dt              \  }}t        |t              sJ t        |t              sJ t	        t
        d        y )Nr   xdclszc,dc                      t               S r   r   r   r   r   r   ztest_Symbol.<locals>.<lambda>*   s    fh r   )r   r   r   
isinstancer   r    )r   x1x2xdummy1xdummy2r&   cs          r   test_Symbolr1      s    sA	B	BCjGCjG7N77N78O8==g#;&+%%%:s###Aa5e$DAqaa
9&'r   c                  2    t               t               k7  sJ y r   r   r   r   r   
test_Dummyr4   -   s    7egr   c                  \   t        t        d        t        dd      t        dd      k(  sJ t        dd      t        dd      k7  sJ t        dd      } t        d      }| |k7  sJ t        dd      }| |k(  sJ t               j                  t        dd      j                  k(  sJ y )Nc                      t        d      S )N   dummy_indexr3   r   r   r   r   z.test_Dummy_force_dummy_index.<locals>.<lambda>2   s    5Q#7 r   r&      r8   d1d2   )r   AssertionErrorr   _count)r;   r<   d3s      r   test_Dummy_force_dummy_indexrA   1   s    
>78!$cq(AAAA1%t)CCCC	s	"B	sB8O8	s	"B8O87>>U3A6=====r   c                     t         } t        d      t        d      }}||k\  t        ||      k(  sJ |dk\  t        |d      k(  sJ ||k  t        ||      k(  sJ |dk  t        |d      k(  sJ d|k  t        |d      k(  sJ d|k\  t        |d      k(  sJ  | d      |k\  t        d|      k(  sJ  | d      |k  t        d|      k(  sJ ||kD  t	        ||      k(  sJ |dkD  t	        |d      k(  sJ ||k  t        ||      k(  sJ |dk  t        |d      k(  sJ d|k  t	        |d      k(  sJ d|kD  t        |d      k(  sJ  | d      |kD  t	        d|      k(  sJ  | d      |k  t        d|      k(  sJ |dz  d|z  z   dz   }|dk\  t        |d      k(  sJ d|k  t        |d      k(  sJ |dkD  t	        |d      k(  sJ d|k  t	        |d      k(  sJ |dk  t        |d      k(  sJ d|k\  t        |d      k(  sJ |dk  t        |d      k(  sJ d|kD  t        |d      k(  sJ  | d      |k\  t        d|      k(  sJ  | d      |k  t        d|      k(  sJ  | d      |k  t        d|      k(  sJ  | d      |kD  t	        d|      k(  sJ y )Nr%   yr   r:      r7   )r   r   r   r	   r
   r   )Sr%   rC   es       r   
test_lt_gtrG   >   s	   A#;sqAF{1a((((F{1a((((Fx1~%%%Fx1~%%%F{1a((((Fx1~%%%aDAI+a++++aDAI(1a.(((E'1----E'1----EnQ****EnQ****E'1----EnQ****aD1H*1a0000aD1H1----	1qs
QAF{1a((((F{1a((((E'1----E'1----Fx1~%%%Fx1~%%%EnQ****EnQ****aDAI+a++++aDAI(1a.(((aD1H1----aD1H*1a0000r   c                  B     t        d       t        t         fd       y )Nr%   c                      t               S r   )lenr%   s   r   r   ztest_no_len.<locals>.<lambda>j   s    c!f r   r   r   r    rK   s   @r   test_no_lenrM   g   s    sA
9n%r   c                  	   t         } t        d      \  }}}g  | d      |k\   | d      |k\   | d      |k\   | d      |kD   | d      |kD   | d      |kD   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k\   | d      |k\   | d      |k\   | d      |kD   | d      |kD   | d      |kD   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k\   | d      |k\   | d      |k\   | d      |kD   | d      |kD   | d      |kD   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k\   | d      |k\   | d      |k\   | d      |kD   | d      |kD   | d      |kD   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k\   | d      |k\   | d      |k\   | d      |kD   | d      |kD   | d      |kD   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k   | d      |k  |dk\  |dk\  |dk\  |dkD  |dkD  |dkD  |dk  |dk  |dk  |dk  |dk  |dk  |dk\  |dk\  |dk\  |dkD  |dkD  |dkD  |dk  |dk  |dk  |dk  |dk  |dk  |dk\  |dk\  |dk\  |dkD  |dkD  |dkD  |dk  |dk  |dk  |dk  |dk  |dk  |dk\  |dk\  |dk\  |dkD  |dkD  |dkD  |dk  |dk  |dk  |dk  |dk  |dk  ||k\  ||k\  ||k\  ||k\  ||k\  ||k\  ||kD  ||kD  ||kD  ||kD  ||kD  ||kD  ||k  ||k  ||k  ||k  ||k  ||k  ||k  ||k  ||k  ||k  ||k  ||k  |t        z
  ||z   k\  |t        z
  ||z   k\  |t        z
  ||z   k\  |t        z
  ||z   kD  |t        z
  ||z   kD  |t        z
  ||z   kD  |t        z
  ||z   k  |t        z
  ||z   k  |t        z
  ||z   k  |t        z
  ||z   k  |t        z
  ||z   k  |t        z
  ||z   k  dd}|d d }t        |      D ]  \  }}||d	z   d  D ]	  }||k7  r	J   y )
Nx,y,zr   z3/7g      ?r:   TFr7   )r   r   r   	enumerate)	rE   r%   rC   zrF   left_eie1e2s	            r   test_ineq_unequalrW   m   s

   AgGAq!0		"
0	bEQJ0	 !"
0		"	0	R5190	eai0	 	
"
0	 bEQJ0	 !""
0	 	
"		0	 R519	0	  eai	0	
 	
!	0	
 Q4190	
  dai0	 	
!q0	 A$(0	 aD1H0	 	
!	0	 Q4190	  dai0	 	
!q0	 A$(0	 aD1H0	 	
%A0	 x1}0	 '(h!m0	 	
%10	 hl0	 %&eHqL0	 	
%A0	 x1}0	 '(h!m0	 	
%10	 hl0	 %&eHqL0	 	
#!0	 sVq[0	 #$C&A+0	 	
#
0	 cFQJ0	 !"#
0	 	
#!0	 sVq[0	 #$C&A+0	  	
#
!0	  cFQJ!0	  !"#
!0	" 	
!	#0	" Q419#0	"  dai#0	$ 	
!q%0	$ A$(%0	$ aD1H%0	& 	
!	'0	& Q419'0	&  dai'0	( 	
!q)0	( A$()0	( aD1H)0	* 	
R+0	* b+0	* r'+0	, 	
B-0	, B-0	, B-0	. 	
R/0	. b/0	. r'/0	0 	
B10	0 B10	0 B10	2 	
Q30	2 Q30	2 Q30	4 	
A50	4 1u50	4 !e50	6 	
Q70	6 Q70	6 Q70	8 	
A90	8 1u90	8 !e90	: 	
S;0	: s(;0	: H;0	< 	
C=0	< S=0	< c'=0	> 	
S?0	> s(?0	> H?0	@ 	
CA0	@ SA0	@ c'A0	B 	
QC0	B QC0	B QC0	D 	
AE0	D 1uE0	D !eE0	F 	
QG0	F QG0	F QG0	H 	
AI0	H 1uI0	H !eI0	L 	
QM0	L QM0	L QM0	L !"QM0	L )*QM0	L 12QM0	N 	
AO0	N 1uO0	N !eO0	N UO0	N %&EO0	N ,-q5O0	P 	
QQ0	P QQ0	P QQ0	P !"QQ0	P )*QQ0	P 12QQ0	R 	
AS0	R 1uS0	R !eS0	R US0	R %&ES0	R ,-q5S0	V 	
B!a%W0	V R1q5W0	V +,b&AE/W0	X 	
BQY0	X BQY0	X )*BQY0	Z 	
B!a%[0	Z R1q5[0	Z +,b&AE/[0	\ 	
BQ]0	\ BQ]0	\ )*BQ]0	^ 	_0	^ _0	Ad sVFF$ 2AEF) 	B8O8	r   c                     t         } t        d      }t        d      }t        dd      }t        dd      }t        ddd	      }||||| ||  | d
       | d      t        t        dd      t        g}d }d }d }	d }
t        d|	g      } t        d|
g      }t        d||||g      }t        d|g      }t        d|g      }t        d||g      }| |||||g}| |||||f|||| || d
dt        t        dd      f	||d
dt        t        dd      t        f|||dt        t        dd      f||| || d
df||dfi}|D ]2  }|D ]+  }|j                  |      }|||   v r||   ||   v r&J |+J  4 y )Nr%   rC   pT)positivekintegern)r]   rZ   r=   r:   c                     | j                   S r   )
is_integerr[   s    r   r   z&test_Wild_properties.<locals>.<lambda>   s
     r   c                     | j                   S r   )is_positiverb   s    r   r   z&test_Wild_properties.<locals>.<lambda>   s
    !-- r   c                     | j                   S r   )	is_Symbolrb   s    r   r   z&test_Wild_properties.<locals>.<lambda>   s
     r   c                     | j                   S r   )is_extended_realrb   s    r   r   z&test_Wild_properties.<locals>.<lambda>   s    a(( r   rE   )
propertiesRY)excludePKN)r   r   r   r   r   r   match)rE   r%   rC   rY   r[   r^   given_patternsintegerp	positivepsymbolprealprj   rk   rm   rn   ro   given_wildcards	goodmatchApatr&   s                        r   test_Wild_propertiesrz      s   AsAsAsT"AsD!AsD40A!QA2q1"aeQqT8Aq>1/N &H'I#G(ESgY'ASeW%AS1aA,'ASi[)AShZ(ASi23A1aAq*O 	
Aq!Q?	Aq1"a!RBA7	Ar1b(1a.!-	Aq!R!Q(	Ar1qb"a 	Aq6I  !! 	!C		!Ail"ty|+++y y	!!r   c                     t        d      } t        d      }t        d      }t        d      | k(  sJ t        d      | k(  sJ t        d      | k(  sJ t        d      | fk(  sJ t        d      | fk(  sJ t        d      | fk(  sJ t        d	      | |fk(  sJ t        d
      | ||fk(  sJ t        d      | ||fk(  sJ t        d      | ||fk(  sJ t        d      | ||fk(  sJ t        d      }t        d      }t        d      |k(  sJ t        d      |fk(  sJ t        d      ||fk(  sJ t        d      |fk(  sJ t        d      |ffk(  sJ t        d      | ||ffk(  sJ t        d      ||fk(  sJ t        d      ||ffk(  sJ t        d      ||f| ||ffk(  sJ t        d      | ||fk(  sJ t        g d      | ||gk(  sJ t        h d      | ||hk(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t        dd       \  }}|j                  r|j                  sJ t        d!      }t        d"      }t        d#      }	t        d$      }
t        d%      }t        d&      d'k(  sJ t        d(      |fk(  sJ t        d)      ||fk(  sJ t        d*      |||	fk(  sJ t        d+      d'k(  sJ t        d,      |fk(  sJ t        d-      ||fk(  sJ t        d.      |||	fk(  sJ t        d/      d'k(  sJ t        d0      |fk(  sJ t        d1      ||	fk(  sJ t        d2      ||	| ||fk(  sJ t        d3      |||	|
|fk(  sJ t        d4      |||	f|
|ffk(  sJ t        d5      }t        d6      }t        d7      }t        d8      }t        d9      | ||fk(  sJ t        d:      ||||| ||fk(  sJ t        d;      ||||f| ||ffk(  sJ t        d<      }t        d=      }t        d>      }t        d?      }t        d@      ||||fk(  sJ t        dA      ||||| ||fk(  sJ t        dB      ||||f| ||ffk(  sJ t        t        dCt        D      dE   dE         t        k(  sJ dF } |dG      dHk(  sJ  |dI      dJk(  sJ  |dK      dLk(  sJ  |dM      dNk(  sJ  |dO      dPk(  sJ  |dQ      dRk(  sJ  |dS      dTk(  sJ  |dU      dVk(  sJ  |dW      dXk(  sJ  |dYt        dE      z         dZt        dE      fd[z  z  k(  sJ  |d\      d]k(  sJ  |d^      d_k(  sJ  |d`      dak(  sJ  |db      dck(  sJ  |dd      dek(  sJ  |df      dgk(  sJ  |dh      dik(  sJ  |dj      dkk(  sJ  |dl      dmk(  sJ t        t        dn        t        t        do        t        t        dp        t        t        dq        t        t        dr        t        t        ds        y )tNr%   rC   rR   zx z x zx,zx, zx ,zx , yrO   zx y zx,y,z,zx y z xyzabcxyz,xyz,abc)r}   )r   )r|   )r}   r~   )r   )r   rO   )r%   rC   rR   >   r%   rC   rR   c                      t        d      S )N r   r   r   r   r   ztest_symbols.<locals>.<lambda>   s
    wr{ r   c                      t        d      S )N,r   r   r   r   r   ztest_symbols.<locals>.<lambda>   
    ws| r   c                      t        d      S )Nzx,,y,,zr   r   r   r   r   ztest_symbols.<locals>.<lambda>   s    wy1 r   c                      t        d      S )N)r%   r   rC   r   rR   r   r   r   r   r   ztest_symbols.<locals>.<lambda>   s    w'>? r   zx,yTrealx0r,   r-   y0y1zx0:0r   zx0:1zx0:2zx0:3zx:0zx:1zx:2x:3zx1:1zx1:2zx1:3z
x1:3,x,y,zzx:3,y:2)r   zy:2r   r   r0   r&   x:zza:d,x:z)za:dr   aaabacadaa:dzaa:d,x:z)r   r   )zq:2zu:2r'   r   c                 *    t        t        |             S r   )strr   )ss    r   symztest_symbols.<locals>.sym1  s    71:r   za0:4z(a0, a1, a2, a3)z	a2:4,b1:3z(a2, a3, b1, b2)za1(2:4)z
(a12, a13)za0:2.0:2z(a0.0, a0.1, a1.0, a1.1)zaa:czz(aaz, abz, acz)zaa:c0:2z(aa0, aa1, ab0, ab1, ac0, ac1)zaa:ba:bz(aaa, aab, aba, abb)za:3bz(a0b, a1b, a2b)za-1:3bz(a-1b, a-2b)za:2\,:2z (a0,0%s, a0,1%s, a1,0%s, a1,1%s)rD   zx(:a:3)z(x(a0), x(a1), x(a2))zx(:c):1z(xa0, xb0, xc0)z	x((:a)):3z(x(a)0, x(a)1, x(a)2)zx(:a:3z(x(a0, x(a1, x(a2)z:2z(0, 1)z:bz(a, b)z:b:2z(a0, a1, b0, b1)z:2:2z(00, 01, 10, 11)z:b:bz(aa, ab, ba, bb)c                      t        d      S )N:r   r   r   r   r   ztest_symbols.<locals>.<lambda>H  r   r   c                      t        d      S )Nza:r   r   r   r   r   ztest_symbols.<locals>.<lambda>I  
    wt} r   c                      t        d      S )Nz::r   r   r   r   r   ztest_symbols.<locals>.<lambda>J  r   r   c                      t        d      S )Nza::r   r   r   r   r   ztest_symbols.<locals>.<lambda>K  
    wu~ r   c                      t        d      S )Nz:a:r   r   r   r   r   ztest_symbols.<locals>.<lambda>L  r   r   c                      t        d      S )Nz::ar   r   r   r   r   ztest_symbols.<locals>.<lambda>M  r   r   )	r   r   r   
ValueErroris_realtyper   r   chr)r%   rC   rR   r}   r~   r   r   r   r,   r-   r   r   r0   r&   r   r   r   r   r   s                      r   test_symbolsr      s   sAsAsA3<14=A5>Q4=QD   5>aT!!!5>aT!!!71v%%%71ay(((71ay(((8Aq	)))8Aq	)))
-C
-C5>S   6?sf$$$9#s+++8&&&93&***;Q1I<///>"sCj000< c3ZM111'(c3Z!Q,CCCC?#1ay000?#1ay000?#1ay000
:*+
:+,
:12
:?@5t$DAq99""	B	B	B	B	B6?b   6?re###6?r2h&&&6?r2rl***5>R5>bU"""5>b"X%%%5>b"b\)))6?b   6?re###6?r2h&&&< RQ1$55559"b"b"!5555>"B|b"X&>>>>sAsAsAsA5>aAY&&&9!Q1aA!6666>"1a|aAY&????	B	B	B	B6?r2r2....:2r2r1a";;;;>"BB'7!Q&CCCCH5a8;<@QQQQv;,,,,{1111y>\)))z?8888w<,,,,y>====y>3333v;++++x=N***zCF"#'I	Q	!(   y>4444y>....{6666x=0000t9   t9   v;,,,,v;,,,,v;,,,,
:+,
:,-
:,-
:-.
:-.
:-.r   c                       ddl m mmm t        t        fd       t        t        fd       t        t        fd       t        t         fd       t        t        fd       y )Nr   )alphaphibetatc                        d      S )Nr:   r   r   s   r   r   z:test_symbols_become_functions_issue_3539.<locals>.<lambda>R  s    d1g r   c                        d      S Ng      @r   r   s   r   r   z:test_symbols_become_functions_issue_3539.<locals>.<lambda>S  s    d3i r   c                        d      S r   r   )r   s   r   r   z:test_symbols_become_functions_issue_3539.<locals>.<lambda>T  s    c#h r   c                        d      S r   r   )r   s   r   r   z:test_symbols_become_functions_issue_3539.<locals>.<lambda>U  s    eCj r   c                              S r   r   )r   r   s   r   r   z:test_symbols_become_functions_issue_3539.<locals>.<lambda>V  s    c!f r   )	sympy.abcr   r   r   r   r   r    )r   r   r   r   s   @@@@r   (test_symbols_become_functions_issue_3539r   P  s>    --
9o&
9'(
9&'
9()
9n%r   c                  `    t        d      } t        d      }|| k(  sJ t        t        d        y )Nr%   c                      t        d      S )Nr7   r*   r   r   r   r   ztest_unicode.<locals>.<lambda>^  s
    fQi r   rL   )xur%   s     r   test_unicoder   Y  s*    	BsA7N7
9'(r   c                     t         } t        d      } | |      |k(  sJ  | d      |k(  sJ t         | d|            dk(  sJ t         | d|dz   d|z  f            dk(  sJ t        dd      } | d|f      |k(  sJ  | ||f      |k(  sJ  | dd      j                  sJ t        d      } | d|fd      j                  sJ t        dd      } | d|f      j                  sJ  | d|fd      j                  sJ  | dt        d      d	 
      j                  dk(  sJ  | dt        d      d       j                  dk(  sJ t        ||      |k(  sJ y )Nr%   r   r7   Tr   rC   Fr,   c                 6    t        |       j                  d      S )N1)r   rstriprT   s    r   r   z7test_uniquely_named_symbol_and_Symbol.<locals>.<lambda>r  s    #a&--, r   )comparec                     | dz   S )N_r   r   s    r   r   z7test_uniquely_named_symbol_and_Symbol.<locals>.<lambda>t  s
    S r   )modifyx1_)r   r   r   r   namer   )Fr%   _xrC   rs        r   %test_uniquely_named_symbol_and_Symbolr   a  s   AsAQ4199S6Q;;qay>T!!!qq1uacl#$,,,	$	Bc2Y<2aW:St$$$$sAc1XD!))))sAc1X;c1XE"****T6$<,..2dd; ; ;T6$< ""&$%0 0 01b>Qr   c                     t        d      \  } }}}}}t        d      |t        d      t        d      f}t        d      t        d      f}t        d      t        d      f}| t        d      f}	t        dd      | t        d      f}
t        | ||| |fk(  sJ t        | | |fk(  sJ t        | | |fk(  sJ t        |	 || fk(  sJ t        |
 |
d   ||fk(  sJ t        |
 d   | k7  sJ |t        d      |z  f}|t        d      z  |f}t        | || |z  fk(  sJ t        | ||z  |fk(  sJ t        t        d      t        d            |t        d      fk(  sJ y )	Nzx y y_1 _x x_1 x_2rC   r%   Tr\   x_1r   x_1_1)r   r   r   r   )r%   rC   y_1r   r   x_2t1t2t3t4t5t6t7s                r   test_disambiguater   x  s   %&:;Aq#r3	sRsU3Z	/B	sU3Z	B	sU3Z	B	
E#JB	T	"Ave}	4BCC 0000C(((A&&&a(((AS 1111Q1$$$	U3Z\	B	
5:qBac
***3,,,eeEl 
6'?#$ $ $r   z$Cannot create threads under pyodide.c                      t        t        d            fd} fd}t        j                  |       }|j	                           |        |j                          y )Nzx, yc                      t        d      D ]+  } t        d|  d|        \  d<   d<   d   j                   - d d<   y )Ni  r%   z, yr   r7   )ranger   rd   )r^   symss    r   thread1z$test_issue_gh_16734.<locals>.thread1  sQ    t 	 A&1#S}5DGT!WG	  Qr   c                  4    d   d   d   k(  } d   y y )Nr   r7   r   )resultr   s    r   thread2z$test_issue_gh_16734.<locals>.thread2  s+    1g!1ga(F 1g!r   )target)listr   	threadingThreadstartjoin)r   r   threadr   s      @r   test_issue_gh_16734r     sF      D* W-F
LLNI
KKMr   ))r   sympy.core.functionr   r   sympy.core.numbersr   r   r   sympy.core.relationalr   r	   r
   r   sympy.core.symbolr   r   r   r   sympy.core.sympifyr   r   r   r   sympy.testing.pytestr   r   r   r#   r1   r4   rA   rG   rM   rW   rz   r   r   r   r   r   r   r   r   r   <module>r      s     ; 0 0 \ \ < < & A A ; *%(.
>&1R&9x(!Vy/x&).$0 :; <r   