
    sgVT                        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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%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZDmEZE ddlFmGZG ddlHmIZI ddlJmKZK ddlLmMZM  eB       D  cg c]  } | j                          c} \  ZOZPZQZRZSZTZUd	 ZVd
 ZWd ZXd ZYd ZZd Z[d Z\d Z]d Z^d Z_d Z`d Zad Zbd Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd Zkd Zld  Zmd! Znd" Zod# Zpd$ Zqd% Zrd& Zsd' Ztd( Zud) Zvd* Zwd+ Zxd, Zyd- Zzd. Z{d/ Z|d0 Z}d1 Z~d2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZyCc c} w )Dz4Tests for dense recursive polynomials' basic tools.     )?ninfdup_LCdmp_LCdup_TCdmp_TCdmp_ground_LCdmp_ground_TCdmp_true_LT
dup_degree
dmp_degreedmp_degree_indmp_degree_list	dup_strip	dmp_stripdmp_validatedup_reversedup_copydmp_copy
dup_normal
dmp_normaldup_convertdmp_convertdup_from_sympydmp_from_sympydup_nthdmp_nthdmp_ground_nth
dmp_zero_pdmp_zero	dmp_one_pdmp_onedmp_ground_p
dmp_grounddmp_negative_pdmp_positive_p	dmp_zerosdmp_groundsdup_from_dictdup_from_raw_dictdup_to_dictdup_to_raw_dictdmp_from_dictdmp_to_dictdmp_swapdmp_permutedmp_nest	dmp_raisedup_deflatedmp_deflatedup_multi_deflatedmp_multi_deflatedup_inflatedmp_inflatedmp_excludedmp_include
dmp_inject	dmp_ejectdup_terms_gcddmp_terms_gcddmp_list_termsdmp_apply_pairs	dup_slice
dup_random)f_polys)ZZQQ)ring)S)raises)ooc                  \    t        g t              dk(  sJ t        g dt              dk(  sJ y )Nr               rK   )r   rC        T/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_densebasic.pytest_dup_LCrR   3   +    "b>Q,#q(((rP   c                  \    t        g t              dk(  sJ t        g dt              dk(  sJ y )Nr   rJ   rN   )r   rC   rO   rP   rQ   test_dup_TCrU   8   rS   rP   c                      t        g gt              g k(  sJ t        g ddggt              g dk(  sJ t        g ggt              g gk(  sJ t        dgddggdgggt              dgddggk(  sJ y NrK   rL   rM   rN   rK   rL   rM   )r   rC   rO   rP   rQ   test_dmp_LCrY   =   s    2$r!!!9qc"B'9444B4&""%%%QC!Q=A3%("-1#1v>>>rP   c                      t        g gt              g k(  sJ t        g ddggt              dgk(  sJ t        g ggt              g gk(  sJ t        dgddggdgggt              dggk(  sJ y rW   )r   rC   rO   rP   rQ   test_dmp_TCr[   D   s~    2$r!!!9qc"B'A3...B4&""%%%QC!Q=A3%("-1#666rP   c                      t        g gdt              dk(  sJ t        g ddggdt              dk(  sJ t        g ggdt              dk(  sJ t        dgddggdgggdt              dk(  sJ y N   r   rX   rN   rK   rL   rM   )r   rC   rO   rP   rQ   test_dmp_ground_LCr_   K   ~    "q"%***)aS)1b1Q6662$B'1,,,A3A-1#/B71<<<rP   c                      t        g gdt              dk(  sJ t        g ddggdt              dk(  sJ t        g ggdt              dk(  sJ t        dgddggdgggdt              dk(  sJ y r]   )r	   rC   rO   rP   rQ   test_dmp_ground_TCrb   R   r`   rP   c                      t        g gdt              dk(  sJ t        dggdt              dk(  sJ t        ddggdt              dk(  sJ t        dgg gdt              dk(  sJ t        ddgg gdt              dk(  sJ y )	Nr^   )r   r   r      )rd   re   r   )r   r^   r^   )r^   r   r^   )r^   r^   r^   )r
   rC   rO   rP   rQ   test_dmp_true_LTri   Y   s    tQ#{222ua$333AxB';666Ry!R(K777A|Q+{:::rP   c                      t         t        d      k(  sJ t        g       t         u sJ t        dg      dk(  sJ t        ddg      dk(  sJ t        g d      dk(  sJ y )Nz-infr^   r   )r^   r   r   r   r^   rM   )r   floatr   rO   rP   rQ   test_dup_degreerl   b   sd    5=   b>T!!!qc?aq!f"""o&!+++rP   c                      t        g gd      t        u sJ t        g ggd      t        u sJ t        dggd      dk(  sJ t        dgdggd      dk(  sJ y Nr^   rK   r   )r   r   rO   rP   rQ   test_dmp_degreero   j   sh    rdA$&&&tfa D(((seQ1$$$sQCj!$)))rP   c                  b   t        g ggdd      t        u sJ t        g ggdd      t        u sJ t        g ggdd      t        u sJ t        dgggdd      dk(  sJ t        dgggdd      dk(  sJ t        dgggdd      dk(  sJ t        t        dd      dk(  sJ t        t        dd      dk(  sJ t        t        dd      dk(  sJ t        t        dd      dk(  sJ t        t        dd      dk(  sJ t        t        dd      dk(  sJ t        t        d	d	      d	k(  sJ t	        t
        d
        y )Nr   rK   r^   	         rM      rL   c                       t        dggdd      S )Nr^   )r   rO   rP   rQ   <lambda>z$test_dmp_degree_in.<locals>.<lambda>   s    }qcUB: rP   )r   r   f_4f_6rG   
IndexErrorrO   rP   rQ   test_dmp_degree_inr{   r   sV   2$A&$...2$A&$...2$A&$...A3%!Q'1,,,A3%!Q'1,,,A3%!Q'1,,,a#q(((a#r)))a#q(((a#q(((a#q(((a#q(((a#q(((
::;rP   c                     t        g gggd      t         t         t         t         fk(  sJ t        dggggd      dk(  sJ t        t        d      dk(  sJ t        t        d      dk(  sJ t        t        d      dk(  sJ t        t
        d      dk(  sJ t        t        d      d	k(  sJ t        t        d      dk(  sJ t        t        d      d
k(  sJ y )NrL   r^   )r   r   r   r   rK   )rK   rK   rK   )rL   rL   rL   )rN   rL   rL   )rN   rM   re   )rq   rr   rs   )rM   rM   rt   rL   )	r   rH   f_0f_1f_2f_3rx   f_5ry   rO   rP   rQ   test_dmp_degree_listr      s    cUG9a(bS2#sRC,@@@@qcUG9a(M9993"i///3"i///3"i///3"i///3"j0003"i///3"l222rP   c                  R   t        g       g k(  sJ t        dg      g k(  sJ t        g d      g k(  sJ t        dg      dgk(  sJ t        ddg      dgk(  sJ t        g d      dgk(  sJ t        g d      g dk(  sJ t        g d      g dk(  sJ t        g d      g dk(  sJ y )Nr   r   r   r   r^   )r   r   r   r^   )r^   rK   r   )r   r^   rK   r   )r   r   r   r^   rK   r   )r   rO   rP   rQ   test_dup_stripr      s    R=BaS>RY2%%%aS>aS   aV###\"qc)))Y9,,,\"i///'(I555rP   c                     t        g dd      ddgk(  sJ t        g gd      g gk(  sJ t        g g gd      g gk(  sJ t        g g g gd      g gk(  sJ t        g ggd      g ggk(  sJ t        g gg ggd      g ggk(  sJ t        g gg gg ggd      g ggk(  sJ t        dgggd      dgggk(  sJ t        g gdgggd      dgggk(  sJ t        g gdggg ggd      dggg ggk(  sJ y )N)r   r^   r   r   r^   rK   )r   rO   rP   rQ   test_dmp_stripr      sD   Y"q!f,,,bT1"%%%b"Xq!bT)))b"b\1%"---rdVQRD6)))rdRD\1%2$///rdRD2$'+v555seWa qcUG+++rdaSE]A&QC5'111rdaSEB4(!,1#===rP   c                      t        g       g dfk(  sJ t        g d      ddgdfk(  sJ t        g gg      g ggdfk(  sJ t        dgg dgdgdgg      dgg gdfk(  sJ t        t        d        y )Nr   )r   r   r   r^   r   r^   rK   c                  *    t        dgddgdgdgg      S )Nr   r^   )r   rO   rP   rQ   rw   z#test_dmp_validate.<locals>.<lambda>   s    |aS!aS1#s,CD rP   )r   rG   
ValueErrorrO   rP   rQ   test_dmp_validater      s    Aw&&&(aVQK777"bTFA;...!b1#sQC01sBi^CCC
:DErP   c                  T    t        g d      g dk(  sJ t        g d      g dk(  sJ y )N)r^   rK   r   rL   )rL   r   rK   r^   r^   rK   rL   r   )rL   rK   r^   )r   rO   rP   rQ   test_dup_reverser      s(    |$444|$	111rP   c                      t        d      t        d      t        d      g} t        |       }t        d      t        d      c|d<   |d<   | |k7  sJ y )Nr^   r   rK   re   )rC   r   fgs     rQ   test_dup_copyr      sI    	A1r!uAAA1JAaD!A$6M6rP   c                      t        d      gt        d      t        d      gg} t        | d      }t        d      t        d      c|d   d<   |d   d<   | |k7  sJ y )Nr^   rK   r   re   )rC   r   r   s     rQ   test_dmp_copyr      sX    
Q%2a5"Q%.!AAA!ubeAaDGQqT!W6M6rP   c                      t        g dt              t        d      t        d      t        d      t        d      t        d      gk(  sJ y )N)r   r   rK   r^   r      r   rK   r^   r   r   )r   rC   rO   rP   rQ   test_dup_normalr      s>    ,b1	A1r!ubfbe,- - -rP   c                      t        dgg g ddgdgg gdt              t        d      t        d      gg t        d      gg gk(  sJ y )Nr   )r   rK   r^   r   r^   rK   )r   rC   rO   rP   rQ   test_dmp_normalr      sN    sB	A3b91bA
Q%AbfXr*+ + +rP   c                      t         d   t         }}  | d       | d       | d       | d      g}t        || |      t        d      t        d      t        d      t        d      gk(  sJ y )Nxr^   rK   r   rL   )rC   r   K0K1r   s      rQ   test_dup_convertr      sd    WbB	A1r!ube$Aq"b!	A1r!ube$% % %rP   c                      t         d   t         }}  | d      g | d      gg  | d      gg}t        |d| |      t        d      gt        d      gg t        d      ggk(  sJ y )Nr   r^   rK   rL   )rC   r   r   s      rQ   test_dmp_convertr      sj    WbB
Q%2a5'21w'Aq!R$
Q%2a5'21w'( ( (rP   c                     t        t        j                  t        d      gt              t        d      t        d      gk(  sJ t        t        j                  t        d      gt
              t        dd      t        dd      gk(  sJ y )NrK   r^   rL   )r   rF   OnerC   HalfrD   rO   rP   rQ   test_dup_from_sympyr      so    155!A$-,	A1  1661Q4."-	Aq2a8  rP   c                  >   t        t        j                  t        d      gt        j                  ggdt              t	        d      t	        d      gg gk(  sJ t        t        j
                  t        d      ggdt              t        dd      t        dd      ggk(  sJ y )NrK   r^   )r   rF   r   ZerorC   r   rD   rO   rP   rQ   test_dmp_from_sympyr      s    AEE1Q4=166(3Q;
Q%A  AFFAaD>*Ar2
Q(Bq!H	  rP   c                      t        g ddt              dk(  sJ t        g ddt              dk(  sJ t        g ddt              dk(  sJ t        g ddt              dk(  sJ t        t        d        y )Nr^   rK   rL   r   rL   r^   rK   rq   c                  (    t        g ddt              S )N)rL   rM   rN   )r   rC   rO   rP   rQ   rw   ztest_dup_nth.<locals>.<lambda>  s    wy"b9 rP   )r   rC   rG   rz   rO   rP   rQ   test_dup_nthr      si    9a$)))9a$)))9a$)))9a$)))
:9:rP   c                     t        dgdgdggddt              dgk(  sJ t        dgdgdggddt              dgk(  sJ t        dgdgdggddt              dgk(  sJ t        dgdgdggddt              g k(  sJ t        t        d        y )Nr^   rK   rL   r   rq   c                  2    t        dgdgdggddt              S )NrL   rM   rN   r   r^   )r   rC   rO   rP   rQ   rw   ztest_dmp_nth.<locals>.<lambda>  s    waS1#ArB rP   )r   rC   rG   rz   rO   rP   rQ   test_dmp_nthr     s    QC!qc?Aq"-!444QC!qc?Aq"-!444QC!qc?Aq"-!444QC!qc?Aq"-333
:BCrP   c                  x   t        g gddt              dk(  sJ t        dgdgdggddt              dk(  sJ t        dgdgdggddt              dk(  sJ t        dgdgdggddt              dk(  sJ t        dgdgdggddt              dk(  sJ t        dgdgdggd	dt              dk(  sJ t        t        d
        y )Nrd   r^   r   rK   rL   rg   rK   r   rK   r^   )rL   r   c                  2    t        dgdgdggddt              S )NrL   rM   rN   )rK   r   r^   )r   rC   rO   rP   rQ   rw   z%test_dmp_ground_nth.<locals>.<lambda>  s    ~sQC!ow2N rP   )r   rC   rG   rz   rO   rP   rQ   test_dmp_ground_nthr     s    2$2.!333A3aS/61b9Q>>>A3aS/61b9Q>>>A3aS/61b9Q>>>A3aS/61b9Q>>>A3aS/61b9Q>>>
:NOrP   c                      t        g d      du sJ t        g gd      du sJ t        g ggd      du sJ t        dgggd      du sJ y )Nr   Tr^   rK   F)r   rO   rP   rQ   test_dmp_zero_pr     sb    b!$$$rdA$&&&tfa D(((ugq!U***rP   c                  H    t        d      g k(  sJ t        d      g ggk(  sJ y )Nr   rK   )r   rO   rP   rQ   test_dmp_zeror   %  s*    A;"A;B4&   rP   c                      t        dgdt              du sJ t        dggdt              du sJ t        dgggdt              du sJ t        dgggdt              du sJ y )Nr^   r   TrK   rr   F)r    rC   rO   rP   rQ   test_dmp_one_pr   *  sp    aS!R D(((qcUAr"d***seWa$,,,tfXq"%...rP   c                      t        dt              t        d      gk(  sJ t        dt              t        d      gggk(  sJ y )Nr   r^   rK   )r!   rC   rO   rP   rQ   test_dmp_oner   1  s:    1b>beW$$$1b>1wi[(((rP   c                  H   t        g dd      du sJ t        g gdd      du sJ t        g gdd      du sJ t        t        d      ggdd      du sJ t        t        d      gggdd      du sJ t        t        d      gggdd      du sJ t        t        d      gg ggdd      du sJ t        g d d      du sJ t        g gd d      du sJ t        t        d      gd d      du sJ t        t        d      gggd d      du sJ t        t        d      gg ggd d      du sJ y )Nr   Tr^   FrK   rL   )r"   rC   rO   rP   rQ   test_dmp_ground_pr   6  s`   Aq!T)))a#t+++a#u,,,"Q%	1a(D0002a5'Q*d2222a5'Q*e3332a5'2A.%777D!$,,,dA&$...Aq)T1112a5'T1-5552a5'2q1U:::rP   c                     t        t        d      d      g ggk(  sJ t        t        d      d      t        d      k(  sJ t        t        d      d      t        d      gk(  sJ t        t        d      d      t        d      gggk(  sJ y )Nr   rK   re   r   )r#   rC   rO   rP   rQ   test_dmp_groundr   J  s~    beQRD6)))beR BqE)))beQBqE7***beQbeWI;...rP   c                  <   t        ddt              g g g g gk(  sJ t        ddt              g k(  sJ t        ddt              g gggk(  sJ t        ddt              g ggg gggk(  sJ t        ddt              g ggg ggg gggk(  sJ t        ddt              g dk(  sJ y )NrM   r   rK   r^   rL   r   r   )r&   rC   rO   rP   rQ   test_dmp_zerosr   R  s    Q22r2r"2222Q2"$$$Q2RD6(***Q2RD6RD6"2222Q2RD6RD6RD6"::::QB9,,,rP   c                  F   t        t        d      dd      g k(  sJ t        t        d      dd      dggggk(  sJ t        t        d      dd      dgggdggggk(  sJ t        t        d      dd      dgggdgggdggggk(  sJ t        t        d      dd      g dk(  sJ y )Nre   r   rK   r^   rL   r   )re   re   re   )r'   rC   rO   rP   rQ   test_dmp_groundsr   ]  s    r!ua#r)))r!ua#1#y000r!ua#1#A3%'9999r!ua#1#A3%QC5''BBBBr!ua$	111rP   c                      t        g ggdt              du sJ t        dgdgggdt              du sJ t        dgdgggdt              du sJ y )NrK   Fr^   r   T)r$   rC   rO   rP   rQ   test_dmp_negative_pr   g  s_    B4&!R(E111QC!:,2.%777RD1#;-B/4777rP   c                      t        g ggdt              du sJ t        dgdgggdt              du sJ t        dgdgggdt              du sJ y )NrK   Fr^   Tr   )r%   rC   rO   rP   rQ   test_dmp_positive_pr   m  s_    B4&!R(E111QC!:,2.$666RD1#;-B/5888rP   c                  X   t        i t              g k(  sJ t        i t              g k(  sJ t        g       i k(  sJ t	        g       i k(  sJ t        g t        d      dt        d      ik(  sJ t	        g t        d      dt        d      ik(  sJ g d} dddd	}dddd
}t        |t              | k(  sJ t        |t              | k(  sJ t        |       |k(  sJ t	        |       |k(  sJ t        dt              \  }}}|j                         } |d       |d       |d       |d       |d       |d      g}  |d       |d       |d      d} |d       |d       |d      d}t        ||      | k(  sJ t        ||      | k(  sJ t        |       |k(  sJ t	        |       |k(  sJ y )NTzeror   r   )	rL   r   r   rK   r   r   r   r   rs   rL   rK   rs   )rs   rN   r   ))rs   rN   r   x,y)rN   rL   r   )r   rL   r   )r)   rC   r(   r+   r*   rE   	to_domain)r   r   hRr   yKs          rQ   test_dup_from_to_dictr   s  s   R$***R B&&&2"$$$r?b   2r-!RU;;;r2D)dBqE]:::#A!A#AQ#q(((B1$$$1"""q>Q%_FAq	A	
1qtQqT1Q41qt,AaDQqTad#At1Q4qt,AQ"a'''A!###1"""q>QrP   c            	      Z   t        i dt              g gk(  sJ t        g gd      i k(  sJ t        g dt        d      dt        d      ik(  sJ t        g gdt        d      dt        d      ik(  sJ dgg g dgg g g g d	gg	} ddd	d
}t        |dt              | k(  sJ t        | d      |k(  sJ y )Nr^   r   Tr   r   rd   rL   rK   rs   ))rs   r   )rN   r   rd   )r,   rC   r-   r   s     rQ   test_dmp_from_to_dictr     s    Q#t+++tQ2%%%r1bt,r!u===tQ.62a5/AAA
b"qc2r2rA3/AAq)AAr"a'''q!!!!rP   c                  $   t        g dg ddgg dggdt              t        g dg ddggdt              } t        dddt              k(  sJ t        dddt              | k(  sJ t        | dddt              k(  sJ t        t        fd       y )Nr^   r   r   r^   r   r^   r   r   r   r   c                  *    t         dddt              S )Nr   ir^   )r.   rC   r   s   rQ   rw   ztest_dmp_swap.<locals>.<lambda>  s    x2r1b9 rP   )r   rC   r.   rG   rz   )r   r   s    @rQ   test_dmp_swapr     s    IrAq62s3Q;AOY4a<AAq!Q#q(((Aq!Q#q(((Aq!Q#q(((
:9:rP   c                  4   t        g dg ddgg dggdt              } t        g dg ddggdt              }t        | ddgdt              | k(  sJ t        |ddgdt              |k(  sJ t        | ddgdt              |k(  sJ t        |ddgdt              | k(  sJ y )Nr   r^   r   r   )r   rC   r/   r   s     rQ   test_dmp_permuter     s    IrAq62s3Q;AOY4a<Aq1a&!R(A---q1a&!R(A---q1a&!R(A---q1a&!R(A---rP   c                      t        t        d      dt              dgggk(  sJ t        dggdt              dggk(  sJ t        dggdt              dgggk(  sJ t        dggdt              dggggk(  sJ y rn   )r0   rC   rO   rP   rQ   test_dmp_nestr     s    BqE1b!seW,,,aSE1b!qcU***aSE1b!seW,,,aSE1b!ugY...rP   c                      t        g ddt              g ggk(  sJ t        dggddt              dggk(  sJ t        g dg ddggddt              dggdggdgggg ggdggdggggk(  sJ y )NrK   r   r^   r   rL   )r1   rC   rO   rP   rQ   test_dmp_raiser     s    RAr"tf,,,qcUAq"%1#...iaV,aB73%1#!	"1#!78 8 8rP   c                  j   t        g t              dg fk(  sJ t        dgt              ddgfk(  sJ t        g dt              dg dfk(  sJ t        g dt              dg dfk(  sJ t        t        dddt              t              dg dfk(  sJ t        t        dddt              t              dddgfk(  sJ t        t        ddd	t              t              dg d
fk(  sJ t        t        dddt              t              dg dfk(  sJ t        t        dddt              t              dg dfk(  sJ t        t        ddit              t              dddgfk(  sJ t        t        ddit              t              dddgfk(  sJ t        t        ddit              t              dddgfk(  sJ y )Nr^   rK   r   r^   r   rK   r   rL   )re   r^   )r^   r   r   r   r   r   r^   r   )re   r   re   )re   rL   )r^   r   r   r   r^   r   r   r   )re   rM   )r^   r   r   r^   r   r   r   r   )rs   rM   rM   )r^   r^   r   rs   r   )r2   rC   r)   rO   rP   rQ   test_dup_deflater     s   r21b')))sBAs8+++y"%!Y777+9~===(Q1r:B?	
$%& & &(Q1r:B?	
QF  (Q1r:B?	
$%& & & (Q1r:B?	
$%& & &(Q1r:B?	
I   (!Q4b9	
QF  (!Q4b9	
QF  (!Q4b9	
QF  rP   c                      t        g gdt              dg gfk(  sJ t        dggdt              ddggfk(  sJ g dg ddgg dgg} t        | dt              dg dddgdggfk(  sJ y )Nr^   rh   rK   r   r   r   )r3   rC   r   s    rQ   test_dmp_deflater     s    tQ#~555ua$1#777	BAQC(Aq!R Vi!Q!-E$FFFFrP   c                  p   t        dgft              ddgffk(  sJ t        g g ft              dg g ffk(  sJ t        g dft              dg dffk(  sJ t        g dft              dg dffk(  sJ t        g dg dft              dg dddgffk(  sJ t        g dg dft              dg dg dffk(  sJ y )NrK   r^   r   r   rK   r   r   r   )rK   r^   r   )r4   rC   rO   rP   rQ   test_dup_multi_deflater     s    qcVR(Q!K777b"Xr*q2r(m;;;i\2.1yl2CCCCo/4YL8IIIIoy92>	
YA ! ! !oy92>	
_i()* * *rP   c                  F   t        g gfdt              dg gffk(  sJ t        g gg gfdt              dg gg gffk(  sJ t        dggg gfdt              ddggg gffk(  sJ t        dggdggfdt              ddggdggffk(  sJ t        dggddggfdt              ddggddggffk(  sJ t        ddggddggfdt              dddggddggffk(  sJ t        dggg dgfdt              ddggddggffk(  sJ t        g dgg dgfdt              dddggddggffk(  sJ t        g dg dfdt              dddgg d	ffk(  sJ g d
g ddgg dgg} g dg dgg}t        | fdt              dg d
ddgdggffk(  sJ t        | |fdt              dg d
ddgdggg ddggffk(  sJ y )Nr^   rh   rK   r   r   r^   rK   )r^   r   rM   r   r^   rK   )r^   rM   r^   r   r^   r   r^   r   r   )r5   rC   r   s     rQ   test_dmp_multi_deflater     s   rdWa,	2$  rdRD\1b1	2$   sebT]Ar2	A3%"     seqcU^Q3	A3%1# ! ! !seq!fX.26	A3%1a&"#$ $ $ 1vh!Q11b9	Aq6(aVH%&' ' ' #a%)/A3%1a&1B(CD D D
yk"Ar+/5!QAq6(7K.LM M M i91bA	A	"#$ $ $ 
BAQC(A	rA3AaT1b)	9q!fqc*,-. . . aVQ+	9q!fqc*!%' 	(( ( (rP   c                  "   t        g dt              g k(  sJ t        g ddt              g dk(  sJ t        g ddt              g dk(  sJ t        g ddt              g dk(  sJ t        g ddt              g d	k(  sJ t        t        d
        y )N   r   r^   rK   r   rL   )r^   r   r   rK   r   r   rL   rM   )	r^   r   r   r   rK   r   r   r   rL   c                  (    t        g ddt              S )Nr   r   )r6   rC   rO   rP   rQ   rw   z"test_dup_inflate.<locals>.<lambda>%  s    {9a< rP   )r6   rC   rG   rz   rO   rP   rQ   test_dup_inflater     s    r2r"b(((y!R(I555y!R(O;;;y!R(,AAAAy!R(,GGGG
:<=rP   c                     t        dgddt              dgk(  sJ t        g gddt              g gk(  sJ t        dggddt              dggk(  sJ t        ddggddt              ddggk(  sJ t        ddggddt              g dgk(  sJ t        ddggd	dt              g d
gk(  sJ t        g ddgddggddt              g dg dgg ddggk(  sJ t        t        d        y )Nr^   r   r   )rL   re   rK   r   rh   r   )r^   rL   rK   r   r   r   r   r   c                  (    t        g gddt              S )N)re   r^   )r7   rC   rO   rP   rQ   rw   z"test_dmp_inflate.<locals>.<lambda>5  s    {B4!R@ rP   )r7   rC   rG   rz   rO   rP   rQ   test_dmp_inflater   (  s   sD!R(QC///tVQ+t333ufa,!555AxB/QF8;;;AxB/I;>>>AxB/L>AAA	A3A/B?	BR!Q() ) ) :@ArP   c                     t        g ggdt              g g ggdfk(  sJ t        dgggdt              g dgggdfk(  sJ t        g ddt              g g ddfk(  sJ t        dgddggdt              g dgddggdfk(  sJ t        g dgdt              dgg ddfk(  sJ t        dgdgdggdt              dgg ddfk(  sJ t        g dggdt              ddgg ddfk(  sJ t        dggdggdgggdt              ddgg ddfk(  sJ y )NrK   re   r   r   r^   rL   )r8   rC   rO   rP   rQ   test_dmp_excluder   8  sJ   vq"%"tfa888!w2&2!w*::::y!R(RA,>>>>aV}a,qcAq6]A0FFFF	{Ar*sIq.AAAAaS1#2.A3	12EEEE}a,!QA0FFFF!use,a4!QA8NNNNrP   c                  :   t        g dg dt              g dk(  sJ t        g ddgdt              g dgk(  sJ t        g ddgdt              dgdgdggk(  sJ t        g dddgdt              g dggk(  sJ t        g dddgdt              dggdggdgggk(  sJ y )Nr   r   r^   rK   rL   )r9   rC   rO   rP   rQ   test_dmp_includer   F  s    y"a,	999y1#q"-)<<<y1#q"-1#sQC@@@y1a&!R0i[MAAAy1a&!R0qcUaSEQC54IIIIrP   c                  <   t        dt              \  } }}| j                         }t        g d|      g ggdfk(  sJ t        g gd|      g gggdfk(  sJ t         | d      gd|      dgggdfk(  sJ t         | d      ggd|      dggggdfk(  sJ t         | d      d|z  d|z  z   dz   gd|      dggdgddgggdfk(  sJ d|dz  z  d|z  |z  z   d|dz  z  z   d|z   | d      ||dz  z  d	z   g}dgddgg d
gdgg gg gg dd	ggg}t        |d|      |dfk(  sJ y )Nr   r   rK   r^   rL   rM   re   rN   r   rN   r   r   r   )rE   rC   r   r:   r   r   r   r   r   r   s         rQ   test_dmp_injectr  P  s   %_FAq	Ab!QbTFA;...rdAq!vh]222qtfa#1#|333!vh1%aSE7)Q777qtQqS1Q3Y]+Q2!aV}7Mq6QQQQ	
1a4!A#a%!AqD&	 !A#qtQq!tVb[9A#1vy	!QC9rdY4EFAaA1a&(((rP   c                  $   t        dt              \  } }}| j                         }t        g ggd|      g k(  sJ t        g gggd|      g gk(  sJ t        dgggd|       | d      gk(  sJ t        dggggd|       | d      ggk(  sJ t        dggdgddgggd|       | d      d|z  d|z  z   dz   gk(  sJ d|dz  z  d|z  |z  z   d|dz  z  z   d|z   | d      ||dz  z  d	z   g}dgddgg d
gdgg gg gg dd	ggg}t        |d|      |k(  sJ y )Nr   rK   rL   r^   rM   re   rN   r   r   r  r   )rE   rC   r   r;   r  s         rQ   test_dmp_ejectr  b  si   %_FAq	ArdVQ"b(((tfXq!$,,,seWa#!v---ugY1%1Q4&111seqcAq6]+Q2qtQqS1Q3Y]6KKKK	
1a4!A#a%!AqD&	 !A#qtQq!tVb[9A#1vy	!QC9rdY4EFAQ1"""rP   c                      t        g t              dg fk(  sJ t        g dt              dg dfk(  sJ t        g dt              dg dfk(  sJ y )Nr   r^   r   r^   r   r^   )r<   rC   rO   rP   rQ   test_dup_terms_gcdr  t  sM    R QG+++B'Ay>999r*q)n<<<rP   c                  H   t        g gdt              dg gfk(  sJ t        g ddt              dg dfk(  sJ t        dgg dgg gdt              ddgg dggfk(  sJ t        ddgg dggdt              dddgg dggfk(  sJ t        ddgg dg g gdt              d	dgddggfk(  sJ y )
Nr^   rd   r   r   r^   r  rg   r   r   )r=   rC   rO   rP   rQ   test_dmp_terms_gcdr  z  s    "q"%&2$777q"-$	1BBBB1#rA3+Q3!b1#7OOOO
QaS1b"&,1vrA3.?%@A A A
QB#Q,06!q!f/FG G GrP   c                     t        g ggdt              dgk(  sJ t        dgggdt              dgk(  sJ t        g ddt              g dk(  sJ t        dgddgg d	gdt              g d
k(  sJ g dg dg g} t        | dt        d      ddgk(  sJ t        | dt        d      ddgk(  sJ g dg dg g} t        | dt        d      ddgk(  sJ t        | dt        d      ddgk(  sJ y )NrK   )r   r   r^   )r   r^   )r^   rK   rM   rL   rN   r   )))rM   r^   )r   rK   )r   rM   )r
  rL   )r   rN   rM   )rL   rN   r   ))r   r^   )rh   rK   )rg   rM   ))r   rK   rL   )rf   rN   r   r   lex)order))rK   rL   rK   )r   r^   grlex)r^   r   r   r   r   r   ))r^   rN   r^   )r>   rC   r   s    rQ   test_dmp_list_termsr    s:   B4&!R(^,<<<<QC5'1b)n-====/1b1?@ @ @ A3A	2Ar:IJ J J 
y"%A!Q%0[+4NNNN	1b!%0+$>? ? ? 
)2.A!Q%0[+4NNNN	1b!%0+$>? ? ?rP   c                     d } t        g dg d| g dt              g dk(  sJ t        ddgg d| g dt              dd	gk(  sJ t        g dd
dg| g dt              dd	gk(  sJ t        ddgdggdd
gdgg| g dt              ddgd	ggk(  sJ t        ddgdggdgd
dgg| g dt              dgd	ggk(  sJ t        dgddggdd
gdgg| g dt              d
gd	ggk(  sJ y )Nc                     | |z  S )NrO   )abs     rQ   rw   z&test_dmp_apply_pairs.<locals>.<lambda>  s
    QqS rP   r   )rM   rN   rt   r   )rM   
      rK   rL   r  r  rN   rt   r^   rM   rs   )r?   rC   )r   s    rQ   test_dmp_apply_pairsr    sD   A9iB2>+MMMAq69aQ;BxGGG9q!faQ;BxGGG
Q!A}aQ49:B"G G G 
Q!aV}aQ49:bT{C C C
q!fA}aQ49:bT{C C CrP   c                     g d} t        | ddt              g k(  sJ t        | ddt              dgk(  sJ t        | ddt              ddgk(  sJ t        | ddt              g dk(  sJ t        | ddt              g dk(  sJ t        | ddt              | k(  sJ t        | ddt              | k(  sJ t        | ddt              g k(  sJ t        | ddt              g k(  sJ t        | ddt              ddgk(  sJ t        | ddt              g d	k(  sJ t        | ddt              g d
k(  sJ t        ddgddt              ddgk(  sJ g d}t        |ddt              dgk(  sJ y )N)r^   rK   rL   rM   r   r^   rM   rK   rL   rX   rq   )rK   rL   r   r   )r^   r   r   rK   )r@   rC   r   s     rQ   test_dup_slicer    s~   AQ1b!R'''Q1b!aS(((Q1b!aV+++Q1b!Y...Q1b!\111Q1b!Q&&&Q1b!Q&&&Q1b!R'''Q1b!R'''Q1b!aV+++Q1b!Y...Q1b!\111aVQ2&1a&000AQ1b!aS(((rP   c                     t        dddt              } t        |       dk(  sJ t        d | D              sJ t        dddt              } t        |       dk(  sJ t        d | D              sJ t        d	d
dt              } t        |       d	k(  sJ t        d | D              sJ t        dddt              } t        |       dk(  sJ t        d | D              sJ y )Nr   r  c              3   <   K   | ]  }d |cxk  xr dk  nc   yw)r  r  NrO   .0cs     rQ   	<genexpr>z"test_dup_random.<locals>.<genexpr>       )!sa~2~~)   r^      c              3   <   K   | ]  }d |cxk  xr dk  nc   yw)r#  r$  NrO   r  s     rQ   r   z"test_dup_random.<locals>.<genexpr>  r!  r"  rK      c              3   <   K   | ]  }d |cxk  xr dk  nc   yw)r&  r'  NrO   r  s     rQ   r   z"test_dup_random.<locals>.<genexpr>  r!  r"  rL   (   c              3   <   K   | ]  }d |cxk  xr dk  nc   yw)r)  r*  NrO   r  s     rQ   r   z"test_dup_random.<locals>.<genexpr>  r!  r"  )rA   rC   r   allr   s    rQ   test_dup_randomr-    s    1c2r"Aa=A)q))))1c2r"Aa=A)q))))1c2r"Aa=A)q))))1c2r"Aa=A)q))))rP   N)__doc__sympy.polys.densebasicr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   sympy.polys.specialpolysrB   sympy.polys.domainsrC   rD   sympy.polys.ringsrE   sympy.core.singletonrF   sympy.testing.pytestrG   sympy.core.numbersrH   to_denser}   r~   r   r   rx   r   ry   rR   rU   rY   r[   r_   rb   ri   rl   ro   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r-  r   s   0rQ   <module>r7     s   :# # # # # # # # # # # # # # # # #J - & " " ' !<CI$Gqajjl$G !S#sCc)
)
?7==;,*<*
36> F2
-
+
%(;D	P+!
/)
;(/-289D"	;./84G
* (F>B OJ)$#$=	G?.C")2*m %Hs   4F