
    gVT                        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 d	  eB            D             \  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/ Zzd0 Z{d1 Z|d2 Z}d3 Z~d4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdDS )Ez4Tests 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                 6    g | ]}|                                 S  )to_dense).0fs     ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_densebasic.py
<listcomp>rO   1   s     $G$G$Gqajjll$G$G$G    c                  v    t          g t                    dk    sJ t          g dt                    dk    sJ d S )Nr               rS   )r   rC   rJ   rP   rN   test_dup_LCrW   3   @    "b>>Q,,,##q((((((rP   c                  v    t          g t                    dk    sJ t          g dt                    dk    sJ d S )Nr   rR   rV   )r   rC   rJ   rP   rN   test_dup_TCrZ   8   rX   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 d S NrS   rT   rU   rV   rS   rT   rU   )r   rC   rJ   rP   rN   test_dmp_LCr^   =   s    2$r!!!!999qc"B''9994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 d S r\   )r   rC   rJ   rP   rN   test_dmp_TCr`   D   s    2$r!!!!999qc"B''A3....B4&""%%%%QC!Q=A3%("--1#666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 d S N   r   r]   rV   rS   rT   rU   )r   rC   rJ   rP   rN   test_dmp_ground_LCrd   K       "q"%%****)))aS)1b11Q66662$B''1,,,,A3A-1#/B7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 d S rb   )r	   rC   rJ   rP   rN   test_dmp_ground_TCrg   R   re   rP   c                  8   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 d S )	Nrc   )r   r   r      )ri   rj   r   )r   rc   rc   )rc   r   rc   )rc   rc   rc   )r
   rC   rJ   rP   rN   test_dmp_true_LTrn   Y   s    tQ##{2222ua$$3333AxB'';6666Ry!R((K7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 d S )Nz-infrc   r   )rc   r   r   r   rc   rU   )r   floatr   rJ   rP   rN   test_dup_degreerq   b   s    5==    b>>T!!!!qc??aq!f""""ooo&&!++++++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 d S Nrc   rS   r   )r   r   rJ   rP   rN   test_dmp_degreert   j   s    rdA$&&&&tfa  D((((seQ1$$$$sQCj!$$))))))rP   c                     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
            d S )Nr   rS   rc   	         rU      rT   c                  (    t          dggdd          S )Nrc   )r   rJ   rP   rN   <lambda>z$test_dmp_degree_in.<locals>.<lambda>   s    }qcUB:: rP   )r   r   f_4f_6rG   
IndexErrorrJ   rP   rN   test_dmp_degree_inr   r   s   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 d S )NrT   rc   )r   r   r   r   rS   )rS   rS   rS   )rT   rT   rT   )rV   rT   rT   )rV   rU   rj   )rv   rw   rx   )rU   rU   ry   rT   )	r   rH   f_0f_1f_2f_3r}   f_5r~   rJ   rP   rN   test_dmp_degree_listr      s   cUG9a((bS2#sRC,@@@@@qcUG9a((M99993""i////3""i////3""i////3""i////3""j00003""i////3""l222222rP   c                     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 d S )Nr   r   r   r   rc   )r   r   r   rc   )rc   rS   r   )r   rc   rS   r   )r   r   r   rc   rS   r   )r   rJ   rP   rN   test_dup_stripr      s   R==BaS>>RYYY2%%%%aS>>aS    aV####\\\""qc))))YYY999,,,,\\\""iii////'''((III555555rP   c                  0   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 d S )N)r   rc   r   r   rc   rS   )r   rJ   rP   rN   test_dmp_stripr      s   YYY""q!f,,,,bT1"%%%%b"Xq!!bT))))b"b\1%%"----rdVQRD6))))rdRD\1%%2$////rdRD2$'++v5555seWa  qcUG++++rdaSE]A&&QC5'1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            d S )Nr   )r   r   r   rc   r   rc   rS   c                  2    t          dgddgdgdgg          S )Nr   rc   )r   rJ   rP   rN   r|   z#test_dmp_validate.<locals>.<lambda>   s!    |aS!aS1#s,CDD rP   )r   rG   
ValueErrorrJ   rP   rN   test_dmp_validater      s    Aw&&&&((aVQK7777"bTFA;....!b1#sQC011sBi^CCCC
:DDEEEEErP   c                  j    t          g d          g dk    sJ t          g d          g dk    sJ d S )N)rc   rS   r   rT   )rT   r   rS   rc   rc   rS   rT   r   )rT   rS   rc   )r   rJ   rP   rN   test_dup_reverser      sJ    |||$$4444|||$$			111111rP   c                      t          d          t          d          t          d          g} t          |           }t          d          t          d          c|d<   |d<   | |k    sJ d S )Nrc   r   rS   rj   )rC   r   rM   gs     rN   test_dup_copyr      s[    	A1r!uuAAA1JAaD!A$666666rP   c                      t          d          gt          d          t          d          gg} t          | d          }t          d          t          d          c|d         d<   |d         d<   | |k    sJ d S )Nrc   rS   r   rj   )rC   r   r   s     rN   test_dmp_copyr      sj    
Q%%2a55"Q%%.!AAA!uubeeAaDGQqT!W666666rP   c                      t          g dt                    t          d          t          d          t          d          t          d          t          d          gk    sJ d S )N)r   r   rS   rc   r      r   rS   rc   r   r   )r   rC   rJ   rP   rN   test_dup_normalr      s`    ,,,b11	A1r!uubffbee,- - - - - -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 d S )Nr   )r   rS   rc   r   rc   rS   )r   rC   rJ   rP   rN   test_dmp_normalr      sj    sB			A3b91bAA
Q%%AbffXr*+ + + + + +rP   c                      t           d         t           }}  | d           | d           | d           | d          g}t          || |          t          d          t          d          t          d          t          d          gk    sJ d S )Nxrc   rS   r   rT   )rC   r   K0K1rM   s      rN   test_dup_convertr      s    WbB	A1rr!uubbee$Aq"b!!	A1r!uubee$% % % % % %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 d S )Nr   rc   rS   rT   )rC   r   r   s      rN   test_dmp_convertr      s    WbB
"Q%%22a55'21w'Aq!R$$
Q%%2a55'21w'( ( ( ( ( (rP   c                  J   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 d S )NrS   rc   rT   )r   rF   OnerC   HalfrD   rJ   rP   rN   test_dup_from_sympyr      s    15!A$$-,,	A1   161Q44."--	Aq2a88     rP   c                  p   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 d S )NrS   rc   )r   rF   r   ZerorC   r   rD   rJ   rP   rN   test_dmp_from_sympyr      s    AE1Q44=16(3Q;;
Q%%A   AFAaDD>*Ar22
Q((Bq!HH	     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            d S )Nrc   rS   rT   r   rT   rc   rS   rv   c                  2    t          g ddt                    S )N)rT   rU   rV   )r   rC   rJ   rP   rN   r|   ztest_dup_nth.<locals>.<lambda>  s    wyyy"b99 rP   )r   rC   rG   r   rJ   rP   rN   test_dup_nthr      s    999a$$))))999a$$))))999a$$))))999a$$))))
:99:::::rP   c                  P   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            d S )Nrc   rS   rT   r   rv   c                  <    t          dgdgdggddt                    S )NrT   rU   rV   r   rc   )r   rC   rJ   rP   rN   r|   ztest_dmp_nth.<locals>.<lambda>  s     waS1#ArBB rP   )r   rC   rG   r   rJ   rP   rN   test_dmp_nthr     s    QC!qc?Aq"--!4444QC!qc?Aq"--!4444QC!qc?Aq"--!4444QC!qc?Aq"--3333
:BBCCCCCrP   c                     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
            d S )Nri   rc   r   rS   rT   rl   rS   r   rS   rc   )rT   r   c                  <    t          dgdgdggddt                    S )NrT   rU   rV   )rS   r   rc   )r   rC   rJ   rP   rN   r|   z%test_dmp_ground_nth.<locals>.<lambda>  s     ~sQC!ow2NN rP   )r   rC   rG   r   rJ   rP   rN   test_dmp_ground_nthr     s   2$2..!3333A3aS/61b99Q>>>>A3aS/61b99Q>>>>A3aS/61b99Q>>>>A3aS/61b99Q>>>>A3aS/61b99Q>>>>
:NNOOOO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 d S )Nr   Trc   rS   F)r   rJ   rP   rN   test_dmp_zero_pr     s    b!$$$$rdA$&&&&tfa  D((((ugq!!U******rP   c                  ^    t          d          g k    sJ t          d          g ggk    sJ d S )Nr   rS   )r   rJ   rP   rN   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 d S )Nrc   r   TrS   rw   F)r    rC   rJ   rP   rN   test_dmp_one_pr   *  s    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 d S )Nr   rc   rS   )r!   rC   rJ   rP   rN   test_dmp_oner   1  sN    1b>>beeW$$$$1b>>1wi[((((((rP   c                     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 d S )Nr   Trc   FrS   rT   )r"   rC   rJ   rP   rN   test_dmp_ground_pr   6  s   Aq!!T))))a##t++++a##u,,,,"Q%%	1a((D00002a55'Q**d22222a55'Q**e33332a55'2A..%7777D!$$,,,,dA&&$....Aq))T11112a55'T1--55552a55'2q11U::::::rP   c                  x   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 d S )Nr   rS   rj   r   )r#   rC   rJ   rP   rN   test_dmp_groundr   J  s    beeQRD6))))beeR  BqEE))))beeQBqEE7****beeQbeeWI;......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 d S )NrU   r   rS   rc   rT   r   r   )r&   rC   rJ   rP   rN   test_dmp_zerosr   R  s    Q22r2r"22222Q2"$$$$Q2RD6(****Q2RD6RD6"22222Q2RD6RD6RD6":::::QB999,,,,,,rP   c                     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 d S )Nrj   r   rS   rc   rT   r   )rj   rj   rj   )r'   rC   rJ   rP   rN   test_dmp_groundsr   ]  s    r!uua##r))))r!uua##1#y0000r!uua##1#A3%'99999r!uua##1#A3%QC5''BBBBBr!uua$$			111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 d S )NrS   Frc   r   T)r$   rC   rJ   rP   rN   test_dmp_negative_pr   g  sw    B4&!R((E1111QC!:,2..%7777RD1#;-B//4777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 d S )NrS   Frc   Tr   )r%   rC   rJ   rP   rN   test_dmp_positive_pr   m  sw    B4&!R((E1111QC!:,2..$6666RD1#;-B//5888888rP   c                  \   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                    \  }}}|                                } |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 d S )NTzeror   r   )	rT   r   r   rS   r   r   r   r   rx   rT   rS   rx   )rx   rV   r   ))rx   rV   r   x,y)rV   rT   r   )r   rT   r   )r)   rC   r(   r+   r*   rE   	to_domain)rM   r   hRr   yKs          rN   test_dup_from_to_dictr   s  sg   R$$****R  B&&&&2"$$$$r??b    2r---!RUU;;;;r2D)))dBqEE]::::###A!A##AQ##q((((B1$$$$1""""q>>Q%__FAq	A	
1qqttQQqTT11Q441qqtt,AAaDDQQqTTaadd##Aqtt11Q44qqtt,,AQ""a''''A!####1""""q>>QrP   c            	         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 d S )Nrc   r   Tr   r   ri   rT   rS   rx   ))rx   r   )rV   r   ri   )r,   rC   r-   r   s     rN   test_dmp_from_to_dictr     s   Q##t++++tQ2%%%%r1bt,,,r!uu====tQ...62a55/AAAA
b"qc2r2rA3/AAq))AAr""a''''q!!!!!!!rP   c                  h   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           d S )Nrc   r   r   rc   r   rc   r   r   r   r   c                  4    t           dddt                    S )Nr   irc   )r.   rC   rM   s   rN   r|   ztest_dmp_swap.<locals>.<lambda>  s    x2r1b99 rP   )r   rC   r.   rG   r   )r   rM   s    @rN   test_dmp_swapr     s    IIIrAq62s3Q;;AOOOYYY4a<<AAq!Q##q((((Aq!Q##q((((Aq!Q##q((((
:9999:::::rP   c                  z   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 d S )Nr   rc   r   r   )r   rC   r/   r   s     rN   test_dmp_permuter     s    IIIrAq62s3Q;;AOOOYYY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 d S rs   )r0   rC   rJ   rP   rN   test_dmp_nestr     s    BqEE1b!!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 d S )NrS   r   rc   r   rT   )r1   rC   rJ   rP   rN   test_dmp_raiser     s    RAr""tf,,,,qcUAq"%%1#....iiiaV,aB773%1#!	"1#!78 8 8 8 8 8rP   c                  L   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 d S )Nrc   rS   r   rc   r   rS   r   rT   )rj   rc   )rc   r   r   r   r   r   rc   r   )rj   r   rj   )rj   rT   )rc   r   r   r   rc   r   r   r   )rj   rU   )rc   r   r   rc   r   r   r   r   )rx   rU   rU   )rc   rc   r   rx   r   )r2   rC   r)   rJ   rP   rN   test_dup_deflater     s   r21b'))))sBAs8++++yyy"%%!YYY7777++999~====(Q1r::B??	
$$$%& & & &(Q1r::B??	
QF   (Q1r::B??	
$$$%& & & & (Q1r::B??	
$$$%& & & &(Q1r::B??	
III    (!Q44b99	
QF   (!Q44b99	
QF   (!Q44b9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 d S )Nrc   rm   rS   r   r   r   )r3   rC   r   s    rN   test_dmp_deflater     s    tQ##~5555ua$$1#7777	BAQC(Aq!R  Viii!Q!-E$FFFFFFFrP   c                     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 d S )NrS   rc   r   r   rS   r   r   r   )rS   rc   r   )r4   rC   rJ   rP   rN   test_dup_multi_deflater     s9   qcVR((Q!K7777b"Xr**q2r(m;;;;iii\2..1yyyl2CCCCCooo/44YYYL8IIIIIoooyyy92>>	
YYYA ! ! ! !oooyyy92>>	
___iii()* * * * * *rP   c                     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 d S )Nrc   rm   rS   r   r   rc   rS   )rc   r   rU   r   rc   rS   )rc   rU   rc   r   rc   r   rc   r   r   )r5   rC   r   s     rN   test_dmp_multi_deflater     sM   rdWa,,	2$   rdRD\1b11	2$    sebT]Ar22	A3%"       seqcU^Q33	A3%1# ! ! ! !seq!fX.266	A3%1a&"#$ $ $ $ 1vh!Q11b99	Aq6(aVH%&' ' ' ' #a% %)/A3%1a&1B(CD D D D
))yyyk"Ar+ +/5!QAq6(7K.LM M M M iii91bAA	A			"#$ $ $ $ 
BAQC(A	rA3AaT1b))	999q!fqc*,-. . . . aVQ++	999q!fqc*<<!%' 	(( ( ( ( ( (rP   c                  j   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
            d S )N   r   rc   rS   r   rT   )rc   r   r   rS   r   r   rT   rU   )	rc   r   r   r   rS   r   r   r   rT   c                  2    t          g ddt                    S )Nr   r   )r6   rC   rJ   rP   rN   r|   z"test_dup_inflate.<locals>.<lambda>%  s    {999a<< rP   )r6   rC   rG   r   rJ   rP   rN   test_dup_inflater     s    r2r""b((((yyy!R((III5555yyy!R((OOO;;;;yyy!R((,A,A,AAAAAyyy!R((,G,G,G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            d S )Nrc   r   r   )rT   rj   rS   r   rm   r   )rc   rT   rS   r   r   r   r   r   c                  2    t          g gddt                    S )N)rj   rc   )r7   rC   rJ   rP   rN   r|   z"test_dmp_inflate.<locals>.<lambda>5  s    {B4!R@@ rP   )r7   rC   rG   r   rJ   rP   rN   test_dmp_inflater   (  sZ   sD!R((QC////tVQ++t3333ufa,,!5555AxB//QF8;;;;AxB//III;>>>>AxB//LLL>AAAA			A3A/B??	BR!Q() ) ) ) :@@AAAAArP   c                  n   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 d S )NrS   rj   r   r   rc   rT   )r8   rC   rJ   rP   rN   test_dmp_excluder  8  s   vq"%%"tfa8888!w2&&2!w*:::::yyy!R((RA,>>>>>aV}a,,qcAq6]A0FFFFF			{Ar**sIIIq.AAAAAaS1#2..A3			12EEEEE}a,,!QA0FFFFF!use,a44!QA8NNNNNNNrP   c                  x   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 d S )Nr   r   rc   rS   rT   )r9   rC   rJ   rP   rN   test_dmp_includer  F  s    yyy"a,,			9999yyy1#q"--)))<<<<yyy1#q"--1#sQC@@@@yyy1a&!R00iii[MAAAAyyy1a&!R00qcUaSEQC54IIIIIIIrP   c                     t          dt                    \  } }}|                                 }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 d S )Nr   r   rS   rc   rT   rU   rj   rV   r   rV   r   r   r   )rE   rC   r   r:   r   r   r   r   rM   r   s         rN   test_dmp_injectr  P  s   %__FAq	Ab!QbTFA;....rdAq!!vh]2222qqttfa##1#|3333!vh1%%aSE7)Q7777qqttQqS1Q3Y]+Q22!aV}7Mq6QQQQQ	
1a4!A#a%!AqD&	 !A#qqttQq!tVb[9A#1vyyy	!QC9rdYYY4EFAaA1a&((((((rP   c                     t          dt                    \  } }}|                                 }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 d S )Nr   rS   rT   rc   rU   rj   rV   r   r   r  r   )rE   rC   r   r;   r  s         rN   test_dmp_ejectr	  b  s   %__FAq	ArdVQ""b((((tfXq!$$,,,,seWa##!v----ugY1%%11Q44&1111seqcAq6]+Q22qqttQqS1Q3Y]6KKKKK	
1a4!A#a%!AqD&	 !A#qqttQq!tVb[9A#1vyyy	!QC9rdYYY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 d S )Nr   rc   r   rc   r   rc   )r<   rC   rJ   rP   rN   test_dup_terms_gcdr  t  su    R  QG++++B''Ayyy>9999r**q)))n<<<<<<rP   c                     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 d S )
Nrc   ri   r   r   rc   r  rl   r   r   )r=   rC   rJ   rP   rN   test_dmp_terms_gcdr  z  s3   "q"%%&2$7777q"--$			1BBBBB1#rA3+Q33!b1#7OOOOO
QaS1b" "&,1vrA3.?%@A A A A
QB#Q, ,06!q!f/FG G G G G GrP   c                  4   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 d S )NrS   )r   r   rc   )r   rc   )rc   rS   rU   rT   rV   r   )))rU   rc   )r   rS   )r   rU   )r  rT   )r   rV   rU   )rT   rV   r   ))r   rc   )rm   rS   )rl   rU   ))r   rS   rT   )rk   rV   r   r   lex)order))rS   rT   rS   )r   rc   grlex)rc   r   r   r   r   r   ))rc   rV   rc   )r>   rC   r   s    rN   test_dmp_list_termsr    s   B4&!R((^,<<<<<QC5'1b))n-=====///1b11???@ @ @ @ A3A			2Ar::IIIJ J J J 
yyy"%A!Q%000[+4NNNNN	1b! ! !%0+$>? ? ? ? 
)))2.A!Q%000[+4NN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 d S )Nc                     | |z  S )NrJ   )abs     rN   r|   z&test_dmp_apply_pairs.<locals>.<lambda>  s
    QqS rP   r   )rU   rV   ry   r   )rU   
      rS   rT   r  r  rV   ry   rc   rU   rx   )r?   rC   )r   s    rN   test_dmp_apply_pairsr    s   A999iiiB2>>+++MMMMAq6999aQ;;BxGGGG999q!faQ;;BxGGGG
Q!A}aQ4 49:B"G G G G 
Q!aV}aQ4 49:bT{C C C C
q!fA}aQ4 49:bT{C C C C C CrP   c                  f   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 d S )N)rc   rS   rT   rU   r   rc   rU   rS   rT   r]   rv   )rS   rT   r   r   )rc   r   r   rS   )r@   rC   r   s     rN   test_dup_slicer    s   AQ1b!!R''''Q1b!!aS((((Q1b!!aV++++Q1b!!YYY....Q1b!!\\\1111Q1b!!Q&&&&Q1b!!Q&&&&Q1b!!R''''Q1b!!R''''Q1b!!aV++++Q1b!!YYY....Q1b!!\\\1111aVQ2&&1a&0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 d S )Nr   r  c              3   6   K   | ]}d |cxk    odk    nc V  dS )r  r  NrJ   rL   cs     rN   	<genexpr>z"test_dup_random.<locals>.<genexpr>  6      ))!sa~~~~2~~~~))))))rP   rc      c              3   6   K   | ]}d |cxk    odk    nc V  dS )r%  r&  NrJ   r!  s     rN   r#  z"test_dup_random.<locals>.<genexpr>  r$  rP   rS      c              3   6   K   | ]}d |cxk    odk    nc V  dS )r(  r)  NrJ   r!  s     rN   r#  z"test_dup_random.<locals>.<genexpr>  r$  rP   rT   (   c              3   6   K   | ]}d |cxk    odk    nc V  dS )r+  r,  NrJ   r!  s     rN   r#  z"test_dup_random.<locals>.<genexpr>  r$  rP   )rA   rC   r   allr   s    rN   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   r   r   r   r   r}   r   r~   rW   rZ   r^   r`   rd   rg   rn   rq   rt   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/  rJ   rP   rN   <module>r8     s   : :# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #J - , , , , , & & & & & & & & " " " " " " " " " " " " ' ' ' ' ' ' ! ! ! ! ! !$G$GGGII$G$G$G !S#sCc) ) )
) ) )
? ? ?7 7 7= = == = =; ; ;, , ,* * *< < <*
3 
3 
36 6 6> > > F F F2 2 2
    - - -
+ + +
% % %( ( (    ; ; ;D D D	P 	P 	P+ + +! ! !
/ / /) ) )
; ; ;(/ / /- - -2 2 28 8 89 9 9  D" " "	; 	; 	;. . ./ / /8 8 8  4G G G
* 
* 
* (  (  (F> > >B B B O O OJ J J) ) )$# # #$= = =	G 	G 	G? ? ?.C C C") ) )2* * * * *rP   