ó
¡¼™\c           @   sî  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 d d l 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 d d l m Z m  Z  m! Z! d d l" m# Z# d d l$ m% Z% d d	 l& m' Z' d d
 l( m) Z) d d l* m+ Z+ m, Z, m- Z- e Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d „  Z< d „  Z= e d „  ƒ Z> d „  Z? d „  Z@ d S(   s7   Tests for computational algebraic number field theory. iÿÿÿÿ(   t   St   Rationalt   Symbolt   Polyt   sqrtt   It   oot   Tuplet   expandt   pit   cost   sint   exp(   t   raisest   slow(   t   range(	   t   minimal_polynomialt   primitive_elementt   is_isomorphism_possiblet   field_isomorphism_pslqt   field_isomorphismt   to_number_fieldt   AlgebraicNumbert   isolatet   IntervalPrinter(   t   IsomorphismFailedt   NotAlgebraict   GeneratorsError(   t   DMP(   t   QQ(   t   rootof(   t   degree(   t   xt   yt   zc          C   sÖ  t  d t ƒ t d k s t ‚ t  d t ƒ t d k s> t ‚ t  d t ƒ t k sY t ‚ t  d t ƒ t d k sx t ‚ t  d t ƒ t d k s— t ‚ t  t d ƒ t ƒ t d d k sÀ t ‚ t  t d ƒ t ƒ t d d k sé t ‚ t  t d ƒ t ƒ t d d k st ‚ t  d t d ƒ t ƒ t d d	 k s?t ‚ t  d
 t d ƒ t ƒ t d d k slt ‚ t  d t d ƒ t ƒ t d d k s™t ‚ t  d t d ƒ d
 t ƒ t d d t d k sÒt ‚ t  d
 t d ƒ d t ƒ t d d t d k st ‚ t  d t d ƒ d t ƒ t d d t d k sDt ‚ t  d t d ƒ d
 t ƒ t d d t d k s}t ‚ t  d
 t d ƒ d t ƒ t d d t d k s¶t ‚ t  d t d ƒ d t ƒ t d d t d k sït ‚ t  t d t d ƒ ƒ t ƒ t d d t d d k s.t ‚ t  t t t d ƒ ƒ t ƒ t d	 d t d d k smt ‚ t  d t t d t ƒ t ƒ t d d t d d	 t d k s¶t ‚ t  t d ƒ t d
 ƒ t ƒ t d d t d d k sõt ‚ t  t d ƒ t d
 ƒ t d ƒ t ƒ t d d t d d t d k sFt ‚ d d t d ƒ d t d
 ƒ }  t  d |  t ƒ d t d d t d
 d t d d t d k s³t ‚ t  d t |  ƒ t ƒ d t d	 d t d d t d d t d d k st ‚ t t d „  ƒ t t d „  ƒ t t d „  ƒ t  t d ƒ ƒ j t d d ƒ sat ‚ t  t d ƒ t ƒ t d d k sŠt ‚ t  t d ƒ d t ƒt	 t d d ƒ k s¼t ‚ t  t d ƒ t d t ƒt	 t d d ƒ k sñt ‚ t  t d ƒ t d t d t
 ƒt	 t d d ƒ k s,t ‚ t t d ƒ ƒ }  t t d
 ƒ ƒ } t  |  t ƒ t d d k sst ‚ t  | t ƒ t d d
 k s–t ‚ t  |  t d t ƒt	 t d d ƒ k sÅt ‚ t  | t d t ƒt	 t d d
 ƒ k sôt ‚ t  t |  d d  ƒ t ƒ d t d d! t d d" k s5t ‚ t  t | d d  ƒ t ƒ d t d d# t d d$ k svt ‚ t d ƒ d
 d t t d ƒ d
 d ƒ }  } d% t d	 d& t d d' t d d( t d d) t d
 d* t d d+ t d, } t  t |  ƒ t t |  ƒ ƒ t ƒ | k s,t ‚ t  t | ƒ t t | ƒ ƒ t ƒ | k s]t ‚ t  |  t d
 d ƒ t ƒ d- t d d. t d d/ k st ‚ t d0 ƒ } t  | t ƒ d1 t d d k sÐt ‚ d t d ƒ t d
 ƒ } t  | t ƒ } | t d d t d
 d t d d2 t d	 k s3	t ‚ d d t d ƒ t d
 ƒ } t  | t ƒ } | d	 t d d2 t d
 d t d d t d k sž	t ‚ t d t d ƒ d t d
 ƒ t d ƒ d
 ƒ t d d
 ƒ } t  | t ƒ } | t d	 d	 t d d3 t d d4 t d d5 t d d6 t d
 d7 t d d8 t d9 k sV
t ‚ t d t d ƒ d t d
 ƒ t d ƒ d
 ƒ } t  | t ƒ } | t d	 d: t d d; t d d< t d d= t d d> t d
 d? t d d@ t dA k st ‚ t  t dB ƒ t ƒ t d k s&t ‚ d t d ƒ }  t  |  t d ƒ |  d
 t ƒ t d dC t d k sst ‚ d d t d ƒ t d
 ƒ } t  | t d t
 ƒd	 t d d2 t d
 d t d d t d k sÞt ‚ d d t d ƒ t d
 ƒ } t  | t d t
 ƒt d d t d
 d t d d t d k sEt ‚ t  d t d ƒ t t d t
 ƒt d d t d
 k s„t ‚ t  d d t d ƒ d t d t
 ƒt d d k s¿t ‚ t  t d ƒ t t d t d ƒ t d t
 ƒt d dD t d d k st ‚ t  t t dE t j t ƒ ƒt t k s>t ‚ t j t t d ƒ d ƒ } t  t t dE | ƒt t k s€t ‚ t  t t dE t ƒt d d k s©t ‚ t  t t dE dF ƒt d d k sÒt ‚ d  S(G   Niùÿÿÿi   iÿÿÿÿi   i    i   i   i   i   i   i-   i   i`   i   i	   i   i/   i
   i1   i%   i   i0   i   iˆ  iÐ  id  c           S   s   t  t t ƒ S(   N(   R   R   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   <lambda>K   t    c           S   s   t  d t t ƒ S(   Ni   (   R   R!   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   L   R$   c           S   s   t  t d ƒ t ƒ S(   Ni   (   R   R   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   M   R$   t   polyst   composei   iD   iA  iˆ   i  iQ   iÜ  i¸  itX  iðö  ix{  iÐä i.( iÙ  i¼ igö
s”   
        -1/(800*sqrt(-1/240 + 1/(18000*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)) + 2*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)))i@  i   i8   iÀ  ià  iÀ  iÀ  i   iÀ  i   iÀÍ i Ûi ø•&I @r   I €g=   I  <C^   I  <V   s(   -sqrt(5)/2 - 1/2 + (-sqrt(5)/2 - 1/2)**2iÆ   i   t   domains   QQ(y)(   R   R    t   AssertionErrorR   R   R   R   t   dummy_eqt   TrueR   t   FalseR   t   QR    R   R   R   t   algebraic_field(   t   at   bt   ft   eqt   ext   mpt   pt   K(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minimal_polynomial$   s¢    )))---999999??I?N"HR))25;##//AA/V11=	':>?j2j%=MI?;().%)c          C   sl   d t  d d t  d ƒ d t  d ƒ t d ƒ d
 ƒ }  t |  t ƒ } | j t d ƒ d	 k sh t ‚ d  S(   Ni   i	   i   i   i   i
   i   i   läÿÿÿ    \!b1")XQ+z³>ˆpùÀH¬.‚gÕ>¨tJü4"*v ~ùb]—ìßfit l       ©7§3M“e'(   R   R    R   R    t   coeffR(   (   R4   R3   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minimal_polynomial_hi_precš   s    :c          C   s³  d d l  m }  m } | d d t d ƒ d t d ƒ d ƒ } t | t d d ƒ t ƒ } | t d d t d d t d d	 t d
 k s˜ t ‚ | d t d ƒ d t d ƒ t d ƒ d ƒ } t | t d d ƒ t ƒ } | t d d t d d t d d t d d t d d t d d t d d t d k sPt ‚ |  g  t d d ƒ D] } t | ƒ ^ qcŒ  } t | t ƒ } | j	 i d t 6ƒ d k s¯t ‚ d  S(   Niÿÿÿÿ(   t   Addt   expand_multinomiali   i   i   i   i   iv   iô   i)  i   i   i8   i   iÀ  ià  iÀ  iÀ  i   iÀ  i   i    lûÿÿÿ   >/&Î5> (
   t   sympyR9   R:   R   R   R   R    R(   R   t   subs(   R9   R:   R4   R3   t   i(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minimal_polynomial_sq¡   s    ,:2j.c             s¤
  t  d ƒ }  t |  d t ƒ } | d t d d t d k sE t ‚ t t t t d ƒ t ƒ t d d k sv t ‚ t t t d	 ƒ t d ƒ t ƒ } | d
 t d d t d d t d d t d d t d d t d d k só t ‚ t t	 t d	 ƒ t d ƒ t ƒ } | d t d d t d d t d d t d d t d d t d k slt ‚ t t t t d	 ƒ t d ƒ t ƒ } | 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 d& t d' k s-t ‚ t t t d	 ƒ t d ƒ t ƒ } | d
 t d d t d d t d d t d d t d d t d d k sªt ‚ t t	 t d	 ƒ t d ƒ t ƒ } | d t d d t d d t d d t d d t d d t d k s#t ‚ t t t t d	 ƒ t d ƒ t ƒ } | 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 d& t d' k sät ‚ t t d t t d	 ƒ t ƒ } | t d t d t d t d t d t d k sCt ‚ t t d t t d( ƒ t ƒ } | t d t d	 t d t d t d t d k s¢t ‚ t t	 d t d	 ƒ t ƒ } | d t d d t d d t d k sñt ‚ t t d t d	 ƒ t ƒ } d t	 d t d	 ƒ d	 d t	 t d	 ƒ d t	 d t d	 ƒ ‰  t ˆ  t ƒ } | t d d t d t d k s‹t ‚ t d) d t	 t d	 ƒ t ƒ t d d t d t d k sÐt ‚ t t d t d( ƒ t ƒ d* t d d+ t d d, t d d- t d d k s)t ‚ t t d t d. ƒ t ƒ d t d d t d d t d k srt ‚ t t	 t d( ƒ t ƒ d t d d t d d t d d t d k sÃt ‚ t
 t d t d d d/ ƒ ‰  t ˆ  t ƒ } | t d d t d k st ‚ t ˆ  d t ƒ } | t d d t d d	 t d k sTt ‚ t t t t d ƒ t ƒ t d t d k s‰t ‚ t t t t d ƒ t ƒ t d d k sºt ‚ t t t t d ƒ t ƒ t d t d d k sót ‚ t t t t d ƒ t ƒ t d t d d k s,t ‚ t t t t d ƒ t ƒ t d t d t d t d d k sut ‚ t t t d ƒ t ƒ d t d d0 t d d1 t d d k s¾t ‚ t t t d ƒ t ƒ d2 t d d3 t d d3 t d d4 t d d5 t d d k s	t ‚ d t d d ƒ t t d d ƒ t t ƒ ‰  t ˆ  t ƒ t d d k sp	t ‚ t t d6 „  ƒ t t d7 „  ƒ t t d8 „  ƒ d d9 d: t d ƒ d t d ƒ t t d ƒ d ƒ d; t d ƒ t t d ƒ d ƒ d d ‰  t t ‡  f d< †  ƒ t d d t d d ƒ ƒ t d d t d d ƒ ƒ t d ƒ ‰  t ˆ  t ƒ } t | ƒ d= k rš
| j i d/ t 6ƒ d> k s 
t ‚ d  S(?   Ns”   
        -1/(800*sqrt(-1/240 + 1/(18000*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)) + 2*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)))i   i@  i   i€»  i? i   i   i   i   i   i ø  i
   i ] i€œ i   i`Ã i   i i‘o  i@   i   i°  i0  iÈ  iè   iï   i   i	   i   i+   iF   ia   i~   iÓ   iÔ   i%   iŽ   i   i   iÿÿÿÿi   iÀ  ià   i    i   i    i`   i$   i   i   iÐ  iÜ   c           S   s   t  t t t d ƒ ƒ t ƒ S(   Ni   (   R   R
   R	   R   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   í   R$   c           S   s   t  t t t d ƒ ƒ t ƒ S(   Ni   (   R   R   R	   R   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   î   R$   c           S   s!   t  t t t t d ƒ ƒ t ƒ S(   Ni   (   R   R   R   R	   R   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   ï   R$   i`sÿÿi   i   c              s   t  ˆ  t ƒ S(   N(   R   R    (    (   R2   (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   ô   R$   i0   I@lÂ üÿÿÿ(   R    R   R    R(   R   R   R	   R   R   R
   R   R   R   R   t   ZeroDivisionErrorR   R<   (   R1   R3   (    (   R2   sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minpoly_compose®   sx    	&1#W#S'š#W#S'š!>!>2D*E?IQ".5199IIK.#50Bc          C   sS   d d l  m }  |  t d d ƒ} t | t ƒ } | d t d d k sO t ‚ d  S(   Niÿÿÿÿ(   t	   nsimplifyt	   toleranceg•Ö&è.>l   oDà!ò|S0o6é0"– im   l                    8¯6éù9V_jp©)ïA‹+üDGZ  (   t   sympy.simplify.simplifyRA   R	   R   R    R(   (   RA   t   rR3   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minpoly_issue_7113û   s
    c          C   sH   d t  d d ƒ d t  d d ƒ }  t |  t ƒ t d k sD t ‚ d  S(   Niÿÿÿÿi   i   i   (   R   R   R    R(   (   R2   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minpoly_issue_7574  s    %c       	   C   sÜ  t  t d ƒ g t ƒ t d d d g f k s5 t ‚ t  t d ƒ t d ƒ g t ƒ t d d t d d d d g f k s‚ t ‚ t  t d ƒ g t d t ƒt t d d ƒ d g f k sÃ t ‚ t  t d ƒ t d ƒ g t d t ƒt t d d t d d ƒ d d g f k st ‚ t  t d ƒ g t d t ƒt d d d g d d g g f k sct ‚ t  t d ƒ t d ƒ g t d t ƒt d d t d d d d g t d d ƒ d t d	 d ƒ d g t d d ƒ d t d
 d ƒ d g g f k sýt ‚ t  t d ƒ g t d t d t ƒt t d d ƒ d g d d g g f k sPt ‚ t  t d ƒ t d ƒ g t d t d t ƒt t d d t d d ƒ d d g t d d ƒ d t d	 d ƒ d g t d d ƒ d t d
 d ƒ d g g f k söt ‚ t  t d ƒ g d t ƒt t d d ƒ d g f k s4t ‚ t t d „  ƒ t t d „  ƒ t	 t d t d ƒ d ƒ t	 t d t d ƒ d ƒ }  } t  |  | t	 g t ƒ t d d t d d d d d g f k sØt ‚ d  S(   Ni   i   i   i   i
   R%   R2   i    i	   i   c           S   s   t  g  t d t ƒS(   NR2   (   R   R    R+   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#      R$   c           S   s   t  g  t d t ƒS(   NR2   (   R   R    R*   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   !  R$   iþÿÿÿi   (
   R   R   R    R(   R*   R   R,   R   t
   ValueErrorR   (   R.   R/   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_primitive_element	  s*    5JASD$B4P*B:>=c       
      s  t  t ƒ ‰  t  t t d ƒ ƒ ‰ t t ‡  ‡ f d †  ƒ t  t d ƒ ƒ ‰  t  t d ƒ ƒ ‰ t  t d ƒ ƒ }  t  t d ƒ t d ƒ ƒ } t  t d ƒ t d ƒ t d ƒ ƒ } t ˆ  ˆ  ƒ d d g k sÔ t ‚ t ˆ  ˆ ƒ d  k sï t ‚ t ˆ  |  ƒ d  k s
t ‚ t ˆ  | ƒ t d d ƒ d t d d ƒ d g k sDt ‚ t ˆ  | ƒ t d d ƒ d t d d ƒ d t d	 d
 ƒ d g k st ‚ t ˆ ˆ  ƒ d  k s¨t ‚ t ˆ ˆ ƒ d d g k sÉt ‚ t ˆ |  ƒ d  k sät ‚ t ˆ | ƒ t d d ƒ d t d d ƒ d g k st ‚ t ˆ | ƒ t d d ƒ d t d d ƒ d t d d ƒ d t d d ƒ d g k swt ‚ t |  ˆ  ƒ d  k s’t ‚ t |  ˆ ƒ d  k s­t ‚ t |  |  ƒ d d g k sÎt ‚ t |  | ƒ d  k sét ‚ t |  | ƒ t d d ƒ d t d d ƒ d t d d ƒ d t d d ƒ d g k sBt ‚ t | ˆ  ƒ d  k s]t ‚ t | ˆ ƒ d  k sxt ‚ t | |  ƒ d  k s“t ‚ t | | ƒ d d g k s´t ‚ t | | ƒ t d d ƒ d t d d ƒ d t d d ƒ d t d d ƒ d g k st ‚ t | ˆ  ƒ d  k s(t ‚ t | ˆ ƒ d  k sCt ‚ t | |  ƒ d  k s^t ‚ t | | ƒ d  k syt ‚ t | | ƒ d d g k sšt ‚ t  d t d ƒ d t d ƒ d ƒ } t | | ƒ t d d ƒ d t d d ƒ d t d d
 ƒ d t d d
 ƒ d g k st ‚ d  S(   Ni   c              s   t  ˆ  ˆ ƒ S(   N(   R   (    (   R.   R/   (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   +  R$   i   i   i   i    i	   iP   i;   i   i   i€  iC   i@  i)  i    i9  iG   iy  iÕ  i%  i   i   i‹   i[  iù  iûÿÿÿ(	   R   R   R   R   t   NotImplementedErrorR   R(   t   NoneR,   (   t   ct   dt   eR0   (    (   R.   R/   sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_field_isomorphism_pslq'  sP    &!:F!:J!J!J!(c          C   s  t  d t d ƒ ƒ d g k s$ t ‚ t  t t d ƒ t t d ƒ d ƒ d d g k s] t ‚ t  t t d ƒ t t d ƒ d ƒ d d g k s— t ‚ t  t t d ƒ t t d ƒ d ƒ d d g k sÑ t ‚ t  t t d ƒ t t d ƒ d ƒ d d g k st ‚ t  d t t d ƒ d d t t d ƒ d ƒ t d ƒ d d g k s[t ‚ t  d t t d ƒ d d t t d ƒ d ƒ t d ƒ d d g k s«t ‚ t  d t t d ƒ d d	 t t d ƒ d ƒ t d ƒ d d g k sût ‚ t  d t t d ƒ d d	 t t d ƒ d ƒ t d ƒ d d g k sJt ‚ t  d t t d ƒ d d
 d t t d ƒ d ƒ t d ƒ d d
 g k st ‚ t  d t t d ƒ d d
 d t t d ƒ d ƒ t d ƒ d d
 g k sñt ‚ t  d t t d ƒ d d
 d	 t t d ƒ d ƒ t d ƒ d d
 g k sEt ‚ t  d t t d ƒ d d
 d	 t t d ƒ d ƒ t d ƒ d d
 g k s˜t ‚ t t d ƒ t d ƒ ƒ }  t t d ƒ t d ƒ ƒ } t t d ƒ t d ƒ ƒ } t t d ƒ t d ƒ ƒ } t d ƒ d t d ƒ t d ƒ d t d ƒ g } t d ƒ d t d ƒ t d ƒ d t d ƒ g } t t d ƒ ƒ } t | |  ƒ t k st ‚ t | | ƒ t k s¸t ‚ t | | ƒ t k sÓt ‚ t | | ƒ t k sît ‚ t  | |  d t ƒ| k st ‚ t  | | d t ƒ| k s0t ‚ t  | | d t ƒ| k sQt ‚ t  | | d t ƒ| k srt ‚ t  | |  d t ƒ| k s“t ‚ t  | | d t ƒ| k s´t ‚ t  | | d t ƒ| k sÕt ‚ t  | | d t ƒ| k söt ‚ t t d ƒ ƒ } t | |  ƒ t k s$t ‚ t | | ƒ t k s?t ‚ t | | ƒ t k sZt ‚ t | | ƒ t k sut ‚ t  | |  d t ƒ| k s–t ‚ t  | | d t ƒ| k s·t ‚ t  | | d t ƒ| k sØt ‚ t  | | d t ƒ| k sùt ‚ t  | |  d t ƒ| k st ‚ t  | | d t ƒ| k s;t ‚ t  | | d t ƒ| k s\t ‚ t  | | d t ƒ| k s}t ‚ t d ƒ d t d ƒ t d ƒ d t d ƒ g } t d ƒ d t d ƒ t d ƒ d t d ƒ g } t t d ƒ ƒ } t | |  ƒ t k st ‚ t | | ƒ t k s+t ‚ t | | ƒ t k sFt ‚ t | | ƒ t k sat ‚ t  | |  d t ƒ| k s‚t ‚ t  | | d t ƒ| k s£t ‚ t  | | d t ƒ| k sÄt ‚ t  | | d t ƒ| k såt ‚ t  | |  d t ƒ| k s	t ‚ t  | | d t ƒ| k s'	t ‚ t  | | d t ƒ| k sH	t ‚ t  | | d t ƒ| k si	t ‚ t t d ƒ ƒ } t | |  ƒ t k s—	t ‚ t | | ƒ t k s²	t ‚ t | | ƒ t k sÍ	t ‚ t | | ƒ t k sè	t ‚ t  | |  d t ƒ| k s	
t ‚ t  | | d t ƒ| k s*
t ‚ t  | | d t ƒ| k sK
t ‚ t  | | d t ƒ| k sl
t ‚ t  | |  d t ƒ| k s
t ‚ t  | | d t ƒ| k s®
t ‚ t  | | d t ƒ| k sÏ
t ‚ t  | | d t ƒ| k sð
t ‚ t d ƒ d t d ƒ t d ƒ d t d ƒ g } t d ƒ d t d ƒ t d ƒ d t d ƒ g } t d t d ƒ d ƒ } t | |  ƒ t k st ‚ t | | ƒ t k s¨t ‚ t | | ƒ t k sÃt ‚ t | | ƒ t k sÞt ‚ t  | |  d t ƒ| k sÿt ‚ t  | | d t ƒ| k s t ‚ t  | | d t ƒ| k sAt ‚ t  | | d t ƒ| k sbt ‚ t  | |  d t ƒ| k sƒt ‚ t  | | d t ƒ| k s¤t ‚ t  | | d t ƒ| k sÅt ‚ t  | | d t ƒ| k sæt ‚ t d t d ƒ d t d ƒ d ƒ } t d ƒ d t d ƒ t d ƒ d t d ƒ g } t d ƒ d t d ƒ t d ƒ d t d ƒ g } t d ƒ d t d ƒ t d ƒ d t d ƒ g }	 t d ƒ d t d ƒ t d ƒ d t d ƒ g }
 t | |  ƒ t k sõt ‚ t | | ƒ t k st ‚ t | | ƒ t k s+t ‚ t | | ƒ t k sFt ‚ t  | |  d t ƒ| k sgt ‚ t  | | d t ƒ| k sˆt ‚ t  | | d t ƒ|	 k s©t ‚ t  | | d t ƒ|
 k sÊt ‚ t  | |  d t ƒ| k sët ‚ t  | | d t ƒ| k st ‚ t  | | d t ƒ|	 k s-t ‚ t  | | d t ƒ|
 k sNt ‚ t t d ƒ ƒ } t t d ƒ ƒ } t t d ƒ ƒ } t | | ƒ t k sŸt ‚ t | | ƒ t k sºt ‚ t | |  ƒ t k sÕt ‚ t  t d ƒ t d ƒ d t ƒd  k st ‚ t  t d ƒ t d ƒ d t ƒd  k s/t ‚ t  t d ƒ t d ƒ d t ƒd  k s\t ‚ t  t d ƒ t d ƒ d t ƒd  k s‰t ‚ d  S(   Ni   i   i    iþÿÿÿi   i   i   i#   iûÿÿÿi   i   i	   t   fasti   i!   i   i1   (
   R   R   R(   R   R    R   R   R*   R+   RJ   (   R4   t   qRD   t   st
   pos_coeffst
   neg_coeffsR.   t   pos_1_coeffst   neg_5_coeffst   pos_5_coeffst   neg_1_coeffsR/   RK   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_field_isomorphism[  sî    $9::;OPPOPQQP33!!!!!!!!!!!!!!!!33!!!!!!!!!!!!!!!!44!!!!!!!!(3333!!!!!!!!---c          C   s2  t  t d ƒ ƒ t t d ƒ ƒ k s* t ‚ t  t d ƒ t d ƒ g ƒ t t d ƒ t d ƒ ƒ k sj t ‚ t t d ƒ t d ƒ t d ƒ d t d ƒ t d ƒ d t d ƒ g ƒ }  t  t d ƒ t d ƒ t d ƒ ƒ |  k sç t ‚ t  t d ƒ t t d ƒ t d ƒ ƒ ƒ |  k st ‚ t t d „  ƒ d  S(   Ni   i   i   i    i	   c           S   s   t  t d ƒ t d ƒ ƒ S(   Ni   i   (   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#     R$   (   R   R   R   R(   R    R   R   (   R.   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_to_number_fieldý  s    *=L17c          C   s—  t  d d t d ƒ }  } t | d t  ƒ} | j t t d ƒ t d ƒ g t ƒ k s] t ‚ | j | k sr t ‚ | j d  k s‡ t ‚ | j
 |  k sœ t ‚ | j s« t ‚ | j t k sÀ t ‚ | j ƒ  t d ƒ t d ƒ g k sê t ‚ | j ƒ  t d ƒ t d ƒ g k st ‚ t | d t  d d ƒ} | j t t d ƒ t d ƒ g t ƒ k s\t ‚ | j | k sqt ‚ | j t d ƒ k sŒt ‚ | j
 |  k s¡t ‚ | j s°t ‚ | j t k sÅt ‚ t | d t  d t d ƒ ƒ} | j t t d ƒ t d ƒ g t ƒ k st ‚ | j | k s(t ‚ | j t d ƒ k sCt ‚ | j
 |  k sXt ‚ | j sgt ‚ | j t k s|t ‚ t t d ƒ g  ƒ j t g  t ƒ k s©t ‚ t t d ƒ d ƒ j t g  t ƒ k sÖt ‚ t t d ƒ d ƒ j t g  t ƒ k st ‚ t t d ƒ d g ƒ j t t d ƒ g t ƒ k s<t ‚ t t d ƒ t d ƒ d g ƒ j t t d d ƒ g t ƒ k s‚t ‚ t t d ƒ d	 d g ƒ j t t d	 ƒ t d ƒ g t ƒ k sÇt ‚ t t d ƒ t d	 ƒ d
 t d ƒ d g ƒ j t t d	 d
 ƒ t d d ƒ g t ƒ k s&t ‚ t t d ƒ d d d g ƒ j t t d ƒ t d ƒ g t ƒ k snt ‚ t t | d t  ƒd d g ƒ } | j t t d ƒ t d ƒ g t ƒ k s¿t ‚ | j | k sÔt ‚ | j d  k sét ‚ | j
 |  k sþt ‚ | j st ‚ | j t k s"t ‚ | j ƒ  t d ƒ t d ƒ g k sLt ‚ | j ƒ  t d ƒ t d ƒ g k svt ‚ t |  | f d d g ƒ } | j t t d ƒ t d ƒ g t ƒ k sÁt ‚ | j | k sÖt ‚ | j d  k sët ‚ | j
 |  k s t ‚ | j st ‚ | j t k s$t ‚ t t |  ƒ | f d d g ƒ } | j t t d ƒ t d ƒ g t ƒ k sut ‚ | j | k sŠt ‚ | j d  k sŸt ‚ | j
 |  k s´t ‚ | j sÃt ‚ | j t k sØt ‚ t t d ƒ ƒ j t t d ƒ t d ƒ g t ƒ k st ‚ t t d ƒ ƒ j t t d ƒ t d ƒ g t ƒ k sQt ‚ t t d ƒ ƒ } t t d ƒ ƒ } | | k s‡t ‚ t t d ƒ d t  ƒ} t t d ƒ d t  ƒ} | | k sÉt ‚ | | k sÛt ‚ t t d ƒ d d g ƒ } t t d ƒ d d g ƒ } | | k r3| t d ƒ d k s9t ‚ | t  k t k r]| t  k t k sct ‚ t t d ƒ d d g ƒ } t t d ƒ d d g d t ƒ} | j t  ƒ t t  ƒ k sÀt ‚ | j ƒ  t t ƒ k sÞt ‚ | j ƒ  t d ƒ k süt ‚ | j t  ƒ t  k s	t ‚ | j ƒ  t d ƒ k s5	t ‚ | j t  ƒ t  k sP	t ‚ t t d ƒ d d g ƒ } t t d ƒ d d g d t ƒ} | j ƒ  } | t d | j d ƒ k s»	t ‚ | j t  ƒ t d t  d ƒ k sä	t ‚ | j ƒ  t d t d ƒ k s

t ‚ | j ƒ  d t d ƒ d k s0
t ‚ | j t  ƒ d t  d k sS
t ‚ | j ƒ  d t d ƒ d k sy
t ‚ | j t  ƒ d t  d k sœ
t ‚ t t d ƒ ƒ } t t d ƒ ƒ } | j | j k oò
t d ƒ t d d ƒ f k n sý
t ‚ t t d ƒ d d ƒ} | j t d ƒ t d d ƒ t d ƒ f k sHt ‚ t t d ƒ d d d g ƒ } | j t d ƒ t d d d ƒ f k s“t ‚ d  S(   Ni   t   geni   i    t   aliasR!   i   i   i   i	   i   t   alpha(    (   i    i    (   R    R   R   t   repR   R   R(   t   rootR[   RJ   t   minpolyt	   is_numbert
   is_aliasedR+   t   coeffsR    t   native_coeffsR   R*   R   R!   t   as_polyt   as_exprRZ   R   t   argsR   (   R_   R^   R.   R/   RK   RL   R4   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_AlgebraicNumber
  s¼    0**00---9FE\H!0**0!0<=(*!!!#)&&#&#=3c          C   sJ  t  t d ƒ d t ƒj ƒ  }  |  j t d d k s; t ‚ |  j t d ƒ k sV t ‚ |  j t t	 d ƒ t	 d ƒ g t	 ƒ k s† t ‚ t  d t d ƒ d t ƒj ƒ  }  |  j t d d k sÅ t ‚ |  j d t d ƒ k sä t ‚ |  j t t	 d ƒ t	 d ƒ g t	 ƒ k st ‚ t  t d ƒ d d t ƒj ƒ  }  |  j t d d k sSt ‚ |  j d t d ƒ k srt ‚ |  j t t	 d ƒ t	 d ƒ g t	 ƒ k s¢t ‚ t  t d ƒ d t
 d ƒ d d g d t ƒj ƒ  }  |  j t d d k sôt ‚ |  j d t d ƒ k st ‚ |  j t t	 d d ƒ t	 d ƒ g t	 ƒ k sFt ‚ d  S(	   Ni   RZ   i   i   i    i   i   i   (   R   R   R    t   to_algebraic_integerR_   R(   R^   R]   R   R   R    (   R.   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_to_algebraic_integer•  s     0"0"05c          C   sV   t  ƒ  }  |  j t t d d ƒ ƒ d k s1 t ‚ |  j t t ƒ ƒ d k sR t ‚ d  S(   Ni   i   s   x**(mpi('1/3'))s   x**(mpi('1/2'))(   R   t   doprintR    R,   R(   R   (   t   ip(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_IntervalPrinter®  s    	(c           C   s8  t  d ƒ d k s t ‚ t  t d ƒ d ƒ t d ƒ d t d ƒ d f k sT t ‚ t  t d ƒ ƒ d k sr t ‚ t  t d ƒ ƒ d k s‘ t ‚ t  t d ƒ d t d ƒ d ƒt d ƒ d t d ƒ d	 f k sÙ t ‚ t  t d ƒ d t d ƒ d ƒt d ƒ d	 t d ƒ d f k s$t ‚ t t d
 „  ƒ d  S(   Ni   i   iþÿÿÿiÿÿÿÿt   epsid   i   i   i   c           S   s
   t  t ƒ S(   N(   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   ¾  R$   (   i   i   (   i   i   (   iþÿÿÿiÿÿÿÿ(   R   R(   R    R   R   RI   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_isolate´  s    <HKc          C   sˆ  t  d t t ƒ t t d k s( t ‚ t  d t d t ƒ t d t d k sW t ‚ t  t t ƒ t ƒ t d t k s€ t ‚ t  t t d ƒ t ƒ t d t d k s± t ‚ t  t t ƒ t t ƒ t t d d k sâ t ‚ t  t d ƒ t t ƒ t ƒ t d d t k st ‚ t  t d ƒ t t ƒ t ƒ t d d t d t d t d d t d k spt ‚ t  t t d d ƒ t ƒ t d t k s t ‚ t  t t d d ƒ t t ƒ t ƒ t d d t t d d t t d d t d t d d t d t t d t d k s*t ‚ t  t t ƒ t t ƒ t d t d t k s_t ‚ t  t t ƒ t d t ƒ t d d t d t d t k s¤t ‚ t  d t t d t ƒt t t d t ƒ k sÛt ‚ t  d t d t d t ƒt t d t d t ƒ k st ‚ t  t t ƒ t d t ƒt t d t t ƒ k sQt ‚ t  t t ƒ t t d t ƒt t d t d t t ƒ k s•t ‚ t t ƒ t d t d ƒ t t d d ƒ t d t t	 d	 ƒ d d t d t	 d ƒ d d t t	 d
 ƒ d d t d t	 d ƒ d }  t  |  t ƒ t k sDt ‚ t
 t d „  ƒ t
 t d „  ƒ t
 t d „  ƒ t
 t d „  ƒ d  S(   Ni   i   i   iþÿÿÿi   i   R%   iýÿÿÿi   i   c           S   s   t  t t ƒ t ƒ S(   N(   R   R   R    R!   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   ß  R$   c           S   s   t  t t ƒ t ƒ S(   N(   R   R   R    (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   à  R$   c           S   s   t  t t ƒ t t ƒ S(   N(   R   R   R    R!   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   á  R$   c           S   s   t  t t ƒ t d t ƒS(   NR&   (   R   R   R    R!   R+   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   â  R$   (   R   R    R!   R(   R   R   R"   R*   R   R    R   R   R   RI   (   R.   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minpoly_fraction_fieldÀ  s2    (/)117;0#g5E7$8(”c           C   sb   t  t  t t t d d ƒ d ƒ t ƒ j t t t t d d ƒ d ƒ ƒ t ƒ t k s^ t ‚ d  S(   Ni   i   (   R   R   R    R   R!   R<   R"   R(   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt    test_minpoly_fraction_field_slowä  s     c           C   sã   t  t d ƒ t d t j t d ƒ ƒ ƒt t d ƒ k s@ t ‚ t  t d ƒ t d t j t d ƒ ƒ ƒt d t d ƒ k s„ t ‚ t  t t d d ƒ ƒ t d t j t d ƒ ƒ ƒd t d d k sÏ t ‚ t t d „  ƒ d  S(   Ni   R'   i   i   c           S   s   t  t t d t ƒS(   NR'   (   R   R!   R    R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyR#   ñ  R$   (	   R   R   R    R   R-   R(   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_minpoly_domainé  s    ''0c          C   sÈ   d t  d ƒ t  d t  d ƒ d ƒ }  t |  t ƒ t d d t d k sS t ‚ d t  d t  d ƒ d ƒ d t  d ƒ d d t  d ƒ t  d t  d ƒ d ƒ } t | t ƒ t k sÄ t ‚ d  S(   Niþÿÿÿi   i   i   i   i   iýÿÿÿ(   R   R   R    R(   (   R.   RM   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   test_issue_14831ô  s    (+VN(A   t   __doc__R;   R    R   R   R   R   R   R   R   R   R	   R
   R   R   t   sympy.utilities.pytestR   R   t   sympy.core.compatibilityR   t   sympy.polys.numberfieldsR   R   R   R   R   R   R   R   R   t   sympy.polys.polyerrorsR   R   R   t   sympy.polys.polyclassesR   t   sympy.polys.domainsR   t   sympy.polys.rootoftoolsR   t   sympy.polys.polytoolsR   t	   sympy.abcR    R!   R"   R,   R6   R8   R>   R@   RE   RF   RH   RN   RX   RY   Rg   Ri   Rl   Rn   Ro   Rp   Rq   Rr   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_numberfields.pyt   <module>   s:   X@	v			M					4	¢		‹				$	