U
    ZÊ¹jVT  ã                   @   sF  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mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZDmEZE ddlFmGZG ddlHmIZI ddlJmKZK ddlLmMZM d	d
„ eBƒ D ƒ\ZNZOZPZQZRZSZTdd„ ZUdd„ ZVdd„ ZWdd„ ZXdd„ ZYdd„ ZZdd„ Z[dd„ Z\dd„ Z]dd„ Z^dd „ Z_d!d"„ Z`d#d$„ Zad%d&„ Zbd'd(„ Zcd)d*„ Zdd+d,„ Zed-d.„ Zfd/d0„ Zgd1d2„ Zhd3d4„ Zid5d6„ Zjd7d8„ Zkd9d:„ Zld;d<„ Zmd=d>„ Znd?d@„ ZodAdB„ ZpdCdD„ ZqdEdF„ ZrdGdH„ ZsdIdJ„ ZtdKdL„ ZudMdN„ ZvdOdP„ ZwdQdR„ ZxdSdT„ ZydUdV„ ZzdWdX„ Z{dYdZ„ Z|d[d\„ Z}d]d^„ Z~d_d`„ Zdadb„ Z€dcdd„ Z�dedf„ Z‚dgdh„ Zƒdidj„ Z„dkdl„ Z…dmdn„ Z†dodp„ Z‡dqdr„ Zˆdsdt„ Z‰dudv„ ZŠdwdx„ Z‹dydz„ ZŒd{d|„ Z�d}d~„ ZŽdS )€z4Tests for dense recursive polynomials' basic tools. é    )?ÚninfÚdup_LCÚdmp_LCÚdup_TCÚdmp_TCÚdmp_ground_LCÚdmp_ground_TCÚdmp_true_LTÚ
dup_degreeÚ
dmp_degreeÚdmp_degree_inÚdmp_degree_listÚ	dup_stripÚ	dmp_stripÚdmp_validateÚdup_reverseÚdup_copyÚdmp_copyÚ
dup_normalÚ
dmp_normalÚdup_convertÚdmp_convertÚdup_from_sympyÚdmp_from_sympyÚdup_nthÚdmp_nthÚdmp_ground_nthÚ
dmp_zero_pÚdmp_zeroÚ	dmp_one_pÚdmp_oneÚdmp_ground_pÚ
dmp_groundÚdmp_negative_pÚdmp_positive_pÚ	dmp_zerosÚdmp_groundsÚdup_from_dictÚdup_from_raw_dictÚdup_to_dictÚdup_to_raw_dictÚdmp_from_dictÚdmp_to_dictÚdmp_swapÚdmp_permuteÚdmp_nestÚ	dmp_raiseÚdup_deflateÚdmp_deflateÚdup_multi_deflateÚdmp_multi_deflateÚdup_inflateÚdmp_inflateÚdmp_excludeÚdmp_includeÚ
dmp_injectÚ	dmp_ejectÚdup_terms_gcdÚdmp_terms_gcdÚdmp_list_termsÚdmp_apply_pairsÚ	dup_sliceÚ
dup_random)Úf_polys)ÚZZÚQQ)Úring)ÚS)Úraises)Úooc                 C   s   g | ]}|  ¡ ‘qS © )Zto_dense)Ú.0ÚfrH   rH   ú`/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/tests/test_densebasic.pyÚ
<listcomp>1   s     rL   c                   C   s0   t g tƒdkst‚t ddddgtƒdks,t‚d S ©Nr   é   é   é   é   )r   rB   ÚAssertionErrorrH   rH   rH   rK   Útest_dup_LC3   s    rS   c                   C   s0   t g tƒdkst‚t ddddgtƒdks,t‚d S rM   )r   rB   rR   rH   rH   rH   rK   Útest_dup_TC8   s    rT   c                   C   s‚   t g gtƒg kst‚t dddgdggtƒdddgks8t‚t g ggtƒg gksPt‚t dgddggdgggtƒdgddggks~t‚d S ©NrN   rO   rP   rQ   )r   rB   rR   rH   rH   rH   rK   Útest_dmp_LC=   s    $rV   c                   C   sx   t g gtƒg kst‚t dddgdggtƒdgks4t‚t g ggtƒg gksLt‚t dgddggdgggtƒdggkstt‚d S rU   )r   rB   rR   rH   rH   rH   rK   Útest_dmp_TCD   s     rW   c                   C   sx   t g gdtƒdkst‚t dddgdggdtƒdks6t‚t g ggdtƒdksNt‚t dgddggdgggdtƒdkstt‚d S ©Né   r   rN   rO   rP   rQ   )r   rB   rR   rH   rH   rH   rK   Útest_dmp_ground_LCK   s     rZ   c                   C   sx   t g gdtƒdkst‚t dddgdggdtƒdks6t‚t g ggdtƒdksNt‚t dgddggdgggdtƒdkstt‚d S rX   )r   rB   rR   rH   rH   rH   rK   Útest_dmp_ground_TCR   s     r[   c                   C   s‚   t g gdtƒdkst‚t dggdtƒdks.t‚t ddggdtƒdksHt‚t dgg gdtƒdksbt‚t ddgg gdtƒdks~t‚d S )	NrY   )©r   r   r   é   )r\   r]   r   )©r   rY   rY   )©rY   r   rY   )©rY   rY   rY   )r	   rB   rR   rH   rH   rH   rK   Útest_dmp_true_LTY   s
    ra   c                   C   sd   t tdƒkst‚tg ƒt ks t‚tdgƒdks2t‚tddgƒdksFt‚tdddddgƒdks`t‚d S )Nz-infrY   r   rP   )r   ÚfloatrR   r
   rH   rH   rH   rK   Útest_dup_degreeb   s
    rc   c                   C   s^   t g gdƒtkst‚t g ggdƒtks*t‚t dggdƒdks@t‚t dgdggdƒdksZt‚d S ©NrY   rN   r   )r   r   rR   rH   rH   rH   rK   Útest_dmp_degreej   s    re   c                   C   s8  t g ggddƒtkst‚t g ggddƒtks0t‚t g ggddƒtksHt‚t dgggddƒdksbt‚t dgggddƒdks|t‚t dgggddƒdks–t‚t tddƒdksªt‚t tddƒdks¾t‚t tddƒdksÒt‚t tddƒdksæt‚t tddƒdksút‚t tddƒdk�st‚t td	d	ƒd	k�s&t‚ttd
d„ ƒ d S )Nr   rN   rY   é	   é   é   rP   é   rO   c                   S   s   t dggddƒS )NrY   éûÿÿÿ)r   rH   rH   rH   rK   Ú<lambda>„   ó    z$test_dmp_degree_in.<locals>.<lambda>)r   r   rR   Úf_4Úf_6rF   Ú
IndexErrorrH   rH   rH   rK   Útest_dmp_degree_inr   s    rp   c                   C   sÄ   t g gggdƒt t t t fks(t‚t dggggdƒdksBt‚t tdƒdksTt‚t tdƒdksft‚t tdƒdksxt‚t tdƒdksŠt‚t tdƒd	ksœt‚t tdƒdks®t‚t t	dƒd
ksÀt‚d S )NrO   rY   )r   r   r   r   rN   )rN   rN   rN   )rO   rO   rO   )rQ   rO   rO   )rQ   rP   r]   )rf   rg   rh   )rP   rP   ri   rO   )
r   rG   rR   Úf_0Úf_1Úf_2Úf_3rm   Úf_5rn   rH   rH   rH   rK   Útest_dmp_degree_list‡   s    (rv   c                   C   sÜ   t g ƒg kst‚t dgƒg ks"t‚t dddgƒg ks8t‚t dgƒdgksLt‚t ddgƒdgksbt‚t ddddgƒdgks|t‚t dddgƒdddgks˜t‚t ddddgƒdddgks¶t‚t ddddddgƒdddgksØt‚d S ©Nr   rY   rN   )r   rR   rH   rH   rH   rK   Útest_dup_strip”   s    rx   c                   C   s.  t dddgdƒddgkst‚t g gdƒg gks2t‚t g g gdƒg gksJt‚t g g g gdƒg gksdt‚t g ggdƒg ggks~t‚t g gg ggdƒg ggksœt‚t g gg gg ggdƒg ggks¾t‚t dgggdƒdgggksÜt‚t g gdgggdƒdgggksþt‚t g gdggg ggdƒdggg ggk�s*t‚d S rw   )r   rR   rH   rH   rH   rK   Útest_dmp_strip¢   s    ""ry   c                   C   s�   t g ƒg dfkst‚t dddddgƒddgdfks6t‚t g ggƒg ggdfksRt‚t dgg dgdgdggƒdgg gdfks~t‚ttdd„ ƒ d S )Nr   rY   rN   c                   S   s   t dgddgdgdggƒS ©Nr   rY   )r   rH   rH   rH   rK   rk   ¹   rl   z#test_dmp_validate.<locals>.<lambda>)r   rR   rF   Ú
ValueErrorrH   rH   rH   rK   Útest_dmp_validate²   s
    ",r|   c                   C   sB   t ddddgƒddddgks t‚t ddddgƒdddgks>t‚d S )NrY   rN   r   rO   )r   rR   rH   rH   rH   rK   Útest_dup_reverse¼   s     r}   c                  C   sH   t dƒt dƒt dƒg} t| ƒ}t dƒt dƒ |d< |d< | |ksDt‚d S )NrY   r   rN   r]   )rB   r   rR   ©rJ   ÚgrH   rH   rK   Útest_dup_copyÁ   s    r€   c                  C   sV   t dƒgt dƒt dƒgg} t| dƒ}t dƒt dƒ |d d< |d d< | |ksRt‚d S )NrY   rN   r   r]   )rB   r   rR   r~   rH   rH   rK   Útest_dmp_copyÊ   s    
"r�   c                   C   sB   t dddddddgtƒtdƒtdƒtdƒtdƒtdƒgks>t‚d S ©Nr   rN   rY   é   )r   rB   rR   rH   rH   rH   rK   Útest_dup_normalÓ   s     ÿr„   c                   C   sJ   t dgg dddgdgdgg gdtƒtdƒtdƒgg tdƒgg gksFt‚d S r‚   )r   rB   rR   rH   rH   rH   rK   Útest_dmp_normalØ   s    "ÿr…   c                  C   sZ   t d t  } }| dƒ| dƒ| dƒ| dƒg}t|| |ƒt dƒt dƒt dƒt dƒgksVt‚d S )NÚxrY   rN   r   rO   )rB   r   rR   ©ZK0ZK1rJ   rH   rH   rK   Útest_dup_convertÝ   s
    
ÿrˆ   c                  C   s`   t d t  } }| dƒg| dƒgg | dƒgg}t|d| |ƒt dƒgt dƒgg t dƒggks\t‚d S )Nr†   rY   rN   rO   )rB   r   rR   r‡   rH   rH   rK   Útest_dmp_convertæ   s
    ÿr‰   c                   C   sX   t tjtdƒgtƒtdƒtdƒgks(t‚t tjtdƒgtƒtddƒtddƒgksTt‚d S )NrN   rY   rO   )r   rE   ÚOnerB   rR   ÚHalfrC   rH   rH   rH   rK   Útest_dup_from_sympyï   s    ÿÿrŒ   c                   C   sl   t tjtdƒgtjggdtƒtdƒtdƒgg gks6t‚t tjtdƒggdtƒtddƒtddƒggksht‚d S )NrN   rY   )r   rE   rŠ   ZZerorB   rR   r‹   rC   rH   rH   rH   rK   Útest_dmp_from_sympyö   s    ÿÿr�   c                   C   sz   t dddgdtƒdkst‚t dddgdtƒdks4t‚t dddgdtƒdksNt‚t dddgdtƒdksht‚ttdd„ ƒ d S )NrY   rN   rO   r   rf   c                   S   s   t dddgdtƒS )NrO   rP   rQ   éÿÿÿÿ)r   rB   rH   rH   rH   rK   rk     rl   ztest_dup_nth.<locals>.<lambda>)r   rB   rR   rF   ro   rH   rH   rH   rK   Útest_dup_nthý   s
    r�   c                   C   s    t dgdgdggddtƒdgks$t‚t dgdgdggddtƒdgksHt‚t dgdgdggddtƒdgkslt‚t dgdgdggddtƒg ksŽt‚ttdd„ ƒ d S )NrY   rN   rO   r   rf   c                   S   s   t dgdgdggddtƒS )NrO   rP   rQ   rŽ   rY   )r   rB   rH   rH   rH   rK   rk     rl   ztest_dmp_nth.<locals>.<lambda>)r   rB   rR   rF   ro   rH   rH   rH   rK   Útest_dmp_nth  s
    $$$"r�   c                   C   sÔ   t g gddtƒdkst‚t dgdgdggddtƒdks:t‚t dgdgdggddtƒdks\t‚t dgdgdggddtƒdks~t‚t dgdgdggddtƒdks t‚t dgdgdggd	dtƒdksÂt‚ttd
d„ ƒ d S )Nr\   rY   r   rN   rO   r_   ©rN   r   ©rN   rY   )rO   r   c                   S   s   t dgdgdggddtƒS )NrO   rP   rQ   )rN   rŽ   rY   )r   rB   rH   rH   rH   rK   rk     rl   z%test_dmp_ground_nth.<locals>.<lambda>)r   rB   rR   rF   ro   rH   rH   rH   rK   Útest_dmp_ground_nth  s    """""r“   c                   C   sX   t g dƒdkst‚t g gdƒdks&t‚t g ggdƒdks<t‚t dgggdƒdksTt‚d S )Nr   TrY   rN   F)r   rR   rH   rH   rH   rK   Útest_dmp_zero_p  s    r”   c                   C   s(   t dƒg kst‚t dƒg ggks$t‚d S )Nr   rN   )r   rR   rH   rH   rH   rK   Útest_dmp_zero%  s    r•   c                   C   sf   t dgdtƒdkst‚t dggdtƒdks.t‚t dgggdtƒdksHt‚t dgggdtƒdksbt‚d S )NrY   r   TrN   rg   F)r   rB   rR   rH   rH   rH   rK   Útest_dmp_one_p*  s    r–   c                   C   s8   t dtƒtdƒgkst‚t dtƒtdƒgggks4t‚d S rw   )r    rB   rR   rH   rH   rH   rK   Útest_dmp_one1  s    r—   c                   C   sB  t g ddƒdkst‚t g gddƒdks*t‚t g gddƒdks@t‚t tdƒggddƒdks\t‚t tdƒgggddƒdkszt‚t tdƒgggddƒdks˜t‚t tdƒgg ggddƒdks¸t‚t g d dƒdksÌt‚t g gd dƒdksât‚t tdƒgd dƒdksüt‚t tdƒgggd dƒdk�st‚t tdƒgg ggd dƒdk�s>t‚d S )Nr   TrY   FrN   rO   )r!   rR   rB   rH   rH   rH   rK   Útest_dmp_ground_p6  s      r˜   c                   C   st   t tdƒdƒg ggkst‚t tdƒdƒtdƒks4t‚t tdƒdƒtdƒgksPt‚t tdƒdƒtdƒgggkspt‚d S )Nr   rN   r]   rŽ   )r"   rB   rR   rH   rH   rH   rK   Útest_dmp_groundJ  s    r™   c                   C   s®   t ddtƒg g g g gkst‚t ddtƒg ks0t‚t ddtƒg gggksJt‚t ddtƒg ggg gggksjt‚t ddtƒg ggg ggg gggks�t‚t ddtƒdddgksªt‚d S )NrP   r   rN   rY   rO   rŽ   )r%   rB   rR   rH   rH   rH   rK   Útest_dmp_zerosR  s     &rš   c                   C   s²   t tdƒddƒg kst‚t tdƒddƒdggggks8t‚t tdƒddƒdgggdggggks`t‚t tdƒddƒdgggdgggdggggks�t‚t tdƒddƒdddgks®t‚d S )Nr]   r   rN   rY   rO   rŽ   )r&   rB   rR   rH   rH   rH   rK   Útest_dmp_grounds]  s
     (0r›   c                   C   sX   t g ggdtƒdkst‚t dgdgggdtƒdks6t‚t dgdgggdtƒdksTt‚d S )NrN   FrY   rŽ   T)r#   rB   rR   rH   rH   rH   rK   Útest_dmp_negative_pg  s    rœ   c                   C   sX   t g ggdtƒdkst‚t dgdgggdtƒdks6t‚t dgdgggdtƒdksTt‚d S )NrN   FrY   TrŽ   )r$   rB   rR   rH   rH   rH   rK   Útest_dmp_positive_pm  s    r�   c               	   C   s²  t i tƒg kst‚ti tƒg ks$t‚tg ƒi ks4t‚tg ƒi ksDt‚tg tdd�dtdƒiksbt‚tg tdd�dtdƒiks€t‚dddddddddg	} ddddœ}dddd	œ}t |tƒ| ksÀt‚t|tƒ| ksÒt‚t| ƒ|ksât‚t| ƒ|ksòt‚td
tƒ\}}}| ¡ }|dƒ|dƒ|dƒ|dƒ|dƒ|dƒg} |dƒ|dƒ|dƒdœ}|dƒ|dƒ|dƒdœ}t ||ƒ| k�svt‚t||ƒ| k�sŠt‚t| ƒ|k�sœt‚t| ƒ|k�s®t‚d S )NT©Úzeror   ©r   rO   rN   rh   )rh   rQ   r   ))rh   ©rQ   r    úx,y)rQ   rO   r   )r¡   ©rO   r    )r(   rB   rR   r'   r*   r)   rD   Ú	to_domain)rJ   r   ÚhÚRr†   ÚyÚKrH   rH   rK   Útest_dup_from_to_dicts  s,    (r©   c               	   C   s¾   t i dtƒg gkst‚tg gdƒi ks*t‚tg dtdd�dtdƒiksJt‚tg gdtdd�dtdƒikslt‚dgg g dgg g g g d	gg	} ddd	d
œ}t |dtƒ| ks¨t‚t| dƒ|ksºt‚d S )NrY   r   Trž   r    r\   rO   rN   rh   ))rh   r   )rQ   r   r\   )r+   rB   rR   r,   r~   rH   rH   rK   Útest_dmp_from_to_dict•  s     "rª   c                     s¤   t dddgg ddgg dggdtƒ‰ t dddddgdddgdggdtƒ} tˆ dddtƒˆ ks^t‚tˆ dddtƒ| ksvt‚t| dddtƒˆ ksŽt‚tt‡ fdd„ƒ d S )NrY   r   c                      s   t ˆ dddtƒS )NrŽ   iùÿÿÿrY   )r-   rB   rH   ©rJ   rH   rK   rk   ¬  rl   ztest_dmp_swap.<locals>.<lambda>)r   rB   r-   rR   rF   ro   )r   rH   r«   rK   Útest_dmp_swap£  s    "$r¬   c                  C   s²   t dddgg ddgg dggdtƒ} t dddddgdddgdggdtƒ}t| ddgdtƒ| ks`t‚t|ddgdtƒ|kszt‚t| ddgdtƒ|ks”t‚t|ddgdtƒ| ks®t‚d S )NrY   r   )r   rB   r.   rR   r~   rH   rH   rK   Útest_dmp_permute¯  s    "$r­   c                   C   s|   t tdƒdtƒdgggkst‚t dggdtƒdggks:t‚t dggdtƒdgggksXt‚t dggdtƒdggggksxt‚d S rd   )r/   rB   rR   rH   rH   rH   rK   Útest_dmp_nestº  s    r®   c                   C   sŠ   t g ddtƒg ggkst‚t dggddtƒdggks8t‚t dddgg ddggddtƒdggdggdgggg ggdggdggggks†t‚d S )NrN   r   rY   rO   )r0   rB   rR   rH   rH   rH   rK   Útest_dmp_raiseÂ  s
    *ÿr¯   c                
   C   sØ  t g tƒdg fkst‚t dgtƒddgfks0t‚t dddgtƒddddgfksRt‚t dddddgtƒddddgfksxt‚t tdddœtƒtƒdddddddddgfksªt‚t tdddœtƒtƒdddgfksÐt‚t tdddœtƒtƒdddddddddgfk�st‚t tddd	œtƒtƒdddddddddgfk�s8t‚t tddd
œtƒtƒddddgfk�sbt‚t tdditƒtƒdddgfk�sˆt‚t tdditƒtƒdddgfk�s®t‚t tdditƒtƒdddgfk�sÔt‚d S )NrY   rN   rO   r   )r]   rY   )r]   r   r]   )r]   rO   )r]   rP   )rh   rP   rP   rh   )r1   rB   rR   r(   rH   rH   rH   rK   Útest_dup_deflateÊ  s8    "&ÿ
ÿÿ
ÿ
ÿ

ÿ

ÿ

ÿr°   c                  C   s„   t g gdtƒdg gfkst‚t dggdtƒddggfks<t‚dddgg ddgg dgg} t | dtƒddddgddgdggfks€t‚d S )NrY   r`   rN   r   r’   )r2   rB   rR   r«   rH   rH   rK   Útest_dmp_deflateä  s     r±   c                   C   s  t dgftƒddgffkst‚t g g ftƒdg g ffks<t‚t dddgftƒddddgffksbt‚t dddddgftƒddddgffksŒt‚t dddddgdddgftƒddddgddgffksÄt‚t dddddgdddgftƒddddddgdddgffk�st‚d S )NrN   rY   rO   r   )r3   rB   rR   rH   rH   rH   rK   Útest_dup_multi_deflateí  s    &*ÿÿr²   c                  C   sh  t g gfdtƒdg gffks t‚t g gg gfdtƒdg gg gffksHt‚t dggg gfdtƒddggg gffkstt‚t dggdggfdtƒddggdggffks¤t‚t dggddggfdtƒddggddggffksØt‚t ddggddggfdtƒdddggddggffk�st‚t dggdddggfdtƒddggddggffk�sJt‚t dddggdddggfdtƒdddggddggffk�sˆt‚t dddgdddddgfdtƒdddgdddgffk�sÄt‚dddgg ddgg dgg} ddddgg dgg}t | fdtƒddddgddgdggffk�s"t‚t | |fdtƒddddgddgdggddddgdggffk�sdt‚d S )	NrY   r`   rN   r   ©rY   rN   rP   ©rN   r’   )r4   rB   rR   r~   rH   rH   rK   Útest_dmp_multi_deflateú  sZ    
ÿÿÿÿÿÿ
  ÿÿ
  ÿÿ
ÿ
ÿ
ÿÿrµ   c                
   C   s¾   t g dtƒg kst‚t dddgdtƒdddgks4t‚t dddgdtƒdddddgksXt‚t dddgdtƒdddddddgks€t‚t dddgdtƒdddddddddg	ks¬t‚ttdd„ ƒ d S )	Né   rY   rN   rO   r   rP   c                   S   s   t dddgdtƒS ©NrY   rN   rO   r   )r5   rB   rH   rH   rH   rK   rk   %  rl   z"test_dup_inflate.<locals>.<lambda>)r5   rB   rR   rF   ro   rH   rH   rH   rK   Útest_dup_inflate  s     $(,r¸   c                   C   s  t dgddtƒdgkst‚t g gddtƒg gks4t‚t dggddtƒdggksRt‚t ddggddtƒddggkstt‚t ddggddtƒdddggks˜t‚t ddggddtƒddddggks¾t‚t dddgdgddggd	dtƒdddgg dgg ddggksüt‚ttd
d„ ƒ d S )NrY   r£   r   )rO   r]   rN   r³   r`   )rY   rO   r’   c                   S   s   t g gddtƒS )N)éýÿÿÿr]   rY   )r6   rB   rH   rH   rH   rK   rk   5  rl   z"test_dmp_inflate.<locals>.<lambda>)r6   rB   rR   rF   ro   rH   rH   rH   rK   Útest_dmp_inflate(  s    "$&ÿrº   c                   C   s`  t g ggdtƒg g ggdfks"t‚t dgggdtƒg dgggdfksHt‚t dddgdtƒg dddgdfksnt‚t dgddggdtƒg dgddggdfksœt‚t dddggdtƒdgdddgdfksÆt‚t dgdgdggdtƒdgdddgdfksôt‚t dddgggdtƒddgdddgdfk�s$t‚t dggdggdgggdtƒddgdddgdfk�s\t‚d S )NrN   r]   rY   rO   r   )r7   rB   rR   rH   rH   rH   rK   Útest_dmp_exclude8  s    "&&.*.0r»   c                   C   sÒ   t dddgg dtƒdddgks"t‚t dddgdgdtƒdddggksHt‚t dddgdgdtƒdgdgdggksrt‚t dddgddgdtƒdddgggksœt‚t dddgddgdtƒdggdggdgggksÎt‚d S r·   )r8   rB   rR   rH   rH   rH   rK   Útest_dmp_includeF  s
    "&**r¼   c                  C   sr  t dtƒ\} }}|  ¡ }tg d|ƒg ggdfks4t‚tg gd|ƒg gggdfksTt‚t| dƒgd|ƒdgggdfksxt‚t| dƒggd|ƒdggggdfks t‚t| dƒd| d|  d gd|ƒdggdgddgggdfksât‚d|d  d| |  d|d   d| | dƒ||d  d	 g}dgddgdddggdgg gg gdddgd	ggg}t|d|ƒ|dfk�snt‚d S )
Nr¢   r   rN   rY   rO   rP   r]   rQ   rƒ   )rD   rB   r¤   r9   rR   ©r¦   r†   r§   r¨   rJ   r   rH   rH   rK   Útest_dmp_injectP  s     $(B@2r¾   c                  C   sZ  t dtƒ\} }}|  ¡ }tg ggd|ƒg ks0t‚tg gggd|ƒg gksLt‚tdgggd|ƒ| dƒgkslt‚tdggggd|ƒ| dƒggks�t‚tdggdgddgggd|ƒ| dƒd| d|  d gksÎt‚d|d  d| |  d|d   d| | dƒ||d  d	 g}dgddgdddggdgg gg gdddgd	ggg}t|d|ƒ|k�sVt‚d S )
Nr¢   rN   rO   rY   rP   r]   rQ   r   rƒ   )rD   rB   r¤   r:   rR   r½   rH   rH   rK   Útest_dmp_ejectb  s     $>@2r¿   c                   C   s`   t g tƒdg fkst‚t dddgtƒddddgfks8t‚t ddddgtƒddddgfks\t‚d S rz   )r;   rB   rR   rH   rH   rH   rK   Útest_dup_terms_gcdt  s    "rÀ   c                   C   sØ   t g gdtƒdg gfkst‚t ddddgdtƒddddgfksBt‚t dgg dgg gdtƒddgg dggfkspt‚t ddgg dggdtƒdddgg dggfks t‚t ddgdddgg g gdtƒddgddggfksÔt‚d S )NrY   r\   r   ©rY   r_   r’   )r<   rB   rR   rH   rH   rH   rK   Útest_dmp_terms_gcdz  s"    &.  ÿÿ  ÿÿrÂ   c                  C   s<  t g ggdtƒdgkst‚t dgggdtƒdgks6t‚t dddddgdtƒd	d
dddgks^t‚t dgddgdddggdtƒdddddgksŽt‚ddddgdddgg g} t | dtdd�ddgksÂt‚t | dtdd�ddgksÞt‚ddddgddddddgg g} t | dtdd�ddgk�st‚t | dtdd�ddgk�s8t‚d S )NrN   )©r   r   r   r   rY   )rÃ   rY   rP   rO   rQ   r   ))rP   rY   )r£   rN   )r´   rP   )rÁ   rO   )r    rQ   )r‘   rY   )r`   rN   )r_   rP   ))r   rN   rO   )r^   rQ   Úlex)Úorder))rN   rO   rN   )r³   rY   Zgrlex))rY   rQ   rY   )r=   rB   rR   r«   rH   rH   rK   Útest_dmp_list_terms†  s8    ÿÿ   ÿÿ   ÿÿrÆ   c                  C   s.  dd„ } t dddgdddg| g d	tƒdd
dgks4t‚t ddgdddg| g d	tƒd
dgks\t‚t dddgddg| g d	tƒd
dgks„t‚t ddgdggddgdgg| g dtƒdd
gdggks¼t‚t ddgdggdgddgg| g dtƒdgdggksòt‚t dgddggddgdgg| g dtƒdgdggk�s*t‚d S )Nc                 S   s   | | S )NrH   )ÚaÚbrH   rH   rK   rk   ž  rl   z&test_dmp_apply_pairs.<locals>.<lambda>rY   rN   rO   rP   rQ   ri   r   é
   é   rh   )r>   rB   rR   )r¥   rH   rH   rK   Útest_dmp_apply_pairs�  sD    ,((     ÿÿ     ÿ
ÿ     ÿ
ÿrË   c                  C   sŠ  ddddg} t | ddtƒg ks"t‚t | ddtƒdgks:t‚t | ddtƒddgksTt‚t | ddtƒdddgkspt‚t | ddtƒddddgksŽt‚t | ddtƒ| ks¤t‚t | ddtƒ| ksºt‚t | ddtƒg ksÐt‚t | ddtƒg ksæt‚t | ddtƒddgk�st‚t | ddtƒdddgk�s t‚t | ddtƒddddgk�s@t‚t ddgddtƒddgk�s`t‚ddddg}t |ddtƒdgk�s†t‚d S )NrY   rN   rO   rP   r   rf   )r?   rB   rR   r~   rH   rH   rK   Útest_dup_slice®  s       rÌ   c                  C   sÔ   t dddtƒ} t| ƒdkst‚tdd„ | D ƒƒs4t‚t dddtƒ} t| ƒdksRt‚td	d„ | D ƒƒsht‚t d
ddtƒ} t| ƒd
ks†t‚tdd„ | D ƒƒsœt‚t dddtƒ} t| ƒdksºt‚tdd„ | D ƒƒsÐt‚d S )Nr   éöÿÿÿrÉ   c                 s   s&   | ]}d |  kodkn  V  qdS )rÍ   rÉ   NrH   ©rI   ÚcrH   rH   rK   Ú	<genexpr>Ë  s     z"test_dup_random.<locals>.<genexpr>rY   éìÿÿÿé   c                 s   s&   | ]}d |  kodkn  V  qdS )rÑ   rÒ   NrH   rÎ   rH   rH   rK   rÐ   Ð  s     rN   éâÿÿÿé   c                 s   s&   | ]}d |  kodkn  V  qdS )rÓ   rÔ   NrH   rÎ   rH   rH   rK   rÐ   Õ  s     rO   éØÿÿÿé(   c                 s   s&   | ]}d |  kodkn  V  qdS )rÕ   rÖ   NrH   rÎ   rH   rH   rK   rÐ   Ú  s     )r@   rB   r
   rR   Úallr«   rH   rH   rK   Útest_dup_randomÇ  s    rØ   N)�Ú__doc__Zsympy.polys.densebasicr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   Zsympy.polys.specialpolysrA   Zsympy.polys.domainsrB   rC   Zsympy.polys.ringsrD   Zsympy.core.singletonrE   Zsympy.testing.pytestrF   Zsympy.core.numbersrG   rq   rr   rs   rt   rm   ru   rn   rS   rT   rV   rW   rZ   r[   ra   rc   re   rp   rv   rx   ry   r|   r}   r€   r�   r„   r…   rˆ   r‰   rŒ   r�   r�   r�   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   r©   rª   r¬   r­   r®   r¯   r°   r±   r²   rµ   r¸   rº   r»   r¼   r¾   r¿   rÀ   rÂ   rÆ   rË   rÌ   rØ   rH   rH   rH   rK   Ú<module>   s†   ÿ %	
				


"	#
