
    sg4                         d Z ddlmZmZmZ ddlmZmZmZm	Z	m
Z
mZ ddlmZmZmZ ddl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 d Z!d Z"d Z#y)zTest modules.py code.    )
FreeModuleModuleOrderFreeModulePolyRing)CoercionFailedQQlexgrlexilexZZ)xyz)raises)Rationalc                  ,   t        j                  t              j                  d      } | j	                  dt        t        dz  g      t        j                  t              j	                  d      t        j                  t              j	                  t              t        j                  t              j	                  t        dz        g}t              |k(  sJ |d   d   k(  sJ |d   d   k(  sJ |d   d   k(  sJ t        t        fd       | j	                  t        ddg      }|z   | j	                  t        dz   t        t        dz  g      k(  sJ ||z   | j	                  t        dz   t        t        dz  g      k(  sJ  | j	                  dt         t        dz   g      k(  sJ |z
  | j	                  dt        z
  t        t        dz  g      k(  sJ |k7  sJ | j	                  t        t        t        g      t        j                  t              j	                  t              z  g dk(  sJ t        j                  t        d	      }|j                  d      j	                  t        g      |j	                  t              z  dgk(  sJ y )
N         r   c                       d   S )Nr    )es   V/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/agca/tests/test_modules.py<lambda>z(test_FreeModuleElement.<locals>.<lambda>   s    qt     r   r   r   r
   order)r   old_poly_ringr   free_moduleconvertlistr   
IndexError)MfgRr   s       @r   test_FreeModuleElementr(   
   s#   
''*A			1aA,A			!		$	$Q	')9)9!)<)D)DQ)GIYIYZ[I\IdIdefhieiIjkA7a<<Q41Q4<<Q41Q4<<Q41Q4<<
:|$			1a)Aq5AIIq1uaA.////q5AIIq1uaA.////2BQTE?++++q5AIIq1uaA.////6M699aAY""2"21"5"="=a"@@IMMM
&)A==##QC(199Q<7A3>>>r   c                  	   t        t        j                  t              d      t        t        j                  t              d      k(  sJ t        t        j                  t              d      k7  sJ t        t        j                  t              d      k7  sJ t        t        j                  t        d      d      } t        dgv sJ t        gvsJ dt        gvsJ dt        dz   z  dgvsJ j                  t        t        dz  dz   g      }t        j                  t              j                  t              }|||dz  dz   gk(  sJ |t        t        dz  dz   gk(  sJ d|z  dt        z  dt        dz  z  dz   gk(  sJ |dz  dt        z  dt        dz  z  dz   gk(  sJ |dz  t        dz  t        dz  dz   dz  gk(  sJ t        |z  t        dz  t        dz  t        z   gk(  sJ |t        z  t        dz  t        dz  t        z   gk(  sJ ||z  t        dz  t        dz  t        z   gk(  sJ ||z  t        dz  t        dz  t        z   gk(  sJ t        dg| v sJ t        g| vsJ dt        g| vsJ dt        dz   z  dg| v sJ | j                  t        t        dz  dz   g      }t        j                  t        d      j                  t              }|||dz  dz   gk(  sJ |t        t        dz  dz   gk(  sJ d|z  dt        z  dt        dz  z  dz   gk(  sJ |dz  dt        z  dt        dz  z  dz   gk(  sJ |dz  t        dz  t        dz  dz   dz  gk(  sJ t        |z  t        dz  t        dz  t        z   gk(  sJ |t        z  t        dz  t        dz  t        z   gk(  sJ |dt        z   z  t        dt        z   z  t        dz  dz   dt        z   z  gk(  sJ ||z  t        dz  t        dz  t        z   gk(  sJ ||z  t        dz  t        dz  t        z   gk(  sJ t        t        j                  t        t              d      j                  |      j                  t        t        dz  dz   g      k(  sJ j                  d      rJ j                         rJ t        t        d        t        t        d        t        t        fd	       t        t        fd
       y )Nr   r   r
   r   r   r   c                  R    t        j                  t              j                  d      S Nr   )r   r   r   r    r   r   r   r   z!test_FreeModule.<locals>.<lambda>P   s    (8(8(;(G(G(J r   c                  "    t        t        d      S r+   )r   r   r   r   r   r   z!test_FreeModule.<locals>.<lambda>Q   s    (:2q(A r   c                       j                  t        j                  t              j	                  d      j                  g d            S )Nr   r   r   r   )r!   r   r   r   r    )M1s   r   r   z!test_FreeModule.<locals>.<lambda>R   s2    2::b.>.>q.A.M.Ma.PGI$  r   c                  &     j                  d      S Nr   )r!   )M3s   r   r   z!test_FreeModule.<locals>.<lambda>T   s    2::a= r   )r   r   r   r   r   r!   is_submoduleis_zeror   NotImplementedErrorr   )M2r   Xr/   r2   s      @@r   test_FreeModuler8       s   	B$$Q'	+BB,,Q/3333B,,Q/3333B,,Q/3333	B$$Qf5q	9Bq6R<<3b==q6q1uIq>###


Aq!tax=!A
##A&AAqD1HAqD1HQ31Q3!Q$
####Q31Q3!Q$
####Q31Q3A1%%%%Q31a4A""""Q31a4A""""Q31a4A""""Q31a4A""""q6R<<3b==q6q1uIq>R


Aq!tax=!A
&)11!4AAqD1HAqD1HQ31Q3!Q$
####Q31Q3!Q$
####Q31Q3A1%%%%Q31a4A""""Q31a4A""""a!e9AEQTAXA$67777Q31a4A""""Q31a4A""""	B$$Q*A	.B::a=BJJ1a4!8}5555q!!!zz|
 JK
 AB
>   !
>01r   c                     t        t        t        d      } t        t        t        d      }| t        t        t        d      k(  sJ | t        t        t        d      k7  du sJ | |k7  sJ  | d      dk(  sJ  |d      dk(  sJ y )NFr.   )r   )   r   r   )r   r;   )r   r   r	   r
   )o1o2s     r   test_ModuleOrderr>   W   s    	S%	'B	T3	&BS%////+c5%00U:::8O8i=,,,,i=L(((r   c                  >   t        j                  t        t              j	                  d      } | j                  g dg dg d      }| j                  t        dz  t        dz  z   ddgt        t        dg      | |k(  sJ || k(  sJ | k7  sJ | k7  sJ |k7  sJ |k7  sJ | | j
                  | j                          k(  sJ |j                         sJ j                         rJ |j                         rJ j                         rJ |j                         j                         sJ j                  t        dz  t        dz  z   t        z   dt        z   dg      sJ j                  t        dz  t        dz  z   t        z   dt        z   dg      rJ j                  t        dz  dt        t        z  z
  t         g      sJ | j                  dt        z   ddg      | j                  g d      k(  rJ | j                  g dg d      j                  | j                  g d	            | k(  sJ j                  d      rJ | j                  t        dz  t        dz  z   ddg      }j                  |      }|j                  | u sJ |j                  u sJ t        t        fd
       t        t         fd       t        t        fd       | j                  t        t        t        g      | j                  t        t        t        gd      k7  sJ y )Nr   r   r   r   r   r   r   r.   r   r   r   r   r   r   r   r   r   c                  *     j                  g d      S Nr@   	submoduler$   s   r   r   z/test_SubModulePolyRing_global.<locals>.<lambda>       q{{95 r   c                  &     j                  d      S r1   )unionrH   s   r   r   z/test_SubModulePolyRing_global.<locals>.<lambda>   s    aggaj r   c                  l     j                  j                  d      j                  t        g            S r1   )rK   r    rG   r   )r$   r'   s   r   r   z/test_SubModulePolyRing_global.<locals>.<lambda>   s&    qwwq}}Q'7'A'A1#'FG r   r
   r   )r   r   r   r   r    rG   basisis_full_moduler4   containsrK   r3   r!   moduler   
ValueError	TypeError)FFdmnr$   r'   s       @@r   test_SubModulePolyRing_globalrW   c   s   
AA	aA	
Y	9	5B	QTAqD[!Q'!Q3A7N77N76M66M67N77N7aggi((((!!!zz|yy{?<<>!!###::q!tad{QAq1222zz1a4!Q$;?AE15666::q!tQ1Wqb)***{{AE1a=)Q[[-CCCC;;y),221;;y3IJaOOO~~a   			1a4!Q$;1%&A			!A88q==88q==
:56
9()
:GH;;1ay!Q[[!Q&[%IIIIr   c            	         t        j                  t        t        t              } | j                  d      }|j                  dt        z   ddgdt        z   ddt        z  z   dgg d      }|j                  t        dz  t        dz  z   ddgt        t        dg      ||k(  sJ ||k(  sJ |k7  sJ |k7  sJ |k7  sJ |k7  sJ | |j                  |j                          k(  sJ |j                         sJ j                         rJ |j                         rJ j                         rJ |j                         j                         sJ j                  t        dz  t        dz  z   t        z   dt        z   dg      sJ j                  t        dz  t        dz  z   t        z   dt        z   dg      rJ j                  t        dz  dt        t        z  z
  t         g      sJ |j                  dt        z   ddg      |j                  g d      k(  sJ |j                  g dg d      j                  |j                  dddt        t        z  z   g            |k(  sJ t        t        fd	       y )
Nr   r   r   r   r   r.   r@   rB   c                  *     j                  g d      S rE   rF   rH   s   r   r   z.test_SubModulePolyRing_local.<locals>.<lambda>   rI   r   )r   r   r   r   r
   r    rG   rM   rN   r4   rO   rK   r   rQ   )r'   rS   rT   r$   s      @r   test_SubModulePolyRing_localrZ      s5   
AT*A	aA	
a!eQ]QUA!GQ$7	CB	QTAqD[!Q'!Q3A7N77N76M66M67N77N7aggi((((!!!zz|yy{?<<>!!###::q!tad{QAq1222zz1a4!Q$;?AE15666::q!tQ1Wqb)***;;Aq!}%Y)????;;9#eAKKAq1Q3w$@AQG G G :56r   c                  	   t        j                  t        t        t              } | j                  d      fd} |t        t        gt              sJ  |t        t        gt        t        z         sJ  |t        t        gd      rJ  |t        t        gt              rJ  |t        dz  t        z   t        dz  t        z   gt        t        z
        sJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        dz        rJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        dz        sJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        dz        sJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        t        dz  z        rJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        dz  t        dz  z   dt        z  t        z  t        z  z         sJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        t        z  t        z        sJ  |t        dt        z   t        z   ddt        z  z
  gd      sJ  |t        dz  t        dz  z   t        dz  t        dz  z   t        dz  t        dz  z   t        dz  t        z  t        dz  t        z  z   t        dz  t        z  z   gt        dz        sJ  |t        dz  t        dz  z   t        dz  t        dz  z   t        dz  t        dz  z   t        dz  t        z  t        dz  t        z  z   t        dz  t        z  z   gt        dz  t        dz  z         rJ  |t        dt        z   t        z   z  t        dt        z   z  gt              rJ  |t        dt        z   t        z   z  t        dt        z   z  gt        t        z         rJ y )Nr   c                 j     j                   | D cg c]  }|g c} j                  |g      S c c}w NrG   rO   Ir%   r&   rS   s      r   rO   z7test_SubModulePolyRing_nontriv_global.<locals>.contains   1    q{{!,QaS,-66s;;,   
0r   r      r:      )r   r   r   r   r   r    r'   rO   rS   s     @r   %test_SubModulePolyRing_nontriv_globalrf      s   
Aq!A	aA< QFAQFAE"""A"""A"""QTAXq!tax(!a%000QAaC!A#I!OQqSU;QTBBBQUQY!ac	AaC1Q7A>>>QUQY!ac	AaC1Q7A>>>QAaC!A#I!OQqSU;Qq!tVDDDQUQY!ac	AaC1Q7A1qs1uQw9NOOOQUQY!ac	AaC1Q71Q???QA	1qs7+Q///	
A1adQTk1a4!Q$;1QAa!Q$q&0HI	1   	
A1adQTk1a4!Q$;1QAa!Q$q&0HI	1q!t  
 AEAI1q5	2A666AEAI1q5	2AE::::r   c                  X   t        j                  t        t        t        t
              } | j                  d      fd} |t        t        gt              sJ  |t        t        gt        t        z         sJ  |t        t        gd      rJ  |t        t        gt              rJ  |t        dz  t        z   t        dz  t        z   gt        t        z
        sJ  |t        t        z   t        z   t        t        z  t        t        z  z   t        t        z  z   t        t        z  t        z  gt        dz        rJ  |t        dt        z   t        z   z  t        dt        z   z  gt              sJ  |t        dt        z   t        z   z  t        dt        z   z  gt        t        z         sJ y )Nr   r   c                 j     j                   | D cg c]  }|g c} j                  |g      S c c}w r]   r^   r_   s      r   rO   z6test_SubModulePolyRing_nontriv_local.<locals>.contains   ra   rb   r   )r   r   r   r   r   r
   r    re   s     @r   $test_SubModulePolyRing_nontriv_localri      s@   
Aq-A	aA< QFAQFAE"""A"""A"""QTAXq!tax(!a%000QAaC!A#I!OQqSU;QTBBBQA	]Aq1uI.222QA	]Aq1uI.A666r   c                  p   t        j                  t        t        t              } | j                  d      j                  t        t        z  gt        t        z  gt        t        z  g      }| j                  d      j                  dt        t         gt        t         dg      }|j                         |k(  sJ |t        t        z  t        z  gfz  }| j                  d      j                  t        ddgdt        dgddt        g      }|j                         |k(  sJ | j                  d      } |j                  |j                          j                         |j                         k(  sJ t        j                  t        t        t              t        t        z  t        z  gz  }|j                  d      j                  t        t        z  gt        t        z  gt        t        z  g      }|j                  d      j                  t        ddgdt        dgddt        g      }|j                         |k(  sJ y )Nr   r   r   )	r   r   r   r   r   r    rG   syzygy_modulerM   )	r'   r$   Sr6   S2rS   R2r2   S3s	            r   test_syzygyrp      s   
Aq!A	a""AaC51Q3%!A#7A	a""Aq1":A2qz:A??!!!	
qs1ugZB	
q		#	#Q1I1ay1a)	DB###	aA1;;	"002akkmCCC			!Q	"ac!eW	,B			$	$acUQqSEAaC5	9B			$	$aAYAq	Aq!9	EB###r   c                     t        j                  t        d      } | j                  d      j	                  dt        z  dgddg      j                  t        t        g      | j                  t        dd            | j                  t        dz        gk(  sJ t        t        fd       | j                  d      t        dgddgfz  j	                  dt        g      }|j                  ddg      | j                  dt        dz
  z        gk(  sJ t        j                  t        t              t        dz  t        dz  z
  gz  } | j                  d      j	                  t        dgdt        g      }|j                  t        dz  t        dz  g      | j                  t              | j                  t              gk(  sJ y )	Nr
   r   r   r   r   rc   c                  *     j                  ddg      S )Nr   r   )in_terms_of_generatorsrH   s   r   r   z-test_in_terms_of_generators.<locals>.<lambda>   s    q77A? r   )r   r   r   r    rG   rs   r!   r   r   rQ   r   )r'   SMr$   s     @r   test_in_terms_of_generatorsrv      s   
&)A	a""AaC8aV4A##	
AIIhq!n-qyy1~>? ? ?
:?@	aQFQF++A	
aV	B$$aV,2q1u:1F0GGGG
A!Q$A+.A	aA	
aVaV	$B$$	
Aq!t))A,		!56 6 6r   c                    	 t        j                  t              } | j                  d      }|j	                  dt        t        dz  g      }||z  j                  t        dz  ddg      }j                  t        dz   t        dz  t        z   t        dz  t        dz  z   g      dk(  sJ |t        dz  ddg|z   cxk(  rP|j                  t        dz  ddg      |z   cxk(  r.j                  |j                  t        dz  ddg            k(  sJ  J j                  t        dz  dz   dt        z  dz   t        dz  g      |dt        dgz   cxk(  r>|j                  dt        dg      z   cxk(  r||j                  dt        dg      z   k(  sJ  J j                  t        dz  dz   dt        dz  g      |dt        dgz
  cxk(  r>|j                  dt        dg      z
  cxk(  r||j                  dt        dg      z
  k(  sJ  J j                  g d      j                  t        dz  ddg      |z
  cxk(  r5t        dz  ddg|z
  cxk(  r"|j                  t        dz  ddg      |z
  k(  sJ  J j                  t        dz  t        dz  z   dt        z  dz   dg      dt        z   |z  cxk(  rN| j                  dt        z         |z  cxk(  r/|dt        z   z  cxk(  r|| j                  dt        z         z  k(  sJ  J | t        dz   ddgk(  sJ t        t        dg|z   }j                  g d      |t        z  cxk(  r|| j                  t              z  k(  sJ  J |ddt        z  dt        dz  z  fd	gz  | j                  d      dt        ggz  	|j	                  dt        t        dz  gg d
      |z  }t        t        fd       t        t        	fd       t        t        fd       j                  j                  dt        t        dz  g            dt        dgk(  sJ j                  |j                  g d            g dk(  sJ y )Nr   r   r   r   )r   r   r   rc   rt   )r   r   r   rC   r@   c                  P    j                   j                  dt        g            S r1   r!   r   )Gr$   s   r   r   z,test_QuotientModuleElement.<locals>.<lambda>  s    199QYY1v->#? r   c                  P     j                  j                  dt        g            S r1   ry   )r$   r2   s   r   r   z,test_QuotientModuleElement.<locals>.<lambda>  s    199RZZA-?#@ r   c                  Z     j                  j                  dt        t        g            S r1   ry   )r$   r6   s   r   r   z,test_QuotientModuleElement.<locals>.<lambda>  s    199RZZAq	-B#C r   r   r   r   )r   r   r   r    rG   r!   r   r   )
r'   rS   Nr   r%   M4rz   r$   r6   r2   s
         @@@@r   test_QuotientModuleElementr      s3   
A	aA	Q1a4L!A	!A			1a4A,A99a!eQTAXq!tad{34999Aq!q  +AIIq!tQl$;a$? +			!))QT1aL)*+ + + + + 99adQh!aA./11ay= =	AIIq!Qi  =$%		1a)(<$<= = = = =99adQh1a4()Q!Q] =	AIIq!Qi  =$%		1a)(<$<= = = = =99Y199adAq\#:Q#> 8	
Aq!q8IIq!tQl3a78 8 8 8 899adQTk1Q37A./AE19 >			!a%>Qi>+,QYYq1u-=+=> > > > >21a4%Q	
Aq	AA99Y1q5<A		!,<<<<<<	
Q!Qq!tVi(	(B	aA	
QF8B	
aAqD\9	-	1B
>?@
>@A
>CD::aiiAq!t-.1a);;;99RZZ	*+y888r   c                  d   t        j                  t              j                  d      j	                  dt        t        dz  g      z  k7  sJ k7  sJ dt        t        dz  fgz  k(  sJ j                         rJ j                         z  j                         sJ j	                  dt        t        dz  gg d      z  } | j	                  dt        t        dz  g      k(  sJ | j	                  g d      k7  sJ | k7  sJ j                  |       sJ | j                         rJ t        t        fd       t        t        fd       t        t        fd       t        t        fd	       g d
gz  }|j	                  g dg d      }||k(  sJ y )Nr   r   r   r}   )r   r   r   c                       z  S r]   r   rS   r~   s   r   r   z%test_QuotientModule.<locals>.<lambda>5  s    qs r   c                  0     j                  g d      z  S )Nr}   rF   r   s   r   r   z%test_QuotientModule.<locals>.<lambda>6  s    q{{959 r   c                  ,    j                  d       z  S r+   )r    )rS   r'   s   r   r   z%test_QuotientModule.<locals>.<lambda>7  s    q}}Q/1 r   c                  `     j                  j                  dt        t        dz  g            S )Nr   r   ry   )rS   r$   s   r   r   z%test_QuotientModule.<locals>.<lambda>8  s#    199QYY1ad|-D#E r   r   r@   rB   )r   r   r   r    rG   r4   rM   r3   rN   r   rQ   r   )SQr/   r6   rS   r$   r~   r'   s      @@@@r   test_QuotientModuler   "  sx   
A	aA	Q1a4L!A	!A6M66M6aAqD\N""""yy{?	M""$$$	
aAqD\9	-	1BaAqD\****Y''''7N7>>"  """
:{#
:9:
:12
>EF	
i[B	i	+B8O8r   c                     t        j                  t        t        dt        fdt        ff      t        dz  dz   gz  } | j	                  d      }|| j	                  d      k(  sJ |t        j                  t              j	                  d      k7  sJ || j	                  d      k7  sJ t        dg|v sJ t        g|vsJ d| j                  t              dz   z  dg|v sJ dddt        z   z  g|v sJ ddt        z  g|vsJ |j                  t        dz  t        g      dt        gk(  sJ | j	                  d      }|j                  t        dz  ddgg d	g d
      }|j                  t        dz  t        dz  z   ddgt        t        dg      }||k(  sJ ||k(  sJ ||k7  sJ ||k7  sJ ||k7  sJ ||k7  sJ | |j                  |j                          k(  sJ |j                         sJ |j                         rJ |j                         rJ |j                         rJ |j                         j                         sJ |j                  t        dz  t        dz  z   t        z   t        dz   t        z   dg      sJ |j                  t        dz  t        dz  z   t        z   dt        z   dg      rJ |j                  t        dz  dt        t        z  z
  t         g      sJ |j                  t        ddg      |j                  g d      k(  sJ |j                  t        ddg      |j                  g d      k(  rJ |j                  g dg d      j                  |j                  g d            |k(  sJ |j                  d      rJ y )Nr   r
   r   r   r   r   r   r   rA   r.   r@   rB   rC   )r   r   r   r   r    r!   rG   rM   rN   r4   rO   rK   r3   )r'   r/   rS   rT   r$   s        r   test_ModulesQuotientRingr   ?  sJ   
Auaj61+%>?1a4!8*LA	
q	Bq!!!!!!!$003333q!!!!q6R<<3b==qyy|a !$***q!a%y>Rqs82::q!tQi RG+++	aA	
adAq\9i	8B	QTAqD[!Q'!Q3A7N77N76M66M67N77N7aggi((((!!!zz|yy{?<<>!!###::q!tad{QA	15666zz1a4!Q$;?AE15666::q!tQ1Wqb)***;;1ay!Q[[%;;;;{{Aq!9%Y)????;;y),221;;y3IJaOOO~~a    r   c                     t        j                  t              } | j                  d      }|j	                  t        dgdt        g      }|j	                  t        dz  dgdt        dz  g      }| j                  t              }||z  ||z  cxk(  r |cxk(  rt        |z  cxk(  r|t        z  k(  sJ  J ||z  |cxk(  rt        |z  k(  sJ  J y )Nr   r   )r   r   r   r    rG   ideal)r'   r$   S1rm   r`   s        r   test_module_mulr   j  s    
A	aA	
aVaV	$B	
adAYAqD		*B	
AQ3!A#))qs)ac)))))R422r   c            	         t        j                  t        t              j	                  d      } | j                  t        t        gt        dg      }| j                  dt        dz
  gt        dgt        t        g      }| j                  t        t        gt        dz  t        z
  t        dz
  gt        t        z  t        z   t        dz   g      }|j                  |d      \  }}}||j                  |      cxk(  r|k(  sJ  J t        |j                        D ]c  \  }}|t        d t        ||   |j                        D              cxk(  r.t        d t        ||   |j                        D              k(  r`J  J  | j                  t        t        g      j                  | j                  t        t        g            j                         sJ y )Nr   r   r   T	relationsc              3   ,   K   | ]  \  }}||z    y wr]   r   .0cr   s      r   	<genexpr>z$test_intersection.<locals>.<genexpr>~       >1!>   c              3   ,   K   | ]  \  }}||z    y wr]   r   )r   dr   s      r   r   z$test_intersection.<locals>.<genexpr>  r   r   )r   r   r   r   r    rG   	intersect	enumerategenssumzipr4   )	rS   r/   r6   r`   I1rel1rel2ir&   s	            r   test_intersectionr   u  sz   
A**1-A	
aVaV	$B	
aQZ!Q!Q	0B	QFQTAXq1u-!aQ/?@A\\"\5NBdb!&Q&&&&&"''" ?1C>DGRWW(=>> ?>DGRWW(=>>? 	? ? 	? ?? ;;1v((aV)<=EEGGGr   c            	         t        j                  t        t        t              } | j                  d      }|j                  t        t        z  t        t        z  gt        t        z  t        t        z  g      j                  |j                  t        t        gt        t        g            t        j                  t        t        t              j                  t        dz  t        dz  z  t        t        z  t        dz  z  z
        k(  sJ |j                  t        t        g      j                  |j                               j                         sJ |j                  t        dz  t        dz  gt        dz  t        dz  g      }|j                  t        t        z   t        t        z   g      }|j                  |d      \  }}|| j                  t        dz  t        t        z
        k(  sJ t        |j                        D ]C  \  }}||j                  d   z  t        d t        ||   |j                        D              k(  rCJ  y )Nr   Tr   r   c              3   ,   K   | ]  \  }}||z    y wr]   r   r   s      r   r   z test_quotient.<locals>.<genexpr>  s     !F$!Q!A#!Fr   )r   r   r   r   r   r    rG   module_quotientr   is_whole_ringr   r   r   r   )r'   rS   r$   r~   qrelr   r&   s           r   test_quotientr     s   
Aq!A	aA;;!QqSzAaC1:.>>	QFQF#%(*(8(8Aq(A(G(G1QPQT	TUVWTWXY[\X\T\H\(]^ ^ ^;;1v..q{{}=KKMMM	QT1a4L1a4A,/A	QUAEN#AqD1FAs1a!e$$$$!&&! G1{c!F#c!faff2E!FFFFFGr   c            	         t        j                  t        t        t              j                  d      j                  t        dz   t        dgt        t        z  t        t        dz  g      } | j                  d      \  }}t        |      D ]3  \  }}|t        d t        ||   | j                        D              k(  r3J  y )Nr   r   r   T)extendedc              3   ,   K   | ]  \  }}||z    y wr]   r   )r   r   gens      r   r   z*test_groebner_extendend.<locals>.<genexpr>  s     >&!S#>r   )r   r   r   r   r   r    rG   _groebner_vecr   r   r   r   )r$   rz   r'   r   r&   s        r   test_groebner_extendendr     s    
Aq!--a0::AE1a=1Q3PQSTVWSW.YA??D?)DAq! ?1C>C!aff,=>>>>>?r   N)$__doc__sympy.polys.agca.modulesr   r   r   sympy.polysr   r   r   r	   r
   r   	sympy.abcr   r   r   sympy.testing.pytestr   sympy.core.numbersr   r(   r8   r>   rW   rZ   rf   ri   rp   rv   r   r   r   r   r   r   r   r   r   r   <module>r      sw     P P @ @   ' '?,42n	)%JP7>;>7"$&6$ 9F:(!VHG ?r   