a
    Ÿ¬<b×  ã                   @   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   s   t ddƒdksJ ‚d S )N©é   r   r   )r   é   ©r   é   r   )r   © r!   r!   úy/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/polys/tests/test_distributedmodules.pyÚtest_sdm_monomial_mul   s    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   s   t ddƒdksJ ‚d S )Nr   )r   r%   r   )r   r%   r   )r   r!   r!   r!   r"   Útest_sdm_monomial_lcm   s    r'   c                   C   sp   t ddƒdu sJ ‚t ddƒdu s$J ‚t ddƒdu s6J ‚t ddƒdu sHJ ‚t ddƒdu sZJ ‚t d	d
ƒdu slJ ‚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shJ ‚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/   r0   r1   r2   )r   r   r   ©Zdicr!   r!   r"   Útest_sdm_from_dict+   s    ÿÿÿr4   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shJ ‚t dtdƒfgdtdƒfgttƒdtdƒfgksœJ ‚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 ‚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     ÿ* ÿ ÿr7   c                  C   s2   t dƒt dƒt dƒdœ} tt| tƒƒdks.J ‚d S )Nr   ©r   )é   r   r   ©r9   r   r   r:   )r   r   r   r   r3   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s6J ‚d S )Nr   r    r   r8   r:   )r   r   r   r   r3   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sFJ ‚t dtdƒfgdtdƒfttƒdtdƒfgksxJ ‚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sÂJ ‚d S )Nr(   r   )r   r   r   ©r   r   r   )r    r   r   r9   r   )r   r   r    )r    r   r    é   r)   é   )r   r   r   )Úfr!   r!   r"   Útest_sdm_mul_termI   s    (ÿÿrA   c                   C   s   t ƒ g ksJ ‚d S )N)r	   r!   r!   r!   r"   Útest_sdm_zeroS   s    rB   c                   C   s   t g d¢ƒdksJ ‚d S )N)©r   r   ))é
   r   r   r   ))r    r   r9   r9   é   )r
   r!   r!   r!   r"   Útest_sdm_degW   s    rF   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sJJ ‚t| |tt ƒdt dƒfgksjJ ‚d S )N)r    r   r   r   r6   )r    r   r   r   r)   )r   r   r   )r@   ÚgÚhr!   r!   r"   Útest_sdm_spoly[   s
    rI   c                   C   s,   t ddgƒdksJ ‚t ddgƒdks(J ‚d S )NrC   )r6   r   r   ))r    r    r   r   ))r   r%   r   r   r   )r   r!   r!   r!   r"   Útest_sdm_ecartc   s    rJ   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sØJ ‚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n J ‚d S )Nr   r-   r5   )r2   )r   r   r    r   )r   r   r   r   r2   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phantomr0   r1   )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   )r@   Úf1Úf2Zid0Zid1Zid2r!   r!   r"   Útest_sdm_nf_morah   sH    ÿþÿÿÿ
ÿþÿ  ÿÿ
0$ÿ

ÿþrU   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sTJ ‚t| ttƒ|kshJ ‚tt dgttƒdtdƒfdtdƒfgks”J ‚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sÜJ ‚d S )Nr    rQ   )r   r    r   r   r   )r   r   r    r   r=   rK   ))r   r   r   r   r   r   )Únr   rO   )r   r   r   r   r   r   r   r	   )r@   rG   r!   r!   r"   Útest_conversionƒ   s    "
ÿÿ&rW   c                     s`  t ttg‰ ‡ fdd„} | t tgt ƒs(J ‚| t tgt t ƒs>J ‚| t tgdƒrPJ ‚| t tgtƒrbJ ‚| 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 ƒ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 ƒ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 ƒr0J ‚| 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 ©rO   )r   r   r   ©rL   rG   rO   r!   r"   rN   ’   ó    z5test_nontrivial.<locals>.contains.<locals>.<listcomp>rO   )r   r   r   r   r   r	   ©ÚIr@   ÚSÚGrO   r!   r"   Úcontains‘   s    ÿÿz!test_nontrivial.<locals>.containsr   r    r   r9   r%   rE   r   ©r_   r!   rO   r"   Útest_nontrivialŽ   s0    
&<>>BVB&Nþ
Nþ
(ra   c                     s$  t tƒ‰tttg‰ ‡ ‡fdd„} | ttgtƒs2J ‚| ttgtt ƒsHJ ‚| ttgdƒrZJ ‚| ttgtƒrlJ ‚| 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dt t  tdt  gtƒsôJ ‚| tdt t  tdt  gtt ƒs J ‚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 rX   )r   r   rY   ©rP   Zigrlexr!   r"   rN   ´   rZ   z0test_local.<locals>.contains.<locals>.<listcomp>rO   )r   r   r   r   r   r	   r[   rb   r!   r"   r_   ³   s    ÿÿztest_local.<locals>.containsr   r    )r   r   r   r   r   r`   r!   rb   r"   Ú
test_local¯   s    
&<&rc   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sNJ ‚t||ttƒtƒ ksfJ ‚d S )Nr   rO   )r   r   r	   r   r   r   r   )rP   rS   rT   Zf3r!   r!   r"   Útest_uncovered_lineÂ   s    rd   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sPJ ‚d S )Nr   rO   r   r    )r   r   r   r   Úlenr   r   )rP   rS   rT   r!   r!   r"   Útest_chain_criterionÌ   s    rf   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,   r4   r7   r;   r<   rA   rB   rF   rI   rJ   rU   rW   ra   rc   rd   rf   r!   r!   r!   r"   Ú<module>   s0   P



!
