o
    à8Va×  ã                   @   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mZmZmZmZmZmZmZ ddlmZmZmZ ddlmZ ddlmZmZ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d„ Z)dd„ Z*d d!„ Z+d"d#„ Z,d$d%„ Z-d&d'„ Z.d(d)„ Z/d*d+„ Z0d,d-„ Z1d.S )/z&Tests for sparse distributed modules. é    )Úsdm_monomial_mulÚsdm_monomial_degÚsdm_monomial_dividesÚsdm_addÚsdm_LMÚsdm_LTÚsdm_mul_termÚsdm_zeroÚsdm_degÚsdm_LCÚsdm_from_dictÚ	sdm_spolyÚ	sdm_ecartÚsdm_nf_moraÚsdm_groebnerÚsdm_from_vectorÚsdm_to_vectorÚsdm_monomial_lcm)ÚlexÚgrlexÚInverseOrder)ÚQQ©ÚxÚyÚzc                   C   ó   t ddƒdks	J ‚d S )N©é   r   r   )r   é   ©r   é   r   )r   © r"   r"   úK/usr/lib/python3/dist-packages/sympy/polys/tests/test_distributedmodules.pyÚtest_sdm_monomial_mul   ó   r$   c                   C   s   t dƒdksJ ‚d S )N©é   r!   r   r   )r   r"   r"   r"   r#   Útest_sdm_monomial_deg   s   r(   c                   C   r   )Nr    )r   r'   r   )r   r'   r   )r   r"   r"   r"   r#   Útest_sdm_monomial_lcm   r%   r)   c                   C   sp   t ddƒdu s	J ‚t ddƒdu sJ ‚t ddƒdu sJ ‚t ddƒdu s$J ‚t ddƒdu s-J ‚t d	d
ƒdu s6J ‚d S )N©r   r   r   T©r   r!   r   )r'   r   r   r&   ©r!   r   r   Fr   )r'   r   r!   )r'   r   r   )r   r"   r"   r"   r#   Útest_sdm_monomial_divides   s   r-   c                   C   s$   t dtdƒfgtƒtdƒksJ ‚d S )Nr    r'   )r   r   r"   r"   r"   r#   Útest_sdm_LC'   s   $r.   c                  C   sl   t dƒt dƒt dƒt dƒt dƒdœ} t| tƒdt dƒfdt dƒfdt dƒfdt dƒfdt dƒfgks4J ‚d S )Nr   ©©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   )r   r   r   ©Zdicr"   r"   r#   Útest_sdm_from_dict+   s   ÿÿÿr6   c                   C   sÞ   t dtdƒfgdtdƒfgttƒdtdƒfdtdƒfgksJ ‚t dtdƒfgdtdƒfgttƒg ks4J ‚t dtdƒfgdtdƒfgttƒdtdƒfgksNJ ‚t dtdƒfgd	tdƒfgttƒd	tdƒfdtdƒfgksmJ ‚d S )
N)r   r   r   r   r,   éÿÿÿÿr*   r!   r   ©r   r   r   r   )r   r   r   r"   r"   r"   r#   Útest_sdm_add5   s    ÿ* ÿ ÿr9   c                  C   s2   t dƒt dƒt dƒdœ} tt| tƒƒdksJ ‚d S )Nr   ©r    )é   r   r   ©r;   r   r   r<   )r   r   r   r   r5   r"   r"   r#   Útest_sdm_LM?   s   r=   c                  C   s:   t dƒt dƒt dƒdœ} tt| tƒƒdt dƒfksJ ‚d S )Nr   r!   r   r:   r<   )r   r   r   r   r5   r"   r"   r#   Útest_sdm_LTD   s   "r>   c                  C   sÆ   t dtdƒfgdtdƒfttƒg ksJ ‚t g dtdƒfttƒg ks#J ‚t dtdƒfgdtdƒfttƒdtdƒfgks<J ‚dtdƒfdtd	ƒfg} t | d
tdƒfttƒdtdƒfdtdƒfgksaJ ‚d S )Nr*   r   )r   r   r   ©r   r   r   )r!   r   r   r;   r   )r   r   r!   )r!   r   r!   é   r+   é   )r   r   r   )Úfr"   r"   r#   Útest_sdm_mul_termI   s   (ÿÿrC   c                   C   s   t ƒ g ksJ ‚d S )N)r	   r"   r"   r"   r#   Útest_sdm_zeroS   s   rD   c                   C   s   t g d¢ƒdks
J ‚d S )N)©r    r   ))é
   r   r   r   ))r!   r   r;   r;   é   )r
   r"   r"   r"   r#   Útest_sdm_degW   s   rH   c                  C   sn   dt dƒfdt dƒfg} dt dƒfg}dt dƒfg}t| |tt ƒg ks%J ‚t| |tt ƒdt dƒfgks5J ‚d S )N)r!   r   r   r   r8   )r!   r   r   r    r+   )r   r   r   )rB   ÚgÚhr"   r"   r#   Útest_sdm_spoly[   s
   $rK   c                   C   s,   t ddgƒdks
J ‚t ddgƒdksJ ‚d S )NrE   )r8   r   r   ))r!   r!   r   r   ))r   r'   r   r   r   )r   r"   r"   r"   r#   Útest_sdm_ecartc   s   rL   c                  C   s  t tdƒtdƒtdƒtdƒtdƒdœtƒ} t tdƒtdƒtdƒdœtƒ}t dtdƒitƒ}dd„ tdƒD ƒ\}}}t| ||gtt|||gfd	d
tdƒfdtdƒfdtdƒfdtdƒfgdtdƒfdtdƒfgfkslJ ‚t| ||gtt|||gfd	d
tdƒfdtdƒfdtdƒfgdtdƒfdtdƒfdtdƒfgfksŸJ ‚ttt td tt  t tgt	ttttgd} tttdgt	ttttgd}ttt ttd gt	ttttgd}t| ||gt	tƒt| ||gt	tƒ  krdtdƒfdtdƒfdtdƒfdtdƒfgks	J ‚ J ‚d S )Nr   r/   r7   )r4   )r   r   r!   r   )r   r   r   r   r4   c                 S   s&   g | ]}t |d d d ftdƒitƒ‘qS ©r   r   )r   r   r   )Ú.0Úir"   r"   r#   Ú
<listcomp>o   s    ÿz$test_sdm_nf_mora.<locals>.<listcomp>r   )Zphantomr2   r3   )r   r   r   r   )r   r   r   r   )r!   r   r   r   )r!   r   r   r   r!   ©Úgens)r   r   r   r   ©r   r   r   r   )r   r   r   r   )r   r   r   r   )
r   r   r   Úranger   r   r   r   r   r   )rB   Úf1Úf2Zid0Zid1Zid2r"   r"   r#   Útest_sdm_nf_morah   sH   ÿþÿÿÿ
ÿþÿ  ÿÿ0$
ÿ
ÿþrW   c                  C   sà   t d td  dt g} dtdƒfdtdƒfdtdƒfg}t|t ttgtƒ| ks*J ‚t| ttƒ|ks4J ‚tt dgttƒdtdƒfdtdƒfgksJJ ‚tdgt ttgtd	d
dt dgks]J ‚tddgttt tgdtƒ ksnJ ‚d S )Nr!   rS   )r   r!   r   r   r   )r   r   r!   r   r?   rM   ))r   r   r   r   r   r   )Únr   rQ   )r   r   r   r   r   r   r   r	   )rB   rI   r"   r"   r#   Útest_conversionƒ   s   "
ÿÿ&&rY   c                     sX  t ttg‰ ‡ fdd„} | t tgt ƒsJ ‚| t tgt t ƒsJ ‚| t tgdƒr(J ‚| t tgtƒr1J ‚| t d t t d t  gt t ƒsDJ ‚| t t t t t t t  tt  t t t gt d ƒrbJ ‚| 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 ƒsžJ ‚| 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ƒ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 ƒsLJ ‚| 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 ƒr”J ‚| t dt  t  tdt  gt t ƒrªJ ‚d S )	Nc                    sB   ‡ fdd„| D ƒ}t |tttƒ}tt|gttˆ d|ttƒtƒ kS )Nc                    s   g | ]}t |gttˆ d ‘qS ©rQ   )r   r   r   ©rN   rI   rQ   r"   r#   rP   ’   ó    z5test_nontrivial.<locals>.contains.<locals>.<listcomp>rQ   )r   r   r   r   r   r	   ©ÚIrB   ÚSÚGrQ   r"   r#   Úcontains‘   s   ÿÿz!test_nontrivial.<locals>.containsr   r!   r   r;   r'   rG   r   ©ra   r"   rQ   r#   Útest_nontrivialŽ   s0   
&<<<@TB&N
þN
þ(0rc   c                     s"  t tƒ‰tttg‰ ‡ ‡fdd„} | ttgtƒsJ ‚| ttgtt ƒs$J ‚| ttgdƒr-J ‚| ttgtƒr6J ‚| td t td t gtt ƒsIJ ‚| tt t tt tt  tt  tt t gtd ƒrgJ ‚| tdt t  tdt  gtƒszJ ‚| tdt t  tdt  gtt ƒsJ ‚d S )Nc                    sD   ‡ ‡fdd„| D ƒ}t |tˆtƒ}tt|gttˆ d|ttƒtƒ kS )Nc                    s   g | ]}t |gˆtˆ d ‘qS rZ   )r   r   r[   ©rR   Zigrlexr"   r#   rP   ´   r\   z0test_local.<locals>.contains.<locals>.<listcomp>rQ   )r   r   r   r   r   r	   r]   rd   r"   r#   ra   ³   s   ÿÿztest_local.<locals>.containsr   r!   )r   r   r   r   r   rb   r"   rd   r#   Ú
test_local¯   s   
&<&.re   c                  C   sj   t tg} tƒ }tt dgtt| d}tdtgtt| d}t||ttƒtƒ ks'J ‚t||ttƒtƒ ks3J ‚d S )Nr   rQ   )r   r   r	   r   r   r   r   )rR   rU   rV   Zf3r"   r"   r#   Útest_uncovered_lineÂ   s   rf   c                  C   sT   t g} tdt gtt| d}tdt d gtt| d}tt||gtttƒƒdks(J ‚d S )Nr   rQ   r   r!   )r   r   r   r   Úlenr   r   )rR   rU   rV   r"   r"   r#   Útest_chain_criterionÌ   s   "rh   N)2Ú__doc__Zsympy.polys.distributedmodulesr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Zsympy.polys.orderingsr   r   r   Zsympy.polys.domainsr   Z	sympy.abcr   r   r   r$   r(   r)   r-   r.   r6   r9   r=   r>   rC   rD   rH   rK   rL   rW   rY   rc   re   rf   rh   r"   r"   r"   r#   Ú<module>   s2    P



!
