o
    GZh                     @   sp   d Z ddlmZmZ ddlmZmZmZ ddlm	Z	 dd Z
dd Zd	d
 Zdd Zdd Zdd Zdd ZdS )zTest ideals.py code.    )QQilex)xyz)raisesc                  C   s  t tt} | t}| t}| tt }| tt}||kr#J ||ks)J |||ks2J || |ks:J || |ksBJ ||rIJ ||sPJ |||ksYJ || |ksaJ t| |ksiJ |t |ksqJ | t| |ks|J || t |ksJ |	 rJ |
 rJ | td d t
 sJ |  | dksJ |  	 sJ |tt sJ |ttgsJ |t| d| dgksJ |d | dksJ |d |ksJ |d | td td tt ksJ |d | td ks	J d S )N      r      )r   old_poly_ringr   r   idealunionZsubsetproductconvertis_zeroZis_whole_ringcontainsZin_terms_of_generators)RIJST r   Q/var/www/auris/lib/python3.10/site-packages/sympy/polys/agca/tests/test_ideals.pytest_ideal_operations   s<   

& r   c                      s   t tt t tdtt fdd tt fdd tt fdd tt fdd  kdu s?J  ksEJ d S )Nr	   c                      s
     tS N)r   r   r   )r   r   r   <lambda>5      
 z!test_exceptions.<locals>.<lambda>c                      s     S r   r   r   r   r   r   r   r   6       c                      s     S r   r   r   r   r   r   r   7   r   c                      s
     S r   )r   r   r   r   r   r   8   r   F)r   r   r   r   r   r   
ValueErrorr   r   r   r   test_exceptions2   s   r    c                     s\  t ttt  fdd} | ttgtsJ | ttgtt s!J | ttgdr*J | ttgtr3J | td t td t gtt sFJ | tt t tt tt  tt  tt t gtd rdJ | tt t tt tt  tt  tt t gtd sJ | tt t tt tt  tt  tt t gtd sJ | tt t tt tt  tt  tt t gttd  rJ | tt t tt tt  tt  tt t gtd td  dt t t  sJ | tt t tt tt  tt  tt t gtt t sJ | tdt t ddt  gdsJ | td td  td td  td td  td t td t  td t  gtd sNJ | td td  td td  td td  td t td t  td t  gtd td  rJ | tdt t  tdt  gtrJ | tdt t  tdt  gtt rJ d S )	Nc                        j |  |S r   r   r   r   fr   r   r   r   @      z%test_nontriv_global.<locals>.containsr	   r         r
      )r   r   r   r   r   r   r   r%   r   test_nontriv_global=   s0   &<<<@TB&N
N
(0r+   c                     s   t jttttd  fdd} | ttgtsJ | ttgtt s#J | ttgdr,J | ttgtr5J | td t td t gtt sHJ | tt t tt tt  tt  tt t gtd rfJ | tdt t  tdt  gtsyJ | tdt t  tdt  gtt sJ d S )Norderc                    r!   r   r"   r#   r%   r   r   r   ^   r&   z$test_nontriv_local.<locals>.containsr	   r   )r   r   r   r   r   r   r*   r   r%   r   test_nontriv_local[   s   &<&.r.   c               	   C   s   t ttt} | tt| td t| td tt tt ks%J | tt|   s4J t jtttdd} | tt| td td t  tttd  t  | td tt tt ksiJ d S )Nr   r   r,   r'   )r   r   r   r   r   r   Z	intersectr   r%   r   r   r   test_intersectionk   s   <8r/   c                  C   s@   t ttt} | tt| td t| ttksJ d S )Nr   )r   r   r   r   r   r   Zquotientr%   r   r   r   test_quotientw   s   2r0   c                  C   st   ddl m}  ttt}|td t}|td td  }|||ks(J |j|| d|td ks8J d S )Nr   )sdm_nf_buchberger_reducedr
   r'   r   )ZNF)	Zsympy.polys.distributedmodulesr1   r   r   r   r   r   r   Zreduce_element)r1   r   r   er   r   r   test_reduction}   s   $r3   N)__doc__Zsympy.polysr   r   Z	sympy.abcr   r   r   Zsympy.testing.pytestr   r   r    r+   r.   r/   r0   r3   r   r   r   r   <module>   s    *