o
    ĖÉvi×  ć                   @   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"   śh/home/air/biblejyuku/back/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 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 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



!
