U
    ZÊ¹jK+  ã                   @   sÜ   d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZmZ ddl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d„ Z"dd„ Z#dd„ Z$dd„ Z%dS )zJTests for tools and arithmetics for monomials of distributed polynomials. é    )ÚitermonomialsÚmonomial_countÚmonomial_mulÚmonomial_divÚmonomial_gcdÚmonomial_lcmÚmonomial_maxÚmonomial_minÚmonomial_dividesÚmonomial_powÚMonomial)ÚExactQuotientFailed)ÚaÚbÚcÚxÚyÚz)ÚSÚsymbols)Úraisesc               *   C   st  t tg dƒƒtjhkst‚t tg dƒƒtjhks4t‚t tg dƒƒtjhksNt‚t tg ddƒƒtjhksjt‚t tg ddƒƒtjhks†t‚t tg ddƒƒtjhks¢t‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t tg ddƒƒt ƒ ksæt‚t tg ddƒƒt ƒ k�st‚t tg ddƒƒt ƒ k�st‚ttd	d„ ƒ ttd
d„ ƒ ttdd„ ƒ t ttgdƒƒtjhk�sft‚t ttgdƒƒtjthk�s†t‚t ttgdƒƒtjttd hk�s¬t‚t ttgdƒƒtjttd td hk�sØt‚t ttt	gdƒƒtjhk�søt‚t ttt	gdƒƒtjtt	hk�st‚t ttt	gdƒƒtjtt	td t	d tt	 hk�sRt‚t ttt	gdƒƒtjtt	td td t	d t	d tt	 tt	d  t	td  h
k�s¨t‚t
ddd�\} }}t t| ||gdƒƒtjhk�sÜt‚t t| ||gdƒƒtj| ||hk�st‚t t| ||gdƒƒtj| ||| d |d |d | | | | ||  || ||  || hk�sbt‚t t| ||gdƒƒtj| ||| d |d |d | | | | ||  || ||  || | d |d |d | d | | d | || d  || d  |d |  |d | | |d  ||d  |d |  |d | | |d  ||d  | | |  | | |  ||  | || | ||  | || | | | | | | | ||  | || |  ||  | || |  h(k�sÂt‚t tt| |gdƒƒtjhk�sät‚t tt| |gdƒƒtjt| |hk�st‚t tt| |gdƒƒtjt| |t|  t| | | ||  td | d |d hk�s^t‚t tt| |gdƒƒtjt| |t|  t| | | ||  td | d |d td | d |d td |  td | t| d  || d  | d | | | |  t|d  | |d  |d |  ||  | t|  | t| |  hk�s:t‚t tg g ƒƒtjhk�sVt‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttd d„ ƒ t ttgdgƒƒtjhk�srt‚t ttgdgƒƒtjthk�s”t‚t ttgdgƒƒtjttd hk�s¼t‚t ttgdgƒƒtjttd td hk�sêt‚t ttgdgdgƒƒttd td hk�st‚t ttgdgdgƒƒtd td hk�sDt‚t ttt	gddƒƒtd td t	 tt	d  t	d hk�s‚t‚t ttt	gddƒƒtd tt	 t	d td td t	 tt	d  t	d hk�sÒt‚t ttt	gddgƒƒtjhk�söt‚t ttt	gddgƒƒtjt	hk�	st‚t ttt	gddgƒƒtjt	t	d hk�	sHt‚t ttt	gddgddgƒƒt	t	d hk�	svt‚t ttt	gddgddgƒƒt	d hk�	s¢t‚t ttt	gddgƒƒtjthk�	sÈt‚t ttt	gddgƒƒtjtt	tt	 hk�	söt‚t ttt	gddgƒƒtjtt	tt	 t	d tt	d  hk�
s4t‚t ttt	gddgddgƒƒtt	 tt	d  hk�
sjt‚t ttt	gddgddgƒƒtt	d  hk�
sšt‚t ttt	gddgƒƒtjttd hk�
sÆt‚t ttt	gddgƒƒtjtt	tt	 td td t	 hk�st‚t ttt	gddgƒƒtjt	d tt	d  ttt	 td td t	d  t	td t	 h	k�s`t‚t
ddd�\} }}t t| ||gddƒƒ||  | d | | || ||  |d |d || | | h	k�sÈt‚t t| ||gddƒƒ||d  | |d  ||  | || d  |d || | ||d  | | |  | | |d | | d | ||  | |d | d || |  || |  ||  |d | || d  || || | | | |  ||  | | |d  |d ||  | | d || | | | | | |d | d | |d |  |d |  | | | ||  h$k�s t‚t t| ||gdddgƒƒtjhk�sHt‚t t| ||gdddgƒƒd|hk�spt‚t t| ||gdddgƒƒd|hk�s˜t‚t t| ||gdddgƒƒ| dhk�sÀt‚t t| ||gdddgƒƒ|d d|hk�sît‚t t| ||gdddgƒƒd||d hk�st‚t t| ||gdddgƒƒ| d| d hk�sJt‚t t| ||gdddgƒƒd|||| | | | | | | | | hk�s’t‚t t| ||gdddgƒƒd|| d |d  || |d | | | ||d  | |d  |d  | d | | d |d  |d |d | | |d  | |d |d  | | | d | | d |d  | || d | | | |d  | |d  | | | | d |d  |d  | | |d  | d | d | |d  hk�sÈt‚t tt||gdddgƒƒtjhk�sðt‚t tt||gdddgƒƒd|hk�st‚t tt||gdddgƒƒd|hk�s@t‚t tt||gdddgƒƒtdhk�sht‚t tt||gdddgƒƒ|d d|hk�s–t‚t tt||gdddgƒƒd||d hk�sÄt‚t tt||gdddgƒƒtdtd hk�sòt‚t tt||gdddgƒƒd|||| t| tt| t| | hk�s:t‚t tt||gdddgƒƒd|td |d  || |d tt| ||d  t|d  |d  td | td |d  |d |d | t|d  | |d |d  t| td | td |d  | |td | | t|d  t|d  t| | td |d  |d  t| |d  td td | |d  hk�spt‚d S )!Nr   é   é   c                   S   s   t tg ddƒƒS )Nr   r   ©Únextr   © r   r   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/tests/test_monomials.pyÚ<lambda>   ó    z test_monomials.<locals>.<lambda>c                   S   s   t tg ddƒƒS )Nr   r   r   r   r   r   r   r      r   c                   S   s   t tg ddƒƒS )Nr   é   r   r   r   r   r   r      r   r   c                   S   s   t tg dƒƒS ©Néÿÿÿÿ©Úsetr   r   r   r   r   r   %   r   c                   S   s   t ttgdƒƒS r    ©r#   r   r   r   r   r   r   r   &   r   c                   S   s   t tttgdƒƒS r    ©r#   r   r   r   r   r   r   r   r   '   r   zi j kF)Zcommutativec                   S   s   t tg dgƒƒS )Nr   r"   r   r   r   r   r   S   r   c                   S   s   t tg dgƒƒS ©Nr   r"   r   r   r   r   r   T   r   c                   S   s   t tg dgƒƒS ©Nr   r"   r   r   r   r   r   U   r   c                   S   s   t ttgdgg ƒƒS r&   r$   r   r   r   r   r   W   r   c                   S   s   t ttgddgg ƒƒS ©Nr   r   r$   r   r   r   r   r   X   r   c                   S   s   t ttgdddgg ƒƒS ©Nr   r   r   r$   r   r   r   r   r   Y   r   c                   S   s   t ttgg dgƒƒS r&   r$   r   r   r   r   r   [   r   c                   S   s   t ttgg ddgƒƒS r(   r$   r   r   r   r   r   \   r   c                   S   s   t ttgg dddgƒƒS r)   r$   r   r   r   r   r   ]   r   c                   S   s   t tttgddgdddgƒƒS r)   r%   r   r   r   r   r   _   r   c                   S   s    t ttttgdddgddgƒƒS )Nr   r   r   r   ©r#   r   r   r   r   r   r   r   r   r   `   r   c                   S   s   t ttgdgdgƒƒS )Nr   r!   r$   r   r   r   r   r   b   r   c                   S   s   t tttgddgddgƒƒS )Nr   r   r!   r%   r   r   r   r   r   c   r   c                   S   s   t tg g dƒƒS r&   r"   r   r   r   r   r   e   r   c                   S   s   t tg g dƒƒS r'   r"   r   r   r   r   r   f   r   c                   S   s   t tg g dƒƒS ©Nr   r"   r   r   r   r   r   g   r   c                   S   s   t tttgddgddgƒƒS )Nr   r   r   r%   r   r   r   r   r   i   r   c                   S   s"   t ttttgdddgdddgƒƒS )Nr   r   r   r   r*   r   r   r   r   r   j   r   )r#   r   r   ZOneÚAssertionErrorr   ÚStopIterationÚ
ValueErrorr   r   r   )ÚiÚjÚkr   r   r   Útest_monomials   sº    &, $6<ÿ
"(Bÿ
@  
 
 
 

 
 
 

 
 
 

 
 
 
 
 

 
 
 
 
 
úÿ

"(R4  
 

 
 
 

 
 
 

 
ûÿ

 "(..,>P$&,.,&.>60,>>ÿ
8ÿ
R
 
 
   
 
 
 
  
 
 
 
 
    
  
 
 

 üÿ
((((...HB
   
   
   
 
 
    ýÿ
((((...HB
   
   
   
 
 
    ýÿr2   c                   C   s(   t ddƒdkst‚t ddƒdks$t‚d S )Nr   é   r   é
   )r   r,   r   r   r   r   Útest_monomial_count°   s    r5   c                   C   s   t ddƒdkst‚d S )N©r   é   r   ©r   r   r   ©r7   r3   r   )r   r,   r   r   r   r   Útest_monomial_mul´   s    r:   c                   C   s   t ddƒdkst‚d S )Nr6   r8   ©r   r   r   )r   r,   r   r   r   r   Útest_monomial_div·   s    r<   c                   C   s   t ddƒdkst‚d S ©Nr6   r8   )r   r,   r   r   r   r   Útest_monomial_gcdº   s    r>   c                   C   s   t ddƒdkst‚d S r=   )r   r,   r   r   r   r   Útest_monomial_lcm½   s    r?   c                   C   s   t dddƒdkst‚d S )N©r   r7   é   ©r   rA   r   ©r3   r   é	   )r3   rA   rD   )r   r,   r   r   r   r   Útest_monomial_maxÀ   s    rE   c                   C   s   t ddƒdkst‚d S )N©r   r   r   r   )r   r3   rD   )r   r,   r   r   r   r   Útest_monomial_powÃ   s    rG   c                   C   s   t dddƒdkst‚d S )Nr@   rB   rC   )r   r   r   )r	   r,   r   r   r   r   Útest_monomial_minÆ   s    rH   c                   C   s(   t ddƒdkst‚t ddƒdks$t‚d S )NrF   )r7   rA   r3   T)r   rA   r3   F)r
   r,   r   r   r   r   Útest_monomial_dividesÉ   s    rI   c                     s,  t dtttfƒ‰ t dtttfƒ} ˆ  ¡ td td  t ks@t‚|  ¡ td td  ks\t‚ˆ  ttt¡td td  t ks‚t‚|  ttt¡td td  ks¤t‚ˆ j	dks²t‚ˆ j
tttfksÆt‚| j	dksÔt‚| j
tttfksèt‚ˆ dksôt‚| dk�st‚ˆ dk�st‚| dk�st‚ˆ dkdk�s0t‚ˆ d ˆ d	   k�rPdk�sVn t‚ˆ d ˆ d
   k�rvdk�s|n t‚ˆ d ˆ d   k�rœdk�s¢n t‚| d | d	   k�rÂdk�sÈn t‚| d | d
   k�rèdk�sîn t‚| d | d   k�rdk�sn t‚ˆ d d… dk�s*t‚| d d… dk�s@t‚ˆ |  t dƒk�sVt‚ˆ |  t dƒk�slt‚ˆ d t dƒk�s‚t‚ˆ d t dƒk�s˜t‚ˆ  | ¡t dƒk�s°t‚ˆ  | ¡t dƒk�sÈt‚ˆ  d¡t dƒk�sàt‚ˆ  d¡t dƒk�søt‚ˆ d t dƒk�st‚ˆ d ˆ k�s t‚ˆ d t dƒk�s6t‚ˆ d t dƒk�sLt‚t dƒ}tdƒD ] } |ˆ |  k�srt‚|ˆ 9 }�q\tt‡ fdd„ƒ t dƒ‰tt‡fdd„ƒ tˆƒdk�s¼t‚tˆ ƒdk�sÎt‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nr6   r8   r   r7   r   r   Fr   éýÿÿÿéþÿÿÿr!   )r   r7   )r   r   r9   r;   )r   r   r   )r3   é   r   )rD   é   r   r4   c                      s   ˆ t dƒ S )N)rA   r   r   )r   r   ©Úmr   r   r     r   ztest_Monomial.<locals>.<lambda>rF   c                      s   ˆ   ¡ S )N)Úas_exprr   )Úmmr   r   r     r   zMonomial((1, 2, 3))zx**3*y**4*z**1c                      s   ˆ d S r&   r   r   rN   r   r   r   	  r   c                      s   ˆ d S r&   r   r   rN   r   r   r   
  r   c                      s   ˆ d S r    r   r   rN   r   r   r     r   c                      s
   ˆ   d¡S r+   )Úgcdr   rN   r   r   r     r   c                      s
   ˆ   d¡S r+   )Úlcmr   rN   r   r   r     r   )r   r   r   r   rP   r,   r   r   r   Z	exponentsZgensrR   rS   Úranger   r   r.   ÚstrÚNotImplementedErrorÚ	TypeError)ÚnZ_ar   )rO   rQ   r   Útest_MonomialÍ   sb     &"&&&&&&rY   N)&Ú__doc__Zsympy.polys.monomialsr   r   r   r   r   r   r   r	   r
   r   r   Zsympy.polys.polyerrorsr   Z	sympy.abcr   r   r   r   r   r   Z
sympy.corer   r   Zsympy.testing.pytestr   r2   r5   r:   r<   r>   r?   rE   rG   rH   rI   rY   r   r   r   r   Ú<module>   s"   4	  