
    \hH                     f   S r SSKJrJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJr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Jr  SSKJr  SSK J!r"  S	 r#S
 r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0\S 5       r1S r2S r3S r4S r5S r6S r7S r8S r9S  r:S! r;S" r<S# r=S$ r>S% r?S& r@g')(zTests for Groebner bases.     )groebnersigsig_keylbplbp_keycritical_paircp_keyis_rewritable_or_comparableSignPolynNums_poly	f5_reducegroebner_lcmgroebner_gcdis_groebner
is_reduced)_representing_matrices)lexgrlex)ringxring)ZZQQ)slow)
polyconfigc                     [        S[        [        5      u  pnUS-  SU-  US-  -  -   nX-  SUS-  -  -   S-
  n[        X4/U 5      XS-  [        SS5      -
  /:X  d   e[        S[        [        5      u  pnSUS-  -  U-  US-  -   nSUS-  -  X-  -   S-
  n[        X4/U 5      X!S-  [        SS5      -
  /:X  d   e[        S[        [        5      u  pp%XS-  -
  nX%S-  -
  n[        X4/U 5      X4/:X  d   e[        S[        [        5      u  pnUS-  SU-  U-  -
  nUS-  U-  U-   SUS-  -  -
  n[        X4/U 5      US-  X-  [        SS5      * U-  US-  -   /:X  d   e[        S[        [        5      u  pp%US-  * U-   nUS-  * U-   n[        X4/U 5      US-  U-
  X-  U-
  X-  US-  -
  US-  US-  -
  /:X  d   e[        S[        [        5      u  pp%US-  * U-   nUS-  * U-   n[        X4/U 5      US-  US-  -
  US-  U-
  X-  U-
  X-  US-  -
  /:X  d   e[        S[        [        5      u  pp%US-  * U-   nUS-  * U-   n[        X4/U 5      US-  U-
  X-  US-  -
  X-  U-
  US-  US-  -
  /:X  d   e[        S[        [        5      u  pp%US-  * U-   nUS-  * U-   n[        X4/U 5      US-  * US-  -   US-  U-
  X-  US-  -
  X-  U-
  /:X  d   e[        S[        [        5      u  pp%XS-  -
  nUS-  * U-   n[        X4/U 5      XS-  -
  US-  U-
  /:X  d   e[        S[        [        5      u  pp%XS-  -
  nUS-  * U-   n[        X4/U 5      US-  X%-  -
  X-  U-
  U* US-  -   /:X  d   e[        S[        [        5      u  pp%XS-  -
  nX%S-  -
  n[        X4/U 5      XS-  -
  X%S-  -
  /:X  d   e[        S[        [        5      u  pp%XS-  -
  nX%S-  -
  n[        X4/U 5      US-  X%-  -
  X-  U-
  U* US-  -   /:X  d   e[        S[        [        5      u  pp%US-  * U-   nXS-  -
  n[        X4/U 5      XU-  -
  US-  U-
  /:X  d   e[        S[        [        5      u  pp%US-  * U-   nXS-  -
  n[        X4/U 5      US-  * US-  -   X-  US-  -
  US-  U-
  U* X%-  -   /:X  d   e[        S[        [        5      u  pp%X%S-  -
  nXS-  -
  n[        X4/U 5      XS-  -
  X%S-  -
  /:X  d   e[        S[        [        5      u  pp%X%S-  -
  nXS-  -
  n[        X4/U 5      US-  * US-  -   X-  US-  -
  U* X%-  -   U* US-  -   /:X  d   e[        S[        [        5      u  pp%SUS-  -  US-  -  SU-  U-  -   S-   nUS-  US-  -   S-
  n[        X4/U 5      USUS-  -  -
  S	US
-  -  -   SUS-  -  -
  SU-  -   US	-  SUS-  -  -
  [        SS5      US-  -  -   [        SS5      US-  -  -
  [        SS5      -   /:X  d   eg )Nx,y         zy,xx,y,z                  )r   r   r   r   r   )Rxyfgzs         \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_groebnertools.py_do_test_groebnerr0      sC   %S!FA	1qs1a4xA	a1fqAQFA1dR!Wn"5555%S!FA	!Q$q1a4A	!Q$qAQFA1dR!Wn"5555GR%HA	qDA	qDAQFA1&(((%U#FA	1qs1uA	1Q
Qq!tVAQFA1a4r!Awhqj1a4.?"@@@@GR%HA	
A	A	
A	AQFA1a4!8QS1WacAqDj!Q$A+"NNNNGR'HA	
A	A	
A	AQFA1a4!Q$;1q!#'13A:"NNNNGR%HA	
A	A	
A	AQFA1a4!8QS1a4Zq!Q$A+"NNNNGR'HA	
A	A	
A	AQFAAqD51a4<A13A:qsQw"OOOOGR%HA	qDA	
A	AQFA1!t8QTAX"6666GR'HA	qDA	
A	AQFA1a4!#:qsQwQT	"BBBBGR%HA	qDA	qDAQFA1!t8QAX"6666GR'HA	qDA	qDAQFA1a4!#:qsQwQT	"BBBBGR%HA	
A	A	qDAQFA1s7AqD1H"5555GR'HA	
A	A	qDAQFAAqD51a4<q!tQTAXrACx"PPPPGR%HA	qDA	qDAQFA1!t8QAX"6666GR'HA	qDA	qDAQFAAqD51a4<q!taR!#XrAqDy"QQQQGR%HA	!Q$q!tac!eaA	1q!taAQFA	AadF
Qq!tVa1f$qs*	1qAv1Q1$r!Awq!t|3b2h>#       c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fN
buchbergerr   configusingr0    r1   r/   test_groebner_buchbergerr:      s     	|	, 
-	,	,   )
7c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fNf5br5   r6   r9   r1   r/   test_groebner_f5br?      s     	u	% 
&	%	%r;   c                     [        S[        [        5      u  pp#US-  U-   S-   US-  U-   S-   X-   U-  US-  U-   -
  /nU[        SS5      US-  -  -   [        SS	5      US
-  -  -
  [        SS5      US-  -  -   [        SS	5      US-  -  -
  [        SS5      U-  -   [        SS5      -
  U[        S
S5      US-  -  -   [        SS5      US
-  -  -
  [        SS5      US-  -  -   [        SS5      US-  -  -
  [        SS5      U-  -   [        SS5      -
  US-  SUS-  -  -
  SUS
-  -  -   SUS-  -  -
  SUS-  -  -   SU-  -
  S-   /n[        X@5      U:X  d   eg )Nr"   r    r!   r      i  r&   ic  i  r#   i  ig  i     5   [      i  i  i  i4  r'   r$   )   R   Y   .      )r   r   r   r   )r)   r*   r+   r.   FGs         r/   _do_test_benchmark_minpolyrM      s   GR%HA	
AAq!tax!|aeq[AqD1H%=>A	
RD\!Q$	CQT!1	1BtDM!Q$4F	FDQTVWYZVZIZ	Z]_`dei]jkl]l	loqrtuwox	x	
R"Xad]	R3Z1_	,r#c{1a4/?	?"S*QPQT/	QTVW[\_T`abTb	beghkloep	p	
A!Q$AqD	 2ad7	*R1W	4r!t	;b	@	BA A>Qr1   c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr3   r7   r8   rM   r9   r1   r/   !test_benchmark_minpoly_buchbergerrP      s     	|	,"$ 
-	,	,r;   c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr=   rO   r9   r1   r/   test_benchmark_minpoly_f5brR      s     	u	%"$ 
&	%	%r;   c                  j   [        SS5      n / SQn[        U  Vs/ s H  nSU-  PM
     sn[        [        5      u  p0U VVs/ s H  u  pEXS-
     XS-
     4PM     nnnU u  pgppppnnU  Vs/ s H  nUS-  S-
  PM     nnU VVs/ s H  u  nnUS-  UU-  -   US-  -   PM     nnnUU-   n[	        US S U5      UU-   U-   UU-
  UU-
  U	U-
  U
U-   U-   UU-
  UU-
  UU-   U-   UU-
  UU-   U-   US-  UU-  -   US-  -   US-  S-
  /:X  d   e[	        UU5      S/:X  d   eg s  snf s  snnf s  snf s  snnf )Nr!   rJ   ))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%   rW   )rW   rU   )rU   rV   )rV   rT   )r&   rT   )r&   rW   )r'   rU   )r$   rV   )r%   rT   )r    r#   zx%dr    r   )ranger   r   r   r   )VEvr)   ijx1x2x3x4x5x6x7x8x9x10x11x12r*   I3r+   IgIs                          r/   test_benchmark_coloringrn      s   aA	GA a)a519a)2s3DA*+,!$!!E(A!eH	!A,895BBBBBS#	Aq!Q$(AB	()	*1!Q$1*q!t
B	*
RAAcrFA
S3
S
S
S
S3
S
S
S3
Sc	CQS36!Q
#    Aq>aS   3 *, 
	*s   DD$,D*D/c                     [        S[        [        5      u  pp#USU-  -   SU-  -   S-
  US-  SUS-  -  -   SUS-  -  -   U-
  SU-  U-  SU-  U-  -   U-
  /n[        X@5      SSU-  -   SU-  -   SUS-  -  -   SUS	-  -  -
  SU-  S	U-  -   S
US-  -  -
  SUS	-  -  -   X3S-  -   SUS	-  -  -
  SUS-  -  -   /:X  d   e[        S[        [        5      u  pp#U Vs/ s H  oUR                  U 5      PM     nn[        X@5      SU-  S	U-  -   S
US-  -  -
  SUS	-  -  -   U* U-   S	US-  -  -
  SUS-  -  -   U* SU-  -
  SU-  U-  -   SUS-  -  -   SU-   SU-  -   SU-  -   /:X  d   eg s  snf )Nzx:3r   r!   ir$   r%      i  r    O      (   T   r#   r&   rU   rT   rX   r   r   r   r   r   set_ring)r)   x0r_   r`   rm   r]   s         r/   _do_test_benchmark_katsura_3rx      s   ub#&KA"	adQrT	A		Q2q51RU7	"R	'	
2b1R47	R		!A A>
QrT	AbD3r1u9$s2q5y0	"qtbQhRU*
U
RAX2q5(    ub%(KA"!"$A**Q-A$A>	"qtbQhRU*	b1RU7Qr1uW$	ad
RU2X2q5(
R!B$2	    	%s   E"c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr3   r7   r8   rx   r9   r1   r/   "test_benchmark_katsura3_buchbergerr{           	|	,$& 
-	,	,r;   c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr=   rz   r9   r1   r/   test_benchmark_katsura3_f5br~           	u	%$& 
&	%	%r;   c                     [        S[        [        5      u  pp#nUSU-  -   SU-  -   SU-  -   S-
  US-  SUS-  -  -   SUS-  -  -   SUS-  -  -   U-
  SU-  U-  SU-  U-  -   SU-  U-  -   U-
  US-  SU-  U-  -   SU-  U-  -   U-
  /n[        XP5      SU-  SUS-  -  -
  SUS-  -  -   S	US
-  -  -   SUS-  -  -
  SUS-  -  -
  SUS-  -  -   SU-  -   S-
  SU-  SUS-  -  -
  SUS-  -  -   SUS
-  -  -
  SUS-  -  -
  SUS-  -  -   SUS-  -  -
  SU-  -
  SU-  SUS-  -  -   SUS-  -  -
  SUS
-  -  -   SUS-  -  -   SUS-  -  -
  SUS-  -  -
  SU-  -   S US!-  -  S"US-  -  -
  S#US-  -  -   S$US
-  -  -   S%US-  -  -
  S&US-  -  -   S'US-  -  -   U-
  /:X  d   e[        S[        [        5      u  pp#nU Vs/ s H  ofR                  U 5      PM     nn[        XP5      S(U-  S)US-  -  -
  S*U-  U-  -   S+U-  -
  S,US-  -  -   S-US-  -  -
  S.US-  -  -
  S/U-  -   U* S0US-  -  -   S1US-  -  -
  S2U-  U-  -   S3U-  -
  S4US-  -  -
  S5US-  -  -   S6U-  -
  S7U-  S8US-  -  U-  -   S9US-  -  -
  S:U-  U-  -
  S;U-  -   S<US-  -  -
  S=US-  -  -   S>U-  -   S?U-  S@US-  -  -   SAU-  US-  -  -   SBU-  U-  -
  SCU-  -   SDUS-  -  -   SEUS-  -  -
  SU-  -   SUS-  -  U-
  SUS-  -  -
  SFU-  U-  -
  SU-  -   S'US-  -  -
  S
U-  -   SGU-  U-  U-
  SGUS-  -  -   S3U-  U-  -   SU-  -
  SUS-  -  -   SU-  -
  SGU-  U-  U-
  SUS-  -  -   S;U-  U-  -   SU-  -
  SHUS-  -  -   S6U-  -
  USU-  -   SU-  -   SU-  -   S-
  /:X  d   eg s  snf )INzx:4r   r!   i9Z l    '\ r$   l    = r'   l   :G r&   l   h2 r#   i0%2r    ieiFJ iQ l    BZ l   rD l   >% l   !I i|0i i l   kvYl   `A+ l   p l   \8_]
 iܮxi(i9i0 r%   il i<  iH  i`  $      i  i6  in  ;   im iXd i  i        <         S   rW   iin     i      iv  9   3   !   ?   i     "   i	  iQ           ru   )r)   rw   r_   r`   ra   rm   r]   s          r/   _do_test_benchmark_katsura_4r      s   %S)NA"	adQrT	AbD	 1	$	Q2q51RU7	"Qr1uW	,r	1	
2b1R47	QrT"W	$r	)	Q2b1R47	"R	'	)A
 A>
\"a%''+b!e*;;k"a%>OOR\]_ab]bRbbenoqstotett  xA  BD  FG  BG  xG  	G  JQ  RT  JT  	T  W^  	^
[Q&&RU)::[Q=NNQ[\^`a\aQaadmnprsnsdssv}  A  CD  D  wD  	D  GN  OQ  GQ  	Q
\"a%'',r1u*<<{2q5?PPS^_acd_dSddgqrtvwrwgww  {D  EG  IJ  EJ  {J  	J  MU  VX  MX  	Xr1uuRU{"U2q5[04A:=RU
	AX	 "2q5	)+-	.	    %U+NA"!"$A**Q-A$A>Bb!ed2gbj(2b506"a%<?%A+MPSTVXYTYPYY\`ac\cc	c"a%i"RU("RU2X-25BE	ABr1uHLqQStS
2RU
2BE	)CF2I52=BE	IBrSTuHTWYZ\W\\
22q5472q5=(3r6"94r"u<tBEzICPRTUPUIUXYZ\X\\	"a%"qQwBr)AbD02b!e8;adB
2b22q5 2b58+ad2Qr1uW<qtC
2b2"a%"R%(*QrT1Br1uH<qtC
QrT	AbD1R4!#	 	 	 	 	%s   :N	c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr3   r7   r8   r   r9   r1   r/   #test_benchmark_kastura_4_buchbergerr      r|   r;   c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr=   r   r9   r1   r/   test_benchmark_kastura_4_f5br      r   r;   c                     [        S[        [        5      u  pnSUS-  -  SUS-  -  -   SUS-  -  -
  SUS	-  -  -
  S
US-  -  -
  SUS-  -  -   SUS-  -  -   SU-  -
  S-   SSU-  -
  US-  -  SSU-  -
  US-  -  -   SSU-  -   US	-  -  -   SSU-  -   US-  -  -   SSU-  -   US-  -  -   SU-  US-  -  -   SSU-  -
  U-  -   S-   SU-  -   /n[        X05      SU-  SUS-  -  -
  SUS-  -  -
  SUS	-  -  -
  S US-  -  -
  S!US-  -  -
  S"US-  -  -
  S#U-  -
  S$-
  S%US-  -  S&US-  -  -   S'US-  -  -   S(US	-  -  -   S)US-  -  -   S*US-  -  -   S+US-  -  -   S,U-  -   S--   /:X  d   e[        S[        [        5      u  pnU Vs/ s H  oDR                  U 5      PM     nn[        X05      S.US-  -  U-  S/US-  -  -
  S0US-  -  U-  -   S1US-  -  -
  S2U-  U-  -   S3U-  -
  S4US-  -  -   S5U-  -   S6-
  S7US-  -  S8US-  -  -   S9US-  -  U-  -   S:US-  -  -   S;U-  U-  -   S<U-  -   S=US-  -  -   S>U-  -   S?-   S@US-  -  SAUS-  -  U-  -   SBUS-  -  -
  SCU-  U-  -   SDU-  -
  SEUS-  -  -   SFUS-  -  -   SGU-  -   SH-
  SIUS-  -  SJUS-  -  U-  -   SKUS-  -  -
  SLU-  US-  -  -   SMU-  U-  -   SNU-  -
  SOUS-  -  -   SPU-  -   SQ-
  /:X  d   eg s  snf )RNzx,trW   r%   r   r$   r   r'      r&   N   r#   i  r    i   r   l   iH   i    i   i  i8  ilii@  `   l     
RtJ)1~MCMgKbqcLel   ra2U!J'B\KW4Du+%B:N'/|,3D`N l    >C_=DmbgrVJ5n,O{-[8 D/7"l   *uQ!3'; PtSo"_ ;2g0PZwg
l   .S[_ik
8Cn|#	v*u0HtSl    5u3jx]L*(IIyL1iColat1:'6(l    Pg];meVq'%opZ "Mmt:%63l    P*71}<U1qq,+'cX0rVvQa; pA9l    @ir0@>/3,F%*;W@ {=5|o&(c_46l   :W]l   `k-@\K'l   ,8y'X^l    4C|	,Ydm l    Lo5Rs l     "#?Vq l    @otc?c l      t-JOl     Sz(Gl	   jP.qlj=Mj1l	   :q~\q,9D h`l
   \B{+9C0-f l
   n_Y\D&nb l
   jj9k${.ZGc l
   v^O1mDM( l	   |!gc]0t|- l
   @Nw*%iLM!6 l
    z *rpK0Z% l   4X\h@T:V%]yF= l    8bH(KKnEm?p@(8*. l   `'[%gQ Ce4
?XG l   `Abwc}{?Vq*qA l    .'l#8}(UU,7 l   8L*e?FRm & l    ^4O}P\X9T7cq!2l    &mu@IgG8H2GW l    m
Q<--:b8aoTV lkJX]JDh6,^%>a1R l   4cDHad,;T&~D!C0 l   3b!@+(#5;1l    aRz2y,vD l   [K0PR;Tze3Dlol
   ,'_wR$9M^Dr.l
   [66FWg^4Pw*
3l   @;k`n|)^&a l   Z(G2uj))gCZ lO]iMW
jVo5CU l
   D
K6
u^@_3 l
   |E}wB=`/k!l
     9)P9@II%N`; l
   VDqtRx
T,S) l
   ZDHbEV*x
5VGI2l
   @4e`2er1NX0y6 l
   4IDV!%v l
   _+YSYB&k'?%l ru   )r)   r*   trm   r]   s        r/   _do_test_benchmark_czichowskir      s   %S!FA	
1a4"QT'	Bq!tG	#c!Q$h	.AqD	83q!t8	Cc!Q$h	NQTUVQV	VYZ	Z
1*ad	dSUlAqD0	0C#a%KA3E	EPTUVPVXY[\X\H\	\`cfijkfk`kmnpqmq_q	quyz{u{}~  AB  ~B  uB  
B  FJ  MP  QR  MR  FR  TU  EU  
U  XZ  
Z  ]`  ab  ]b  
b	cA A>]^__efgijfjj	kfghjkgkk	l 	gghjkgkk	l 	hhiklhll		m
 	hhiklhll	m 	gghjkgkk	l 	gghh	i 	f	f 	ad"q!t#	$1$	% 	 1$	% 	!A%		&
 	!A%	& 	 1$	% 	 !	" 		   * %U#FA!"$A**Q-A$A>1!Q$6q81!Q$6	71!Q$6q8	9 	31a47	8 	314Q6		7
 	314	5 	/q!t3	4 	2!3	4 	2	2 	EQTIEadJ	KDQTI!K	L 	FadJ	K 	EQFqH		I
 	FaG	H 	B!Q$F	G 	EQF	G 	E	E 9A=71<Q>?8A=> 	9:1<= 	9:	;
 	6ad:; 	6ad:; 	9:; 	99 4AqD821a479:4QT9: 	314QT9: 	4A5a7	8
 	5Q67 	31a478 	4A56 	449% % % % 	%s   Kc                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr3   r7   r8   r   r9   r1   r/   $test_benchmark_czichowski_buchbergerr   D  s     	|	,%' 
-	,	,r;   c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr=   r   r9   r1   r/   test_benchmark_czichowski_f5br   I  s     	u	%%' 
&	%	%r;   c                  v   [        S[        [        5      u  pp#nX-   U-   U-   X-  X-  -   X#-  -   X$-  -   X-  U-  X-  U-  -   X-  U-  -   X#-  U-  -   X-  U-  U-  S-
  /n[        XP5      SU-  SUS-  -  -   SUS-  -  -
  SU-  -
  SU-  SU-  -   SUS-  -  -
  SUS-  -  -   SU-  -   SUS-  -  SUS	-  -  -   SUS
-  -  -
  SUS-  -  -
  SU-  US-  -  SU-  -   US-  -
  SUS-  -  -   SU-  -   US-  US-  -
  US-  -
  S-   /:X  d   e[        S[        [        5      u  pp#nU Vs/ s H  ofR                  U 5      PM     nn[        XP5      SU-  U-  US-  -
  US
-  -   SUS-  -  -
  U* SUS-  -  US-  -  -   U-
  US-  -
  SU-  -
  U* SU-  US-  -  -   SU-  -   SUS-  -  -   SU-  -   US-  SUS-  -  US-  -  -   US-  -
  S-
  US-  U-  X4S-  -  -   US-  -   S-   X#S-  -  US-  -
  US-  U-  -
  SU-  US-  -  -
  US-  -
  US-  US-  -
  X$-  US-  -   X4-  -   US-  -   X-   U-   U-   /	:X  d   eg s  snf )Nza,b,c,dr!   r#   r    rW   r&   r$   r   rU   r'   rT   r%   ru   )r)   abcdrm   r]   s          r/   _do_test_benchmark_cyclic_4r   M  s   iS)JAQ	
Q	
qsQS13		
QQQ	Q	&	
Qq1	A
 A>	!a1fqAv!#	!ac	AadFQq!tV#ac)	!Q$1b51QT6!AadF*	!AqD1Q3A!Q$&1,aeadlQT.AA.E	    iU+JAQ!"$A**Q-A$A>	!A1q!ta1f$	
Qq!tVAqD[1q!t#ac)	
QqSAX!a1f$qs*	1qAvad{QT!A%	1Qa4!Q$"	Q$A1Q1QT)AqD0	1q!tQS1a4Z!#%1,		A	 	 	 	 	%s   'H6c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr3   r7   r8   r   r9   r1   r/   "test_benchmark_cyclic_4_buchbergerr   j  s     	|	,#% 
-	,	,r;   c                  t    [         R                  " SS9   [        5         S S S 5        g ! , (       d  f       g = fr=   r   r9   r1   r/   test_benchmark_cyclic_4_f5br   n  s     	u	%#% 
&	%	%r;   c                      [        SS5      n [        SS5      n[        SS5      n[        U [        5      [        U[        5      :  d   e[        U[        5      [        U[        5      :  d   eg )Nr   r   r   r   )r!   r!   r!   r#   )r   r   r   )r   r   r   )s1s2s3s      r/   test_sig_keyr   r  s^    	Xq	B	Xq	B	Xq	B2sgb#....2sgb#....r1   c                  d   [        S[        [        5      u  pp#n[        [	        SS5      U R
                  S5      n[        [	        SS5      U R
                  S5      n[        [	        SS5      U R
                  S5      n[        U5      [        U5      :  d   e[        U5      [        U5      :  d   eg )Nx,y,z,tr   r   r   r   r    rT   r#   rJ   )r   r   r   r   r   zeror   )r)   r*   r+   r.   r   p1p2p3s           r/   test_lbp_keyr   {  s    iS)JAQ	S1qvvr	*B	S1qvvr	*B	S1qvvr	*B2;$$$2;$$$r1   c                     [        S[        [        5      u  pp#nSX#-  US-  -  US-  US-  -  -   US-  -
  S-
  S4nSUS-  * X$-  -
  X4-  -
  US-  -
  S4nSUS-  US-  -  US-  US-  -  -   U-
  U-
  S	4nS
X#-  X4S	-  -  -   X4-  -   US-  -   S4n[        XVU 5      SS[        SS5      4SUS-  * X$-  -
  X4-  -
  US-  -
  S4SS[        SS5      4SX#-  US-  -  US-  US-  -  -   US-  -
  S-
  S44:X  d   e[        XxU 5      SS[        SS5      4S
X#-  X4S	-  -  -   X4-  -   US-  -   S4SS[        SS5      4SUS-  US-  -  US-  US-  -  -   U-
  U-
  S	44:X  d   eg )Nr   r   r#   r   r#   r!   r   r   )r   r   r   r   r    r    r&   )r   r   r   r   r   r'   rJ   )r   r   r!   r   r   r   rX   )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   q1r   q2s	            r/   test_critical_pairr     s$   iU+JAQ
QSAX1QT	1AqD81<a	@B
adUQS[13.A5q	9B
QT!Q$YAad2Q6:A	>B
QS1T6\AC/!Q$6	;B#L"R)47H1a4%RSRU+XYX[J[^_ab^bJbde6fL"Q(36GQPQTTUWXTXYZ\]Y]T]I]`acd`dIdghIhjk5l(    #L"Q(36GqTUQUvXYX[I[^_ab^bIbdf5gL"Q(36GAaQRdUVXYUYZ[]^Z^U^I^abIbefIfhi5j(   r1   c                     [        S[        [        5      u  pp#nSX#-  US-  -  US-  US-  -  -   US-  -
  S-
  S4nSUS-  * X$-  -
  X4-  -
  US-  -
  S4nSUS-  US-  -  US-  US-  -  -   U-
  U-
  S	4nS
X#-  X4S	-  -  -   X4-  -   US-  -   S4n[        XVU 5      n	[        XxU 5      n
[	        X5      [	        X5      :  d   e[        XWU 5      n	[        XhU 5      n
[	        X5      [	        X5      :  d   eg )Nr   r   r   r#   r!   r   r   r    r&   r   r'   rJ   )r   r   r   r   r	   )r)   r*   r+   r.   r   r   r   r   r   cp1cp2s              r/   test_cp_keyr     s*   iU+JAQ
QSAX1QT	1AqD81<a	@B
adUQS[13.A5q	9B
QT!Q$YAad2Q6:A	>B
QS1T6\AC/!Q$6	;B

"C

"C#>F3N***

"C

"C#>F3N***r1   c                     [        S[        [        5      u  pp#n[        [	        SS5      U R
                  S5      n[        [	        SS5      [        SS5      US-  -  [        SS5      U-  U-  -   [        SS5      U-  U-  -   US-  U-  -   [        S	S5      US-  -  -   [        S
S5      U-  US-  -  -   [        SS5      U-  U-  -
  [        SS5      US-  -  -   [        SS5      US-  -  -
  S5      /n[        [        U5      [        U5      U5      SL d   e[        [	        SS5      U R
                  S5      n[        [	        SS5      [        SS5      U-  U-  [        S	S5      U-  U-  -   [        SS5      U-  -
  S	US-  -  -   [        SS5      U-  U-  -   [        S	S5      U-  -
  S	US-  -  -   [        S	S5      U-  -
  S5      /n[        [        U5      [        U5      U5      SL d   eg )Nr   )r   r   r   r!   r   )r   r   r   r!   -   r!   r&   r   r#   L   #   r   i   rJ   r$   r    r   r'   T)r   r!   r!   r   r   rU      )	r   r   r   r   r   r   r
   r   r   )r)   r*   r+   r.   r   pBs          r/    test_is_rewritable_or_comparabler     s   iU+JAQCa !&&!,A	Sq!2a8AqD=2a719Q;#>Ab!A#MPQSTPTUVPV#VY[\]^`YabcefbfYf#fiklnoqirstituvxyuyiy#y|~  @B  CF  }G  HI  }I  JK  }K  $K  NP  QS  TU  NV  WX  Z[  W[  N[  $[  ^`  ac  df  ^g  hi  kl  hl  ^l  $l  no  
p  	qA 'tAwA:dBBBCa !&&!,A	Sq!2b8A:a<"Qq'!)A+#=1Q	#IAaQRdF#RUWXZ[\U]^_U_`aUa#adfghijdklmdm#mpqrsuvrvpv#vy{|}~  zA  BC  zC  $C  EF  
G  	HA 'tAwA:dBBBr1   c            
         [        S[        [        5      u  pp#SUSU-  -   SU-  -   S-
  S4SSUS-  -  SU-  U-  -   SU-  -
  SUS-  -  -   SU-  -
  S4S[        S	S
5      U-  U-  [        SS
5      U-  -
  SUS-  -  -   [        SS
5      U-  -
  S
4SUSUS
-  -  -   [        SS5      US-  -  -
  [        S
S5      U-  -   S4SUS-  [        S	S5      US
-  -  -
  [        SS5      US-  -  -   [        SS5      U-  -   S4/n[        US   US   U 5      n[	        U5      n[        Xd5      SU R                  S4:X  d   e[        [        [        U5      S   S5      [        U5      [        U5      5      n[        Xd5      U:X  d   eg )Nr"   )r   r!   r   r!   )r   r   r'   r%   )r   r    rU   r    r#   ))r   r   r!   r      rq   r$   ))r   r   r   r   r   rt   r&   r   ))r   r   r   r!   d   )r   r   r   r   r   r   r   r   r   r   r   r   )r)   r*   r+   r.   rK   cpss          r/   test_f5_reducer     s   GR%HA
!ac'AaC-!+Q	/
!AqD&1Q3q5.1Q3.1a47!A#=q	A
"R(1*Q,Aa2Qq!tV;b1gaiG	K
!bAg+2aA51Q	A1	E
!Q$Br1a4/"Qr(1a4-?"Qr(1*La	P		RA 
qtQqT1	%Br
AQ?~qvvq9999CQ
C %(CF3AQ?ar1   c                     [        S[        [        5      u  pn/ SQnUS-  U-
  SU-  -
  S-   SU-  US-  -   U-   S-
  /n[        X4U 5      [        SS5      [        SS5      [        SS5      * [        SS5      /[        SS5      [        SS5      [        SS5      [        SS5      * /[        SS5      [        SS5      [        SS5      [        S	S5      /[        SS5      [        SS5      [        SS5      [        SS5      //[        SS5      [        SS5      [        SS5      [        SS5      * /[        SS5      [        SS5      * [        SS5      [        S	S5      /[        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   ))r   r   )r   r!   )r!   r   )r!   r!   r   r    r!   r   r#   r'   )r   r   r   r   )r)   r*   r+   basisrK   s        r/   test_representing_matricesr     s   %U#FA,E	
AAaC!	RTAqD[1_q01A!%A.
Q(Bq!HbAhY1a	1
Q(Bq!HbAh1ay	1
Q(Bq!HbAh1a	1
Q(Bq!HbAh1a	1	3 Q(Bq!HbAh1ay	1
Q(Bq!H9bAh1a	1
Q(Bq!HbAh1a	1
Q(Bq!HbAh1ay	1	334 4 4 4r1   c                     [        S[        5      u  pp#[        US-  US-  -
  X-
  5      US-  US-  -
  :X  d   e[        SUS-  -  SUS-  -  -
  SU-  SU-  -
  5      SUS-  -  SUS-  -  -
  :X  d   e[        S[        5      u  pp#[        US-  US-  -
  X-
  5      US-  US-  -
  :X  d   e[        SUS-  -  SUS-  -  -
  SU-  SU-  -
  5      SUS-  -  SUS-  -  -
  :X  d   e[        S[        5      u  pn[        US-  U-  XS-  -  5      US-  US-  -  :X  d   eSU-  US-  -  SU-  US-  -  -
  SU-  US-  -  -
  SU-  US-  -  -   nUS-  SUS-  -  -
  U-   nSU-  US-  -  SU-  US-  -  -
  SU-  US-  -  -
  SU-  US-  -  -   SU-  US-  -  -   SU-  US-  -  -
  n[        XE5      U:X  d   eUS-  SUS-  -  U-  -
  S	U-  US-  -  -
  SUS-  -  -
  nUS-  SUS-  -  U-  -   S
US-  -  US-  -  -   SU-  US-  -  -   SUS-  -  -   nUS-  US-  U-  -   SUS-  -  US-  -  -
  SUS-  -  US-  -  -
  SU-  US-  -  -
  SUS-  -  -
  n[        XE5      U:X  d   eg )Nr"   r   r   r&   r    r#   r$   r'   rW   rT   rU   r   2   /   r   )r   r   r   r   )r)   r*   r+   r.   r,   r-   hs          r/   test_groebner_lcmr     s   GR HA1q!tQU+q!tad{:::!Q$1a41qs3qAv!Q$FFFGR HA1q!tQU+q!tad{:::!Q$1a41qs3qAv!Q$FFF%_FA1QQ$'1a419444	!AqD1Q3q!t8ac!Q$h&1QT1A	1qAvA	!AqD1Q3q!t8ac!Q$h&1QT1AaC1H<qs1a4xGA"""	1qAvax!A#ad("Qq!tV+A	1qAvax"QT'!Q$,&Aad2Qq!tV;A	1q!tAv1a41$r!Q$wq!t|3bd1a4i?"QT'IA"""r1   c                     [        S[        5      u  pp#[        US-  US-  -
  X-
  5      X-
  :X  d   e[        SUS-  -  SUS-  -  -
  SU-  SU-  -
  5      SU-  SU-  -
  :X  d   e[        S[        5      u  pp#[        US-  US-  -
  X-
  5      X-
  :X  d   e[        SUS-  -  SUS-  -  -
  SU-  SU-  -
  5      X-
  :X  d   eg )Nr"   r   )r   r   r   r   )r)   r*   r+   r.   s       r/   test_groebner_gcdr     s    GR HA1q!tQU+qu444!Q$1a41qs3qsQqSy@@@GR HA1q!tQU+qu444!Q$1a41qs3qu<<<r1   c                      [        S[        [        5      u  pnUS-  X-  [        SS5      * U-  US-  -   /nUS-  X-  [        SS5      * U-  US-  -   /n[        X05      SL d   e[        X@5      SL d   eg )Nr   r   r!   r    TF)r   r   r   r   )r)   r*   r+   valid_groebnerinvalid_groebners        r/   test_is_groebnerr     s    %U#FAdAC"Qq'!ad!23N1acBqG8A:1#45~)T111'+u444r1   c                      [        S[        [        5      u  pnUS-  SU-  US-  -  -   nX-  SUS-  -  -   S-
  n[        X4/U 5      S:X  d   e[	        X4/U 5      n[        XP5      S:X  d   eg )Nr   r   r    r!   FT)r   r   r   r   r   )r)   r*   r+   r,   r-   rL   s         r/   test_is_reducedr     s}    5"c"GA!	1qs1a4xA	a1fqAqfa U***!Aat###r1   N)A__doc__sympy.polys.groebnertoolsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   sympy.polys.fglmtoolsr   sympy.polys.orderingsr   r   sympy.polys.ringsr   r   sympy.polys.domainsr   r   sympy.testing.pytestr   sympy.polysr   r7   r0   r:   r?   rM   rP   rR   rn   rx   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r1   r/   <module>r      s          9 , ) & % ,hT%%
!D,'':''BJ ( ((:&&/%&+*C" &4 #6	=5$r1   