ó
¡¼™\c           @   s   d  Z  d d l m Z m Z d d l m Z m Z m Z d d l m	 Z	 m
 Z
 d d l m Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d S(   s&   Tests for the PolynomialRing classes. iÿÿÿÿ(   t   QQt   ZZ(   t   ExactQuotientFailedt   CoercionFailedt   NotReversible(   t   xt   y(   t   raisesc          C   sO   t  j t t d d t f d t f f ƒ}  |  j d ƒ d d	 f k sK t ‚ d  S(
   Nt   ordert   lext   ilexi   i   iûÿÿÿ(   i   i   (   i   (   iûÿÿÿ(   R    t   old_poly_ringR   R   R   t   AssertionError(   t   R(    (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt   test_build_order   s    *c             s   t  j t t ƒ }  t  j t t ƒ } | j t ƒ ‰  | j t ƒ ‰ t | k sT t ‚ d t | k sj t ‚ d d t | k s„ t ‚ ˆ | k s– t ‚ ˆ  j | k s« t ‚ ˆ  ˆ d d | j t t d d ƒ k sÞ t ‚ ˆ  t ˆ  ˆ k o| j t t ƒ k ot ˆ k n s$t ‚ ˆ  t ˆ  ˆ k o_| j t t ƒ k o_t ˆ k n sjt ‚ ˆ  t ˆ  ˆ k o¥| j t t ƒ k o¥t ˆ k n s°t ‚ ˆ  d | j t d ƒ k sÓt ‚ t t	 ‡  ‡ f d †  ƒ t t	 ‡ f d †  ƒ t t	 ‡  f d †  ƒ ˆ  d ˆ  ˆ  k s2t ‚ | j
 t j t t ƒ j t ƒ t j t t ƒ ƒ ˆ  k sqt ‚ | j |  j t ƒ |  ƒ ˆ  k s˜t ‚ | j |  j t ƒ t |  ƒ d  k sÃt ‚ | j | j ˆ  ˆ g | j ƒ d ƒ ˆ  ˆ g k süt ‚ d  S(   Ni   i   c              s   ˆ  ˆ S(   N(    (    (   t   Xt   Y(    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt   <lambda>    t    c              s   t  ˆ  S(   N(   R   (    (   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   !   R   c              s   ˆ  t  S(   N(   R   (    (   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   "   R   (   R    t   old_frac_fieldR   R   R   t   convertR   t   ringR   R   t   from_GlobalPolynomialRingR   t   from_FractionFieldt   Nonet   _sdm_to_vectort   _vector_to_sdmR   (   t   QxyR   (    (   R   R   sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt   test_globalring   s,    3FFF#?'+c              s/  t  j t t ƒ ‰  t  j t t d d ƒ‰ ˆ j t ƒ ‰ ˆ j t ƒ ‰ t ˆ k sZ t ‚ d t ˆ k sp t ‚ d d t ˆ k sŠ t ‚ ˆ ˆ k sœ t ‚ ˆ j ˆ k s± t ‚ ˆ ˆ d d d ˆ ˆ j t t d d d t ƒ k sô t ‚ ˆ t ˆ ˆ k st ‚ t t	 ‡ ‡ f d †  ƒ t t	 ‡ f d †  ƒ t t	 ‡ f d †  ƒ ˆ t ˆ ˆ k oŽˆ j t t ƒ k oŽt ˆ k n s™t ‚ ˆ t ˆ ˆ k oÔˆ j t t ƒ k oÔt ˆ k n sßt ‚ ˆ d ˆ j t d ƒ k st ‚ ˆ d ˆ ˆ k st ‚ ˆ j
 t j t t ƒ j t ƒ t j t t ƒ ƒ ˆ k s[t ‚ ˆ j ˆ  j t ƒ ˆ  ƒ ˆ k s‚t ‚ t t ‡  ‡ f d †  ƒ t t	 ‡ ‡ f d	 †  ƒ t t ‡ f d
 †  ƒ ˆ j ˆ j ˆ ˆ d ˆ d ˆ ˆ g ˆ j ƒ d ƒ ˆ d ˆ ˆ ˆ d ˆ g k s+t ‚ d  S(   NR   R
   i   i   c              s   ˆ  ˆ S(   N(    (    (   R   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   9   R   c              s   t  ˆ  S(   N(   R   (    (   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   :   R   c              s   ˆ  t  S(   N(   R   (    (   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   ;   R   c              s   ˆ j  ˆ  j t ƒ t ˆ  ƒ S(   N(   R   R   R   R   (    (   R   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   C   R   c              s   ˆ  ˆ S(   N(    (    (   R   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   D   R   c              s
   ˆ  j  ƒ  S(   N(   t   invert(    (   R   (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   E   R   (   R    R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (   R   R   R   R   sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt   test_localring,   s4    CFF#?'2c              s§   t  j t t d d ƒ‰ t  j t t ƒ ‰  ˆ j t ƒ ˆ j ˆ  j t ƒ ˆ  ƒ k sZ t ‚ ˆ  j t ƒ ˆ  j ˆ j t ƒ ˆ ƒ k sŠ t ‚ t t ‡  ‡ f d †  ƒ d  S(   NR   R
   c              s!   ˆ  j  ˆ j  d d t ƒ ˆ ƒ S(   Ni   (   R   R   (    (   t   Gt   L(    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyR   R   R   (   R    R   R   R   R   R   R   R   (    (    (   R   R    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt   test_conversionL   s
    00c          C   s±  t  j t ƒ }  |  j |  j d ƒ ƒ s- t ‚ |  j |  j d ƒ ƒ sK t ‚ |  j |  j t ƒ ƒ sj t ‚ |  j |  j d t ƒ ƒ s t ‚ t  j t d d ƒ}  |  j |  j d ƒ ƒ sÀ t ‚ |  j |  j d ƒ ƒ sÞ t ‚ |  j |  j t ƒ ƒ sý t ‚ |  j |  j d t ƒ ƒ st ‚ t j t ƒ }  |  j |  j d ƒ ƒ sLt ‚ |  j |  j d ƒ ƒ skt ‚ |  j |  j t ƒ ƒ sŠt ‚ |  j |  j d t ƒ ƒ s­t ‚ d  S(   Ni   i   R   R
   (   R    R   R   t   is_unitR   R   R   (   R   (    (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt
   test_unitsU   s    #"N(   t   __doc__t   sympy.polys.domainsR    R   t   sympy.polys.polyerrorsR   R   R   t	   sympy.abcR   R   t   sympy.utilities.pytestR   R   R   R   R!   R#   (    (    (    sL   lib/python2.7/site-packages/sympy/polys/domains/tests/test_polynomialring.pyt   <module>   s   			 		