ó
¡¼™\c           @   s  d  Z  d d l m Z m Z m Z m Z 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 m Z m Z m Z m Z m Z d d l m Z m Z m Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z  d „  Z! d „  Z" d „  Z# d S(   s<   Tests for functions for generating interesting polynomials. iÿÿÿÿ(   t   Polyt   ZZt   symbolst   sqrtt   primet   Add(   t   permute_signs(   t   raises(   t   swinnerton_dyer_polyt   cyclotomic_polyt   symmetric_polyt   random_polyt   interpolating_polyt   fateman_poly_F_1t   dmp_fateman_poly_F_1t   fateman_poly_F_2t   dmp_fateman_poly_F_2t   fateman_poly_F_3t   dmp_fateman_poly_F_3(   t   xt   yt   zc          C   s„  t  t d „  ƒ t d t d t ƒt t d d ƒ k s? t ‚ t d t ƒ t d d k sb t ‚ t d t ƒ t d d t d d k s‘ t ‚ t d t ƒ t d d	 t d
 d t d d t d d k sØ t ‚ g  t d d ƒ D] }  t t	 |  ƒ ƒ ^ qè } t
 g  t d d t ƒj ƒ  D] }  |  j d ƒ ^ q"ƒ t
 t g  t | ƒ D] }  t |  Œ  j d ƒ ^ qPƒ ƒ k s€t ‚ d  S(   Nc           S   s   t  d t ƒ S(   Ni    (   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   <lambda>   t    i   t   polysi   i   i
   i   i   i(   i   i`  iÀ  i@  i   (   R   t
   ValueErrorR   R   t   TrueR    t   AssertionErrort   rangeR   R   t   strt	   all_rootst   nt   sortedR   R   (   t   it   p(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_swinnerton_dyer_poly   s    /#/D.1c           C   s%  t  t d „  ƒ t d t d t ƒt t d ƒ k s; t ‚ t d t ƒ t d k sZ t ‚ t d t ƒ t d k sy t ‚ t d t ƒ t d t d k s  t ‚ t d t ƒ t d d k sÃ t ‚ t d t ƒ t d t d t d t d k sú t ‚ t d t ƒ t d t d k s!t ‚ d  S(	   Nc           S   s   t  d t ƒ S(   Ni    (   R	   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyR   *   R   i   R   i   i   i   i   i   (   R   R   R	   R   R   R    R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_cyclotomic_poly)   s    +'#7c           C   s9  t  t d „  ƒ t  t d „  ƒ t d t t t d t ƒt t t t ƒ k sU t ‚ t d t t t f d t ƒt t t t ƒ k s t ‚ t d t t t ƒ d k s® t ‚ t d t t t ƒ t t t k s× t ‚ t d t t t ƒ t t t t t t k st ‚ t d t t t ƒ t t t k s5t ‚ d  S(   Nc           S   s   t  d t t t ƒ S(   Niÿÿÿÿ(   R
   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyR   7   R   c           S   s   t  d t t t ƒ S(   Ni   (   R
   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyR   8   R   i   R   i    i   i   (	   R   R   R
   R   R   R   R   R    R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_symmetric_poly6   s    58!)5c          C   sÆ   t  t d d d d t ƒ}  t |  ƒ j ƒ  d k s9 t ‚ t d „  t |  ƒ j ƒ  Dƒ ƒ t k sg t ‚ t  t d d d d t ƒ}  |  j ƒ  d k sš t ‚ t d „  |  j ƒ  Dƒ ƒ t k sÂ t ‚ d  S(   Ni
   iœÿÿÿid   R   c         s   s+   |  ]! } d  | k o  d k n Vq d S(   iœÿÿÿid   N(    (   t   .0t   coeff(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pys	   <genexpr>G   s    c         s   s+   |  ]! } d  | k o  d k n Vq d S(   iœÿÿÿid   N(    (   R&   R'   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pys	   <genexpr>L   s    (	   R   R   t   FalseR    t   degreeR   t   allt   coeffsR   (   t   poly(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_random_polyC   s    .c          C   s  t  d ƒ \ }  } } } } } } } t d t ƒ d k s? t ‚ t d t ƒ | k sZ t ‚ t d t ƒ | t | |  | | t |  | |  k s™ t ‚ t d t ƒ | t | t | |  | |  | | t |  t | | |  | | | t |  t | | |  | | k st ‚ t d t ƒ | t | t | t | |  | |  | |  | | t |  t | t | | |  | | | | | t |  t | t | | |  | | | | | t |  t | t | | |  | | | | k st ‚ d  S(   Ns   x:4, y:4i    i   i   i   i   (   R   R   R   R   (   t   x0t   x1t   x2t   x3t   y0t   y1t   y2t   y3(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_interpolating_polyO   s    $3G0›c          C   sØ   t  d ƒ \ }  } } t d t ƒ \ } } } g  |  | | g D] } | j j ^ q= | | | g k sj t ‚ t  d ƒ \ }  } } t d t ƒ \ } } } g  |  | | g D] } | j j ^ q§ | | | g k sÔ t ‚ d  S(   Ni   i   (   R   R   R   t   repR   (   t   ft   gt   ht   Ft   Gt   Ht   t(    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_fateman_poly_F_1d   s    =c          C   sØ   t  d ƒ \ }  } } t d t ƒ \ } } } g  |  | | g D] } | j j ^ q= | | | g k sj t ‚ t  d ƒ \ }  } } t d t ƒ \ } } } g  |  | | g D] } | j j ^ q§ | | | g k sÔ t ‚ d  S(   Ni   i   (   R   R   R   R7   R   (   R8   R9   R:   R;   R<   R=   R>   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_fateman_poly_F_2p   s    =c          C   sØ   t  d ƒ \ }  } } t d t ƒ \ } } } g  |  | | g D] } | j j ^ q= | | | g k sj t ‚ t  d ƒ \ }  } } t d t ƒ \ } } } g  |  | | g D] } | j j ^ q§ | | | g k sÔ t ‚ d  S(   Ni   i   (   R   R   R   R7   R   (   R8   R9   R:   R;   R<   R=   R>   (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   test_fateman_poly_F_3|   s    =N($   t   __doc__t   sympyR    R   R   R   R   R   t   sympy.utilities.iterablesR   t   sympy.utilities.pytestR   t   sympy.polys.specialpolysR   R	   R
   R   R   R   R   R   R   R   R   t	   sympy.abcR   R   R   R#   R$   R%   R-   R6   R?   R@   RA   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/tests/test_specialpolys.pyt   <module>   s   .L							