ó
¡¼™\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 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 d d l m Z d „  Z  d „  Z! d	 „  Z" d
 „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d S(   s&   Tests for sparse distributed modules. iÿÿÿÿ(   t   sdm_monomial_mult   sdm_monomial_degt   sdm_monomial_dividest   sdm_addt   sdm_LMt   sdm_LTt   sdm_mul_termt   sdm_zerot   sdm_degt   sdm_LCt   sdm_from_dictt	   sdm_spolyt	   sdm_ecartt   sdm_nf_morat   sdm_groebnert   sdm_from_vectort   sdm_to_vectort   sdm_monomial_lcm(   t   lext   grlext   InverseOrder(   t   QQ(   t   xt   yt   z(   t   rangec           C   s   t  d d ƒ d k s t ‚ d  S(   Ni   i    i   i   (   i   i   i    (   i   i   (   i   i   i   (   R    t   AssertionError(    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_monomial_mul   s    c           C   s   t  d ƒ d k s t ‚ d  S(   Ni   i   i   i   (   i   i   i   (   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_monomial_deg   s    c           C   s   t  d d ƒ d k s t ‚ d  S(	   Ni   i   i   i   i    (   i   i   i   (   i   i   i    (   i   i   i   (   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_monomial_lcm   s    c           C   s¦   t  d d ƒ t k s t ‚ t  d d ƒ t k s6 t ‚ t  d	 d
 ƒ t k sQ t ‚ t  d d ƒ t k sl t ‚ t  d d ƒ t k s‡ t ‚ t  d d ƒ t k s¢ t ‚ d  S(   Ni   i    i   i   (   i   i    i    (   i   i    i    (   i   i    i    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i    i    (   i   i    i    (   i   i   i    (   i   i    i    (   i   i   i   (   i   i    i   (   R   t   TrueR   t   False(    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_monomial_divides   s    c           C   s4   t  d t d ƒ f g t ƒ t d ƒ k s0 t ‚ d  S(   Ni   i   i   i   (   i   i   i   (   R	   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_LC(   s    c       	   C   s±   i t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6t  d ƒ d	 6}  t |  t ƒ d
 t  d ƒ f d t  d ƒ f d t  d ƒ f d t  d ƒ f d t  d ƒ f g k s­ t ‚ d  S(   Ni   i   i    i   (   i   i   i   i   (   i   i   i   i   (   i   i    i   i   (   i   i    i    i   (   i   i   i   i    (   i   i   i   i   (   i   i   i   i   (   i   i    i   i   (   i   i    i    i   (   i   i   i   i    (   R   R
   R   R   (   t   dic(    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_from_dict,   s
    *c           C   sK  t  d t d ƒ f g d t d ƒ f g t t ƒ d t d ƒ f d	 t d ƒ f g k s] t ‚ t  d
 t d ƒ f g d t d ƒ f g t t ƒ g  k sœ t ‚ t  d t d ƒ f g d t d ƒ f g t t ƒ d t d ƒ f g k sê t ‚ t  d t d ƒ f g d t d ƒ f g t t ƒ d t d ƒ f d t d ƒ f g k sGt ‚ d  S(   Ni   i   i    iÿÿÿÿi   (   i   i   i   (   i   i    i    (   i   i    i    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i    i    (   i   i    i    (   i   i    i    (   i   i    i   (   i   i   i    (   i   i   i    (   i   i    i   (   R   R   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_add6   s    0-?00c          C   sR   i t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6}  t t |  t ƒ ƒ d	 k sN t ‚ d  S(
   Ni   i   i   i   i    (   i   i   i   (   i   i    i    (   i   i    i   (   i   i    i   (   R   R   R
   R   R   (   R"   (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_LM@   s    -c          C   s^   i t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6}  t t |  t ƒ ƒ d	 t  d ƒ f k sZ t ‚ d  S(
   Ni   i   i   i   i    (   i   i   i   (   i   i    i    (   i   i    i   (   i   i    i   (   R   R   R
   R   R   (   R"   (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_LTE   s    -c          C   s'  t  d t d ƒ f g d	 t d ƒ f t t ƒ g  k s< t ‚ t  g  d
 t d ƒ f t t ƒ g  k si t ‚ t  d t d ƒ f g d t d ƒ f t t ƒ d t d ƒ f g k s´ t ‚ d t d ƒ f d t d ƒ f g }  t  |  d t d ƒ f t t ƒ d t d ƒ f d t d ƒ f g k s#t ‚ d  S(   Ni   i    i   i   i   i   i   (   i   i    i    (   i    i    (   i   i    (   i   i    i    (   i   i    (   i   i   i    (   i   i    i   (   i   i   i    (   i   i   (   i   i   i   (   i   i   i   (   R   R   R   R   (   t   f(    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_mul_termJ   s    <--$c           C   s   t  ƒ  g  k s t ‚ d  S(   N(   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_zeroT   s    c           C   s%   t  d	 d d g ƒ d k s! t ‚ d  S(   Ni   i   i   i
   i    i   i   (   i   i   i   (   (   i   i   i   i   (   i
   i    i   (   (   i
   i    i   i   (   i   i   i   (   (   i   i   i   i   (   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_degX   s    c          C   s£   d t  d ƒ f d t  d ƒ f g }  d t  d ƒ f g } d t  d ƒ f g } t |  | t t  ƒ g  k so t ‚ t |  | t t  ƒ d	 t  d ƒ f g k sŸ t ‚ d  S(
   Ni   i   i    i   (   i   i   i   (   i   i    i   (   i   i   i    (   i   i   i   (   i   i   i   (   R   R   R   R   (   R'   t   gt   h(    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_spoly\   s
    $!c           C   s@   t  d d	 g ƒ d k s t ‚ t  d d g ƒ d k s< t ‚ d  S(   Ni   i   i   i    i   (   i   i   i   (   (   i   i   i   i   (   i   i    i   (   (   i   i    i   i   (   i   i   i   (   (   i   i   i   i   (   i   i   i   (   (   i   i   i   i   (   R   R   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_ecartd   s    c       	   C   sD  t  i t d ƒ d 6t d ƒ d	 6t d ƒ d
 6t d ƒ d 6t d ƒ d 6t ƒ }  t  i t d ƒ d 6t d ƒ d 6t d ƒ d 6t ƒ } t  i t d ƒ d 6t ƒ } g  t d ƒ D]. } t  i t d ƒ | d d d f 6t ƒ ^ q¯ \ } } } t |  | | g t t d | | | g f ƒd t d ƒ f d t d ƒ f d t d ƒ f d t d ƒ f g d t d ƒ f d t d ƒ f g f k s…t ‚ t |  | | g t t d | | | g f ƒd t d ƒ f d t d ƒ f d t d ƒ f g d t d ƒ f d t d ƒ f d t d ƒ f g f k st ‚ t t t t	 d t	 t t t	 g t
 t d t t	 t g ƒ}  t t t	 d g t
 t d t t	 t g ƒ} t t t	 t t d g t
 t d t t	 t g ƒ} t |  | | g t
 t ƒ t |  | | g t
 t ƒ k o5d t d ƒ f d t d ƒ f d t d ƒ f d  t d ƒ f g k n s@t ‚ d  S(!   Ni   i   i    i   iÿÿÿÿt   phantomt   gens(   i   i   i   i   (   i   i   i   i   (   i   i    i   i   (   i   i    i    i   (   i   i   i   i    (   i   i   i   i    (   i   i    i   i    (   i   i    i    i    (   i   i   i   i    (   i   i    i   i   (   i   i    i    i   (   i   i   i   i    (   i   i   i    i   (   i   i   i    i   (   i    i    i    i    (   i   i    i   i   (   i   i    i    i   (   i   i   i   i    (   i   i   i    i   (   i   i    i   i   (   i    i    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   R   R   R   R   (   R'   t   f1t   f2t   it   id0t   id1t   id2(    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_sdm_nf_morai   s,     '	 G*-0*0?>*2 -c          C   sF  t  d t d d t g }  d t d ƒ f d t d ƒ f d	 t d ƒ f g } t | t  t t g t ƒ |  k sv t ‚ t |  t t ƒ | k s” t ‚ t t  d g t t ƒ d
 t d ƒ f d t d ƒ f g k sÖ t ‚ t d g t  t t g t d d ƒd t  d g k st ‚ t d d g t t d t  t g ƒt ƒ  k sBt ‚ d  S(   Ni   i   i    t   ni   R0   (   i   i    i    i   (   i    i   i    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   R   R   (   R'   R+   (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_conversion„   s    3'?9c             sö  t  t t g ‰  ‡  f d †  }  |  t  t g t  ƒ s9 t ‚ |  t  t g t  t ƒ sX t ‚ |  t  t g d ƒ st t ‚ |  t  t g t ƒ s t ‚ |  t  d t t  d t  g t  t ƒ s¿ t ‚ |  t  t t t  t t  t t t t  t t g t  d ƒ st ‚ |  t  t t t  t t  t t t t  t t g t  d ƒ sLt ‚ |  t  t t t  t t  t t t t  t t g t  d ƒ s’t ‚ |  t  t t t  t t  t t t t  t t g t  t d ƒ sÝt ‚ |  t  t t t  t t  t t t t  t t g t  d t d d t t t  ƒ s;t ‚ |  t  t t t  t t  t t t t  t t g t  t t ƒ s…t ‚ |  t  d t  t d d t g d ƒ s³t ‚ |  t  d t d t d t d t d t  d t  d t t  d t t d t g t  d ƒ st ‚ |  t  d t d t d t d t d t  d t  d t t  d t t d t g t  d t d ƒ sŽt ‚ |  t  d t  t t d t g t  ƒ s¾t ‚ |  t  d t  t t d t g t  t ƒ sòt ‚ d  S(   Nc            st   g  |  D]! } t  | g t t d ˆ  ƒ^ q } t | t t t ƒ } t t  | g t t d ˆ  ƒ| t t ƒ t ƒ  k S(   NR0   (   R   R   R   R   R   R   (   t   IR'   R+   t   St   G(   R0   (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   contains’   s    .i   i   i   i   i   i   (   R   R   R   R   (   R=   (    (   R0   sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_nontrivial   s,    /GFFK^J.SS0c             s{  t  t ƒ ‰ t t t g ‰  ‡  ‡ f d †  }  |  t t g t ƒ sH t ‚ |  t t g t t ƒ sg t ‚ |  t t g d ƒ sƒ t ‚ |  t t g t ƒ sŸ t ‚ |  t d t t d t g t t ƒ sÎ t ‚ |  t t t t t t t t t t t t g t d ƒ st ‚ |  t d t t t d t g t ƒ sDt ‚ |  t d t t t d t g t t ƒ swt ‚ d  S(   Nc            st   g  |  D]! } t  | g ˆ t d ˆ  ƒ^ q } t | t ˆ t ƒ } t t  | g t t d ˆ  ƒ| t t ƒ t ƒ  k S(   NR0   (   R   R   R   R   R   R   (   R:   R'   R+   R;   R<   (   R0   t   igrlex(    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyR=   ´   s    .i   i   (   R   R   R   R   R   R   (   R=   (    (   R0   R?   sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt
   test_local°   s    /G/c          C   s   t  t g }  t ƒ  } t t  d g t t d |  ƒ} t d t g t t d |  ƒ} t | | t t ƒ t ƒ  k su t ‚ t | | t t ƒ t ƒ  k s™ t ‚ d  S(   Ni    R0   (   R   R   R   R   R   R   R   R   (   R0   R1   R2   t   f3(    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_uncovered_lineÃ   s    	$c          C   sz   t  g }  t d t  g t t d |  ƒ} t d t  d g t t d |  ƒ} t t | | g t t t ƒ ƒ d k sv t ‚ d  S(   Ni   R0   i    i   (   R   R   R   R   t   lenR   R   R   (   R0   R1   R2   (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   test_chain_criterionÍ   s    	"N(4   t   __doc__t   sympy.polys.distributedmodulesR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   t   sympy.polys.orderingsR   R   R   t   sympy.polys.domainsR   t	   sympy.abcR   R   R   t   sympy.core.compatibilityR   R   R   R   R    R!   R#   R$   R%   R&   R(   R)   R*   R-   R.   R7   R9   R>   R@   RB   RD   (    (    (    sH   lib/python2.7/site-packages/sympy/polys/tests/test_distributedmodules.pyt   <module>   s2   v				
		
	
			
							!		
