ó
¡¼™\c           @   s:  d  Z  d d l m Z d d l m Z m Z m Z m Z m Z	 d d l
 m Z m Z 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 d d l m Z m Z d d l  m! Z! d d l" m# Z# d d	 l$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* d
 „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 e d „  ƒ Z3 d „  Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d „  Z< d „  Z= d „  Z> d „  Z? d „  Z@ d  „  ZA d! „  ZB d" „  ZC d# „  ZD d$ „  ZE d% „  ZF e d& „  ƒ ZG d' „  ZH d( S()   s@   Tests for the implementation of RootOf class and related tools. iÿÿÿÿ(   t   Poly(   t   rootoft   RootOft   CRootOft   RootSumt   _pure_key_dict(   t   MultivariatePolynomialErrort   GeneratorsNeededt   PolynomialError(   t   St   sqrtt   It   Rationalt   Floatt   Lambdat   logt   expt   tant   Functiont   Eqt   solvet   legendre_polyt   Integral(   t   raisest   slow(   t	   unchanged(   t   range(   t   at   bt   xt   yt   zt   rc          C   sÈ  t  t d ƒ d k s t ‚ t  t d ƒ d k s6 t ‚ t  t t j ƒ d k sT t ‚ t  t d d ƒ d k ss t ‚ t  t d d ƒ d k s’ t ‚ t  t d d ƒ d k s± t ‚ t  t d d ƒ d k sÐ t ‚ t  t d d t d d ƒ d t t d ƒ k s	t ‚ t  t d d t d d ƒ d t t d ƒ k sBt ‚ t  t d d t d d ƒ d t t d ƒ k s{t ‚ t  t d d t d d ƒ d t t d ƒ k s´t ‚ t  t d d t d d d t ƒ}  t |  t	 ƒ t
 k sôt ‚ t  t d d t d d d t ƒ}  t |  t	 ƒ t
 k s4t ‚ t  t d d t d d d t ƒ}  t |  t	 ƒ t
 k stt ‚ t  t d d t d d d t ƒ}  t |  t	 ƒ t
 k s´t ‚ t  t d t d d d t ƒd k sát ‚ t  t d t d d d t ƒd k st ‚ t  t d t d d d t ƒd k s;t ‚ t  t d t d d d t ƒd k sht ‚ t  t d t d d d t
 ƒd k s•t ‚ t  t d t d d d t
 ƒd k sÂt ‚ t  t d t d d d t
 ƒd k sït ‚ t  t d t d d d t
 ƒd k st ‚ t  t d t d t d d ƒ t  t d t d d ƒ k s`t ‚ t  t d t d t d d ƒ d k st ‚ t  t d t d t d d ƒ t  t d t d d ƒ k sÓt ‚ t  t d t d t d d ƒ t  t d t d d ƒ k st ‚ t  t d t d t d d ƒ t  t d t d d ƒ k s[t ‚ t  t d t d t d d ƒ t  t d t d d ƒ k sŸt ‚ t  t d t d t d d ƒ d k sÎt ‚ t  t d t d t d d	 ƒ t  t d t d d ƒ k st ‚ t  t d
 d t d d ƒ d k s=t ‚ t  t d
 d t d d ƒ d k sht ‚ t  t d
 d t d d ƒ d k s“t ‚ t  t d
 d t d d ƒ d k s¾t ‚ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t  t t t t ƒ d ƒ t k s¶t ‚ t  t t d t t ƒ d ƒ t t ƒ k sét ‚ t  t t d t t ƒ d ƒ t t ƒ k st ‚ t  t t d t t ƒ d ƒ t t d d ƒ k sTt ‚ t  t t d t t d t t d ƒ d k sŠt ‚ t t d „  ƒ t  t d t d d ƒ j t
 k sÄt ‚ d  S(   Ni    iÿÿÿÿi   i   i   iþÿÿÿt   radicalsiýÿÿÿiüÿÿÿi   c           S   s   t  d d ƒ S(   Ni    (   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   <lambda>N   t    c           S   s   t  d d ƒ S(   Ni   i    (   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   O   R#   c           S   s   t  t d t ƒ d ƒ S(   Ni    (   R   R    R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   Q   R#   c           S   s   t  t d t ƒ d ƒ S(   Ni   i    (   R   R    R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   R   R#   c           S   s   t  t t d ƒ S(   Ni    (   R   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   S   R#   c           S   s   t  t t ƒ d ƒ S(   Ni    (   R   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   U   R#   c           S   s   t  t d t t d ƒ d ƒ S(   Ni   i   i    (   R   R   R
   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   W   R#   c           S   s   t  t d t t d ƒ S(   Ni   i    (   R   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   X   R#   c           S   s   t  t d d d ƒ S(   Ni   i   iüÿÿÿ(   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   Z   R#   c           S   s   t  t d d d ƒ S(   Ni   i   iýÿÿÿ(   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   [   R#   c           S   s   t  t d d d ƒ S(   Ni   i   (   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   \   R#   c           S   s   t  t d d d ƒ S(   Ni   i   i   (   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   ]   R#   c           S   s   t  t d d t ƒ S(   Ni   i   (   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   ^   R#   c           S   s    t  t d t d t t d ƒ S(   Ni   i   i    (   R   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   h   R#   (   R   R   t   AssertionErrorR	   t   ZeroR   R
   t   Falset
   isinstanceR   t   TrueR   R   R   t   NotImplementedErrort
   IndexErrort
   ValueErrorR    R   R   t   is_commutative(   R    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf___new__   sv    9999%%%%--------D/DDDD/D++++(3296c          C   sV   t  t d t d d ƒ }  |  j s* t ‚ |  j t ƒ  k sB t ‚ t t d „  ƒ d  S(   Ni   i    c           S   s&   t  t t d t t d t ƒ d ƒ S(   Ni   i   i    (   R   R    R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   u   R#   (   R   R   t	   is_numberR$   t   free_symbolst   setR   R)   (   R    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_attributesm   s    c           C   s˜  t  t d t d d ƒ t  t d t d d ƒ k t k sB t ‚ t  t d t d d ƒ t  t d t d d ƒ k t k s„ t ‚ t  t d t d d ƒ t  t d t d d ƒ k t k sÆ t ‚ t  t d t d d ƒ t  t d t d d ƒ k t k st ‚ t  t d t d d ƒ t  t d t d d ƒ k t k sJt ‚ t  t d t d d ƒ t  t d t d d ƒ k t k sŒt ‚ t  t d t d d ƒ t  t d t d d ƒ k t k sÎt ‚ t  t d t d d ƒ t  t d t d d ƒ k t k st ‚ t  t d t d d ƒ t  t d t d d ƒ k t k sRt ‚ t  t d t d d ƒ t  t d t d d ƒ k t k s”t ‚ d  S(   Ni   i    i   i   (   R   R   R(   R$   R&   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf___eq__y   s    BBBBBBBBBc       
   C   sN  t  d ƒ }  t d t d } t | d ƒ } t | d ƒ } t | | ƒ t j k sZ t ‚ t | | ƒ t j k sx t ‚ t t | t ƒ s t ‚ t | d ƒ t j k s® t ‚ t | t j	 ƒ t j k sÏ t ‚ t | t
 ƒ t j k sí t ‚ t t | |  d ƒ ƒ st ‚ t | ƒ } x8 | D]0 } | j rt | | ƒ t j k sNt ‚ qqWt | d ƒ } x8 | D]0 } | j rht | | ƒ t j k s˜t ‚ qhqhWt d t d } t | ƒ } g  t d ƒ D]+ } | D] } t t | | ƒ | ƒ ^ qÑqÇt t t t t t t t t g	 k st ‚ t t | d ƒ d t j ƒ t k sJt ‚ d  S(   Nt   fi   i   i   i    (   R   R   R   R   R	   t   falseR$   t   trueR   t   InfinityR   R   t   is_realR   R&   R(   t   ImaginaryUnit(   R3   t   eqR    t   r1t   solt   st   it   j(    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf___eval_Eq__‡   s0    !	%	%;*c           C   s‚   t  t d t d d ƒ j t k s* t ‚ t  t d t d d ƒ j t k sT t ‚ t  t d t d d ƒ j t k s~ t ‚ d  S(   Ni   i    i   i   (   R   R   R7   R(   R$   R&   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_is_real¢   s    **c           C   s.   t  t d t d d ƒ j t k s* t ‚ d  S(   Ni   i    (   R   R   t
   is_complexR(   R$   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_is_complex¨   s    c           C   sL   t  t d t d d ƒ j t t ƒ t  t d t d d ƒ k sH t ‚ d  S(   Ni   i   i    (   R   R   t   subsR   R$   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_subs¬   s    c           C   sd   t  t d t d d ƒ j t ƒ d k s0 t ‚ t  t d t d d ƒ j t ƒ d k s` t ‚ d  S(   Ni   i   i    (   R   R   t   diffR$   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_diff°   s    0c          C   sœ  t  t d t d d ƒ j d d ƒ }  |  j t d ƒ ƒ sB t ‚ t  t d t d d ƒ j d d ƒ j ƒ  \ } } | j t d ƒ ƒ s t ‚ | j t d ƒ ƒ s¬ t ‚ t  t d t d d	 ƒ j d d ƒ j ƒ  \ } } | j t d ƒ ƒ sú t ‚ | j t d ƒ ƒ st ‚ t d
 t d t ƒ} g  | j	 ƒ  D] } t
 | j d ƒ ƒ ^ q7} | d d d d g k svt ‚ t  t d d t d d ƒ j d d ƒ } | j t d ƒ ƒ s¼t ‚ t  t d d t d d ƒ j d d ƒ j ƒ  \ } } | j t d ƒ ƒ st ‚ | j t d ƒ ƒ s)t ‚ t  t d d t d d	 ƒ j d d ƒ j ƒ  \ } } | j t d ƒ ƒ s{t ‚ | j t d ƒ ƒ s–t ‚ t  t d d t d d ƒ j d d ƒ j ƒ  \ } } | j t d ƒ ƒ sèt ‚ | j t d ƒ ƒ st ‚ t  t d d t d d
 ƒ j d d ƒ j ƒ  \ } } | j t d ƒ ƒ sUt ‚ | j t d ƒ ƒ spt ‚ t
 t  t d d	 t d
 t d d d ƒ j d ƒ ƒ d k s¶t ‚ d t d d t d d  t d! d" t d# d$ t d% d& t d' d( t d d) t d
 d* t d d+ t d	 d, t d- } t  | d ƒ j d	 ƒ j ƒ  \ } } t  | d	 ƒ j d	 ƒ j ƒ  \ }	 }
 | |	 k s–t ‚ | |
 k  s¨t ‚ | |
 k s»t ‚ t  t d. t ƒ d% ƒ } | j d	 ƒ | j d/ ƒ j d	 ƒ k s t ‚ t  t d	 d d d0 t ƒ} t  t d	 d d d0 t ƒ} | j d
 ƒ d1 t k sYt ‚ | j d
 ƒ d2 t k sxt ‚ t
 t  d
 t d d3 t d d t d	 d% d ƒ j d ƒ ƒ d4 k sÆt ‚ t d5 t d' d6 t d
 d7 t d	 d d ƒ }	 |	 j d	 ƒ st ‚ t
 t t d3 d8 t d9 d: t d d; t d d< t d# d= t d' d> t d
 d? t d	 d@ d ƒ j d	 ƒ ƒ dA k s”t ‚ t t t d
 d t d	 d d ƒ j d	 ƒ ƒ dB k  sÒt ‚ g  t d ƒ D]! } t t d t d | ƒ ^ qß} | d j ƒ  x | D]y } | j ƒ  } | j d	 ƒ } | | j ƒ  k sTt ‚ | j ƒ  | | j ƒ  k svt ‚ | | j | j Œ  k st ‚ qWd  S(C   Ni   i    t   ni   s   -1.2134116627622296341i   s   0.60670583138111481707s   1.45061224918844152650i   i   t   polysi   s   -0.86113631159405258s   -0.33998104358485626s   0.33998104358485626s   0.86113631159405258i   i   s   -1.84208596619025438271s   -0.351854240827371999559s   -1.709561043370328882010s   +1.709561043370328882010s   +1.272897223922499190910s   -0.719798681483861386681s   +0.719798681483861386681I       s   147.iñ i   iÌÝ: i
   iµÑ i	   izgñi   i`jHi   i lši   i èêi@äB i <¶ i ü i - i   i@   id   R!   g      ð¿g      ð?i   s   -0.976i`b iÀ  iT   i    i   iü  i@  iVš  i  i\‡ i€ã i‘e s   -3.4*Igš™™™™™Ù?(   R   R   t   evalft
   epsilon_eqR   R$   t   as_real_imagR   R(   t
   real_rootst   strRG   R&   R   R   t   _eval_evalfR   t   absR   t   _resett   _get_intervalt   funct   args(   t   realt   ret   imt   pR    t   rootsR9   R   R   t   ct   dt   r0R:   R=   t   riRG   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_evalfµ   st    '33.+7777F†$$-N3[%>4
c          C   s€   t  t d d t d d ƒ }  |  j ƒ  |  j ƒ  } t  t d d t d d ƒ }  |  j ƒ  |  j ƒ  } | | k s| t ‚ d  S(   Ni   i   i   (   R   R   RG   RQ   R$   (   R    R   R   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_evalf_caching_bug  s    

c           C   s–   t  t d t d ƒ j ƒ  t t d t d d d ƒ g k sF t ‚ t  t d t d ƒ j d t ƒ t t d t d d d ƒ g k s’ t ‚ d  S(   Ni   i   i   i   i    R!   (   R    R   RL   R   R$   R&   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_real_roots  s    F$c        	   C   s‚  t  t d t d ƒ j ƒ  t t d t d d d ƒ t d ƒ d t d ƒ t d t d ƒ d t d ƒ t d t t d t d d d ƒ t t d t d d d ƒ g k s¾ t ‚ t  t d t d ƒ j d t ƒ t t d t d d d ƒ t t d t d d d t ƒt t d t d d d t ƒt t d t d d d ƒ t t d t d d d ƒ g k s~t ‚ d  S(   Ni   i   i   i   i    R!   (	   R    R   t	   all_rootsR   R	   R
   R   R$   R&   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_all_roots!  s      +!c          C   s°   t  d t d t ƒ}  g  |  j ƒ  D] } | j d d ƒ ^ q" } x# | D] } t | t ƒ sG t ‚ qG Wg  | D] } t | j	 d ƒ ƒ ^ qm } | d d d d	 g k s¬ t ‚ d  S(
   Ni   RH   RG   i   i   s   -0.86113631159405258s   -0.33998104358485626s   0.33998104358485626s   0.86113631159405258(
   R   R   R(   RL   t   eval_rationalR'   R   R$   RM   RG   (   RW   R    RX   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_CRootOf_eval_rational3  s    +(c          C   só  t  d t  d }  t t t t t  ƒ ƒ } t |  | ƒ } t | t ƒ t k sU t ‚ t |  d | ƒ d t |  | ƒ k s t ‚ t t  d |  d | ƒ t d t  ƒ d t |  | ƒ k sÃ t ‚ t t t  d |  d | ƒ ƒ t t d t  ƒ d t |  | ƒ ƒ k st ‚ t	 t
 d „  ƒ t	 t d „  ƒ t |  t ƒ t |  t t  t t  ƒ ƒ ƒ k sdt ‚ t |  t ƒ t |  t t  t t  ƒ ƒ ƒ k s—t ‚ t t |  d t ƒt ƒ t k s¾t ‚ t |  ƒ d k sÖt ‚ t |  t t  t  ƒ ƒ d k sút ‚ t |  t t  t  d ƒ ƒ d k s"t ‚ t |  t t  d	 ƒ ƒ d k sFt ‚ t |  t t  d ƒ ƒ d
 k sjt ‚ t |  d t ƒj t k s‹t ‚ t |  t t  d	 t  t  d ƒ ƒ t d ƒ d k sÅt ‚ t |  t t  t t  t  d ƒ ƒ t d ƒ d t k st ‚ t t  d d	 t t  d t  d ƒ t  ƒ d
 k s:t ‚ t t  d t t t  d t  d ƒ t  ƒ d
 t k sut ‚ t t  d d	 t t  t t  d ƒ t  ƒ d t k s°t ‚ t t  d t t t  t t  d ƒ t  ƒ d t t k sït ‚ t t  d d	 t t  t t  ƒ ƒ d t ƒt d ƒ t d	 ƒ k s7t ‚ t t  d t t  t d t t  ƒ t t  d t  d	 t t  t t t  ƒ ƒ ƒ k s‘t ‚ t t d t  d t t  d	 t t  ƒ t t  d t  d	 t t  t t  t ƒ ƒ ƒ k sït ‚ d  S(   Ni   i   i   c           S   s   t  t d t t ƒ S(   Ni   (   R   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   O  R#   c           S   s   t  t d d d „  ƒ S(   Ni   i   c         S   s   |  S(   N(    (   R   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   P  R#   (   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"   P  R#   t   autoi    iþÿÿÿi   i   i   t	   quadraticiÿÿÿÿ(   R   R   R    R   R   R'   R(   R$   t   hashR   R   R+   R   R&   R,   R	   R   R   R   R   (   R3   t   gR<   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum___new__A  s<    ,BN33'$($$!:>7;;?E#7'c           C   sÆ   t  t d t d t t t t ƒ ƒ ƒ j t ƒ  k s< t ‚ t  t d t d t t t t t ƒ ƒ ƒ j t h k s| t ‚ t  t d t t	 t t t t t ƒ ƒ t ƒ j t t	 h k sÂ t ‚ d  S(   Ni   (
   R   R   R   R    R   R/   R0   R$   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_free_symbolsr  s    <@c          C   s!  t  t t t ƒ ƒ }  t t d t d |  ƒ t t d t d |  ƒ k t k sW t ‚ t t d t d |  ƒ t t d t d |  ƒ k t k s™ t ‚ t t d t d |  ƒ t t d t d |  ƒ k t k sÛ t ‚ t t d t d |  ƒ t t d t d |  ƒ k t k st ‚ d  S(   Ni   i   i   (   R   R   R   R   R(   R$   R   R&   (   R3   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum___eq__y  s
    BBBc          C   sË   t  t d d t ƒ }  t |  t  ƒ t k s2 t ‚ |  j ƒ  t t ƒ t t ƒ k s[ t ‚ t  t d t t t ƒ }  t |  t  ƒ t k s t ‚ |  j ƒ  t t	 t ƒ ƒ t t	 t ƒ ƒ k sÇ t ‚ d  S(   Ni   i   (
   R   R   R   R'   R(   R$   t   doitR   R   R
   (   t   rs(    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_doitƒ  s    )c          C   s§   t  t d d t ƒ }  |  j d d d t ƒ j t d ƒ ƒ sD t ‚ |  j d d d t ƒ j t d ƒ ƒ sq t ‚ t  t d t t t ƒ }  |  j ƒ  |  k s£ t ‚ d  S(	   Ni   i   RG   i   t   chops   1.0806046117362794348i   s   1.08060461173628(	   R   R   R   RI   R(   RJ   R   R$   R   (   Rl   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_evalf  s
    --c          C   sy   t  d t  d }  t t t t t  ƒ ƒ } t t t t t t  ƒ ƒ } t |  | ƒ j t  ƒ t |  | ƒ k su t ‚ d  S(   Ni   (   R   R   R    R   R   RE   R$   (   R3   Rg   t   h(    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_diffš  s    c          C   sº   t  d t  d }  t t t t t  ƒ ƒ } t d t d } t t t t t ƒ ƒ } t |  | ƒ j t d ƒ t |  | ƒ k s† t ‚ t |  | ƒ j t  t ƒ t | | ƒ k s¶ t ‚ d  S(   Ni   i   (   R   R   R    R   R   R   RC   R$   (   R3   Rg   t   Ft   G(    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_subs£  s    0c          C   sL  t  t d t d t t t t t ƒ ƒ d t d t d t d k sP t ‚ d t d d t d d t d }  t t t t d	 t d d d
 t d d d t d d d t d d t t ƒ ƒ ƒ } t  |  | ƒ j t ƒ d t d t ƒ d t t ƒ d t t ƒ t d t ƒ t d t ƒ d d k sHt ‚ d  S(   Ni   i   i   i¡   i   is   i   i   iËòÿÿi5  iq  i}   i   i   (   R   R   R   R   R$   R   R   RE   (   R3   Rg   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_rational®  s    M&Sc          C   sÁ   t  d t d t  d t d }  t t  d t t  ƒ d ƒ } t t  t t  ƒ ƒ } t t  d t | t  ƒ } t t  d t | t  ƒ } t |  | t  ƒ j ƒ  d | d | d g k s½ t ‚ d  S(	   Ni   i   i   i   i   i
   i   i~   (   R   R   R   R   R   R   t   as_ordered_termsR$   (   R3   Rg   Rp   R[   R:   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootSum_independentº  s    "c          C   sw   t  t d t d t ƒ j ƒ  }  g  t d ƒ D]! } t t d t d | ƒ ^ q. } t |  ƒ t | ƒ k ss t ‚ d  S(   Ni   i   (   R    R   R`   R   R   t	   frozensetR$   (   t   l1R=   t   l2(    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_issue_7876Æ  s    !4c          C   sp   t  d t d d ƒ }  t |  j ƒ  ƒ d k s6 t ‚ t  d t d d ƒ }  t |  j ƒ  ƒ d k sl t ‚ d  S(   Ni   i   i	   i
   (   R    R   t   lenR`   R$   (   R3   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_issue_8316Ì  s    c             sÃ  d d l  m ‰  ‡  f d †  }  |  t t d d t d d ƒ ƒ d k sQ t ‚ |  t t d ƒ ƒ d k ss t ‚ |  t d g d	 d g t ƒ ƒ d k s¢ t ‚ |  t t d	 d ƒ ƒ d k sÈ t ‚ |  t t d d ƒ ƒ d k sî t ‚ |  t t d d ƒ ƒ d k st ‚ |  t t d
 d ƒ ƒ d k s:t ‚ |  t t d
 d ƒ ƒ d k s`t ‚ |  t d d d	 g t ƒ ƒ d k sŠt ‚ |  t t d	 t d ƒ ƒ d k s´t ‚ |  t t d
 t d ƒ ƒ d k sÞt ‚ d „  } |  | d d d ƒ ƒ d
 k st ‚ |  | d d d ƒ ƒ d k s/t ‚ |  | d d d ƒ ƒ d k sSt ‚ |  | d d d
 ƒ ƒ d
 k swt ‚ |  | d d d
 ƒ ƒ d k s›t ‚ |  | d d d
 ƒ ƒ d k s¿t ‚ d  S(   Niÿÿÿÿ(   t   _imag_count_of_factorc            s7   t  g  |  j ƒ  d D] \ } } ˆ  | ƒ | ^ q ƒ S(   Ni   (   t   sumt   factor_list(   RW   R3   t   m(   R~   (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt
   imag_countÕ  s    i   i
   i   i   i    i   i   c         S   s)   t  t |  t | j t t | ƒ t ƒ S(   N(   R    R   RC   (   R:   t   r2RW   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   qã  s    iþÿÿÿ(   t   sympy.polys.rootoftoolsR~   R    R   R$   (   R‚   R„   (    (   R~   sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test__imag_countÓ  s(    2"/&&&&&***	$$$$$c          C   sX   t  t d d t d d d ƒ }  |  j ƒ  } |  j rN | j | j d k sT t ‚ d  S(   Ni   i   i   i    (   R   R   RQ   t   is_imaginaryt   axt   bxR$   (   R    R=   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_RootOf_is_imaginaryí  s    #c          C   sn   t  d d t  d }  t |  d ƒ j ƒ  } t |  d ƒ j ƒ  } | j | ƒ sU t ‚ | j | ƒ sj t ‚ d  S(   Ni   i   i   i    (   R   R   RQ   t   is_disjointR$   (   R9   t   irt   ii(    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_is_disjointó  s
    c              s¼   t  ƒ  ‰ t ˆ k t k s! t ‚ d ˆ k t k s9 t ‚ d ˆ t <t ˆ k sU t ‚ t ˆ k sg t ‚ ˆ t d k s} t ‚ t t ‡ f d †  ƒ ‡ f d †  ‰  t t ‡  f d †  ƒ d  S(   Ni   c              s   ˆ  d S(   Ni   (    (    (   RW   (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"     R#   c            s   d ˆ  |  <d  S(   Ni   (    (   t   k(   RW   (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   dont  s    c              s
   ˆ  d ƒ S(   Ni   (    (    (   R   (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyR"     R#   (   t   DR   R&   R$   R   R   t   KeyErrorR+   (    (    (   R   RW   sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_pure_key_dictû  s    	
c             så  t  j ƒ  g  t d ƒ D]% }  t  t d d t d |  ƒ ^ q ‰ g  ˆ D] }  |  j d ƒ ^ qI t d ƒ d t d ƒ d d	 t d t d ƒ d d	 t d g k s° t ‚ ˆ d
 j ƒ  g  ˆ D] }  |  j d d ƒ ^ qÅ t d ƒ d t d ƒ d d t d t d ƒ d d t d g k s/t ‚ t ˆ d
 j	 ƒ  j
 ƒ d k  sTt ‚ t ˆ d j	 ƒ  j
 ƒ d k  syt ‚ t ˆ d j	 ƒ  j ƒ d k  sžt ‚ t ˆ d j	 ƒ  j
 ƒ d k  sÃt ‚ t ˆ d j	 ƒ  j ƒ d k  sèt ‚ ˆ d
 j ƒ  g  ˆ D] }  |  j d d ƒ ^ qýt d ƒ d t d ƒ d d t d t d ƒ d d t d g k sgt ‚ t ˆ d
 j	 ƒ  j
 ƒ d k  sŒt ‚ t ˆ d j	 ƒ  j
 ƒ d k  s±t ‚ t ˆ d j	 ƒ  j ƒ d k  sÖt ‚ t ˆ d j	 ƒ  j
 ƒ d k  sût ‚ t ˆ d j	 ƒ  j ƒ d k  s t ‚ ˆ d
 j ƒ  g  ˆ D] }  |  j d d ƒ ^ q5t d ƒ d t d ƒ d d t d t d ƒ d d t d g k sŸt ‚ t t ˆ d
 j	 ƒ  j
 ƒ ˆ d
 ƒ d k  sÒt ‚ t t ˆ d j	 ƒ  j
 ƒ ˆ d ƒ j ƒ  d k  st ‚ t t ˆ d j	 ƒ  j ƒ ˆ d ƒ j ƒ  d k  sDt ‚ t t ˆ d j	 ƒ  j
 ƒ ˆ d ƒ j ƒ  d k  s}t ‚ t t ˆ d j	 ƒ  j ƒ ˆ d ƒ j ƒ  d k  s¶t ‚ ˆ d
 j ƒ  g  ˆ D] }  |  j d d ƒ ^ qËt d ƒ d t d ƒ d d t d t d ƒ d d t d g k s5t ‚ t t ˆ d
 j	 ƒ  j
 ƒ ˆ d
 ƒ d k  sht ‚ t t ˆ d j	 ƒ  j
 ƒ ˆ d ƒ j ƒ  d k  s¡t ‚ t t ˆ d j	 ƒ  j ƒ ˆ d ƒ j ƒ  d k  sÚt ‚ t t ˆ d j	 ƒ  j
 ƒ ˆ d ƒ j ƒ  d k  st ‚ t t ˆ d j	 ƒ  j ƒ ˆ d ƒ j ƒ  d k  sLt ‚ ˆ d
 j ƒ  g  ˆ D] }  |  j d ƒ ^ qa‰  g  ˆ  D] }  t |  ƒ ^ qƒd d  d! g k s°t ‚ t ‡  ‡ f d" †  t t ˆ  ƒ ƒ Dƒ ƒ sát ‚ d  S(#   Ni   i
   i   gš™™™™™¹?i   iÜ   i   i   i%  i    g-Cëâ6?iË  i   iµS i   i   iÑ  i4N  i‘  RG   iÙ iVâ i3™ i    i;e g{®Gáz„?i“ i   i'±Sgü©ñÒMbP?s   -0.10s   0.05 - 3.2*Is   0.05 + 3.2*Ic         3   s;   |  ]1 } t  ˆ  | ˆ | ˆ | j ƒ  ƒ d  k  Vq d S(   g{®Gáz„?N(   RO   RG   (   t   .0R=   (   R   t   t(    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pys	   <genexpr>:  s    (   R   t   clear_cacheR   R   Rb   R	   R   R$   RP   RQ   t   dxt   dyRO   RG   t   eval_approxRM   t   allR|   (   R=   (    (   R   R•   sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_eval_approx_relative	  sZ    
8O"'(%%%%%"'(%%%%%"'(39999"'(39999"c          C   sO   t  t d t d d ƒ }  t t t d t f ƒ } t t |  | ƒ sK t ‚ d  S(   Ni   i   i    (   R   R   R   R   R   R   R$   (   R    RW   (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   test_issue_15920=  s    N(I   t   __doc__t   sympy.polys.polytoolsR    R…   R   R   R   R   R   R‘   t   sympy.polys.polyerrorsR   R   R   t   sympyR	   R
   R   R   R   R   R   R   R   R   R   R   R   R   t   sympy.utilities.pytestR   R   t   sympy.core.exprR   t   sympy.core.compatibilityR   t	   sympy.abcR   R   R   R   R   R    R-   R1   R2   R?   R@   RB   RD   RF   R]   R^   R_   Ra   Rc   Rh   Ri   Rj   Rm   Ro   Rq   Rt   Ru   Rw   R{   R}   R†   RŠ   RŽ   R“   R›   Rœ   (    (    (    sA   lib/python2.7/site-packages/sympy/polys/tests/test_rootoftools.pyt   <module>   sL   (^.	T							\	
				1		
													4