
    sg                     b    d Z ddlmZmZ ddlmZmZmZ ddlm	Z	 d Z
d Zd Zd Zd	 Zd
 Zd Zy)zTest ideals.py code.    )QQilex)xyz)raisesc                     t        j                  t        t              } | j	                  t              }| j	                  t              }| j	                  t        t        z        }| j	                  t        t              }||k(  rJ ||k(  sJ |j                  |      |k(  sJ ||z   |k(  sJ ||z   |k(  sJ |j                  |      rJ |j                  |      sJ |j                  |      |k(  sJ ||z  |k(  sJ t        |z  |k(  sJ |t        z  |k(  sJ | j                  t              |z  |k(  sJ || j                  t              z  |k(  sJ |j                         rJ |j                         rJ | j	                  t        dz  dz   t              j                         sJ | j	                         | j	                  d      k(  sJ | j	                         j                         sJ |j                  t        t        z        sJ |j                  t        t        g      sJ |j                  t               | d       | d      gk(  sJ |dz  | j	                  d      k(  sJ |dz  |k(  sJ |dz  | j	                  t        dz  t        dz  t        t        z        k(  sJ |dz  | j	                  t        dz        k(  sJ y )N      r      )r   old_poly_ringr   r   idealunionsubsetproductconvertis_zerois_whole_ringcontainsin_terms_of_generators)RIJSTs        U/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/agca/tests/test_ideals.pytest_ideal_operationsr      si   
AA	
A	
A	!A	1AQ<6M6771:??q5A::q5A::xx{?88A;;99Q<1Q3!8O8Q3!8O8Q3!8O899Q<>QQYYq\>Qyy{?   771a4!8Q--///779
"""779::ac??88QF##A&1Q41,666a41771:a4199a41771a4Aqs++++a41771a4=       c                  n    t        j                  t              j                  t               t        j                  t              j                  d      t        t         fd       t        t         fd       t        t         fd       t        t         fd        k(  du sJ  k7  sJ y )Nr   c                  .     j                  t              S N)r   r   )r   s   r   <lambda>z!test_exceptions.<locals>.<lambda>5   s    qwwqz r   c                       z   S r!    r   r   s   r   r"   z!test_exceptions.<locals>.<lambda>6       q1u r   c                       z  S r!   r$   r%   s   r   r"   z!test_exceptions.<locals>.<lambda>7   r&   r   c                  &     j                        S r!   )r   r%   s   r   r"   z!test_exceptions.<locals>.<lambda>8   s    qwwqz r   F)r   r   r   r   r   r   
ValueErrorr%   s   @@r   test_exceptionsr*   2   s    
!!!$A
!!!$A
:)*
:}%
:}%
:)*Fu6M6r   c                  	   t        j                  t        t        t              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 )Nc                 @     j                   |  j                  |      S r!   r   r   r   fr   s     r   r   z%test_nontriv_global.<locals>.contains@       qww{##A&&r   r   r
         r      )r   r   r   r   r   r   r   s    @r   test_nontriv_globalr5   =   s   
Aq!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                  6   t        j                  t        t        t        t
              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 )Norderc                 @     j                   |  j                  |      S r!   r-   r.   s     r   r   z$test_nontriv_local.<locals>.contains^   r0   r   r   r
   )r   r   r   r   r   r   r4   s    @r   test_nontriv_localr:   [   s2   
Aq-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                  t        t              j                  | j                  t        dz  t                    | j                  t        dz  t        t        z  t        t        z        k(  sJ | j                  t        t              j                  | j                               j                         sJ t        j                  t        t        t        d      } | j                  t        t              j                  | j                  t        dz  t        dz  t        z  z   t        t        t        dz  z  t        z  z               | j                  t        dz  t        t        z  t        t        z        k(  sJ y )Nr
   r   r7   r1   )r   r   r   r   r   r   	intersectr   r   s    r   test_intersectionr>   k   s   
Aq!A771a=""1771a4#341ac1Q38OOOO771a=""1779-55777
Aq/A771a=""1771a4!Q$q&=!a1fQh,#GH	1ac1Q3     r   c                     t        j                  t        t        t              } | j                  t        t              j                  | j                  t        dz  t                    | j                  t        t              k(  sJ y )Nr
   )r   r   r   r   r   r   quotientr=   s    r   test_quotientrA   w   sR    
Aq!A771a=!!!''!Q$"23qwwq!}DDDr   c                  R   ddl m}  t        j                  t        t
              }|j                  t        dz  t
              }|j                  t        dz  t
        dz  z         }|j                  |      |k(  sJ |j                  ||       |j                  t        dz        k(  sJ y )Nr   )sdm_nf_buchberger_reducedr   r1   r
   )NF)	sympy.polys.distributedmodulesrC   r   r   r   r   r   r   reduce_element)rC   r   r   es       r   test_reductionrH   }   s    H
AA	1aA			!Q$A+AA!###A";<		!Q$OOOr   N)__doc__sympy.polysr   r   	sympy.abcr   r   r   sympy.testing.pytestr   r   r*   r5   r:   r>   rA   rH   r$   r   r   <module>rM      s:         ''!T;<7 	 EPr   