U
    	Ē-e×  ć                   @   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td S )N©é   r   r   )r   é   ©r   é   r   )r   ŚAssertionError© r!   r!   śj/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/polys/tests/test_distributedmodules.pyŚtest_sdm_monomial_mul   s    r#   c                   C   s   t ddkstd S )N©é   r   r   r   )r   r    r!   r!   r!   r"   Śtest_sdm_monomial_deg   s    r&   c                   C   s   t dddkstd S )Nr   )r   r%   r   )r   r%   r   )r   r    r!   r!   r!   r"   Śtest_sdm_monomial_lcm   s    r'   c                   C   sp   t dddkstt dddks$tt dddks6tt dddksHtt dddksZtt d	d
dkslt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!   r"   Śtest_sdm_monomial_divides   s    r+   c                   C   s$   t dtdfgttdks td S )Nr   r%   )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sht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   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>tt dtdfgdtdfgttg kshtt dtdfgdtdfgttdtdfgkstt dtdfgd	tdfgttd	tdfdtdfgksŚtd S )
N)r   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.td S )Nr   ©r   )é   r   r   ©r9   r   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s6td S )Nr   r   r   r8   r:   )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(tt g dtdfttg ksFtt dtdfgdtdfttdtdfgksxt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Āt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   r    )Śfr!   r!   r"   Śtest_sdm_mul_termI   s    (’’rA   c                   C   s   t  g kstd S )N)r	   r    r!   r!   r!   r"   Śtest_sdm_zeroS   s    rB   c                   C   s   t dddgdkstd S )N©r   r   ))é
   r   r   r   ))r   r   r9   r9   é   )r
   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sJtt| |tt dt dfgksjtd S )N)r   r   r   r   r6   )r   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tt ddgdks(td S )NrC   )r6   r   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Ųt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@t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 t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   )r@   Śf1Śf2Zid0Zid1Zid2r!   r!   r"   Śtest_sdm_nf_morah   sL      ’ž’’’
’ž’  ’’
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sTtt| tt|kshttt dgttdtdfdtdfgksttdgt ttgtd	d
dt dgksŗttddgttt tgdt ksÜt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	   )r@   rG   r!   r!   r"   Śtest_conversion   s    "  ’’&rW   c                     s`  t ttg  fdd} | t tgt s(t| t tgt t s>t| t tgdrPt| t tgtrbt| t d t t d t  gt t st| t t t t t t t  tt  t t t gt d rÄt| t t t t t t t  tt  t t t gt d st| t t t t t t t  tt  t t t gt d s@t| t t t t t t t  tt  t t t gt td  rt| t t t t t t t  tt  t t t gt d td  dt t t   sŲt| t t t t t t t  tt  t t t gt t t st| t dt  t ddt  gds@t| 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 t| 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t| t dt  t  tdt  gt r0t| t dt  t  tdt  gt t r\t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      s     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   r    ©r^   r!   rO   r"   Śtest_nontrivial   s0    
&<>>BVB&Nž
Nž
(r`   c                     s$  t ttttg  fdd} | ttgts2t| ttgtt sHt| ttgdrZt| ttgtrlt| td t td t gtt st| tt t tt tt  tt  tt t gtd rĪt| tdt t  tdt  gtsōt| tdt t  tdt  gtt s t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   “   s     z0test_local.<locals>.contains.<locals>.<listcomp>rO   )r   r   r   r   r   r	   rZ   ra   r!   r"   r^   ³   s      ’’ztest_local.<locals>.containsr   r   )r   r   r   r   r   r    r_   r!   ra   r"   Ś
test_localÆ   s    
&<&rb   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sNtt||ttt ksftd S )Nr   rO   )r   r   r	   r   r   r   r   r    )rP   rS   rT   Zf3r!   r!   r"   Śtest_uncovered_lineĀ   s    rc   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sPtd S )Nr   rO   r   r   )r   r   r   r   Ślenr   r   r    )rP   rS   rT   r!   r!   r"   Śtest_chain_criterionĢ   s    re   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   r`   rb   rc   re   r!   r!   r!   r"   Ś<module>   s0   P



!
