o
    oÇh×  ã                   @   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"   ú}/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-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   ©Údicr"   r"   r#   Útest_sdm_from_dict+   s   ÿÿÿr7   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    ÿ* ÿ ÿr:   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   (ÿÿrD   c                   C   s   t ƒ g ksJ ‚d S )N)r	   r"   r"   r"   r#   Útest_sdm_zeroS   s   rE   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   rI   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   r9   )r!   r   r   r    r+   )r   r   r   )rC   ÚgÚhr"   r"   r#   Útest_sdm_spoly[   s
   $rL   c                   C   s,   t ddgƒdks
J ‚t ddgƒdksJ ‚d S )NrF   )r9   r   r   ))r!   r!   r   r   ))r   r'   r   r   r   )r   r"   r"   r"   r#   Útest_sdm_ecartc   s   rM   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/   r8   )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   )Ú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   )rC   Úf1Úf2Úid0Úid1Úid2r"   r"   r#   Útest_sdm_nf_morah   sH   ÿþÿÿÿ
ÿþÿ  ÿÿ0$
ÿ
ÿþr\   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!   rU   )r   r!   r   r   r   )r   r   r!   r   r@   rN   ))r   r   r   r   r   r   )Únr   rS   )r   r   r   r   r   r   r   r	   )rC   rJ   r"   r"   r#   Útest_conversionƒ   s   "
ÿÿ&&r^   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 ©rS   )r   r   r   ©rO   rJ   rS   r"   r#   rQ   ’   ó    z5test_nontrivial.<locals>.contains.<locals>.<listcomp>rS   )r   r   r   r   r   r	   ©ÚIrC   ÚSÚGrS   r"   r#   Úcontains‘   s   ÿÿz!test_nontrivial.<locals>.containsr   r!   r   r<   r'   rH   r   ©rf   r"   rS   r#   Útest_nontrivialŽ   s0   
&<<<@TB&N
þN
þ(0rh   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 r_   )r   r   r`   ©rT   Úigrlexr"   r#   rQ   ´   ra   z0test_local.<locals>.contains.<locals>.<listcomp>rS   )r   r   r   r   r   r	   rb   ri   r"   r#   rf   ³   s   ÿÿztest_local.<locals>.containsr   r!   )r   r   r   r   r   rg   r"   ri   r#   Ú
test_local¯   s   
&<&.rk   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   rS   )r   r   r	   r   r   r   r   )rT   rW   rX   Úf3r"   r"   r#   Útest_uncovered_lineÂ   s   rm   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   rS   r   r!   )r   r   r   r   Úlenr   r   )rT   rW   rX   r"   r"   r#   Útest_chain_criterionÌ   s   "ro   N)2Ú__doc__Úsympy.polys.distributedmodulesr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Úsympy.polys.orderingsr   r   r   Úsympy.polys.domainsr   Ú	sympy.abcr   r   r   r$   r(   r)   r-   r.   r7   r:   r>   r?   rD   rE   rI   rL   rM   r\   r^   rh   rk   rm   ro   r"   r"   r"   r#   Ú<module>   s2    P



!
