
    \h                        S r SSKJrJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJr  SSKJrJrJr  SSKJr  SSKJrJrJr  S rS rS r S	 r!S
 r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1g)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                  (    [        SS5      S:X  d   eg )N   r   r   )r      r      r    )r        a/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_distributedmodules.pytest_sdm_monomial_mulr&      s    Iv.);;;r$   c                  &    [        S5      S:X  d   eg )N   r"   r   r    )r   r#   r$   r%   test_sdm_monomial_degr*      s    I&!+++r$   c                  (    [        SS5      S:X  d   eg )Nr!   )r   r)   r   )r   r)   r    )r   r#   r$   r%   test_sdm_monomial_lcmr,      s    Iy1Y>>>r$   c                      [        SS5      SL d   e[        SS5      SL d   e[        SS5      SL d   e[        SS5      SL d   e[        SS5      SL d   e[        S	S
5      SL d   eg )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===	95===	95===	95>>>	95>>>	95>>>r$   c                  Z    [        S[        S5      4/[        5      [        S5      :X  d   eg )Nr!   r)   )r   r   r#   r$   r%   test_sdm_LCr3   '   s'    Ir!u%&+r!u444r$   c            	         [        S5      [        S5      [        S5      [        S5      [        S5      S.n [        U [        5      S[        S5      4S[        S5      4S[        S5      4S[        S5      4S[        S5      4/:X  d   eg )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e2a5Abe5Ce$
1	r!u 5
1	r!u 5be7L	NN N Nr$   c                     [        S[        S5      4/S[        S5      4/[        [        5      S[        S5      4S[        S5      4/:X  d   e[        S[        S5      4/S[        S5      4/[        [        5      / :X  d   e[        S[        S5      4/S[        S5      4/[        [        5      S[        S5      4/:X  d   e[        S[        S5      4/S	[        S5      4/[        [        5      S	[        S5      4S[        S5      4/:X  d   eg )
N)r   r   r   r   r0   r.   r"   r    r   r   r   r   )r   r   r   r#   r$   r%   test_sdm_addrA   5   s   Y1&'9be*<)=sBG
RU	iA/01 1 1Y1&'9bf*=)>RHBNNNY1&'9be*<)=sBG
RU	  Y1&'9be*<)=sBG
RU	iA/01 1 1r$   c                      [        S5      [        S5      [        S5      S.n [        [        U [        5      5      S:X  d   eg )Nr   r!   )   r   r   rD   r   r   rE   )r   r   r   r   r;   s    r%   test_sdm_LMrF   ?   s4    e1"Q%
@C-S)*i777r$   c                      [        S5      [        S5      [        S5      S.n [        [        U [        5      5      S[        S5      4:X  d   eg )Nr   r"   r    rC   rE   )r   r   r   r   r;   s    r%   test_sdm_LTrH   D   s=    e1"Q%
@C-S)*y"Q%.@@@@r$   c                     [        S[        S5      4/S[        S5      4[        [        5      / :X  d   e[        / S[        S5      4[        [        5      / :X  d   e[        S[        S5      4/S[        S5      4[        [        5      S[        S5      4/:X  d   eS[        S5      4S[        S	5      4/n [        U S
[        S5      4[        [        5      S[        S5      4S[        S5      4/:X  d   eg )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U+,vr!uosBG2MMMVRUOS"5;;;)RU+,vr!uosBG
RU	  
RU	iA/0AFBqE?C4
RU	iA/01 1 1r$   c                  $    [        5       / :X  d   eg )N)r
   r#   r$   r%   test_sdm_zerorP   S   s    :r$   c                  *    [        / SQ5      S:X  d   eg )N)r!   r   ))
   r   r   r   ))r"   r    rD   rD      )r   r#   r$   r%   test_sdm_degrU   W   s    DEJJJr$   c                      S[        S5      4S[        S5      4/n S[        S5      4/nS[        S5      4/n[        X[        [         5      / :X  d   e[        X[        [         5      S[        S5      4/:X  d   eg )N)r"   r   r   r   r@   )r"   r    r   r!   r/   )r   r   r   )rM   ghs      r%   test_sdm_spolyrY   [   sz    
RU	iA/0A
RU	A
RU	AQ3#r)))Q3#BqE(:';;;;r$   c                  P    [        SS/5      S:X  d   e[        SS/5      S:X  d   eg )NrR   )r@   r   r   ))r"   r"   r   r   ))r   r)   r   r   r    )r   r#   r$   r%   test_sdm_ecartr[   c   s2    nn56!;;;nn56!;;;r$   c            	         [        [        S5      [        S5      [        S5      [        S5      [        S5      S.[        5      n [        [        S5      [        S5      [        S5      S.[        5      n[        S[        S5      0[        5      n[        S5       Vs/ s H"  n[        USSS4[        S5      0[        5      PM$     snu  pEn[	        XU/[        [        XEU/4S9S	[        S5      4S
[        S5      4S[        S5      4S[        S5      4/S[        S5      4S[        S5      4/4:X  d   e[	        XU/[        [        XFU/4S9S	[        S5      4S
[        S5      4S[        S5      4/S[        S5      4S[        S5      4S[        S5      4/4:X  d   e[        [        [        -  [        S-  [        [        -  -   [        -
  [        /[        [        [        [        [        /S9n [        [        [        S/[        [        [        [        [        /S9n[        [        [        -  [        [        S-  /[        [        [        [        [        /S9n[	        XU/[        [        5      [	        XU/[        [        5      s=:X  a7  S[        S5      4S[        S5      4S[        S5      4S[        S5      4/:X  d   e   eg s  snf )Nr   r5   r?   )r:   )r   r   r"   r   )r   r   r   r   r:   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iid0id1id2s          r%   test_sdm_nf_morarh   h   s   RU"Q% e2a51O	A 
be2a5&(f./4
6B	be,e	4B %a* (1 %q!QlBqE%:EB (*OSs qr(E23Z7HIA
,1!6r!u8MA

!B
 <A"7	8	:: : : qr(E23Z7HIA
,1!6r!u8M	NB
 <B"8<A:O	P	RR R R 	1adQqSj1na0#rAq	JA	!QC1a)	<B	!A#q!Q$b1ay	ABqr(C,ABxb) 
1	r"v 6r"v8N
1		          *s   )Kc                  2   [         S-  [        S-  -   S[        -  /n S[        S5      4S[        S5      4S[        S5      4/n[	        U[         [        [        /[        5      U :X  d   e[        U [        [        5      U:X  d   e[        [         S/[        [        5      S[        S5      4S[        S5      4/:X  d   e[	        S/[         [        [        /[        S	S
9S[         S/:X  d   e[        SS/[        [        [         [        /S9[        5       :X  d   eg )Nr"   r`   )r   r"   r   r   r   )r   r   r"   r   rJ   )r   r   ))r   r   r   r   r   r    )nr   r^   )r   r   r   r   r   r   r   r
   )rM   rW   s     r%   test_conversionrk      s    	
A1acA
1	r!u 5be7LMAQ1Ir*a///1c2&!+++	
AR$be_vr!uo>? ? ?+,q!QiqAaAYNNNAq63!Q8HJFFFr$   c                  
  ^ [         [        [        /mU4S jn U " [         [        /[         5      (       d   eU " [         [        /[         [        -   5      (       d   eU " [         [        /S5      (       a   eU " [         [        /[        5      (       a   eU " [         S-  [        -   [         S-  [         -   /[         [        -
  5      (       d   eU " [         [        -   [        -   [         [        -  [         [        -  -   [        [        -  -   [         [        -  [        -  /[         S-  5      (       a   eU " [         [        -   [        -   [         [        -  [         [        -  -   [        [        -  -   [         [        -  [        -  /[         S-  5      (       d   eU " [         [        -   [        -   [         [        -  [         [        -  -   [        [        -  -   [         [        -  [        -  /[         S-  5      (       d   eU " [         [        -   [        -   [         [        -  [         [        -  -   [        [        -  -   [         [        -  [        -  /[         [        S-  -  5      (       a   eU " [         [        -   [        -   [         [        -  [         [        -  -   [        [        -  -   [         [        -  [        -  /[         S-  [        S-  -   S[        -  [        -  [         -  -   5      (       d   eU " [         [        -   [        -   [         [        -  [         [        -  -   [        [        -  -   [         [        -  [        -  /[         [        -  [        -  5      (       d   eU " [         S[         -   [        -   SS[        -  -
  /S5      (       d   eU " [         S-  [        S-  -   [        S-  [        S-  -   [        S-  [         S-  -   [         S-  [        -  [         S-  [        -  -   [        S-  [        -  -   /[         S-  5      (       d   eU " [         S-  [        S-  -   [        S-  [        S-  -   [        S-  [         S-  -   [         S-  [        -  [         S-  [        -  -   [        S-  [        -  -   /[         S-  [        S-  -   5      (       a   eU " [         S[         -   [        -   -  [        S[        -   -  /[         5      (       a   eU " [         S[         -   [        -   -  [        S[        -   -  /[         [        -   5      (       a   eg )Nc           
         > U  Vs/ s H  n[        U/[        [        TS9PM     nn[        U[        [        [        5      n[	        [        U/[        [        TS9U[        [        5      [        5       :H  $ s  snf Nr^   )r   r   r   r   r   r
   )IrM   rW   SGr_   s        r%   contains!test_nontrivial.<locals>.contains   sg    ?@Aq!_aS#r5qAKb1?A3RdCc2'*2*5 	5 Bs   A5r   r"   r    rD   r)   rT   r   )rr   r_   s    @r%   test_nontrivialrt      s   q!9D5 QFAQFAE""""A""""A""""QTAXq!tax(!a%0000QAaC!A#I!OQqSU;QTBBBBQUQY!ac	AaC1Q7A>>>>QUQY!ac	AaC1Q7A>>>>QAaC!A#I!OQqSU;Qq!tVDDDDQUQY!ac	AaC1Q7A1qs1uQw9NOOOOQUQY!ac	AaC1Q71Q????QA	1qs7+Q////	
A1adQTk1a4!Q$;1QAa!Q$q&0HI	1    	
A1adQTk1a4!Q$;1QAa!Q$q&0HI	1q!t   
 AEAI1q5	2A6666AEAI1q5	2AE:::::r$   c                  z  ^^ [        [        5      m[        [        [        /mUU4S jn U " [        [        /[        5      (       d   eU " [        [        /[        [        -   5      (       d   eU " [        [        /S5      (       a   eU " [        [        /[        5      (       a   eU " [        S-  [        -   [        S-  [        -   /[        [        -
  5      (       d   eU " [        [        -   [        -   [        [        -  [        [        -  -   [        [        -  -   [        [        -  [        -  /[        S-  5      (       a   eU " [        S[        -   [        -   -  [        S[        -   -  /[        5      (       d   eU " [        S[        -   [        -   -  [        S[        -   -  /[        [        -   5      (       d   eg )Nc           
         > U  Vs/ s H  n[        U/T[        TS9PM     nn[        U[        T[        5      n[        [        U/[        [        TS9U[        [        5      [        5       :H  $ s  snf rn   )r   r   r   r   r   r
   )ro   rM   rW   rp   rq   r_   igrlexs        r%   rr   test_local.<locals>.contains   sg    BCD!Q_aS&"48!DK4?A3RdCc2'*2*5 	5 Es   A-r   r"   )r   r   r   r   r   )rr   r_   rw   s    @@r%   
test_localry      sI   % Fq!9D5
 QFAQFAE""""A""""A""""QTAXq!tax(!a%0000QAaC!A#I!OQqSU;QTBBBBQA	]Aq1uI.2222QA	]Aq1uI.A6666r$   c                  $   [         [        /n [        5       n[        [         S/[        [
        U S9n[        S[        /[        [
        U S9n[        X[        [
        5      [        5       :X  d   e[        X2[        [
        5      [        5       :X  d   eg )Nr   r^   )r   r   r
   r   r   r   r   )r_   rb   rc   f3s       r%   test_uncovered_liner|      sl    q6D	B	!Qbt	4B	!Qbt	4BRS"%333RS"%333r$   c                      [         /n [        S[         /[        [        U S9n[        S[         S-
  /[        [        U S9n[	        [        X/[        [        [        5      5      S:X  d   eg )Nr   r^   r   r"   )r   r   r   r   lenr   r   )r_   rb   rc   s      r%   test_chain_criterionr      sU    3D	!Q	6B	!QUUBT	:B|RHk5"=>!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[   rh   rk   rt   ry   r|   r   r#   r$   r%   <module>r      s    ,     ; : "  <,??5N18
A
1K<<
 6G;B7&4Dr$   