U
    	-e                     @   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rFt||ksRt|||ksdt|| |kstt|| |kst||rt||st|||kst|| |kstt| |kst|t |kst| 	t| |kst|| 	t |kst|
 rt| r,t| td d t sJt|  | dksbt|  
 stt|tt st|ttgst|t| d| dgkst|d | dkst|d |kst|d | td td tt kst|d | td ks*td S )N      r      )r   old_poly_ringr   r   idealAssertionErrorunionZsubsetproductconvertis_zeroZis_whole_ringcontainsZin_terms_of_generators)RIJST r   c/var/www/html/Darija-Ai-Train/env/lib/python3.8/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ks~t kst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   r   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   r   test_exceptions2   s    r    c                     sd  t ttt  fdd} | ttgts,t| ttgtt sBt| ttgdrTt| ttgtrft| td t td t gtt st| tt t tt tt  tt  tt t gtd rt| tt t tt tt  tt  tt t gtd st| tt t tt tt  tt  tt t gtd sDt| tt t tt tt  tt  tt t gttd  rt| tt t tt tt  tt  tt t gtd td  dt t t  st| tt t tt tt  tt  tt t gtt t st| tdt t ddt  gdsDt| td td  td td  td td  td t td t  td t  gtd st| 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  rt| tdt t  tdt  gtr4t| tdt t  tdt  gtt r`td S )	Nc                    s    j |  |S r   r   r   r   fr   r   r   r   @   s    z%test_nontriv_global.<locals>.containsr	   r         r
      )r   r   r   r   r   r   r   r   r$   r   test_nontriv_global=   s0    &<>>BVB&N
N
(r)   c                     s"  t jttttd  fdd} | ttgts0t| ttgtt sFt| ttgdrXt| ttgtrjt| td t td t gtt st| tt t tt tt  tt  tt t gtd rt| tdt t  tdt  gtst| tdt t  tdt  gtt std S )Norderc                    s    j |  |S r   r!   r"   r$   r   r   r   ^   s    z$test_nontriv_local.<locals>.containsr	   r   )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sJt| tt|   sht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std S )Nr   r   r*   r%   )	r   r   r   r   r   r   Z	intersectr   r   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<td S )Nr   )r   r   r   r   r   r   Zquotientr   r$   r   r   r   test_quotientw   s    r.   c                  C   st   ddl m}  ttt}|td t}|td td  }|||ksPt	|j|| d|td kspt	d S )Nr   )sdm_nf_buchberger_reducedr
   r%   r   )ZNF)
Zsympy.polys.distributedmodulesr/   r   r   r   r   r   r   Zreduce_elementr   )r/   r   r   er   r   r   test_reduction}   s    r1   N)__doc__Zsympy.polysr   r   Z	sympy.abcr   r   r   Zsympy.testing.pytestr   r   r    r)   r,   r-   r.   r1   r   r   r   r   <module>   s   *