a
    kº”hÌ  ã                   @   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rFJ ‚||ksRJ ‚| |¡|ksdJ ‚|| |kstJ ‚|| |ks„J ‚| |¡r’J ‚| |¡s J ‚| |¡|ks²J ‚|| |ksÂJ ‚t| |ksÒJ ‚|t |ksâJ ‚|  t¡| |ksøJ ‚||  t¡ |ksJ ‚| 	¡ rJ ‚| 
¡ r,J ‚|  td d t¡ 
¡ sJJ ‚|  ¡ |  d¡ksbJ ‚|  ¡  	¡ stJ ‚| tt ¡sˆJ ‚| ttg¡sœJ ‚| t¡| dƒ| dƒgks¼J ‚|d |  d¡ksÔJ ‚|d |ksæJ ‚|d |  td td tt ¡ksJ ‚|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   úP/var/www/auris/lib/python3.9/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sŠJ ‚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   Útest_exceptions2   s    r   c                     sd  t  ttt¡‰ ‡ fdd„} | ttgtƒs,J ‚| ttgtt ƒsBJ ‚| ttgdƒrTJ ‚| ttgtƒrfJ ‚| td t td t gtt ƒsŒJ ‚| tt t tt tt  tt  tt t gtd ƒrÈJ ‚| tt t tt tt  tt  tt t gtd ƒsJ ‚| tt t tt tt  tt  tt t gtd ƒsDJ ‚| tt t tt tt  tt  tt t gttd  ƒr†J ‚| tt t tt tt  tt  tt t gtd td  dt t t  ƒsÜJ ‚| 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ƒsDJ ‚| 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¤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 td  ƒrJ ‚| tdt t  tdt  gtƒr4J ‚| tdt t  tdt  gtt ƒr`J ‚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   Ú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ƒs0J ‚| ttgtt ƒsFJ ‚| ttgdƒrXJ ‚| ttgtƒrjJ ‚| td t td t gtt ƒsJ ‚| tt t tt tt  tt  tt t gtd ƒrÌJ ‚| tdt t  tdt  gtƒsòJ ‚| tdt t  tdt  gtt ƒsJ ‚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   Útest_nontriv_local[   s    &<&r+   c               	   C   sÖ   t  ttt¡} |  tt¡ |  td t¡¡|  td tt tt ¡ksJJ ‚|  tt¡ |  ¡ ¡ ¡ shJ ‚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ÒJ ‚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    r-   c                  C   st   ddl m}  t tt¡}| td t¡}| td td  ¡}| |¡|ksPJ ‚|j|| d| td ¡kspJ ‚d S )Nr   )Úsdm_nf_buchberger_reducedr
   r$   r   )ZNF)	Zsympy.polys.distributedmodulesr.   r   r   r   r   r   r   Zreduce_element)r.   r   r   Úer   r   r   Útest_reduction}   s    r0   N)Ú__doc__Zsympy.polysr   r   Z	sympy.abcr   r   r   Zsympy.testing.pytestr   r   r   r(   r+   r,   r-   r0   r   r   r   r   Ú<module>   s   *