ó
¡¼™\c           @   s,  d  Z  d d l m Z d d l m Z d d l m Z d d l m Z m	 Z	 e d ƒ \ Z
 Z e d ƒ \ Z Z e
 e e Z e e e Z e d e e g d	 e e g ƒ Z e	 d e e g d	 e e g ƒ Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   s*   Tests for Dixon's and Macaulay's classes. iÿÿÿÿ(   t   Matrix(   t   symbols(   t   IndexedBase(   t   DixonResultantt   MacaulayResultants   a, bs   x, yt   polynomialst	   variablesc          C   s®   t  d ƒ }  t j t t g k s' t ‚ t j t t g k sB t ‚ t j	 d k sW t ‚ t j
 d k sl t ‚ t j |  d |  d g k s t ‚ t j d d g k sª t ‚ d S(   s#   Test init method of DixonResultant.t   alphai   i    i   N(   R   t   dixonR   t   pt   qt   AssertionErrorR   t   xt   yt   nt   mt   dummy_variablest   max_degrees(   t   a(    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_dixon_resultant_init   s    #c          C   sA  t  d ƒ }  t t } t d t d } t d t } t | | | g t t g ƒ } t t d |  d t t d |  d t t |  d |  d t t |  d d t |  d |  d d t |  d t d |  d |  d t d |  d t |  d |  d d t |  d d } | j ƒ  j ƒ  | k s=t ‚ d S(   s0   Test Dixon's polynomial for a numerical example.R   i   i   i    i   N(   R   R   R   R   t   get_dixon_polynomialt   factorR   (   R   R	   R
   t   hR   t
   polynomial(    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt#   test_get_dixon_polynomial_numerical   s    
»c          C   sO   t  t d t }  t d |  t g d t t g ƒ } | j ƒ  d k sK t ‚ d S(   s   Tests upper degree function.i   R   R   i   N(   t   cR   R   R   R
   t   get_upper_degreeR   (   R   R   (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_get_upper_degree.   s    !c    
      C   sü   t  d ƒ \ }  } } |  d | d d | d } |  d | d d | d } | d | d d } t | | | g | | g ƒ } | j ƒ  } | j | ƒ } d d |  d d |  d d |  d	 d
 |  d }	 | j ƒ  |	 j ƒ  d k sø t ‚ d S(   s2   Test Dixon's matrix for example from [Palancz08]_.s   x, y, zi   i   i    i   i   i   i    i   i   N(   R   R   R   t   get_dixon_matrixt   dett   expandR   (
   R   R   t   zt   ft   gR   t   example_twot   polyt   matrixt   expr(    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt!   test_get_dixon_matrix_example_two5   s    6c          C   s‹   t  d ƒ \ }  } |  | } |  d | d } |  d | } t | | | g |  | g ƒ } | j ƒ  } | j | ƒ j ƒ  d k s‡ t ‚ d S(   s/   Test Dixon's resultant for a numerical example.s   x, yi   i   i    N(   R   R   R   R   R   R   (   R   R   R	   R
   R   R   R   (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_get_dixon_matrixD   s    
c          C   s    t  d ƒ }  t j t t g k s' t ‚ t j t t g k sB t ‚ t j	 d k sW t ‚ t j
 d d g k sr t ‚ t j d k s‡ t ‚ t j d k sœ t ‚ d S(   s&   Test init method of MacaulayResultant.R   i   i   N(   R   t   macaulayR   R	   R
   R   R   R   R   R   t   degreest   degree_mt   monomials_size(   R   (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_macaulay_resultant_initR   s    c           C   s   t  j ƒ  d k s t ‚ d  S(   Ni   (   R(   t   _get_degree_mR   (    (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_get_degree_m]   s    c           C   s   t  j ƒ  d k s t ‚ d  S(   Ni   (   R(   t   get_sizeR   (    (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_get_size`   s    c          C   s¿  t  d ƒ \ }  } } t  d ƒ \ } } } t  d ƒ \ } } } t  d ƒ \ }	 }
 } t  d ƒ \ } } } t  d ƒ \ } } } | |  d | |  | | |  | | | d | | | | | d } |	 |  d |
 |  | | |  | | | d | | | | | d } | |  | | | | } t | | | g |  | | g ƒ } | j d d d g k skt ‚ | j d	 k s€t ‚ | j |  d	 |  d | |  d | |  | d |  | | |  | d | d	 | d | | | d | d	 g
 k s÷t ‚ | j d
 k st ‚ | j ƒ  |  | | g |  | | g |  | |  | | | | d g g k s[t ‚ | j ƒ  } | j	 | j | j f k sˆt ‚ | j
 | ƒ t | | g |	 | g g ƒ k s»t ‚ d S(   s.   Tests the Macaulay for example from [Bruce97]_s   x, y, zs   a_1_1, a_1_2, a_1_3s   a_2_2, a_2_3, a_3_3s   b_1_1, b_1_2, b_1_3s   b_2_2, b_2_3, b_3_3s   c_1, c_2, c_3i   i   i   i
   N(   R   R   R)   R   R*   t   monomial_setR+   t   get_row_coefficientst
   get_matrixt   shapet   get_submatrixR    (   R   R   R   t   a_1_1t   a_1_2t   a_1_3t   a_2_2t   a_2_3t   a_3_3t   b_1_1t   b_1_2t   b_1_3t   b_2_2t   b_2_3t   b_3_3t   c_1t   c_2t   c_3t   f_1t   f_2t   f_3t   macR$   (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_macaulay_example_onec   s.    JJ!#,!.!c       	   C   sø  t  d ƒ \ }  } } t  d ƒ \ } } } t  d ƒ \ } } } t  d ƒ \ }	 }
 } } } | | | |  | | } | |  d | | d | | d } |	 | |
 |  d | |  d | | |  | d | | d } t | | | g |  | | g ƒ } | j d d d g k st ‚ | j d k s0t ‚ | j d	 k sEt ‚ t | j ƒ  ƒ | j k sft ‚ | j	 ƒ  } | j
 | j | j f k s“t ‚ | j | ƒ t | | | d
 g d
 | d
 d
 g d
 d
 | d
 g d
 d
 d
 | g g ƒ k sôt ‚ d S(   s=   Tests the Macaulay formulation for example from [Stiller96]_.s   x, y, zs   a_0, a_1, a_2s   b_0, b_1, b_2s   c_0, c_1, c_2, c_3, c_4i   i   i   i   i   i    N(   R   R   R)   R   R*   R+   t   lenR2   R   R3   R4   R5   R    (   R   R   R   t   a_0t   a_1t   a_2t   b_0t   b_1t   b_2t   c_0RB   RC   RD   t   c_4R    R!   R   RH   R$   (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   test_macaulay_example_two…   s&    &3!!!N(   t   __doc__t   sympyR    t
   sympy.coreR   t   sympy.tensor.indexedR   t#   sympy.polys.multivariate_resultantsR   R   R   t   dR   R   R	   R
   R   R(   R   R   R   R&   R'   R,   R.   R0   RI   RS   (    (    (    sM   lib/python2.7/site-packages/sympy/polys/tests/test_multivariate_resultants.pyt   <module>   s(   !!									"