
    g                        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 Zd Zd Z d	 Z!d
 Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d 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                  2    t          dd          dk    sJ d S )N   r   r   )r      r      r    )r        e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_distributedmodules.pytest_sdm_monomial_mulr&      s#    Iv..);;;;;;r$   c                  0    t          d          dk    sJ d S )N   r"   r   r    )r   r#   r$   r%   test_sdm_monomial_degr*      s!    I&&!++++++r$   c                  2    t          dd          dk    sJ d S )Nr!   )r   r)   r   )r   r)   r    )r   r#   r$   r%   test_sdm_monomial_lcmr,      s#    Iy11Y>>>>>>r$   c                      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 sJ 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%   test_sdm_monomial_dividesr1      s    	955====	955====	955====	955>>>>	955>>>>	955>>>>>>r$   c                  v    t          dt          d          fgt                    t          d          k    sJ d S )Nr!   r)   )r   r   r#   r$   r%   test_sdm_LCr3   '   s7    Ir!uu%&++r!uu444444r$   c            	      n   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    sJ d S )Nr   r   r"   r   r   r   r   r"   r   r   r   r"   r   r   r   r   r    r   r   r   r   r6   r7   r8   r9   r:   )r   r   r   dics    r%   test_sdm_from_dictr=   +   s    Abee2a55Abee5 5Ce$$
1	r!uu 5
1	r!uu 5bee7L	NN N N N N Nr$   c                     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    sJ 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   r0   r.   r"   r    r   r   r   r   )r   r   r   r#   r$   r%   test_sdm_addrA   5   sW   Y1&'9bee*<)=sBGG
RUU	iA/01 1 1 1Y1&'9bff*=)>RHHBNNNNY1&'9bee*<)=sBGG
RUU	   Y1&'9bee*<)=sBGG
RUU	iA/01 1 1 1 1 1r$   c                      t          d          t          d          t          d          d} t          t          | t                              dk    sJ d S )Nr   r!   )   r   r   rD   r   r   rE   )r   r   r   r   r;   s    r%   test_sdm_LMrF   ?   sL    ee1"Q%%
@
@C-S))**i777777r$   c                      t          d          t          d          t          d          d} t          t          | t                              dt          d          fk    sJ d S )Nr   r"   r    rC   rE   )r   r   r   r   r;   s    r%   test_sdm_LTrH   D   sW    ee1"Q%%
@
@C-S))**y"Q%%.@@@@@@@r$   c                  r   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    sJ d S )Nr.   r   )r   r   r   r   r   r   )r"   r   r   rD   r    )r   r   r"   )r"   r   r"      r/      )r	   r   r   )fs    r%   test_sdm_mul_termrN   I   s'   )RUU+,vr!uuosBGG2MMMMVRUUOS"55;;;;)RUU+,vr!uuosBGG
RUU	   
RUU	iA/0AFBqEE?C44
RUU	iA/01 1 1 1 1 1r$   c                  .    t                      g k    sJ d S )N)r
   r#   r$   r%   test_sdm_zerorP   S   s    ::r$   c                  4    t          g d          dk    sJ d S )N)r!   r   ))
   r   r   r   ))r"   r    rD   rD      )r   r#   r$   r%   test_sdm_degrU   W   s(    DDDEEJJJJJJr$   c                  :   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    sJ d S )N)r"   r   r   r   r@   )r"   r    r   r!   r/   )r   r   r   )rM   ghs      r%   test_sdm_spolyrY   [   s    
RUU	iA/0A
RUU	A
RUU	AQ3##r))))Q3##BqEE(:';;;;;;;r$   c                  b    t          ddg          dk    sJ t          ddg          dk    sJ d S )NrR   )r@   r   r   ))r"   r"   r   r   ))r   r)   r   r   r    )r   r#   r$   r%   test_sdm_ecartr[   c   sD    nn566!;;;;nn566!;;;;;;r$   c            	         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 t          d          D             \  }}}t	          | ||gt          t          |||gf          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	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          z  t          dz  t          t          z  z   t          z
  t          gt          t          t          t          t          g          } t          t          t          dgt          t          t          t          t          g          }t          t          t          z  t          t          dz  gt          t          t          t          t          g          }t	          | ||gt          t                    t	          | ||gt          t                    cxk    rFdt          d          fdt          d          fdt          d          fdt          d          fgk    sn J d S )Nr   r5   r?   )r:   )r   r   r"   r   )r   r   r   r   r:   c                 ^    g | ]*}t          |d d d ft          d          it                    +S r   r   )r   r   r   ).0is     r%   
<listcomp>z$test_sdm_nf_mora.<locals>.<listcomp>o   sE     * * * %q!QlBqEE%:EBB * * *r$   r    )phantomr8   r9   )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   )rM   f1f2id0id1id2s         r%   test_sdm_nf_morarl   h   s   RUU"Q%% ee2a551O O	 	A 
bee2a55&(ff. ./4
6 
6B	bee,e	4	4B* * %a* * *OS#s q2r(E2c3Z7HIIIA
,1!6r!uu8MA

!B
 <A"7	8	:: : : : q2r(E2c3Z7HIIIA
,1!6r!uu8M	NB
 <B"8<A:O	P	RR R R R 	1adQqSj1na0#rAq	JJJA	!QC1a)	<	<	<B	!A#q!Q$b1ay	A	A	ABq2r(C,,ABxb))       
1	r"vv 6r"vv8N
1		                r$   c                     t           dz  t          dz  z   dt          z  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    sJ 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t           dgk    sJ t          ddgt          t          t           t          g          t                      k    sJ d S )Nr"   re   )r   r"   r   r   r   )r   r   r"   r   rJ   r^   ))r   r   r   r   r   r    )nr   rc   )r   r   r   r   r   r   r   r
   )rM   rW   s     r%   test_conversionro      s7   	
A1acA
1	r!uu 5bee7LMAQ1Ir**a////1c2&&!++++	
AR $bee_vr!uuo>? ? ? ?+,q!QiqAAAaAYNNNNAq63!Q888HJJFFFFFFr$   c                     t           t          t          gfd}  | t           t          gt                     sJ  | t           t          gt           t          z             sJ  | t           t          gd          rJ  | t           t          gt                    rJ  | t           dz  t          z   t           dz  t           z   gt           t          z
            sJ  | t           t          z   t          z   t           t          z  t           t          z  z   t          t          z  z   t           t          z  t          z  gt           dz            rJ  | t           t          z   t          z   t           t          z  t           t          z  z   t          t          z  z   t           t          z  t          z  gt           dz            sJ  | t           t          z   t          z   t           t          z  t           t          z  z   t          t          z  z   t           t          z  t          z  gt           dz            sJ  | t           t          z   t          z   t           t          z  t           t          z  z   t          t          z  z   t           t          z  t          z  gt           t          dz  z            rJ  | t           t          z   t          z   t           t          z  t           t          z  z   t          t          z  z   t           t          z  t          z  gt           dz  t          dz  z   dt          z  t          z  t           z  z             sJ  | t           t          z   t          z   t           t          z  t           t          z  z   t          t          z  z   t           t          z  t          z  gt           t          z  t          z            sJ  | t           dt           z   t          z   ddt          z  z
  gd          sJ  | t           dz  t          dz  z   t          dz  t          dz  z   t          dz  t           dz  z   t           dz  t          z  t           dz  t          z  z   t          dz  t          z  z   gt           dz            sJ  | t           dz  t          dz  z   t          dz  t          dz  z   t          dz  t           dz  z   t           dz  t          z  t           dz  t          z  z   t          dz  t          z  z   gt           dz  t          dz  z             rJ  | t           dt           z   t          z   z  t          dt          z   z  gt                     rJ  | t           dt           z   t          z   z  t          dt          z   z  gt           t          z             rJ d S )Nc                     fd| D             }t          |t          t          t                    }t          t	          |gt          t                    |t          t                    t                      k    S )Nc                 L    g | ] }t          |gt          t                     !S rc   )r   r   r   )r_   rW   rd   s     r%   ra   z5test_nontrivial.<locals>.contains.<locals>.<listcomp>   s,    AAA!_aS#r555AAAr$   rc   )r   r   r   r   r   r
   )IrM   SGrd   s       r%   containsz!test_nontrivial.<locals>.contains   si    AAAAqAAAKb11?A3RdCCCc2' '*2**5 	5r$   r   r"   r    rD   r)   rT   r   )rw   rd   s    @r%   test_nontrivialrx      s,   q!9D5 5 5 5 5 8QFA8QFAE"""""xA"""""xA"""""8QTAXq!tax(!a%00000xQAaC!A#I!OQqSU;QTBBBBB8QUQY!ac	AaC1Q7A>>>>>8QUQY!ac	AaC1Q7A>>>>>xQAaC!A#I!OQqSU;Qq!tVDDDDD8QUQY!ac	AaC1Q7A1qs1uQw9NOOOOO8QUQY!ac	AaC1Q71Q?????8QA	1qs7+Q/////8	
A1adQTk1a4!Q$;1QAa!Q$q&0HI	1     x	
A1adQTk1a4!Q$;1QAa!Q$q&0HI	1q!t    
 xAEAI1q5	2A66666xAEAI1q5	2AE:::::::r$   c                     t          t                    t          t          t          gfd}  | t          t          gt                    sJ  | t          t          gt          t          z             sJ  | t          t          gd          rJ  | t          t          gt                    rJ  | t          dz  t          z   t          dz  t          z   gt          t          z
            sJ  | t          t          z   t          z   t          t          z  t          t          z  z   t          t          z  z   t          t          z  t          z  gt          dz            rJ  | t          dt          z   t          z   z  t          dt          z   z  gt                    sJ  | t          dt          z   t          z   z  t          dt          z   z  gt          t          z             sJ d S )Nc                     fd| D             }t          |t          t                    }t          t          |gt          t                    |t          t                    t                      k    S )Nc                 B    g | ]}t          |gt                     S rs   )r   r   )r_   rW   rd   igrlexs     r%   ra   z0test_local.<locals>.contains.<locals>.<listcomp>   s,    DDDQ_aS&"4888DDDr$   rc   )r   r   r   r   r   r
   )rt   rM   ru   rv   rd   r|   s       r%   rw   ztest_local.<locals>.contains   sl    DDDDD!DDDK44?A3RdCCCc2' '*2**5 	5r$   r   r"   )r   r   r   r   r   )rw   rd   r|   s    @@r%   
test_localr}      s   %  Fq!9D5 5 5 5 5 5
 8QFA8QFAE"""""xA"""""xA"""""8QTAXq!tax(!a%00000xQAaC!A#I!OQqSU;QTBBBBB8QA	]Aq1uI.222228QA	]Aq1uI.A6666666r$   c                     t           t          g} t                      }t          t           dgt          t
          |           }t          dt          gt          t
          |           }t          ||t          t
                    t                      k    sJ t          ||t          t
                    t                      k    sJ d S )Nr   rc   )r   r   r
   r   r   r   r   )rd   rg   rh   f3s       r%   test_uncovered_liner      s    q6D	B	!Qbt	4	4	4B	!Qbt	4	4	4BRS"%%3333RS"%%333333r$   c                     t           g} t          dt           gt          t          |           }t          dt           dz
  gt          t          |           }t	          t          ||gt          t          t                              dk    sJ d S )Nr   rc   r   r"   )r   r   r   r   lenr   r   )rd   rg   rh   s      r%   test_chain_criterionr      sr    3D	!Q	6	6	6B	!QUUBT	:	:	:B|RHk5"==>>!CCCCCCr$   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,   r1   r3   r=   rA   rF   rH   rN   rP   rU   rY   r[   rl   ro   rx   r}   r   r   r#   r$   r%   <module>r      sk   , ,                                        ; : : : : : : : : : " " " " " "          < < <, , ,? ? ?? ? ?5 5 5N N N1 1 18 8 8
A A A
1 1 1  K K K< < << < <
     6G G G; ; ;B7 7 7&4 4 4D D D D Dr$   