
    MZdS                        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? ddl@mAZA ddlBmCZCmDZD ddlEmFZF ddlGmHZH ddlImJZJ ddlKmLZL  eA       D  cg c]  } | j                          c} \  ZNZOZPZQZRZSZTd	 ZUd
 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{d0 Z|d1 Z}d2 Z~d3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZyCc c} w )Dz4Tests for dense recursive polynomials' basic tools.     )>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               rJ   )r   rB        C/usr/lib/python3/dist-packages/sympy/polys/tests/test_densebasic.pytest_dup_LCrQ   2   +    "b>Q,#q(((rO   c                  \    t        g t              dk(  sJ t        g dt              dk(  sJ y )Nr   rI   rM   )r   rB   rN   rO   rP   test_dup_TCrT   7   rR   rO   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rJ   rK   rL   rM   rJ   rK   rL   )r   rB   rN   rO   rP   test_dmp_LCrX   <   s    2$r!!!9qc"B'9444B4&""%%%QC!Q=A3%("-1#1v>>>rO   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 rV   )r   rB   rN   rO   rP   test_dmp_TCrZ   C   s~    2$r!!!9qc"B'A3...B4&""%%%QC!Q=A3%("-1#666rO   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   rW   rM   rJ   rK   rL   )r   rB   rN   rO   rP   test_dmp_ground_LCr^   J   ~    "q"%***)aS)1b1Q6662$B'1,,,A3A-1#/B71<<<rO   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   rB   rN   rO   rP   test_dmp_ground_TCra   Q   r_   rO   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      )rc   rd   r   )r   r]   r]   )r]   r   r]   )r]   r]   r]   )r	   rB   rN   rO   rP   test_dmp_true_LTrh   X   s    tQ#{222ua$333AxB';666Ry!R(K777A|Q+{:::rO   c                      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 )Nr]   r   )r]   r   r   r   r]   rL   )r
   rG   rN   rO   rP   test_dup_degreerj   a   sT    b>bS   qc?aq!f"""o&!+++rO   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]   rJ   r   )r   rG   rN   rO   rP   test_dmp_degreerm   h   sl    rdA2#%%%tfa RC'''seQ1$$$sQCj!$)))rO   c                  h   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   rJ   r]   	         rL      rK   c                       t        dggdd      S )Nr]   )r   rN   rO   rP   <lambda>z$test_dmp_degree_in.<locals>.<lambda>   s    }qcUB: rO   )r   rG   f_4f_6rF   
IndexErrorrN   rO   rP   test_dmp_degree_inry   p   s\   2$A&2#---2$A&2#---2$A&2#---A3%!Q'1,,,A3%!Q'1,,,A3%!Q'1,,,a#q(((a#r)))a#q(((a#q(((a#q(((a#q(((a#q(((
::;rO   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 )NrK   r]   )r   r   r   r   rJ   )rJ   rJ   rJ   )rK   rK   rK   )rM   rK   rK   )rM   rL   rd   )ro   rp   rq   )rL   rL   rr   rK   )	r   rG   f_0f_1f_2f_3rv   f_5rw   rN   rO   rP   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2rO   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]   rJ   r   )r   r]   rJ   r   )r   r   r   r]   rJ   r   )r   rN   rO   rP   test_dup_stripr      s    R=BaS>RY2%%%aS>aS   aV###\"qc)))Y9,,,\"i///'(I555rO   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]   rJ   )r   rN   rO   rP   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#===rO   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]   rJ   c                  *    t        dgddgdgdgg      S )Nr   r]   )r   rN   rO   rP   ru   z#test_dmp_validate.<locals>.<lambda>   s    |aS!aS1#s,CD rO   )r   rF   
ValueErrorrN   rO   rP   test_dmp_validater      s    Aw&&&(aVQK777"bTFA;...!b1#sQC01sBi^CCC
:DErO   c                  T    t        g d      g dk(  sJ t        g d      g dk(  sJ y )N)r]   rJ   r   rK   )rK   r   rJ   r]   r]   rJ   rK   r   )rK   rJ   r]   )r   rN   rO   rP   test_dup_reverser      s(    |$444|$	111rO   c                      t        d      t        d      t        d      g} t        |       }t        d      t        d      c|d<   |d<   | |k7  sJ y )Nr]   r   rJ   rd   )rB   r   fgs     rP   test_dup_copyr      sI    	A1r!uAAA1JAaD!A$6M6rO   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]   rJ   r   rd   )rB   r   r   s     rP   test_dmp_copyr      sX    
Q%2a5"Q%.!AAA!ubeAaDGQqT!W6M6rO   c                      t        g dt              t        d      t        d      t        d      t        d      t        d      gk(  sJ y )N)r   r   rJ   r]   r      r   rJ   r]   r   r   )r   rB   rN   rO   rP   test_dup_normalr      s>    ,b1	A1r!ubfbe,- - -rO   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   rJ   r]   r   r]   rJ   )r   rB   rN   rO   rP   test_dmp_normalr      sN    sB	A3b91bA
Q%AbfXr*+ + +rO   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]   rJ   r   rK   )rB   r   K0K1r   s      rP   test_dup_convertr      sd    WbB	A1r!ube$Aq"b!	A1r!ube$% % %rO   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]   rJ   rK   )rB   r   r   s      rP   test_dmp_convertr      sj    WbB
Q%2a5'21w'Aq!R$
Q%2a5'21w'( ( (rO   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 )NrJ   r]   rK   )r   rE   OnerB   HalfrC   rN   rO   rP   test_dup_from_sympyr      so    155!A$-,	A1  1661Q4."-	Aq2a8  rO   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 )NrJ   r]   )r   rE   r   ZerorB   r   rC   rN   rO   rP   test_dmp_from_sympyr      s    AEE1Q4=166(3Q;
Q%A  AFFAaD>*Ar2
Q(Bq!H	  rO   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]   rJ   rK   r   rK   r]   rJ   ro   c                  (    t        g ddt              S )N)rK   rL   rM   )r   rB   rN   rO   rP   ru   ztest_dup_nth.<locals>.<lambda>  s    wy"b9 rO   )r   rB   rF   rx   rN   rO   rP   test_dup_nthr      si    9a$)))9a$)))9a$)))9a$)))
:9:rO   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]   rJ   rK   r   ro   c                  2    t        dgdgdggddt              S )NrK   rL   rM   r   r]   )r   rB   rN   rO   rP   ru   ztest_dmp_nth.<locals>.<lambda>  s    waS1#ArB rO   )r   rB   rF   rx   rN   rO   rP   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CrO   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 )Nrc   r]   r   rJ   rK   rf   rJ   r   rJ   r]   )rK   r   c                  2    t        dgdgdggddt              S )NrK   rL   rM   )rJ   r   r]   )r   rB   rN   rO   rP   ru   z%test_dmp_ground_nth.<locals>.<lambda>  s    ~sQC!ow2N rO   )r   rB   rF   rx   rN   rO   rP   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OrO   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]   rJ   F)r   rN   rO   rP   test_dmp_zero_pr     sb    b!$$$rdA$&&&tfa D(((ugq!U***rO   c                  H    t        d      g k(  sJ t        d      g ggk(  sJ y )Nr   rJ   )r   rN   rO   rP   test_dmp_zeror   #  s*    A;"A;B4&   rO   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   TrJ   rp   F)r   rB   rN   rO   rP   test_dmp_one_pr   (  sp    aS!R D(((qcUAr"d***seWa$,,,tfXq"%...rO   c                      t        dt              t        d      gk(  sJ t        dt              t        d      gggk(  sJ y )Nr   r]   rJ   )r    rB   rN   rO   rP   test_dmp_oner   /  s:    1b>beW$$$1b>1wi[(((rO   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]   FrJ   rK   )r!   rB   rN   rO   rP   test_dmp_ground_pr   4  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:::rO   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   rJ   rd   r   )r"   rB   rN   rO   rP   test_dmp_groundr   H  s~    beQRD6)))beR BqE)))beQBqE7***beQbeWI;...rO   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 )NrL   r   rJ   r]   rK   r   r   )r%   rB   rN   rO   rP   test_dmp_zerosr   P  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,,,rO   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 )Nrd   r   rJ   r]   rK   r   )rd   rd   rd   )r&   rB   rN   rO   rP   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1rO   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 )NrJ   Fr]   r   T)r#   rB   rN   rO   rP   test_dmp_negative_pr   e  s_    B4&!R(E111QC!:,2.%777RD1#;-B/4777rO   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 )NrJ   Fr]   Tr   )r$   rB   rN   rO   rP   test_dmp_positive_pr   k  s_    B4&!R(E111QC!:,2.$666RD1#;-B/5888rO   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   )	rK   r   r   rJ   r   r   r   r   rq   rK   rJ   rq   )rq   rM   r   ))rq   rM   r   x,y)rM   rK   r   )r   rK   r   )r(   rB   r'   r*   r)   rD   	to_domain)r   r   hRr   yKs          rP   test_dup_from_to_dictr   q  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rO   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   rc   rK   rJ   rq   ))rq   r   )rM   r   rc   )r+   rB   r,   r   s     rP   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!!!!rO   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-   rB   r   s   rP   ru   ztest_dmp_swap.<locals>.<lambda>  s    x2r1b9 rO   )r   rB   r-   rF   rx   )r   r   s    @rP   test_dmp_swapr     s    IrAq62s3Q;AOY4a<AAq!Q#q(((Aq!Q#q(((Aq!Q#q(((
:9:rO   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   rB   r.   r   s     rP   test_dmp_permuter     s    IrAq62s3Q;AOY4a<Aq1a&!R(A---q1a&!R(A---q1a&!R(A---q1a&!R(A---rO   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 rl   )r/   rB   rN   rO   rP   test_dmp_nestr     s    BqE1b!seW,,,aSE1b!qcU***aSE1b!seW,,,aSE1b!ugY...rO   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 )NrJ   r   r]   r   rK   )r0   rB   rN   rO   rP   test_dmp_raiser     s    RAr"tf,,,qcUAq"%1#...iaV,aB73%1#!	"1#!78 8 8rO   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]   rJ   r   r]   r   rJ   r   rK   )rd   r]   )r]   r   r   r   r   r   r]   r   )rd   r   rd   )rd   rK   )r]   r   r   r   r]   r   r   r   )rd   rL   )r]   r   r   r]   r   r   r   r   )rq   rL   rL   )r]   r]   r   rq   r   )r1   rB   r(   rN   rO   rP   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  rO   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]   rg   rJ   r   r   r   )r2   rB   r   s    rP   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FrO   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 )NrJ   r]   r   r   rJ   r   r   r   )rJ   r]   r   )r3   rB   rN   rO   rP   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()* * *rO   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]   rg   rJ   r   r   r]   rJ   )r]   r   rL   r   r]   rJ   )r]   rL   r]   r   r]   r   r]   r   r   )r4   rB   r   s     rP   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*!%' 	(( ( (rO   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]   rJ   r   rK   )r]   r   r   rJ   r   r   rK   rL   )	r]   r   r   r   rJ   r   r   r   rK   c                  (    t        g ddt              S )Nr   r   )r5   rB   rN   rO   rP   ru   z"test_dup_inflate.<locals>.<lambda>#  s    {9a< rO   )r5   rB   rF   rx   rN   rO   rP   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
:<=rO   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   )rK   rd   rJ   r   rg   r   )r]   rK   rJ   r   r   r   r   r   c                  (    t        g gddt              S )N)rd   r]   )r6   rB   rN   rO   rP   ru   z"test_dmp_inflate.<locals>.<lambda>3  s    {B4!R@ rO   )r6   rB   rF   rx   rN   rO   rP   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() ) ) :@ArO   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 )NrJ   rd   r   r   r]   rK   )r7   rB   rN   rO   rP   test_dmp_excluder   6  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NrO   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]   rJ   rK   )r8   rB   rN   rO   rP   test_dmp_includer   D  s    y"a,	999y1#q"-)<<<y1#q"-1#sQC@@@y1a&!R0i[MAAAy1a&!R0qcUaSEQC54IIIIrO   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   rJ   r]   rK   rL   rd   rM   r   rM   r   r   r   )rD   rB   r   r9   r   r   r   r   r   r   s         rP   test_dmp_injectr  N  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&(((rO   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   rJ   rK   r]   rL   rd   rM   r   r   r   r   )rD   rB   r   r:   r   s         rP   test_dmp_ejectr  `  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"""rO   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;   rB   rN   rO   rP   test_dup_terms_gcdr  r  sM    R QG+++B'Ay>999r*q)n<<<rO   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]   rc   r   r   r]   r  rf   r   r   )r<   rB   rN   rO   rP   test_dmp_terms_gcdr	  x  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rO   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 )NrJ   )r   r   r]   )r   r]   )r]   rJ   rL   rK   rM   r   )))rL   r]   )r   rJ   )r   rL   )r  rK   )r   rM   rL   )rK   rM   r   ))r   r]   )rg   rJ   )rf   rL   ))r   rJ   rK   )re   rM   r   r   lex)order))rJ   rK   rJ   )r   r]   grlex)r]   r   r   r   r   r   ))r]   rM   r]   )r=   rB   r   s    rP   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+$>? ? ?rO   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 )NrN   )abs     rP   ru   z&test_dmp_apply_pairs.<locals>.<lambda>  s
    QqS rO   r   )rL   rM   rr   r   )rL   
      rJ   rK   r  r  rM   rr   r]   rL   rq   )r>   rB   )r   s    rP   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rO   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 y )N)r]   rJ   rK   rL   r   r]   rL   rJ   rK   rW   ro   )rJ   rK   r   r   )r?   rB   r   s    rP   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0rO   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  NrN   .0cs     rP   	<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"  NrN   r  s     rP   r  z"test_dup_random.<locals>.<genexpr>  r  r   rJ      c              3   <   K   | ]  }d |cxk  xr dk  nc   yw)r$  r%  NrN   r  s     rP   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(  NrN   r  s     rP   r  z"test_dup_random.<locals>.<genexpr>  r  r   )r@   rB   r
   allr   s    rP   test_dup_randomr+    s    1c2r"Aa=A)q))))1c2r"Aa=A)q))))1c2r"Aa=A)q))))1c2r"Aa=A)q))))rO   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@   sympy.polys.specialpolysrA   sympy.polys.domainsrB   rC   sympy.polys.ringsrD   sympy.core.singletonrE   sympy.testing.pytestrF   sympy.core.numbersrG   to_denser{   r|   r}   r~   rv   r   rw   rQ   rT   rX   rZ   r^   ra   rh   rj   rm   ry   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   0rP   <module>r5     s   :" " " " " " " " " " " " " " " "H - & " " ' !<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"1**c %Hs   2F