ó
¡¼™\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 d d l m Z m Z m Z d d l m Z d d l m Z m Z m Z m Z d d l m Z d d l m Z d „  Z d	 „  Z d
 „  Z d „  Z d S(   s6   Tests for solvers of systems of polynomial equations. iÿÿÿÿ(
   t   flattent   It   Integert   Polyt   QQt   Rationalt   St   sqrtt   solvet   symbols(   t   xt   yt   z(   t   PolynomialError(   t   solve_poly_systemt   solve_triangulatedt   solve_biquadratict   SolveFailed(   t   parallel_poly_from_expr(   t   raisesc          C   s¥  t  t d g t ƒ t j f g k s+ t ‚ t  t t t t d g t t ƒ d  k s[ t ‚ t  t t d t t d g t t ƒ t j t j f g k sž t ‚ t  d t d d t d d t t d t g t t t ƒ t	 d d ƒ t
 d ƒ t
 d ƒ f g k s	t ‚ t  t t d t d t d t d g t t ƒ d d t d ƒ f d t d ƒ f g k skt ‚ t  t t d t t d d g t t ƒ t t t j ƒ t j f t t t j ƒ t j f g k sØt ‚ t d t t d }  t t d t d } t t t d d } t d ƒ d t d ƒ d } } t  |  | | g t t t ƒ d d d | | | f | | | f g k s‡t ‚ d d g } t  t t d t d ƒ t t d ƒ g ƒ | k sÍt ‚ t  t d t d t d g t t ƒ | k st ‚ t  t d t d t d g ƒ | k s/t ‚ t  t t t d t t t d g t t ƒ d d g k sqt ‚ t t d „  ƒ t t d „  ƒ t t d „  ƒ d  S(   Ni   i   i   i   i
   i    iÿÿÿÿi   iýÿÿÿiþÿÿÿc           S   s   t  t d t d g t t ƒ S(   Ni   (   R   R
   R   (    (    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyt   <lambda>/   t    c           S   s@   t  t d t t d t t d t t d t d d g ƒ S(   Niþÿÿÿi   i   (   R   R   R
   R   (    (    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyR   0   s   c           S   s   t  d t g t ƒ S(   Ni   (   R   R
   (    (    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyR   2   R   (   i    i    (   i    i    i   (   i    i   i    (   i   i    i    (   i   iÿÿÿÿ(   i   i   (   iýÿÿÿiþÿÿÿ(   i   i   (   R   R
   R   t   Onet   AssertionErrorR   t   Nonet   ZeroR   R   R   R   R   t   HalfR   R   t   NotImplementedErrorR   (   t   f_1t   f_2t   f_3t   at   bt   solution(    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyt   test_solve_poly_system   s0    +0C;011)D"0:4.?c             s?  t  d ƒ \ }  } } } } t d d t d d | d } t d d t d d | d } t d | d d ƒ } d | d } d | d }	 t | | g t t ƒ | |	 f |	 | f g k sÉ t ‚ t d d t d d | d } t d d t d d | d } t | | g t t ƒ d t d | d d | d ƒ d t d ƒ d f d t d | d d | d ƒ d t d ƒ d f g k s›t ‚ d „  ‰ t d d t d d | d } t | d t d d | d } t | | g t t ƒ }
 t |
 ƒ d k r(t d „  |
 Dƒ ƒ s.t ‚ t ‡ f d †  t	 |
 ƒ Dƒ ƒ sVt ‚ t |  d t | d | d } t | d t | d | d } t | | g t t ƒ }
 t |
 ƒ d k rÚt d „  |
 Dƒ ƒ sàt ‚ t ‡ f d	 †  t	 |
 ƒ Dƒ ƒ st ‚ t t t t d t f } t
 | ƒ i d t 6i d
 t 6d
 t 6g k sWt ‚ t t t t d t f } t
 | ƒ i d t 6i d
 t 6d
 t 6g k s¦t ‚ t t f } xK | | f D]= } t | | Œ \ \ ‰  ‰ ‰ t t ‡  ‡ ‡ f d †  ƒ q¿Wt d t d d t d d f } t | | Œ \ \ ‰  ‰ ‰ t ˆ  ˆ ˆ ƒ d d d d g k sit ‚ d d g } t d t d d t d d f } t | | Œ \ \ ‰  ‰ ‰ t ˆ  ˆ ˆ ƒ | k sÒt ‚ t d t d d t d t t d d f } t | | Œ \ \ ‰  ‰ ‰ t ˆ  ˆ ˆ ƒ | k s;t ‚ d  S(   Ns   x0 y0 x1 y1 ri   i   i   c         S   s   |  j  o |  j t j k S(   N(   t   is_Powt   expR   R   (   t   expr(    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyR   F   R   c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   t   len(   t   .0t   r(    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pys	   <genexpr>M   s    c         3   s$   |  ] } | j  ˆ  ƒ d  k Vq d S(   i   N(   t   count(   R'   R(   (   t   query(    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pys	   <genexpr>N   s    c         s   s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   R&   (   R'   R(   (    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pys	   <genexpr>U   s    c         3   s*   |  ]  } t  | j ˆ  ƒ ƒ d  k Vq d S(   i   N(   R&   t   find(   R'   R(   (   R*   (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pys	   <genexpr>V   s    i    c              s   t  ˆ  ˆ ˆ ƒ S(   N(   R   (    (   t   ft   gt   opt(    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyR   _   R   iÿÿÿÿ(   iÿÿÿÿiÿÿÿÿ(   iÿÿÿÿi   (   i   iÿÿÿÿ(   i   i   (   i    iÿÿÿÿ(   i    i   (   R	   R
   R   R   R   R   R   R&   t   allR    R   R   R   R   R   (   t   x0t   y0t   x1t   y1R(   R   R   t   sR   R    t   resultt   s1t   s2t   genst   seqt   ans(    (   R,   R-   R.   R*   s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyt   test_solve_biquadratic5   sT    ""6""5D	"".("".(33 $$0c          C   s  t  d t t d }  t  t d t d } t  t t d d } t d ƒ d t d ƒ d } } t |  | | g t  t t ƒ d d d g k s— t ‚ t j t d ƒ ƒ } t |  | | g t  t t d | ƒd d	 d
 | | | f | | | f g k sý t ‚ d  S(   Ni   i   i    t   domain(   i    i    i   (   i    i   i    (   i   i    i    (   i    i    i   (   i    i   i    (   i   i    i    (   R
   R   R   R   R   R   R   t   algebraic_field(   R   R   R   R   R    t   dom(    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyt   test_solve_triangulatedm   s    "!c          C   sb  t  t d d d t t d ƒ d d d d t g t t ƒ }  |  d t d ƒ d d t d ƒ f d t d ƒ d d t d ƒ f g k s– t ‚ t  t d d d t d	 d d d d t g t t ƒ }  t |  ƒ d k sê t ‚ |  d d d k st ‚ |  d d j d
 d ƒ s$t ‚ |  d d d k s>t ‚ |  d d j d d ƒ s^t ‚ d  S(   Ni   i   iÐ i
   i   i    i   iW  g      @gÌÑñ˜™7Àg   ¢”mBgÌÑñ˜™G@(   R   R
   R   R   R   R   R&   t
   epsilon_eq(   t   roots(    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyt   test_solve_issue_3686}   s    BT< N(   t   __doc__t   sympyR    R   R   R   R   R   R   R   R   R	   t	   sympy.abcR
   R   R   t   sympy.polysR   t   sympy.solvers.polysysR   R   R   R   t   sympy.polys.polytoolsR   t   sympy.utilities.pytestR   R"   R;   R?   RB   (    (    (    s?   lib/python2.7/site-packages/sympy/solvers/tests/test_polysys.pyt   <module>   s   F"	(	8	