U
    ZÊ¹jÌ  ã                   @   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s„t‚| |¡r’t‚| |¡s t‚| |¡|ks²t‚|| |ksÂt‚t| |ksÒt‚|t |ksât‚|  	t¡| |ksøt‚||  	t¡ |k�st‚| 
¡ �rt‚| ¡ �r,t‚|  td d t¡ ¡ �sJt‚|  ¡ |  d¡k�sbt‚|  ¡  
¡ �stt‚| tt ¡�sˆt‚| ttg¡�sœt‚| t¡| dƒ| dƒgk�s¼t‚|d |  d¡k�sÔt‚|d |k�sæt‚|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   úa/var/www/html/bwave/python/venv/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sŠt‚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 ƒsŒt‚| tt t tt tt  tt  tt t gtd ƒrÈt‚| 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  ƒ�r†t‚| tt t tt tt  tt  tt t gtd td  dt t t  ƒ�sÜt‚| 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 ƒ�s¤t‚| 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 ƒs�t‚| tt t tt tt  tt  tt t gtd ƒrÌt‚| tdt t  tdt  gtƒsòt‚| 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sÒt‚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   *