ó
¡¼™\c           @   s_  d  Z  d d l m Z m Z m Z m Z m Z d d l m 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- d d l. m/ Z/ d d l0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 d d l5 m6 Z6 d d l7 m8 Z8 m9 Z9 m: Z: m; Z; d d	 l< m= Z= d d
 l> m? Z? m@ Z@ mA ZA d d lB mC ZC d d lD mE ZE d d lF mG ZG g  e6 ƒ  D] ZH eH jI ƒ  ^ qê\ ZJ ZK ZL ZM ZN ZO ZP d „  ZQ d „  ZR d „  ZS d „  ZT d „  ZU d „  ZV d „  ZW d „  ZX d „  ZY d „  ZZ d „  Z[ d „  Z\ d „  Z] d „  Z^ d „  Z_ d „  Z` d „  Za d „  Zb d  „  Zc d! „  Zd d" „  Ze d# „  Zf d$ „  Zg d% „  Zh d& „  Zi d' „  Zj d( „  Zk d) „  Zl d* „  Zm d+ „  Zn d, „  Zo d- „  Zp d. „  Zq d/ „  Zr d0 „  Zs d1 „  Zt d2 S(3   s.   Tests for dense recursive polynomials' tools. iÿÿÿÿ(   t
   dup_normalt
   dmp_normalt   dup_from_raw_dictt   dmp_convertt   dmp_swap(   t   dmp_mul_ground($   t   dup_clear_denomst   dmp_clear_denomst   dup_integratet   dmp_integratet   dmp_integrate_int   dup_difft   dmp_difft   dmp_diff_int   dup_evalt   dmp_evalt   dmp_eval_int   dmp_eval_tailt   dmp_diff_eval_int	   dup_trunct	   dmp_trunct   dmp_ground_trunct	   dup_monict   dmp_ground_monict   dup_contentt   dmp_ground_contentt   dup_primitivet   dmp_ground_primitivet   dup_extractt   dmp_ground_extractt   dup_real_imagt
   dup_mirrort	   dup_scalet	   dup_shiftt   dup_transformt   dup_composet   dmp_composet   dup_decomposet   dmp_liftt   dup_sign_variationst
   dup_revertt
   dmp_revert(   t   ANP(   t   MultivariatePolynomialErrort   ExactQuotientFailedt   NotReversiblet   DomainError(   t   f_polys(   t   FFt   ZZt   QQt   EX(   t   ring(   t   St   It   sin(   t   long(   t   x(   t   raisesc           C   s  t  g  d t ƒ g  k s t ‚ t  g  d t ƒ g  k s< t ‚ t  t d ƒ g d t ƒ t d ƒ t d ƒ g k su t ‚ t  t d ƒ g d t ƒ t d d ƒ t d ƒ t d ƒ g k sº t ‚ t  t d ƒ t d ƒ t d ƒ g d t ƒ t d ƒ t d ƒ t d ƒ g k st ‚ t  t d ƒ t d ƒ t d ƒ g d t ƒ t d d ƒ t d ƒ t d ƒ t d ƒ g k snt ‚ t  t d ƒ t d ƒ t d ƒ g d t ƒ t d d ƒ t d d ƒ t d d ƒ t d ƒ t d ƒ g k sÝt ‚ t  t d ƒ t d ƒ t d ƒ g d t ƒ t d d ƒ t d d ƒ t d d ƒ t d ƒ t d ƒ t d ƒ g k sUt ‚ t  t i t d ƒ d 6t ƒ d t ƒ t i t d d	 ƒ d
 6t ƒ k s¢t ‚ t  t i t d ƒ d 6t d d ƒ d 6t ƒ d t ƒ t i t d d	 ƒ d
 6t d d ƒ d 6t ƒ k st ‚ d  S(   Ni   i   i    i   i   i<   i   i   i@t  i    i   i   i   (   R   R2   t   AssertionErrorR   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_integrate7   s     9E***6*E*N%(5c           C   s¼  t  g  g g d d t ƒ g  g g k s- t ‚ t  g  g g d d t ƒ g  g g k sZ t ‚ t  t d ƒ g g g d d t ƒ t d ƒ g g g  g g k sŸ t ‚ t  t d ƒ g g g d d t ƒ t d d ƒ g g g  g g  g g k sí t ‚ t  t d ƒ g t d ƒ g t d ƒ g g d d t ƒ t d ƒ g t d ƒ g t d ƒ g g k sVt ‚ t  t d ƒ g t d ƒ g t d ƒ g g d d t ƒ t d d ƒ g t d ƒ g t d ƒ g g  g k sÅt ‚ t  t d ƒ g t d ƒ g t d ƒ g g d d t ƒ t d d ƒ g t d d ƒ g t d d ƒ g g  g  g k s=t ‚ t  t d ƒ g t d ƒ g t d ƒ g g d d t ƒ t d d ƒ g t d d ƒ g t d d ƒ g g  g  g  g k s¸t ‚ d  S(   Ni   i   i   i    i   i<   (   R	   R2   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_integrateN   s    --EN63696B6c       	   C   su  t  t d t t ƒ }  t |  d d d t ƒ t t t |  d d d t ƒ d d t ƒ d d d t ƒ k sl t ‚ t |  d d d t ƒ t t t |  d d d t ƒ d d t ƒ d d d t ƒ k sÃ t ‚ t |  d d d t ƒ t t t |  d d d t ƒ d d t ƒ d d d t ƒ k st ‚ t |  d d d t ƒ t t t |  d d d t ƒ d d t ƒ d d d t ƒ k sqt ‚ d  S(   Ni   i   i   i    (   R   t   f_6R1   R2   R
   R   R	   R;   (   t   f(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_integrate_in_   s    ???c          C   s—  t  g  d t ƒ g  k s t ‚ t  d g d t ƒ g  k s? t ‚ t  d d g d t ƒ d g k sf t ‚ t  d d d g d t ƒ d d g k s“ t ‚ t  d d d d g d t ƒ d d d g k sÆ t ‚ t  d d d d d g d t ƒ d d d d g k sÿ t ‚ t d	 d
 d d d d d d d d d g t ƒ }  t  |  d t ƒ |  k sMt ‚ t  |  d t ƒ t  |  d t ƒ k swt ‚ t  |  d t ƒ t  t  |  d t ƒ d t ƒ k s­t ‚ t  |  d t ƒ t  t  t  |  d t ƒ d t ƒ d t ƒ k sït ‚ t d ƒ } t d	 d
 d d d d d d d d d g | ƒ }  t  |  d | ƒ t d d d d d d d d d d g
 | ƒ k spt ‚ t  |  d | ƒ t d d d d d d d g | ƒ k s¬t ‚ t  |  d | ƒ t g  | ƒ k sÓt ‚ t  |  d | ƒ |  k sñt ‚ t  |  d | ƒ t  |  d | ƒ k st ‚ t  |  d | ƒ t  t  |  d | ƒ d | ƒ k sQt ‚ t  |  d | ƒ t  t  t  |  d | ƒ d | ƒ d | ƒ k s“t ‚ d  S(   Ni   i   i   i   i   iÿÿÿÿi    iýÿÿÿi   i"   i8   i§þÿÿi   iL   i   (   R   R1   R;   R    R0   (   R?   t   K(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_diffp   s,    !'-390*6?0E<'*6c          C   sX  t  g  d d t ƒ g  k s! t ‚ t  g  g d d t ƒ g  g k sH t ‚ t  g  g g d d t ƒ g  g g k su t ‚ t  d g d g g g d d t ƒ g  g g k s« t ‚ t  d g g g  g g d d t ƒ d g g g k sä t ‚ t  d g g d g g g  g g d d t ƒ d g g d g g g k s/t ‚ t  d d d d d g d d t ƒ t d d d d d g d t ƒ k szt ‚ t  t d d t ƒ t k s›t ‚ t  t d d t ƒ t  t d d t ƒ k sËt ‚ t  t d d t ƒ t  t  t d d t ƒ d d t ƒ k s
t ‚ t  t d d t ƒ t  t  t  t d d t ƒ d d t ƒ d d t ƒ k sXt ‚ t d ƒ }  t t d |  ƒ } t  | d d |  ƒ | k s—t ‚ t  | d d |  ƒ t  | d d |  ƒ k sÇt ‚ t  | d d |  ƒ t  t  | d d |  ƒ d d |  ƒ k st ‚ t  | d d |  ƒ t  t  t  | d d |  ƒ d d |  ƒ d d |  ƒ k sTt ‚ d  S(   Ni   i    i   i   i   iÿÿÿÿi   (   R   R1   R;   R   R>   R0   R   (   RA   t   F_6(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_diffŽ   s*    !'-69K!*!0<9!0?c        	   C   s`  t  t d d d t ƒ t t t t d d d t ƒ d d t ƒ d d d t ƒ k sW t ‚ t  t d d d t ƒ t t t t d d d t ƒ d d t ƒ d d d t ƒ k s® t ‚ t  t d d d t ƒ t t t t d d d t ƒ d d t ƒ d d d t ƒ k st ‚ t  t d d d t ƒ t t t t d d d t ƒ d d t ƒ d d d t ƒ k s\t ‚ d  S(   Ni   i   i   i    (   R   R>   R1   R   R   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_diff_in¬   s    BBBc           C   sm   t  g  d t ƒ d k s t ‚ t  d d g d t ƒ d k sB t ‚ t  d d d g d t ƒ d k si t ‚ d  S(   Ni   i    i   i   i   iB   (   R   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_eval·   s    $c           C   s„  t  g  d d t ƒ d k s! t ‚ t  g  g d d t ƒ g  k sE t ‚ t  g  g g d d t ƒ g  g k so t ‚ t  d d g g d d t ƒ d d g k sŸ t ‚ t  d g g g d d t ƒ d g g k sÏ t ‚ t  d d g g g d d t ƒ d d g g k st ‚ t  d d g d d g g d d t ƒ d d g k s>t ‚ t  d d g g d d g g g d d t ƒ d d g g k s€t ‚ d  S(   Ni   i    i   i   i
   i   (   R   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_eval½   s    !$*0069c          C   sÛ  t  t d d d t ƒ t t t d d d t ƒ d d t ƒ k sE t ‚ t  t d d d t ƒ t t t d d d t ƒ d d t ƒ k sŠ t ‚ t  t d d d t ƒ t t t t d d d t ƒ d d t ƒ d d d t ƒ k sá t ‚ t  t d d d t ƒ t t t t d d d t ƒ d d t ƒ d d d t ƒ k s8t ‚ t d ƒ g g g  g g  g t d ƒ g d	 g g  t d ƒ t d ƒ t d
 ƒ t d ƒ g g g }  t  |  d d d t ƒ d g g  g  d d	 d d g g k s×t ‚ d  S(   Niþÿÿÿi   i   i    i   i   i-   i÷ÿÿÿiÿÿÿÿi
   iÔÿÿÿ(   R   R>   R1   R   R   R;   R8   (   R?   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_eval_inÌ   s    BB??`c           C   s’  t  g  g d g d t ƒ g  k s' t ‚ t  g  g g d g d t ƒ g  g k sT t ‚ t  g  g g d d g d t ƒ g  k s t ‚ t  t g  d t ƒ t k s¢ t ‚ t  t d d d g d t ƒ d k sÌ t ‚ t  t d d g d t ƒ d d d g k sü t ‚ t  t d g d t ƒ d	 d g d g d
 d d g g k s;t ‚ t  t d d g d t ƒ d d d d g k snt ‚ t  t d d g d t ƒ d d d d d d g k s§t ‚ t  t d d g d t ƒ d d d d d d g k sàt ‚ t  t d d g d t ƒ d d d  d! d" d# d$ d% d& d' g
 k s%t ‚ t  t d d g d t ƒ d d( d) d* g k sXt ‚ t  t	 d d d+ g d t ƒ d, d d d- g k sŽt ‚ d  S(.   Ni   i   iïÿÿÿi   iJ iúÿÿi   iŽO iS   i.  iQ   ixÿÿÿiS=  iÎ#  iø•ÿÿiôÿÿÿiŸúÿÿi    iBýÿÿi8ûÿÿiýÿÿi   iR   iÃëÿÿi8ÿÿiìÅÿÿiäýÿÿi   iÿÿÿÿIÁoò†#   iù• IšãvŽ2=,ÿI‡õ> ‚üÿÿi•(èÿI2”€ñ–á! IþüªŽ   iüÿÿÿIXÌ5¯   i˜× i²ÿÿÿiøÿÿiX»ÿÿi   i°  i€  (
   R   R1   R;   t   f_0t   f_1t   f_2t   f_3t   f_4t   f_5R>   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_eval_tailÜ   s"    '--!*0?366$3c        	   C   s[   t  t d d d d t ƒ t t t t d d d t ƒ d d t ƒ d d t ƒ k sW t ‚ d  S(   Ni   i   i   i   i    (   R   R>   R1   R   R   R   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_diff_eval_inö   s    c          C   sÐ   t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d ƒ g }  t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d ƒ g } t |  d t  ƒ | k s¼ t ‚ t t d	 „  ƒ d  S(
   Ni   iÐ  i    i   i   i=   i   i   c           S   s"   t  t d ƒ t d ƒ g d t ƒ S(   Ni   i    i   (   R(   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   <lambda>  t    (   R2   R(   R;   R:   R-   (   R?   t   g(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_revertû   s    PNc          C   sÓ   t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d ƒ g }  t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d d ƒ t  d ƒ t  d ƒ g } t |  d d t  ƒ | k s¿ t ‚ t t d	 „  ƒ d  S(
   Ni   iÐ  i    i   i   i=   i   i   c           S   s   t  d g g d d t ƒ S(   Ni   i   (   R)   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyRQ   
  RR   (   R2   R)   R;   R:   R+   (   R?   RS   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_revert  s    PN!c           C   s‘   t  d d d d d d g t d ƒ t ƒ d d d d d d g k sH t ‚ t  d d d d d d g t d ƒ t ƒ d d d d d g k s t ‚ d  S(	   Ni   i   i   i   i   i   iÿÿÿÿi    (   R   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_trunc  s    Hc           C   s   t  g  g d d g d t ƒ g  g k s- t ‚ t  d d g d d d g d g g d d g d t ƒ d g d g g k s{ t ‚ d  S(   Ni   i   i   iýÿÿÿ(   R   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_trunc  s    -c           C   ss   t  t t d ƒ d t ƒ t d d d g d g g g  g d d d g d d d g d g g g d t ƒ k so t ‚ d  S(   Ni   i   i   iÿÿÿÿi    (   R   RI   R1   R   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_ground_trunc  s    c           C   sÝ   t  d d d g t ƒ d d d g k s- t ‚ t t d „  ƒ t  g  t ƒ g  k sX t ‚ t  t d ƒ g t ƒ t d ƒ g k s… t ‚ t  t d ƒ t d ƒ t d ƒ g t ƒ t d ƒ t d d ƒ t d ƒ g k sÙ t ‚ d  S(	   Ni   i   i	   i   i   c           S   s   t  d d d g t ƒ S(   Ni   i   i   (   R   R1   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyRQ      RR   i   i   (   R   R1   R;   R:   R,   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_monic  s
    --c           C   s  t  d g d g d g g d t ƒ d g d g d g g k sB t ‚ t t d „  ƒ t  g  g d t ƒ g  g k sv t ‚ t  t d ƒ g g d t ƒ t d ƒ g g k s¬ t ‚ t  t d ƒ g t d ƒ g t d ƒ g g d t ƒ t d ƒ g t d d ƒ g t d ƒ g g k st ‚ d  S(	   Ni   i   i	   i   i   c           S   s"   t  d g d g d g g d t ƒ S(   Ni   i   i   i   (   R   R1   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyRQ   +  RR   i   i   (   R   R1   R;   R:   R,   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_ground_monic'  s    B$6c           C   s‡  t  g  t ƒ t d ƒ k s! t ‚ t  d g t ƒ t d ƒ k sE t ‚ t  d g t ƒ t d ƒ k si t ‚ t  d d g t ƒ t d ƒ k s t ‚ t  d d g t ƒ t d ƒ k s· t ‚ t  d d d g t ƒ t d ƒ k sá t ‚ t  d d d g t ƒ t d ƒ k st ‚ t  t d d ƒ t d d ƒ g t ƒ t d d ƒ k sGt ‚ t  t d d ƒ t d d ƒ g t ƒ t d d	 ƒ k sƒt ‚ d  S(
   Ni    i   iÿÿÿÿi   i   i   i	   i   i   (   R   R1   R;   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_content3  s    !$$''**<c           C   s‡  t  g  g d t ƒ t d ƒ k s' t ‚ t  g  g d t ƒ t d ƒ k sN t ‚ t  d g g d t ƒ t d ƒ k sx t ‚ t  d g g d t ƒ t d ƒ k s¢ t ‚ t  d g d g g d t ƒ t d ƒ k sÒ t ‚ t  d g d g g d t ƒ t d ƒ k st ‚ t  d g d g d g g d t ƒ t d ƒ k s8t ‚ t  d g d g d g g d t ƒ t d ƒ k snt ‚ t  t d d ƒ g t d d ƒ g g d t ƒ t d d ƒ k s³t ‚ t  t d d ƒ g t d d ƒ g g d t ƒ t d d	 ƒ k søt ‚ t  t d t ƒ t d ƒ k st ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ k sUt ‚ t  t d t ƒ t d ƒ k syt ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ k s²t ‚ t  t d t ƒ t d ƒ k sÖt ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ k st ‚ t  t d t ƒ t d ƒ k s3t ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ k slt ‚ t  t	 d t ƒ t d ƒ k st ‚ t  t t	 t d
 ƒ d t ƒ d t ƒ t d
 ƒ k sÉt ‚ t  t
 d t ƒ t d ƒ k sít ‚ t  t t
 t d ƒ d t ƒ d t ƒ t d ƒ k s&t ‚ t  t d t ƒ t d ƒ k sJt ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ k sƒt ‚ d  S(   Ni   i    iÿÿÿÿi   i   i   i	   i   i   i   i   i   (   R   R1   R;   R2   RI   R   RJ   RK   RL   RM   RN   R>   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_ground_content@  s>    ''**0066EE$6$6$6$6$6$6$c           C   s  t  g  t ƒ t d ƒ g  f k s' t ‚ t  t d ƒ g t ƒ t d ƒ t d ƒ g f k s` t ‚ t  t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ g f k s« t ‚ t  t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ g f k sö t ‚ t  t d ƒ t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ t d ƒ g f k sSt ‚ t  t d ƒ t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ t d ƒ g f k s°t ‚ t  g  t ƒ t d ƒ g  f k s×t ‚ t  t d ƒ g t ƒ t d ƒ t d ƒ g f k st ‚ t  t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ g f k s[t ‚ t  t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ g f k s¦t ‚ t  t d ƒ t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ t d ƒ g f k st ‚ t  t d ƒ t d ƒ t d ƒ g t ƒ t d ƒ t d ƒ t d ƒ t d ƒ g f k s`t ‚ t  t d d ƒ t d d ƒ g t ƒ t d d ƒ t d ƒ t d ƒ g f k s´t ‚ t  t d d ƒ t d d ƒ g t ƒ t d d ƒ t d ƒ t d	 ƒ g f k st ‚ d  S(
   Ni    i   i   i   i   i	   i   i   i   (   R   R1   R;   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_primitivej  s(    '9KKZZ'9KKZZQc           C   s]  t  g  g d t ƒ t d ƒ g  g f k s0 t ‚ t  t d t ƒ t d ƒ t f k sZ t ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ t f k s™ t ‚ t  t d t ƒ t d ƒ t f k sÃ t ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ t f k st ‚ t  t d t ƒ t d ƒ t f k s,t ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ t f k skt ‚ t  t d t ƒ t d ƒ t f k s•t ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ t f k sÔt ‚ t  t d t ƒ t d ƒ t f k sþt ‚ t  t t t d ƒ d t ƒ d t ƒ t d ƒ t f k s=t ‚ t  t	 d t ƒ t d ƒ t	 f k sgt ‚ t  t t	 t d ƒ d t ƒ d t ƒ t d ƒ t	 f k s¦t ‚ t  t
 d t ƒ t d ƒ t
 f k sÐt ‚ t  t t
 t d	 ƒ d t ƒ d t ƒ t d	 ƒ t
 f k st ‚ t  t d ƒ g g d t ƒ t d ƒ t d ƒ g g f k sQt ‚ t  t d ƒ g g d t ƒ t d ƒ t d ƒ g g f k s“t ‚ t  t d d ƒ g t d d
 ƒ g g d t ƒ t d d
 ƒ t d ƒ g t d ƒ g g f k söt ‚ t  t d d ƒ g t d d ƒ g g d t ƒ t d d ƒ t d ƒ g t d ƒ g g f k sYt ‚ d  S(   Ni   i    i   i   i   i   i   i   i   i	   i   (   R   R1   R;   RI   R   RJ   RK   RL   RM   RN   R>   R2   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_ground_primitiveƒ  s8    0*<*<*<*<*<*<*<BB`c          C   sµ   t  d d d d d d d g t ƒ }  t  d d d d d d g t ƒ } t  d	 d d
 d d d d g t ƒ } t  d d d d d d g t ƒ } t |  | t ƒ d | | f k s± t ‚ d  S(   Ni ¹, i    iÀŠ! i°b iä²  i Vi +† i`Å i@   i0   i   i   i€  iÀ   i   (   R    R1   R   R;   (   R?   RS   t   Ft   G(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_extract«  s
    $!$!c          C   sî   t  d g g  d g g  d g g  d g g d t ƒ }  t  d g g  d g g  d g g  g d t ƒ } t  d	 g g  d
 g g  d g g  d g g d t ƒ } t  d g g  d g g  d g g  g d t ƒ } t |  | d t ƒ d | | f k sê t ‚ d  S(   Ni ¹, iÀŠ! i°b iä²  i   i Vi +† i`Å i@   i0   i   i€  iÀ   i   (   R   R1   R   R;   (   R?   RS   R_   R`   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_ground_extractµ  s    0-3-c           C   s4  t  g  t ƒ g  g g  g f k s' t ‚ t  d g t ƒ d g g g  g f k sT t ‚ t  d d g t ƒ d g d g g d d g g f k s t ‚ t  d d g t ƒ d g d g g d d g g f k sÌ t ‚ t  d d d g t ƒ d g d g d d d g g d d g d d g g f k s t ‚ t t d „  ƒ d  S(   Ni   i    i   i   iÿÿÿÿc           S   s   t  t d ƒ t d ƒ g t ƒ S(   Ni   i   (   R   R3   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyRQ   Ê  RR   (   R   R1   R;   R:   R.   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_real_imagÀ  s    '-<<Qc           C   s¸   t  g  t ƒ g  k s t ‚ t  d g t ƒ d g k s< t ‚ t  d d d d d g t ƒ d d d d d g k su t ‚ t  d d d d d d g t ƒ d	 d d
 d d d g k s´ t ‚ d  S(   Ni   i   i   i   i   iþÿÿÿiüÿÿÿi   iÿÿÿÿiýÿÿÿiûÿÿÿ(   R   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_mirrorÍ  s    !9c           C   s¾   t  g  d t ƒ g  k s t ‚ t  d g d t ƒ d g k sB t ‚ t  d d d d d g d t ƒ d d d d d g k s~ t ‚ t  d d d d d g d	 t ƒ d
 d d d d g k sº t ‚ d  S(   Niÿÿÿÿi   i   i   i   i   iþÿÿÿiüÿÿÿiùÿÿÿia	  iRýÿÿi“   iäÿÿÿ(   R    R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_scaleÕ  s    $<c           C   s¾   t  g  d t ƒ g  k s t ‚ t  d g d t ƒ d g k sB t ‚ t  d d d d d g d t ƒ d d d d d g k s~ t ‚ t  d d d d d g d	 t ƒ d d
 d d d g k sº t ‚ d  S(   Ni   i   i   i   i   i   i   i   i   i   iS  i°  iÃ  (   R!   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_shiftÝ  s    $<c        
   C   sÜ   t  g  g  d d g t ƒ g  k s' t ‚ t  g  d g d d g t ƒ g  k sQ t ‚ t  g  d d g d d g t ƒ g  k s~ t ‚ t  d d d d d g d d d g d d g t ƒ d d d	 d
 d d d d d g	 k sØ t ‚ d  S(   Ni   i   i   iûÿÿÿi   iýÿÿÿi   i®ÿÿÿi  ic÷ÿÿi…  iMÎÿÿi'C  iÝÊÿÿi¥  (   R"   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_transformå  s
    '*-0c           C   sá  t  g  g  t ƒ g  k s t ‚ t  g  d g t ƒ g  k s? t ‚ t  g  d d g t ƒ g  k sc t ‚ t  d g g  t ƒ d g k s‡ t ‚ t  d d d g g  t ƒ g  k s® t ‚ t  d d d g g  t ƒ d g k sØ t ‚ t  d d d g d g t ƒ d g k st ‚ t  d d d g d g t ƒ d g k s2t ‚ t  d d d g d d g t ƒ d d d g k sht ‚ t  d d d g d d g t ƒ d d d g k sžt ‚ t  d d d g d d d g t ƒ d d d d d g k sÝt ‚ d  S(	   Ni   i   i    i   i   i@   iÿÿÿÿi   (   R#   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_composeî  s    !$$'*--66c           C   s  t  d d d g d d d g d t ƒ d d d d d g k sB t ‚ t  g  g g g  g g d t ƒ g  g g k su t ‚ t  g  g g d g g g d t ƒ g  g g k s« t ‚ t  g  g g d g g d g g g d t ƒ g  g g k sê t ‚ t  d g g g g  d t ƒ d g g g k st ‚ t  d g d g g  g g  g d t ƒ g  g k sSt ‚ t  d g d g d g g g  g d t ƒ d g g k st ‚ t  d g d g d g g d g g d t ƒ d g g k sÎt ‚ t  d g d g d g g d g g d t ƒ d g g k st ‚ t  d g d g d g g d g d g g d t ƒ d g g  g  g k sXt ‚ t  d g d g d g g d g d g g d t ƒ d g d g d g g k s©t ‚ t  d g d g d g g d g d g d g g d t ƒ d g d g d g d g d g g k st ‚ d  S(	   Ni   i   i    i   i   i   i@   iÿÿÿÿ(   R$   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_compose   s    B36?36<??KQc          C   s‚  t  d g t ƒ d g g k s$ t ‚ t  d d g t ƒ d d g g k sN t ‚ t  d d d d g t ƒ d d d d g g k s„ t ‚ t  d d d d d g t ƒ d d d g d d d g g k sÆ t ‚ t  d d d d d d d g t ƒ d d d d g d d d g g k st ‚ t  d d d d d g t ƒ d d d g d d d g g k sSt ‚ t  d d d d d g t ƒ d d d g d d d g g k s•t ‚ d d d d d d d	 d d
 d d d d g }  t  |  t ƒ d d d d d g d d d d g g k sþt ‚ d d d d d d d d d d d d d g }  t  |  t ƒ d d d d d g d d d d g g k sgt ‚ d d d d d d d d d d d d d g }  t  |  t ƒ d d d d  d g d d d d g g k sÐt ‚ t d! t ƒ \ } } d" | d d# d$ | d d% d& | d d' | d( d) | d d* | d+ d, | d d- | d d. | d/ g }  t  |  | j ƒ  ƒ |  g k s~t ‚ d  S(0   Ni   i    i   i   i   i   i   i–   iô  iq  iþÿÿÿiöÿÿÿi	   i   i(   i,  iè  iâ  iüÿÿÿiìÿÿÿi   iøÿÿÿiˆÿÿÿi  i¨ýÿÿia  iöûÿÿiX  iVÿÿÿi   i   iÞÿÿÿt   ti   i*   i0   i`   i   iˆ  i   ip  i`  i€  il   i8  i°  iÀ   (   R%   R1   R;   R4   t	   to_domain(   R?   t   RRj   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_decompose  s*    $*6BHBB-<-<-<)c          C   s‹  t  d d ƒ t  d d ƒ t  d d ƒ g }  t t  d d ƒ g |  t  ƒ t g  |  t  ƒ t g  |  t  ƒ t t  d d ƒ t  d d ƒ g |  t  ƒ t t  d d ƒ t  d d ƒ g |  t  ƒ g } t | d t  j t ƒ ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ g k swt ‚ t t d „  ƒ d  S(	   Ni   i    i   i   iB  i¾ýÿÿiAF c           S   s"   t  t d ƒ t d ƒ g d t ƒ S(   Ni   i   i    (   R&   R3   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyRQ   C  RR   (   R2   R*   R&   t   algebraic_fieldR6   R;   R:   R.   (   t   qR?   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_lift9  s    *9TQWc           C   sš  t  g  t ƒ d k s t ‚ t  d d g t ƒ d k s< t ‚ t  d d d g t ƒ d k s` t ‚ t  d d d d g t ƒ d k s‡ t ‚ t  d d d d d g t ƒ d k s± t ‚ t  d d d g t ƒ d k sÕ t ‚ t  d d d d g t ƒ d k sü t ‚ t  d d d d d g t ƒ d k s&t ‚ t  d d d	 g t ƒ d k sJt ‚ t  d d d	 g t ƒ d k snt ‚ t  d d d	 g t ƒ d k s’t ‚ t  d d d g t ƒ d k s¶t ‚ t  d d d	 g t ƒ d k sÚt ‚ t  d d d g t ƒ d k sþt ‚ t  d d d g t ƒ d k s"t ‚ t  d d d g t ƒ d k sFt ‚ t  d d d d d	 g t ƒ d k spt ‚ t  d d d d d	 g t ƒ d k sšt ‚ t  d d d d d	 g t ƒ d k sÄt ‚ t  d d d d d g t ƒ d k sît ‚ t  d d d d d	 g t ƒ d k st ‚ t  d d d d d g t ƒ d k sBt ‚ t  d d d d d g t ƒ d k slt ‚ t  d d d d d g t ƒ d k s–t ‚ d  S(
   Ni    i   i   i   i   i   iÿÿÿÿiüÿÿÿiûÿÿÿ(   R'   R1   R;   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_sign_variationsF  s0    !$'*$'*$$$$$$$$*******c           C   s¦  t  g  t t ƒ t d ƒ g  f k s* t ‚ t  t d ƒ g t t ƒ t d ƒ t d ƒ g f k sf t ‚ t  t d ƒ g t t ƒ t d ƒ t d ƒ g f k s¢ t ‚ t  t d d ƒ g t ƒ t d ƒ t d ƒ g f k sÞ t ‚ t  t d d ƒ g t t ƒ t d ƒ t d ƒ g f k st ‚ t  t d ƒ t d ƒ t d ƒ g t t ƒ t d ƒ t d ƒ t d ƒ t d ƒ g f k s}t ‚ t  t d ƒ t d d ƒ t d ƒ g t t ƒ t d ƒ t d ƒ t d ƒ t d ƒ g f k sàt ‚ t  t d ƒ t d ƒ t d ƒ g t t d t ƒt d ƒ t d ƒ t d ƒ t d ƒ g f k sFt ‚ t  t d ƒ t d d ƒ t d ƒ g t t d t ƒt d ƒ t d ƒ t d ƒ t d ƒ g f k s¯t ‚ t  t t d ƒ d ƒ t t d ƒ d ƒ g t ƒ t d ƒ t d	 ƒ t d ƒ g f k st ‚ t  t d ƒ g t ƒ t d ƒ t d ƒ g f k sGt ‚ t  t t t ƒ t ƒ t d ƒ g t ƒ t t ƒ t t t ƒ ƒ t d ƒ g f k s¢t ‚ d  S(
   Ni   i   i   i    i   t   converti	   i   i   (	   R   R2   R1   R;   t   TrueR3   R5   R7   R9   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dup_clear_denomsd  s"    *<<<?]`WZ\9c           C   sÕ  t  g  g d t t ƒ t d ƒ g  g f k s3 t ‚ t  t d ƒ g g d t t ƒ t d ƒ t d ƒ g g f k sx t ‚ t  t d ƒ g g d t t ƒ t d ƒ t d ƒ g g f k s½ t ‚ t  t d d ƒ g g d t ƒ t d ƒ t d ƒ g g f k st ‚ t  t d d ƒ g g d t t ƒ t d ƒ t d ƒ g g f k sJt ‚ t  t d ƒ g t d ƒ g g  g d t t ƒ t d ƒ t d ƒ g t d ƒ g g  g f k s­t ‚ t  t d ƒ g t d d ƒ g g  g d t t ƒ t d ƒ t d ƒ g t d ƒ g g  g f k st ‚ t  t d ƒ t d ƒ t d ƒ g d t t d t ƒt d ƒ t d ƒ t d ƒ t d ƒ g f k s|t ‚ t  t d ƒ t d d ƒ t d ƒ g d t t d t ƒt d ƒ t d ƒ t d ƒ t d ƒ g f k sèt ‚ t  t d ƒ g t d ƒ g g  g d t t d t ƒt d ƒ t d ƒ g t d ƒ g g  g f k sQt ‚ t  t d ƒ g t d d ƒ g g  g d t t d t ƒt d ƒ t d ƒ g t d ƒ g g  g f k s½t ‚ t  t t d ƒ d ƒ g t t d ƒ d ƒ g g d t ƒ t d ƒ t d	 ƒ g t d ƒ g g f k s+t ‚ t  t d ƒ g g d t ƒ t d ƒ t d ƒ g g f k smt ‚ t  t t t ƒ t ƒ t d ƒ g g d t ƒ t t ƒ t t t ƒ ƒ t d ƒ g g f k sÑt ‚ d  S(
   Ni   i   i   i   i    Rr   i	   i   i   (	   R   R2   R1   R;   Rs   R3   R5   R7   R9   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   test_dmp_clear_denoms~  s*    3EEEH``ZQW0<kBN(u   t   __doc__t   sympy.polys.densebasicR    R   R   R   R   t   sympy.polys.densearithR   t   sympy.polys.densetoolsR   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)   t   sympy.polys.polyclassesR*   t   sympy.polys.polyerrorsR+   R,   R-   R.   t   sympy.polys.specialpolysR/   t   sympy.polys.domainsR0   R1   R2   R3   t   sympy.polys.ringsR4   t   sympyR5   R6   R7   t   sympy.core.compatibilityR8   t	   sympy.abcR9   t   sympy.utilities.pytestR:   R?   t   to_denseRI   RJ   RK   RL   RM   RN   R>   R<   R=   R@   RB   RD   RE   RF   RG   RH   RO   RP   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   R^   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rm   Rp   Rq   Rt   Ru   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_densetools.pyt   <module>   sb   (â""7																			
			*		(	
										#			