ó
î&]\c           @` s9  d  Z  d d l m Z m Z m Z d Z d d l Z d d l Z d d l Z d d l	 m
 Z
 d d l Z d d l m Z 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 m Z m Z m Z m Z m  Z  d d l! 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. Z/ d d l0 j1 Z1 d d l0 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< d d l= m> Z> m? Z? m@ Z@ d d lA mB ZB mC ZC mD ZD d d lE mF ZF d d lG mH ZH d d l) Z) eI d  ZJ d   ZK eL e d  ZM e-   ZN eN jO e   eI eP eI eI eP d  ZQ d   ZR d eS f d     YZT d eS f d     YZU d eS f d     YZV d eS f d     YZW d eS f d     YZX d eS f d      YZY d! eS f d"     YZZ d# eS f d$     YZ[ d% eS f d&     YZ\ e j] d'    Z^ d( eS f d)     YZ_ d* eS f d+     YZ` d, eS f d-     YZa d. eS f d/     YZb d0 eS f d1     YZc d2 eS f d3     YZd ee d4  Zf ee ee ee ee ee ee ee ee ee d5 	 Zg d6 eg   f d7     YZh eh ji   d8 eg   f d9     YZj ej ji   d: eg d; eP d< eP  f d=     YZk ek ji   d> eg d; eP  f d?     YZl el ji   d@ eg dA eP dB eP dC eP dD eP dE eP  f dF     YZm em ji   dG eg dA eP dB eP dC eP dD eP dE eP d; eP d< eP  f dH     YZn en ji   dI eg dA eP dB eP dC eP dD eP dE eP d< eP  f dJ     YZo eo ji   dK   Zp dL eS f dM     YZq dN eq f dO     YZr dP er f dQ     YZs dR es eh f dS     YZt dT es ej f dU     YZu dV er eo f dW     YZv dX eq em f dY     YZw dZ   Zx d[ eS f d\     YZy d S(]   sň    Test functions for sparse matrices. Each class in the "Matrix class
based tests" section become subclasses of the classes in the "Generic
tests" section. This is done by the functions in the "Tailored base
class for generic tests" section.

i    (   t   divisiont   print_functiont   absolute_importsš   
Build sparse:
  python setup.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.sparse.test()'
Run tests if sparse is not installed:
  python tests/test_base.py
N(   t   LooseVersion(   t   xranget   zip(   t   aranget   zerost   arrayt   dott   matrixt   asmatrixt   asarrayt   vstackt   ndarrayt	   transposet   diagt   kront   inft	   conjugatet   int8t   ComplexWarning(   t   assert_equalt   assert_array_equalt   assert_array_almost_equalt   assert_almost_equalt   assert_t   assert_allclose(   t   raises(   t   suppress_warnings(   t
   csc_matrixt
   csr_matrixt
   dok_matrixt
   coo_matrixt
   lil_matrixt
   dia_matrixt
   bsr_matrixt   eyet
   isspmatrixt   SparseEfficiencyWarningt   issparse(   t   supported_dtypest   isscalarliket   get_index_dtype(   t   splut   expmt   inv(   t   NumpyVersion(   t	   decoratorc         C` s6   t  |  | k d | d  k	 r! | n d |  | f d  S(   Nt   msgs   %r not found in %r(   R   t   None(   t   membert
   collectionR1   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   assert_in7   s    c         K` s*   t  |  j | j k  t |  | |  d  S(   N(   R   t   dtypeR   (   t   xt   yt   kwargs(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   assert_array_equal_dtype;   s    t   matmulc         ` sâ    d
 k r d  n  | r0 d d
 t d   nu  d
 k	 rW d d
 t  f d   nN | r t j j d d    d d
 t   f d   n d d
 t  f d    d
 k	 rĂ  f d    n  t    f d	    } | S(   s   
    Monkeypatch the maxval threshold at which scipy.sparse switches to
    64-bit index arrays, or make it (pseudo-)random.

    i
   c         S` s`   t  |  | |  } t t j |  j t j t j  j  t | t j k pX | t j k  | S(   N(   R+   R   t   npt   iinfot   maxt   int32R   t   intc(   t   arrayst   maxvalt   check_contentst   tp(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   new_get_index_dtypeR   s    ("c         ` s     S(   N(    (   RA   RB   RC   (   t   fixed_dtype(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRE   X   s    t   seediŇ  c         ` s   t  j t  j f   j d  S(   Ni   (   R<   R?   t   int64t   randint(   RA   RB   RC   (   t   counter(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRE   ]   s    c         ` sâ   t  j } | d  k	 r0 |   k r0 t  j } q0 n  xŤ |  D]Ł } t  j |  } | j t  j k r7 | rÎ | j d k ry q7 qÎ t  j | j t  j  rÎ | j	   } | j
   } |   k rË |   k rË q7 qË qÎ n  t  j } q7 q7 W| S(   Ni    (   R<   R?   R2   RH   R   R6   t   sizet
   issubdtypet   integerR>   t   min(   RA   RB   RC   R6   t   arrt   minval(   t   maxval_limit(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRE   `   s"    	c         ` s1   |  j      k r! t d   n  |  j t j  S(   Ns   downcast limited(   R>   t   AssertionErrort   astypeR<   t   intp(   RO   (   t   downcast_maxval(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   new_downcast_intp_indexv   s    c      
   ` s<  g  } t  j j t  j j t  j j t  j j t  j j t  j j t  j j t  j j	 t  j j
 t  j j g
 } z x | D]y } | j | d t | d d   f  t | d     d  k	 rp | j | d t | d d   f  t | d   qp qp W|  | |   SWd  x6 | D]. \ } } } | d  k	 rt | | |  qqWXd  S(   NR+   t   downcast_intp_index(   t   scipyt   sparset   bsrt   coot   csct   csrt   diat   dokt   lilt   sputilst
   compressedt	   constructt   appendt   getattrR2   t   setattr(   t   funct   at   kwt   backupt   modulest   modt   namet   oldfunc(   RU   RV   RE   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   deco{   s$    N(    (    (    (    (   R2   t   FalseR<   t   randomt   RandomStateR0   (   RQ   Rq   RF   RU   t   assert_32bitRo   (    (   RJ   RU   RF   RQ   RV   RE   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   with_64bit_maxval_limitG   s    	c         C` s,   t  |  t j  s t |   r" |  S|  j   S(   N(   t
   isinstanceR<   R   R*   t   todense(   Rh   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRv      s    t   BinopTesterc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` s   d S(   Ns   matrix on the right(    (   t   selft   mat(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __add__   s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __mul__    s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __sub__Ł   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __radd__Ś   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __rmul__Š   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __rsub__Ź   s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt
   __matmul__Ż   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __rmatmul__˛   s    (
   t   __name__t
   __module__Rz   R{   R|   R}   R~   R   R   R   (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRw      s   							t   BinopTester_with_shapec           B` sk   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   c         C` s   | |  _  d  S(   N(   t   _shape(   Rx   t   shape(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __init__¸   s    c         C` s   |  j  S(   N(   R   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ť   s    c         C` s   t  |  j  S(   N(   t   lenR   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   ndimž   s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRz   Á   s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR{   Ä   s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR|   Ç   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR}   Ę   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR~   Í   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   Đ   s    c         C` s   d S(   Ns   matrix on the right(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   Ó   s    c         C` s   d S(   Ns   matrix on the left(    (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   Ö   s    (   R   R   R   R   R   Rz   R{   R|   R}   R~   R   R   R   (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ľ   s   										t   _TestCommonc           B` s  e  Z d  Z e Z e 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   Z d   Z d   Z d   Z d   Z d   Z e j j 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'   Z/ d(   Z0 e1 d)    Z2 e1 d*    Z3 e1 d+    Z4 e1 d,    Z5 d-   Z6 d.   Z7 e1 d/    Z8 d0   Z9 d1   Z: d2   Z; d3   Z< d4   Z= d5   Z> d6   Z? d7   Z@ d8   ZA d9   ZB d:   ZC d;   ZD d<   ZE d=   ZF d>   ZG d?   ZH d@   ZI dA   ZJ dB   ZK dC   ZL dD   ZM dE   ZN dF   ZO dG   ZP dH   ZQ dI   ZR dJ   ZS dK   ZT dL   ZU dM   ZV dN   ZW dO   ZX dP   ZY RS(Q   s6   test common functionality shared by all sparse formatsc         C` s  t  d d d d g d d d d g d d d d g g d  |  _ |  j |  j  |  _ t t  j |  j  |  _ i  |  _	 i  |  _
 xL |  j D]A } |  j j |  |  j	 | <|  j |  j j |   |  j
 | <q Wt |  j |  j	 t j  t |  j j   |  j
 t j j    d  S(   Ni   i    i   i   t   d(   R
   t   datt   spmatrixt   datspt   setR)   t   uniont   math_dtypest   checked_dtypest
   dat_dtypest   datsp_dtypesRS   R   R<   t   float64Rv   (   t   clsR6   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt
   init_classć   s    ?		&c         ` sP     f d   } t    t  r. t j d  n  x   j D] } | |  q8 Wd  S(   Nc         ` sN     j  |  } t t t |  t   j d g   t   j d g   d  S(   Ni   i    (   R   t   assert_raisest
   ValueErrort   boolR   R   (   R6   R   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   checkţ   s    s%   Cannot create a rank <= 2 DOK matrix.(   Ru   t   TestDOKt   pytestt   skipR   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_boolý   s
    c         C` si   t  j t t g g  } |  j |  } x( t d  D] } | | } | | } q4 Wt | | j    d  S(   Ni
   (   R<   R
   t   TrueRp   R   t   rangeR   Rv   (   Rx   R   R   t   _(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_bool_rollover
  s    
c         ` s{   t    } | j t  | t   f d     } t   t t t f  sY t j	 d  n  x   j
 D] } | |  qc Wd  S(   Nc   	      ` s    j  |  }   j |  } | j   } d | d  d   d f <  j |  } t |  } t |  } t |  } t |  } t | | k | | k j	    t | | k | | k j	    t | | k | | k j	    t | | k | | k j	    t | | k | | k j	    t | | k | | k  t | d k | d k j	    t | d k | d k j	    t | t
 j k | t
 j k j	    d  S(   Ni    i   (   R   R   t   copyR   R$   R   R   R"   R:   Rv   R<   t   nan(	   R6   R   R   t   dat2t   datsp2t   datbsrt   datcsrt   datcsct   datlil(   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s&    s8   Bool comparisons only implemented for BSR, CSC, and CSR.(   R   t   filterR'   t   sup_complexRu   t   TestBSRt   TestCSCt   TestCSRR   R   R   (   Rx   t   supR   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_eq  s    	c         ` s{   t    } | j t  | t   f d     } t   t t t f  sY t j	 d  n  x   j
 D] } | |  qc Wd  S(   Nc   	      ` sÔ    j  |  }   j |  } | j   } d | d  d   d f <  j |  } t |  } t |  } t |  } t |  } t | | k | | k j	    t | | k | | k j	    t | | k | | k j	    t | | k | | k j	    t | | k | | k j	    t | | k | | k  t | d k | d k j	    t | d k | d k j	    t d | k d | k j	    t d | k d | k j	    t | t
 j k | t
 j k j	    d  S(   Ni    i   (   R   R   R¤   R   R$   R   R   R"   R:   Rv   R<   RĽ   (	   R6   R   R   RŚ   R§   R¨   RŞ   RŠ   RŤ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   >  s*    s8   Bool comparisons only implemented for BSR, CSC, and CSR.(   R   RŹ   R'   R­   Ru   RŽ   RŻ   R°   R   R   R   (   Rx   Rą   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_ne:  s    	c         ` s{   t    } | j t  | t   f d     } t   t t t f  sY t j	 d  n  x   j
 D] } | |  qc Wd  S(   Nc         ` só    j  |  }   j |  } | j   } d | d  d   d f <  j |  } | j t  } d	 | d  d   d f <  j |  } t |  } t |  } t |  }	 t	 |  }
 t
 | | k  | | k  j    t
 | | k  | | k  j    t
 | | k  | | k  j    t
 | | k  | | k  j    t
 | | k  |	 | k  j    t
 | | k  |
 | k  j    t
 | | k  | | k  j    t
 | | k  | | k  j    t
 | | k  | |	 k  j    t
 | | k  | |
 k  j    t
 | | k  | | k   t
 | | k  | | k   t
 | d k  j   | d k   t
 | d k  j   | d k   t
 | d k  j   | d k   t
 | d k  j   | d k   t
 | d k  j   | d k   t j d d  * t
 | t j k  j   | t j k   Wd  QXt
 d | k  j   d | k   t
 d | k  j   d | k   t
 d | k  j   d | k   t
 d | k  j   d | k   t
 d | k  j   d | k     j  |  }   j |  } | j   } d | d  d   d f <  j |  } t
 | | k  | | k   d  S(
   Ni    i   y              đ?i   i˙˙˙˙iţ˙˙˙t   invalidt   ignorey      đ?      đ?(   R   R   R¤   R   RS   t   complexR$   R   R   R"   R:   Rv   R<   t   errstateRĽ   (   R6   R   R   RŚ   R§   t
   datcomplext   datspcomplexR¨   RŞ   RŠ   RŤ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   e  sX    s8   Bool comparisons only implemented for BSR, CSC, and CSR.(   R   RŹ   R'   R­   Ru   RŽ   RŻ   R°   R   R   R   (   Rx   Rą   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_lta  s    	;c         ` s{   t    } | j t  | t   f d     } t   t t t f  sY t j	 d  n  x   j
 D] } | |  qc Wd  S(   Nc         ` só    j  |  }   j |  } | j   } d | d  d   d f <  j |  } | j t  } d	 | d  d   d f <  j |  } t |  } t |  } t |  }	 t	 |  }
 t
 | | k | | k j    t
 | | k | | k j    t
 | | k | | k j    t
 | | k | | k j    t
 | | k |	 | k j    t
 | | k |
 | k j    t
 | | k | | k j    t
 | | k | | k j    t
 | | k | |	 k j    t
 | | k | |
 k j    t
 | | k | | k  t
 | | k | | k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t j d d  * t
 | t j k j   | t j k  Wd  QXt
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k    j  |  }   j |  } | j   } d | d  d   d f <  j |  } t
 | | k | | k  d  S(
   Ni    i   y              đ?i   i˙˙˙˙iţ˙˙˙R´   Rľ   y      đ?      đ?(   R   R   R¤   R   RS   Rś   R$   R   R   R"   R:   Rv   R<   Rˇ   RĽ   (   R6   R   R   RŚ   R§   R¸   Rš   R¨   RŞ   RŠ   RŤ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   Ş  sX    s8   Bool comparisons only implemented for BSR, CSC, and CSR.(   R   RŹ   R'   R­   Ru   RŽ   RŻ   R°   R   R   R   (   Rx   Rą   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_gtŚ  s    	:c         ` s{   t    } | j t  | t   f d     } t   t t t f  sY t j	 d  n  x   j
 D] } | |  qc Wd  S(   Nc         ` sw    j  |  }   j |  } | j   } d | d  d   d f <  j |  } | j t  } d | d  d   d f <  j |  } t |  } t |  } t |  }	 t	 |  }
 t
 | | k | | k j    t
 | | k | | k j    t
 | | k j   | | k  t
 | | k j   | | k  t
 |	 | k j   | | k  t
 |
 | k j   | | k  t
 | | k j   | | k  t
 | | k j   | | k  t
 | |	 k j   | | k  t
 | |
 k j   | | k  t
 | | k | | k  t
 | | k | | k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k    j  |  }   j |  } | j   } d | d  d   d f <  j |  } t
 | | k | | k  d  S(   Ni    i   y              đ?i   i˙˙˙˙iţ˙˙˙y      đ?      đ?(   R   R   R¤   R   RS   Rś   R$   R   R   R"   R:   Rv   (   R6   R   R   RŚ   R§   R¸   Rš   R¨   RŞ   RŠ   RŤ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   î  sN    s8   Bool comparisons only implemented for BSR, CSC, and CSR.(   R   RŹ   R'   R­   Ru   RŽ   RŻ   R°   R   R   R   (   Rx   Rą   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_leę  s    	5c         ` s{   t    } | j t  | t   f d     } t   t t t f  sY t j	 d  n  x   j
 D] } | |  qc Wd  S(   Nc         ` sw    j  |  }   j |  } | j   } d | d  d   d f <  j |  } | j t  } d | d  d   d f <  j |  } t |  } t |  } t |  }	 t	 |  }
 t
 | | k | | k j    t
 | | k | | k j    t
 | | k j   | | k  t
 | | k j   | | k  t
 |	 | k j   | | k  t
 |
 | k j   | | k  t
 | | k j   | | k  t
 | | k j   | | k  t
 | |	 k j   | | k  t
 | |
 k j   | | k  t
 | | k | | k  t
 | | k | | k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t
 | d k j   | d k  t
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k  t
 d | k j   d | k    j  |  }   j |  } | j   } d | d  d   d f <  j |  } t
 | | k | | k  d  S(   Ni    i   y              đ?i   i˙˙˙˙iţ˙˙˙y      đ?      đ?(   R   R   R¤   R   RS   Rś   R$   R   R   R"   R:   Rv   (   R6   R   R   RŚ   R§   R¸   Rš   R¨   RŞ   RŠ   RŤ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   -  sN    s8   Bool comparisons only implemented for BSR, CSC, and CSR.(   R   RŹ   R'   R­   Ru   RŽ   RŻ   R°   R   R   R   (   Rx   Rą   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_ge)  s    	5c         C` s^   t  |  j d  j   t j d   t  |  j d  j d  t  |  j d  j   d  d  S(   Ni   i    (   i   i   (   i   i   (   i   i   (   i   i   (   R   R   Rv   R<   R   t   nnzt   count_nonzero(   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt
   test_emptyh  s    %c         C` sK   t  j |  j j    } t |  j j   |  t |  j j j   |  d  S(   N(   R<   Rż   R   t   toarrayR   t   T(   Rx   t   expected(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_count_nonzeron  s    c         C` s=   t  t |  j d  t  t |  j d  t  t |  j d  d  S(   Ni˙˙˙˙i   (   i˙˙˙˙i   (   i   i˙˙˙˙(   i˙˙˙˙i˙˙˙˙(   R   R   R   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_invalid_shapess  s    c         C` s   t  |  j  d  S(   N(   t   reprR   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_reprx  s    c         C` s   t  |  j  d  S(   N(   t   strR   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_str{  s    c   
      C` s  d	 } xt  j d  t  j d  t  j d  t  j d  t  j d  g D]ż } |  j | d | } | | } d | } | | j   } | | j   } | | j   } x] | | | | | | g D]C }	 t |	 j | j | j  t |	 j |  t |	 j j |  qÁ WqI Wd  S(
   Ni   R?   t   float32R   t	   complex64t
   complex128R6   i   (   i   i   (   R<   R6   R   t   tocsct   tocsrt   tocooR   t   A(
   Rx   R   t   mytypeRh   t   bt   cR   t   et   ft   m(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_empty_arithmetic~  s    

c         C` sk   t  d d d g d d d g d d d g d d d g g d  } t t |  t |  j |   j    d  S(   Ni˙˙˙˙i    i   iű˙˙˙i   iü˙˙˙R   (   R
   R   t   absR   Rv   (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_abs  s    ?c         C` s   t  d d d g d d d g d d d	 g g d
  } t t j | d  |  j |  j d  j    t t |  j |  j |  d  S(   Niü˙˙˙iý˙˙˙iţ˙˙˙i˙˙˙˙i    i   i   i   i   R   (   R
   R   R<   t   powerR   Rv   R   t   NotImplementedError(   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_elementwise_power  s    31c         C` s   t  d d d g d d d g d d d g d d d g g d  } t | |  j |  j    t  t t t g t t t g g  } t t |  j |  j  d  S(   Ni˙˙˙˙i    i   iű˙˙˙i   iü˙˙˙R   (	   R
   R   R   Rv   R    Rp   R   RŰ   t   __neg__(   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_neg  s    ?$c         C` sA   t  d d g g  } |  j |  } t | j j   | j  d  S(   Ni   y              @i   y              @y      đ?      @y       @      Ŕ(   R
   R   R   t   realRv   (   Rx   t   DRĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_realŁ  s    c         C` sA   t  d d g g  } |  j |  } t | j j   | j  d  S(   Ni   y              @i   y              @y      đ?      @y       @      Ŕ(   R
   R   R   t   imagRv   (   Rx   Rŕ   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_imag¨  s    c         C` sV  g  } | j  d d d g g  | j  d g d g d g g  | j  d d g d d g d d g g  | j  d d d g d d d g d d d g g  | j  t | d d d g g   | j  t | d d g d g g   | j  t | d d d g d d g g   | j  t | d d d g d d g g   | j  t | d d d g d d g g   | j  t | d d d d d g g   x | D] } t |  j \ } } |  j |  } xA t | d |  D]+ } t | j d |  t | d |  qÓWt	 t
 | j |  t	 t
 | j |  qWt |  j d	  j   t j d   d  S(
   Ni   i    i   i   i   t   ki(   i?  (   i(   i?  (   Rd   R   R   R   R   RĄ   R   t   diagonalR   R   R   R<   R   (   Rx   t   matsRÖ   t   rowst   colst
   sparse_matRä   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_diagonal­  s&    (1#&,,,))c         C` s/  |  j  d d d g d d d g d d d g d d d g g  } xb d d g D]T } xK d d g D]= } t | j | d	 | j   | j   j | d	 |  q_ WqL W|  j  d d
 d d g d d d d g d d d d g g  } | j d  } d d
 d d d d g d d d d d d g g } t | j |  | j d  } t | j |  | j d  } t | j |  t t | j d  | j d d  } t | j |  t t | j d d d d | j d  } t | | k  | j d d t	 } t | | k	  t | j
 d  d | _
 t | j |  d  S(   Ni   i    i   i   i   t   Ct   Fi   t   orderi
   i   i   i(   i   i   i˙˙˙˙t
   not_an_argi   R¤   (   i   i   (   i   i   (   i   i   (   i   i˙˙˙˙(   i˙˙˙˙i   (   i˙˙˙˙i˙˙˙˙(   i   i   (   i   i   (   i   i   (   i   i   (   R   R   t   reshapeRv   RĐ   R   R   t	   TypeErrorR   R    R   (   Rx   R7   Rí   t   sR8   t   desired(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_reshapeÇ  s0    ?$<0	c      	   ` sJ    f d        f d   } t  j j d  d	 d
 d d d g } xý t  j t  j g D]é } xŕ | D]Ř \ } } t  j | d | d  } xŽ | D]Ś } t | | | | f   t  j | | f d | } |  j | | f d | }	 | | |	 |  x? t  j j	 | d t
 t |  d  D] }
 | | |	 |
  q Wq Wqf WqY Wd  S(   Nc         ` sĎ   t  j |  } | d k r¨ t |  j d |  j d |  } | j d k rm t | t |   } | |  } n  t  j d |  } t  j | | |  } | |  | | f <n# | d k  rË   |  j | |  n  d  S(   Ni    i   (   R<   R   RN   R   R   R   R   RÂ   (   Rh   t   vRä   t   nt   it   j(   t   dense_setdiag(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRř   ń  s    !c      	   ` sj  xcd t  t j |  |   d d g D]=} | d k  r[ t t j j d d d d  } n t j j d d d | }   |  | |  t   ' } | j t d  | j	 | |  Wd  QXt j |  |  } t j
 |  j d k rt | | d	 d
  | f n@ t t  |  t  |   } t | |  | |  d	 d
  | f t | j |  d	 d
  | f q% Wd  S(   Ni˙˙˙˙i   i   i    i   i   RK   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivet   err_msgs   %s %d(   R   R<   R   t   intRq   RI   R   RŹ   R'   t   setdiagR   R   R   RN   RĐ   (   Rh   RŇ   Rä   t   rRô   Rą   R   Rő   (   Rř   R1   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   check_setdiagţ  s    +$ %iŇ  i    i   i   R6   RK   (   i    i   (   i   i    (   i   i   (   i   i   (   i   i   (   R<   Rq   RG   R   R   R   RĆ   R   R   t   choiceRN   R   (   Rx   Rý   t   shapesR6   RÖ   Rő   t   ksRä   Rh   RŇ   t   k2(    (   Rř   R1   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_setdiag_comprehensiveď  s    .c         C` st  |  j  t j d   } d d d g } t   >} | j t d  t t | j | d d | j |  t	 | j
   |  | j | d d t	 | j t j d d d g d d d g d d d g g   | j | d d t	 | j t j d d d g d d d g d d d g g   | j d
 d d t	 | j d d	  | j d d d t	 | j d d	  Wd  QXd  S(   Ni   i   i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensiveRä   i   i    iţ˙˙˙i	   (   i	   (   i    i   (   i	   (   i   i    (   R   R<   R%   R   RŹ   R'   R   R   Rű   R   Rĺ   RĐ   R   (   Rx   RÖ   t   valuesRą   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_setdiag'  s(    	c         C` s˛   t  d d d g d d d g d d d g g  } |  j |  } t g  t | j    D] } t |  ^ qU  } t g  t | j    D] } t |  ^ q  } t | |  d  S(   Ni   i    (   R   R   R   R   t   nonzerot   tupleR   (   Rx   RĐ   t   Aspt   ijt   A_nzt   Asp_nz(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_nonzero>  s
    011c         C` s¸   t  d d d g d d d g d d d g g  } |  j |  } t g  t t j |   D] } t |  ^ qX  } t g  t t j |   D] } t |  ^ q  } t | |  d  S(   Ni   i    (   R   R   R   R   R<   R  R  R   (   Rx   RĐ   R  R  R	  R
  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_numpy_nonzeroG  s
    044c         C` sh   t  |  j j d  j   |  j d d  d   f  t  |  j j d  j   |  j d d  d   f  d  S(   Ni   i˙˙˙˙(   R   R   t   getrowRv   R   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_getrowQ  s    2c         C` sh   t  |  j j d  j   |  j d  d   d f  t  |  j j d  j   |  j d  d   d f  d  S(   Ni   i˙˙˙˙(   R   R   t   getcolRv   R   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_getcolU  s    2c   	      ` sý   t  j j d  t  j d d d g d d d g d d	 d
 g g  } t  j j d d  } t  j g  g  } t  j d  } t j d d d d j } | | | | | g      f d   } x;  j	 D]0 } x' t
 t     D] } | | |  qŢ WqĹ Wd  S(   NiŇ  i    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   i(   t   densityg{ŽGáz?c      	   ` s2  t  j   | d |  }  j | d |  } t  j d d  ět | j   | j    t | j   j | j   j  t t  j	 | j d d     t | j d d   | j d d    t | j d d   j | j d d   j  t | j d d  | j d d   t | j d d  j | j d d  j  t | j d d  | j d d   t | j d d  j | j d d  j  t | j d d  | j d d   t | j d d  j | j d d  j  t | j d d  | j d d   t | j d d  j | j d d  j  Wd  QXd  S(	   NR6   t   overRľ   t   axisi    i   iţ˙˙˙i˙˙˙˙(   R<   R
   R   Rˇ   R   t   sumR   R6   R   t   isscalarR2   (   R6   R÷   R   R   (   t   matricesRx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   d  s$    %+%+%+%(   i(   i(   (   R<   Rq   RG   R
   t   randR   R   RY   RĐ   R   RĄ   R   (	   Rx   t   dat_1t   dat_2t   dat_3t   dat_4t   dat_5R   R6   R÷   (    (   R  Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sumY  s    c         C` sź   t  j t  j d   } t  j d d d g d d d g d d d	 g g  } |  j |  } t t | j d
 d t t | j d
 d t t | j d
 d t t | j d
 d d | d  S(   Ni   i   i    i   iü˙˙˙i   iú˙˙˙i   i	   R  g      ř?t   out(   i   i   (   i    i   (	   R<   R   R   R
   R   R   R   R  Rđ   (   Rx   R  R   R   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sum_invalid_params|  s    c         ` sv   t  j d d d g d d d g d d d	 g g    |  j        f d
   } x |  j D] } | |  q^ Wd  S(   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   c         ` sH     j  d |   }  j  d |   } t | |  t | j | j  d  S(   NR6   (   t   meanR   R   R6   (   R6   t   dat_meant
   datsp_mean(   R   R   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    (   R<   R
   R   R   (   Rx   R   R6   (    (   R   R   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sum_dtype  s    c         C` sú   t  j d d d g d d d g d d d	 g g  } |  j |  } t  j d  } t  j d  } | j d
 |  | j d
 |  t | |  t  j t  j d   } t  j t  j d   } | j d d d
 |  | j d d d
 |  t | |  d  S(   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   R  R  (   i   i   (   i   i   (   R<   R
   R   R  R   R   R   (   Rx   R   R   t   dat_outt	   datsp_out(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sum_out  s    c         C` s   t  j d d d g d d d g d d d	 g g  } |  j |  } t  j |  } t  j |  } t | |  t | j | j  d  S(
   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   (   R<   R
   R   R  R   R   R6   (   Rx   R   R   R!  R"  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_numpy_sumŹ  s    c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` s9  t  j d d d g d d d g d d d	 g g d
 |  }   j | d
 |  } t | j   | j    t | j   j | j   j  t t  j | j d d     t | j d d   | j d d    t | j d d   j | j d d   j  t | j d d  | j d d   t | j d d  j | j d d  j  t | j d d  | j d d   t | j d d  j | j d d  j  t | j d d  | j d d   t | j d d  j | j d d  j  t | j d d  | j d d   t | j d d  j | j d d  j  d  S(   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   R6   R  iţ˙˙˙i˙˙˙˙(
   R<   R
   R   R   R   R   R6   R   R  R2   (   R6   R   R   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ş  s"    %+%+%+%+%(   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_meanš  s    c         C` sź   t  j t  j d   } t  j d d d g d d d g d d d	 g g  } |  j |  } t t | j d
 d t t | j d
 d t t | j d
 d t t | j d
 d d | d  S(   Ni   i   i    i   iü˙˙˙i   iú˙˙˙i   i	   R  g      ř?R  (   i   i   (   i    i   (	   R<   R   R   R
   R   R   R   R   Rđ   (   Rx   R  R   R   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_mean_invalid_paramsŃ  s    c         ` sv   t  j d d d g d d d g d d d	 g g    |  j        f d
   } x |  j D] } | |  q^ Wd  S(   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   c         ` sH     j  d |   }  j  d |   } t | |  t | j | j  d  S(   NR6   (   R   R   R   R6   (   R6   R!  R"  (   R   R   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ă  s    (   R<   R
   R   R   (   Rx   R   R6   (    (   R   R   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_mean_dtypeÝ  s    c         C` sú   t  j d d d g d d d g d d d	 g g  } |  j |  } t  j d  } t  j d  } | j d
 |  | j d
 |  t | |  t  j t  j d   } t  j t  j d   } | j d d d
 |  | j d d d
 |  t | |  d  S(   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   R  R  (   i   i   (   i   i   (   R<   R
   R   R   R   R   R   (   Rx   R   R   R$  R%  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_mean_outí  s    c         C` s   t  j d d d g d d d g d d d	 g g  } |  j |  } t  j |  } t  j |  } t | |  t | j | j  d  S(
   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   (   R<   R
   R   R   R   R   R6   (   Rx   R   R   R!  R"  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_numpy_mean  s    c   
      C` sU  t  d d d g d d d g d d d g g t  } |  j | d d d	 t } t j j |  } t  d
 d d g d d d g d d d g g  } |  j | d d d	 t } t j j |  } t   [ } | j t d  | j t d  | j t d  t |  j	   } t |  j	   }	 Wd  QXt
 | | t d   t
 |	 | t d   d  S(   Ni   i    i   i   iü˙˙˙i   i   R   R6   g      @g        g      đ?g       @s   splu requires CSC matrix formatsC   spsolve is more efficient when sparse b is in the CSC matrix formats.   spsolve requires A be CSC or CSR matrix format(   i   i   (   i   i   (   i   i   (   i   i   (   R   t   floatR   RX   t   linalgR-   R   RŹ   R'   Rv   R   R   (
   Rx   t   Mt   sMt   Mexpt   Nt   sNt   NexpRą   t   sMexpt   sNexp(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_expm  s     30		c         ` s1     f d   } x t  g D] } | |  q Wd  S(   Nc      
   ` sŐ   t  d d d g d d d g d d d g g |   } t   ^ } | j t d  | j t d	  | j t d
    j | d d d |  } t |  } Wd  QXt | j |  j   t	 j
 d   t t t |  d  S(   Ni   i    i   i   iü˙˙˙i   i   s.   spsolve requires A be CSC or CSR matrix formatsC   spsolve is more efficient when sparse b is in the CSC matrix formats   splu requires CSC matrix formatR   R6   (   i   i   (   R   R   RŹ   R'   R   R.   R   R	   Rv   R<   R%   R   Rđ   (   R6   R/  Rą   R0  t   sMinv(   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   $  s    3			%(   R-  (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_inv#  s    c         C` sÓ   t  d d d g d d d g d d d g d d d g g  } t |  j |  j   |  t  d d d g d d d g d d d g g  } t |  j |  j   |  t |  j | d
 d j   | j d   d  S(   Ni   i    i   i   i   i   g      đ?y              @g       @R6   t   int16y      đ?      @g      @(   R   R   R   RÁ   RS   (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_from_array4  s    <c         C` sÓ   t  d d d g d d d g d d d g d d d g g  } t |  j |  j   |  t  d d d g d d d g d d d g g  } t |  j |  j   |  t |  j | d
 d j   | j d   d  S(   Ni   i    i   i   i   i   g      đ?y              @g       @R6   R:  y      đ?      @g      @(   R
   R   R   Rv   RÁ   RS   (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_from_matrix?  s    <c         C` sÓ   d d d g d d d g d d d g d d d g g } t  |  j |  j   |  d d d g d d d g d d d g g } t  |  j |  j   t |   t  |  j | d
 d j   t |  j d   d  S(   Ni   i    i   i   i   i   g      đ?y              @g       @R6   R:  y      đ?      @g      @(   R   R   Rv   RÁ   R   RS   (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_from_listJ  s    6"c         C` sl  t  d d d g d d d g d d d g d d d g g  } t |  } t |  j |  j   |  |  j |  } t |  j |  j   |  t  d d d g d d d g d d d g g  } t |  } t |  j |  j   |  t |  j | d
 d j   | j d   |  j |  } t |  j |  j   |  t |  j | d
 d j   | j d   d  S(   Ni   i    i   i   i   i   g      đ?y              @g       @R6   R:  y      đ?      @g      @(   R   R   R   R   RÁ   RS   (   Rx   Rŕ   t   S(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_from_sparseU  s    <+c   
      C` sj  |  j  j   } t | |  j  t | j j | j j k  |  j  j d d  } t | |  j  t | j j  t | j j  |  j  j d d  } t | |  j  t | j j  t | j j  t j	 |  j  j
 d |  j  j } |  j  j d |  } t |  j |  t |  j |  t | j | k  t j t j	 |  j  j
 d |  j  j  } |  j  j d |  } t |  j |  t |  j |  t | | k  t d d d g  } | |  j } | |  j  j   } t | |  t d d d d	 g  j } |  j | } |  j  j   | } t | |  |  j |  j d t } |  j j t  }	 t | j   |	  d  S(
   NRí   Rë   Rě   R6   R  g      đ?g       @g      @g      @(   R   Rv   R   R   R   t   flagst   c_contiguoust   f_contiguousR<   R   R   R6   t   baseR   R
   RÂ   R   R   RS   (
   Rx   t   chkR  Rh   t   dense_dot_denseR   RŇ   t   check2t   spboolt   matbool(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_todensek  s@    !*c         C` s  t  |  j  } |  j j   } t | |  t | j j | j j k  |  j j d d  } t | |  t | j j  t | j j  |  j j d d  } t | |  t | j j  t | j j  t	 j
 |  j j d |  j j } |  j j d |  t | |  d | d <|  j j d |  t | |  t d d d	 g  } t | |  } t | |  j j    } t | |  t d d d	 d
 g  } t | |  } t |  j j   |  } t | |  |  j |  j d t }	 | j t  }
 t |	 j   |
  d  S(   NRí   Rë   Rě   R6   R  g      đ?.g       @g      @g      @(   R   R   R   RÁ   R   R   R@  RA  RB  R<   R   R   R6   R   R	   R   R   RS   (   Rx   R   RD  R  Rh   RE  R   RŇ   RF  RG  t   arrbool(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_toarray  s:    !
c         ` sĽ  t  d d d g d d d g d d d g g  } |  j |  } x_t D]W} | j |  } xb t t f D]T } | j | d |   t   j | j  t   j   |  t   j	 | j	  qh Wt
   j | d t   k    j | d t  t
    k	     f d   }   j	 d k rCxu d D] } | |  q,WqF   j	 d k rpxH d D] } | |  qYWqF   j	 d k rF x d D] } | |  qWqF qF Wd  S(   Ng       @y              @i    g      @y              @R¤   c         ` s   t    |   } t   |   } t | |  t | | k	  d | j } | | } | | | | <t | | | | k  | | | <d  S(   Ni    (   i    (   Re   R   R   R   (   t	   attributeRh   RŇ   Rö   t   b_i(   t   S_castedt   S_copied(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt(   check_equal_but_not_same_array_attributeĚ  s    
R]   R\   RZ   t   indicest   indptrt   dataR[   t   rowt   colR^   t   offsetsy       @      @y      @      @(   R]   R\   RZ   (   RQ  RR  RS  (   RT  RU  RS  (   RV  RS  (   R   R   R)   RS   R    Rp   R   R6   RÁ   t   formatR   (   Rx   Rŕ   R>  R7   t   D_castedR¤   RP  RL  (    (   RN  RO  s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_astype¸  s0    c         C` sô   |  j  t d d d j d d   } t | j t j d   t | j   j t j d   t | j   j | j  t | j d  j   j t j d   t | j d	  j   j t j d	   | j   } | j   } t	 | | k  d  S(
   Ni   R6   R?   i   i   R   R:  RĘ   RĚ   (
   R   R   Rď   R   R6   R<   t   asfptypeRW  RS   R   (   Rx   RĐ   t   BRë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_asfptypeá  s    '((c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` sT     j  |  }   j |  } t | d | d j    t | d | d j    d  S(   Ni   gÍĚĚĚĚL1@(   R   R   R   Rv   (   R6   R   R   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ď  s    (   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_mul_scalarî  s    c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` sT     j  |  }   j |  } t d | d | j    t d | d | j    d  S(   Ni   gÍĚĚĚĚL1@(   R   R   R   Rv   (   R6   R   R   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ú  s    (   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_rmul_scalarů  s    c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` sˇ     j  |  }   j |  } | j   } d | d <| } | | } t | | j   |  | | j   } t | j   | j   | j    | | d } t | | j   | d  d  S(   Ng       @i    i   (   i    i   (   R   R   R¤   R   Rv   RÎ   (   R6   R   R   Rh   RŇ   RÓ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    

(   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_add  s    c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` s[     j  |  }   j |  } | j   } d | d <| } | | } t | | | j    d  S(   Ng       @i    i   (   i    i   (   R   R   R¤   R   Rv   (   R6   R   R   Rh   RŇ   RÓ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    

(   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_radd  s    
c         ` sL     f d   } x6   j  D]+ } | t j d  k r: q n  | |  q Wd  S(   Nc         ` s    j  |  }   j |  } t | | j   d d d d g d d d d g d d d d g g  t | d j   |    j t d d d d g d d d d g d d d d g g d   } t | | j   | | j    t | | j   | j   |  t | | d | | d  d  S(   Ni    i   i   i˙˙˙˙i   iű˙˙˙R   (   R   R   R   Rv   R   R
   (   R6   R   R   RĐ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   )  s    DE!!R   (   R   R<   R6   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sub(  s
    c         ` sL     f d   } x6   j  D]+ } | t j d  k r: q n  | |  q Wd  S(   Nc         ` s    j  |  }   j |  } t | | d d d d g d d d d g d d d d g g  t | | d d d d g d d d d g d d d d g g  t d | j   |    j t d d d d g d d d d g d d d d g g d   } t | | | | j    t | | | j   |  t | j   | | j   |  t | | j   | | j    t | d | | d |  d  S(   Ni    i   i   i˙˙˙˙i   iű˙˙˙R   (   R   R   R   Rv   R   R
   (   R6   R   R   RĐ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ?  s    >>E!!R   (   R   R<   R6   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_rsub>  s
    c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` s      j  |  }   j |  } t | d j   |  t g  t d d  D] } | | ^ qD  } t g  t d d  D] } | | ^ qp  } t | j   |  d  S(   Ni    i   i   (   R   R   R   Rv   R  RĄ   R   (   R6   R   R   Rä   t   sumSt   sumD(   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   X  s    ,,(   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_add0W  s    c   	      C` s  t  d d d g d d d g g  } t  d d d g d d d g g  } |  j |  } |  j |  } t | j |  j   | |  t | j |  j   | |  t  d d d g d d d g g  } t  d d d g d d d g g  } |  j |  } |  j |  } t | j |  j   | |  t | j |  j   | |  t | j |  j   | |  t | j |  j   | |  d  S(   Ni   i    i	   i   iý˙˙˙i   i   iü˙˙˙i   y               @y              @i˙˙˙˙y                y              @y              @iţ˙˙˙y              đ?y      đ?       Ŕy              @y      đż        y      @      Ŕy      Ŕ      @y      @       @y      @      Ŕy       Ŕ      đ?y              đży      Ŕ       @(   R   R   R   t   multiplyRv   (	   Rx   RĐ   R[  R  t   BspRë   Rŕ   t   Cspt   Dsp(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_elementwise_multiplyf  s    $$  $$   c         C` s)  t  d g  } t  d g g  } t  d d d g  } t  d d d g g  } t  d g d	 g d g g  } t  d
 d d g d d d	 g d d d g g  } d d	 d g } t j d  } | j }	 t  d g g  }
 t  d d	 g d d g g g  } |  j |  } |  j |  } |  j |  } |  j |  } |  j |  } |  j | d  } |  j |	  } |  j |	 d  d   d d  f  } |  j |
  } | | | | | | | | |	 |
 | g } | | | | | | | | | g	 } x | D] } x| | D]t } y" t j | j   | j    } Wn' t k
 rAt	 t | j |  qđn X| j |  } t
 | j   |  qđWqăWxś | D]Ž } xĽ | D] } y t j | j   |  } Wn: t k
 r¸qn' t k
 rŢt	 t | j |  qn X| j |  } t |  rt
 | j   |  qt
 | |  qWqsWd  S(   Ni   i÷˙˙˙i   i˙˙˙˙i    i   i	   i   i   i   i   iü˙˙˙(   i   i   (   i    N(   R   R<   t   onesRÂ   R   R2   Rf  Rv   R   R   R   Rđ   R&   (   Rx   RĐ   R[  Rë   Rŕ   t   ERě   t   Gt   Ht   Jt   Kt   LRg  Ri  t   Espt   Fspt   Hspt   Hsppt   Jspt   Jsppt   KspR  t
   spmatricesRö   R÷   t
   dense_multt   sp_mult(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt#   test_elementwise_multiply_broadcast{  sX    0	!"'!"c      
   C` sĹ  d t  j t  j d g d t  j d t  j g t  j d t  j t  j g g } t t |  j |  j  |  |  j t d d d d g d d d d g d d d d g g d   } d t  j t  j d g d	 t  j t t  j g t  j d
 t  j d g g } t t |  j |  |  t d d d g d d d g g  } t d  d! d" g d# d$ d g g  } |  j |  } |  j |  } t	 t | |  | |  t d d d g d	 d d g g  } t d d d g d d d g g  } |  j |  } |  j |  } t  j
 d d    t t | |  | |  Wd  QXt d d g d d g g  } t d d g d d g g  } |  j |  } |  j |  } t  j
 d d d d  ) t t  j t | |   | |  Wd  QXd  S(%   Ni   i    i   i˙˙˙˙i   iű˙˙˙R   g      ŕ?iý˙˙˙g      Đ?y               @y              @y                y              @y              @i   i   iţ˙˙˙y              đ?iü˙˙˙i	   i   i   t   divideRľ   R´   y      đ?       Ŕy              @y      đż        y      @      Ŕy      Ŕ      @y      @       @y      @      Ŕy       Ŕ      đ?y              đży      Ŕ       @(   R<   RĽ   R   Rv   R   R   R
   R   R   R   Rˇ   (   Rx   RĂ   t   denomRĐ   R[  R  Rg  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_elementwise_divide˛  s4    E$$$$!c         C` sř   t  d d d d g d d d d g d d d d g d d d d	 g g  } |  j |  } x5 d d d d g D]! } t | | j   | |  qj Wx* d
 d d g D] } t t | j |  q W|  j | d  d  d  d   f  } t t | j d  d  S(   Ni   i    i   i   i   i   i   i   i   i˙˙˙˙g@y              @y      đ?      @(   R
   R   R   Rv   R   t	   Exceptiont   __pow__(   Rx   RĐ   R[  t   exponent(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_powŐ  s    H%c         C` sˇ   |  j  t d d d g d d d g d d d g d d d g g   } t d d d d g | t d d d d g | j     t d d d d g g  } t | | | | j    d  S(   Ni   i    i   i   g      @i   (   R   R
   R   R	   RÁ   Rv   (   Rx   R/  RT  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_rmatvecä  s    E8c         C` sď   |  j  d g d g d g g  } t t | t d    t | t d  j   d g d g d g g  t | t d g  t d d d g   t | t d g g  t d g d g d g g   t | t j d  t j d   d  S(   Ni   i   i   i    (   i   i    (   i   i    (   R   R   R&   R   R   Rv   R<   Rk  (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_small_multiplicationę  s    !/)5c         C` sĂ   |  j  d g d g d g g  } t   } t | | d  t | | d  t | | d  t | | d  t | | d  t | | d  t rż t t d  d  t t d  d  n  d  S(   Ni   i   i   s   matrix on the lefts   matrix on the rights   A @ Bs   B @ A(   R   Rw   R   t   TEST_MATMULt   eval(   Rx   RĐ   R[  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_binop_custom_typeô  s    !	c         C` sĆ   |  j  d g d g d g g  } t d  } t | | d  t | | d  t | | d  t | | d  t | | d  t | | d  t rÂ t t d  d  t t d  d  n  d  S(	   Ni   i   i   s   matrix on the lefts   matrix on the rights   A @ Bs   B @ A(   i   i   (   R   R   R   R  R  (   Rx   RĐ   R[  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt!   test_binop_custom_type_with_shape  s    !c         C` st  t  s t j d  n  |  j t d d d g d d d g d d d g d d d g g   } |  j t d d g d d g d d g g d   } t d d d g  j } t t j | |  | j	   |  t t j | |  j	   | | j	    t t j | j	   |  | | j	    t t j | | j	    | | j	    t
 t t j | d  t
 t t j d |  d  S(   Ns$   matmul is only tested in Python 3.5+i   i    i   i   g      @R   (   R  R   R   R   R
   RÂ   R   t   operatorR;   Rv   R   R   (   Rx   R/  R[  RU  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_matmul  s    E3c         C` sF  |  j  t d d d g d d d g d d d g d d d g g   } t d d d g  j } t | | | j   |  t | t d d d g  j d  t | t d g d g d g g  j d  t | t d g d g d g g  j d	  t t	 | t d d d g  t
   t t	 | t d d d g  j t   t d d g  t d d d d g  t d g d g g  t d d d g  t d g d g g  g } x! | D] } t t | j |  qŻWt | t d d d g  t | j d d d g   t | d g d g d g g t t | j d d d g   j  d  S(
   Ni   i    i   i   g      @i   (   i   (   i   i   (   i   i   (   R   R
   RÂ   R   Rv   R   R   R   R   Ru   R   R   R   R{   R	   RĐ   R   (   Rx   R/  RU  t   bad_vecsR7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_matvec,  s    E#,,&)9-5c         C` s¤  t  d d d g d d d g d d d g d d d g g  } t d d d g d d d g d d d g d d d g g  } t  d d g d d g d d g g d  } |  j |  } |  j |  } t | | j   | |  t | | | |  t | | | |  t | | | |  | j   } | } t | | j   | |  t | | | |  t | | | |  t | | | |  | j   } t | | j   | |  t | | | |  t | | | |  t | | | |  | j   } t | | j   | |  t | | | |  t | | | |  t | | | |  d } d }	 t j	 d  t
 | d f  }
 xZ t |  D]L } xC t d  D]5 } t j   } | |	 k  r| |	 |
 | | f <qqWqW|  j |
  }
 |
 |
 j } t | j   |
 j   |
 j j    t | j   |
 j   |
 j   j  |  j d d g d d	 g g  }
 |  j d d g d d	 g d
 d g g  } t t |
 j |  d  S(   Ni   i    i   i   g      @R   i   g333333Ó?i   i   i   (   R
   R   R   R   Rv   RÍ   RÎ   RĎ   Rq   RG   R   R   RÂ   R   R   R{   (   Rx   Rh   t   a2RŇ   t   aspt   bspt   cspRÓ   Rq  t   fracRĐ   Rö   R÷   Rü   R[  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_matmat_sparseT  sR    <<*&&!*c         C` s÷   t  d d d g d d d g d d d g d d d g g  } |  j |  } t d d g d d g d d g g  t  d d g d d g d d g g  g } xW | D]O } | | } t t | t |    t | j d	  t | t | |   q  Wd  S(
   Ni   i    i   i   g      @i   i   i   (   i   i   (	   R
   R   R   R   Ru   t   typeR   R   R	   (   Rx   Rh   R  t   bsRŇ   t   result(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_matmat_dense  s    <N
c         C` s  t  j d d d g d d d g d d d g g d d g d d g g  } | j   } |  j |  } xŃ d d d	 d
 d d d g D]´ } | j |  } t | j |  t | j   |  |  j | d  j |  } t | j |  t | j   | d  t | d  |  } t | j |  t | j   |  q Wx] d d g D]O } | j |  } t | |  |  j | d  j |  } t | | d  qDWd  S(   Ni   i    i   i   i   i   RZ   R[   R\   R]   R^   R_   R`   y              @t   _matrixR   t   dense(	   RY   R   Rv   R   t   asformatR   RW  R   R  (   Rx   RĐ   Rŕ   RW  Rh   RŇ   RÓ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sparse_format_conversions  s$    H"c   	      C` s  t  d d d d g d d d d g d d d d g g  } t  d d d g d d d g g  } t | |  } |  j |  } x d g D]{ } t | d |  } x_ d d d d	 g D]K } xB d d d d d	 d
 g D]( } t | d | | f  j   |  qĐ Wqą Wq Wd  S(   Ni   i    i   i   i   i   RZ   t   toi   i   t	   blocksize(   R   R   R   Re   R   Rv   (	   Rx   R7   R8   RĐ   R  RW  t   fnt   Xt   Y(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt
   test_tobsrŻ  s    9$c         ` sç    j  } t j g  g  } | | g      f d   }  j d  } t t j |  j   t j t d    t | j j   t d   t	 t
 | j d d x;  j D]0 } x' t t     D] } | | |  qČ WqŻ Wd  S(	   Nc         ` s   t  j   | d |  }  j |  } | j   } | j   } t | j   |  t | j   j   |  t | j | j  d  S(   NR6   (   R<   R
   R   R   R   Rv   R   R6   (   R6   R÷   R   R   Rh   RŇ   (   R  Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   Ŕ  s    i   i   t   axesi    (   i   i   (   i   i   (   i   i   (   R   R<   R   R   R   R   Rv   R   RÂ   R   R   R   RĄ   R   (   Rx   R  R  R   t   emptyR6   R÷   (    (   R  Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_transposeť  s    	c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` sT     j  |  }   j |  } | | } t | | |  | | } t | | |  d  S(   N(   R   R   R   (   R6   R   R   t   sum1t   sum2(   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ×  s    

(   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_add_denseÖ  s    
c         ` sa     f d   } xK   j  D]@ } | t j d  k rO t t j  d k rO q n  | |  q Wd  S(   Nc         ` sŹ     j  |  }   j |  } | j t k rb | | } t | | |  | | } t | | |  nF | | | | } t | | |  | | | | } t | | |  d  S(   N(   R   R   R6   R   R   (   R6   R   R   RĽ  RŚ  (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ć  s    

R   s	   1.9.0.dev(   R   R<   R6   R/   t   __version__(   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sub_denseä  s    c         ` s+  t  j d d d g d d d g d d d g g    t  j d d d g d d d g d d d g g   t  j d d d g d d d g d d
 d g g        f d   } xs  j D]h } x_ t  j t  j t  j g D]E } x< d d d d g D]( } | t  j |  t  j |  |  qó WqÚ Wqť Wd  S(   Ni   i    i   i   i   i   i   i˙˙˙˙y               @y              đ?y              đżc   
      ` s  t  j |  t  j  r0  j  j |    } n  j   j |    } | d k rf | j d  } nl | d k r | j d  } nN | d k r˘  j |  } n0 | d k rÉ  j  j |   } n	 t    t   5 } | j t	 d  | j
 |  } | j |  } Wd  QXt  j
 t |  t |   } t t |  |  t | j | j  t  j t |  t |   }	 t t |  |	  t | j |	 j  d  S(   Nt   scalari   t   scalar2i˙˙˙˙R  RY   sH   Taking maximum .minimum. with > 0 .< 0. number results to a dense matrix(   R<   RL   t   complexfloatingR   RS   R  R   R   RŹ   R'   t   maximumt   minimumRv   R   R   R6   (
   R6   t   dtype2t   btypeRĐ   R[  Rą   t   max_st   min_st   max_dt   min_d(   t   A_denset   A_dense_cpxt   B_denseRx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s.    		RŞ  RŤ  R  RY   y      @       @(   R<   R   R   R   t   float_t   complex_R6   (   Rx   R   R6   RŻ  R°  (    (   Rľ  Rś  Rˇ  Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_maximum_minimum   s    333c         C` sů  |  j  } t | j   j | j  t | j | d t j | j  t | j | d t j | j  t | j   j   | j    t | j | d t j   | j    t | j | d t j   | j    t | d | j  } t |   j | j  t | d t  j | j  t | d t  j | j  t |   j   | j    t | d t  j   | j    t | d t  j   | j    | j   } y, | d c d 7<t	 | d | d k  Wn! t
 k
 rän t k
 rôn Xd  S(   NR¤   R  i    i   (   i    i    (   i    i    (   i    i    (   R   R   R¤   RW  t	   __class__R    Rp   Rv   Re   R   RŰ   Rđ   (   Rx   RĐ   t   toselfR[  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_copy*  s,    	""((""c         C` sj   t  j t  j d  j d d   } |  j |  } x0 t | |  D] \ } } t | j   |  qC Wd  S(   Ni2   i   i
   (   R<   R
   R   Rď   R   R   R   Rv   (   Rx   R[  RĐ   R7   R8   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_iteratorO  s    $c         C` s_  t  j g   } | j d  } | j d  } | j d  } | j d  } | j d	  } t  j t  j d d g   } |  j |  } |  j |  }	 |  j |  }
 |  j |  } |  j |  } |  j |  } t | j |  j t  j | |  j  t |	 j |  j t  j | |  j  t | j |	  j t  j | |  j  t |
 j |  j t  j | |  j  t |
 j |  j t  j | |  j  t | j |
  j t  j | |  j  t | j |
  j t  j | |  j  t | j |  j t  j | |  j  t t	 | j |  t t	 | j |  t | j
 |  j t  j
 | |  j  t |	 j
 |	  j t  j
 | |  j  t | j
 |  j t  j
 | |  j  t | j
 |  j t  j
 | |  j  t |	 j
 |  j t  j
 | |  j  t | j
 |  j t  j
 | |  j  t | j
 d  j t  j
 | d  j  t |	 j
 d  j t  j
 | d  j  t | j
 d  j t  j
 | d  j  t t	 | j
 |  t t	 | j
 |  t | j |  j | j |  j  t |	 j |	  j | j |  j  t | j |  j | j |  j  t t	 | j |  t t	 |	 j |  d  S(
   Ni    i   i   i   (   i    i    (   i    i   (   i    i   (   i   i    (   i   i    (   R<   R
   Rď   Rk  R   R   R	   RĐ   R   R   Rf  Rz   (   Rx   Ry   Rh   RŇ   RÓ   R   RÔ   RŐ   R  R  R  t   dspt   espt   fsp(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt    test_size_zero_matrix_arithmeticV  sN    (((((((((((((((((%%%c         C` sí   t  j g   } | j d  } | j d  } | j d  } xŞ | | | g D] } |  j |  } t | j   j |  t | j   j |  t | j   j |  t | j	   j |  t | j
   j |  t | j   j |  qL Wd  S(   Ni    i   (   i    i    (   i    i   (   i   i    (   R<   R
   Rď   R   R   RĎ   RĐ   RÎ   RÍ   t   tolilt   todokt   tobsr(   Rx   Ry   Rh   RŇ   RÓ   RÖ   t   spm(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_size_zero_conversions  s    c         ` sE   d d  l    t   } | j t  |    f d    } |   d  S(   Ni    c          ` sę    j  j   }  xÔ t   j  D]Ă }   j   j |  d |  } t |  j | j  t |  j	   | j	    t |  j
 | j
  x] |  j j   D]L \ } } t | t j  rÇ t | | j |  q t | | j | k  q Wq Wd  S(   Nt   protocol(   R   R¤   RĄ   t   HIGHEST_PROTOCOLt   loadst   dumpsR   R   R   RÁ   RW  t   __dict__t   itemsRu   R<   R   R   (   R   RČ  t   sploadedt   keyt   val(   t   pickleRx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ¤  s    (   RŃ  R   RŹ   R'   (   Rx   Rą   R   (    (   RŃ  Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_pickle  s
    	c         ` sg     f d   } xQ d d d d d d d d	 d
 d d d d d d d d d d g D] } | |  qO Wd  S(   Nc         ` s­   |  d k r t  j d  n    j t t f k rA t  j d  n  t t |   }   j t j d  j d d  d  } | | j	    } | |  } t
 | j	   |  d  S(   Nt   signs2   sign conflicts with comparison op support on Numpys%   Unary ops not implemented for dok/lili   i   i   g      4@(   R   R   R   R    R"   Re   R<   R   Rď   RÁ   R   (   Rm   t   ufuncR  t   X0t   X2(   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ´  s    (t   sint   tant   arcsint   arctant   sinht   tanht   arcsinht   arctanht   rintRÓ  t   expm1t   log1pt   deg2radt   rad2degt   floort   ceilt   trunct   sqrtRŘ   (    (   Rx   R   Rm   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_unary_ufunc_overridesł  s    c         C` sç  t  j d d d d g d d d d g d d d d g g  } |  j |  } t | j d  d  k  t | j d d g d d g d d g g  | j d  t | j d d g d d g g  | j d	  t | j d d g d d g d d g g  | j d
  t | j d d d g d d d g d d d g g  | j d  t | j d d d g d d d g d d d g g  | j d d  t | j d d g d d g d d g g  x- d d d d g D] } t t	 | j |  qĆWd  S(   Ni   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   resizeR2   R   RĐ   R   R   (   Rx   Rŕ   R>  t	   bad_shape(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_resizeČ  s:    			(Z   R   R   t   __doc__R)   R   t   classmethodR   R   RŁ   R˛   Rł   Rş   Rť   Rź   R˝   RŔ   RÄ   RĹ   RÇ   RÉ   R×   RŮ   RÜ   RŢ   Rá   Ră   Rę   Ró   R   t   markt   slowR  R  R  R  R  R  R  R  R#  R&  R'  R(  R)  R*  R+  R,  R7  R9  R­   R;  R<  R=  R?  RI  RK  RY  R\  R]  R^  R_  R`  Ra  Rb  Re  Rj  R|  R  R  R  R  R  R  R  R  R  R  R  RĄ  R¤  R§  RŠ  Rş  R˝  Rž  RÂ  RÇ  RŇ  Rč  Rë  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   â   s¤   			%	'	E	D	?	?													(8				
			#												(	%)										7	#			
				(	5							*	%		:			t   _TestInplaceArithmeticc           B` sS   e  Z e j j e e j  d  k  d d d    Z d   Z	 d   Z
 d   Z RS(   s   1.13.0t   reasons,   numpy version doesn't respect array priorityc         C` s  t  j d  } |  j |  } | j   } | j   } | | 7} | | 7} t | |  | j   } | j   } | | 8} | | 8} t | |  t t t j | |  | j   } | j   } | j	 | j
  } | | j
 9} t | |  t t t j | |  d  S(   Ni   i   (   i   i   (   R<   Rk  R   R¤   R   R   R   R  t   imulR	   RÂ   Rđ   t	   ifloordiv(   Rx   Rh   RŇ   R7   R8   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_inplace_denseî  s&    



c         ` s1     f d   } x   j  D] } | |  q Wd  S(   Nc         ` sŢ     j  |  }   j |  } t j t d  |  d d rz | j   } | d 9} | j   } | d 9} t | | j    n  t j t d  |  d d rÚ | j   } | d 9} | j   } | d 9} t | | j    n  d  S(   Ni   t   castingt	   same_kindgÍĚĚĚĚL1@(   R   R   R<   t   can_castR  R¤   R   Rv   (   R6   R   R   Rh   RŇ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    



(   R   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_imul_scalar  s    c         ` sI     f d   } x3   j  D]( } t j | t j  s | |  q q Wd  S(   Nc         ` sŢ     j  |  }   j |  } t j t d  |  d d rz | j   } | d } | j   } | d } t | | j    n  t j t d  |  d d rÚ | j   } | d } | j   } | d } t | | j    n  d  S(   Ni   Rő  Rö  gÍĚĚĚĚL1@(   R   R   R<   R÷  R  R¤   R   Rv   (   R6   R   R   Rh   RŇ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   #  s    



(   R   R<   R÷  t   int_(   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_idiv_scalar"  s    c         C` s×   |  j  t j d   } |  j  t j d   } |  j  t j d   } | | 7} | | } t | j | j  | | 9} | | } t | j | j  | | 8} | | } t | j | j  t t t j | |  d  S(   Ni   (	   R   R<   R%   R   RĐ   R   Rđ   R  Ró  (   Rx   Rh   RŇ   t   bp(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_inplace_success;  s    





(   R   R   R   Rî  t   skipifR/   R<   R¨  Rô  Rř  Rú  Rü  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRđ  í  s
   		t   _TestGetSetc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         ` s7     f d   } x! t  D] } | t j |   q Wd  S(   Nc         ` s÷   t  d d d g d d d g d d d g d d d g g d |  }   j |  } | j \ } } xT t | |  D]B } x9 t | |  D]' } t | | | f | | | f  q Wqq Wx9 d d	 d
 d d d g D] } t t t f | j |  qĐ Wd  S(   Ni   i    i   i   i   R6   i˙˙˙˙(   i    i   (   i˙˙˙˙i   (   i   i    (   i   i   (   i   i˙˙˙˙(   i   i   i   (	   R   R   R   RĄ   R   R   t
   IndexErrorRđ   t   __getitem__(   R6   Rŕ   RĐ   R/  R2  Rö   R÷   R  (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   S  s    )(   R)   R<   R6   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_getelementR  s    c         ` s7     f d   } x! t  D] } | t j |   q Wd  S(   Nc      	   ` sß    j  d d |  } t    } | j t d  |  j d  | d <|  j d  | d <|  j d  | d <|  j d	  | d <|  j d
  | d <|  j d  | d <|  j d  | d <Wd  QX|  t j k rt | j   d d d d
 g d d d d g d d d d g g  n  x3 d d d d d g D] } t	 t
 | j | d  q$WxB d d d g t d d d g  g D] } t	 t | j d |  qiWt j |  t j  rŰ|  t j k rŰx* d g D] } t	 t | j d |  q¸Wn  d  S(    Ni   i   R6   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei    g      @i   i   g       @i   i˙˙˙˙i   iţ˙˙˙i   g     Ŕ^@y              @(   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<   t   bool_R   Rv   R   R˙  t   __setitem__R   R   RL   RŹ  Rđ   (   R6   RĐ   Rą   R  Rô   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   g  s*    	C+(   R)   R<   R6   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_setelementf  s    c         ` s:     f d   } x$   j  D] } | t j |   q Wd  S(   Nc         ` sV     j  d d |  } t   ! } | j t d  d | d	 <Wd  QXt | d
 d  d  S(   Ni   i
   R6   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   i    iü˙˙˙(   i   i
   (   i    iü˙˙˙(   i    iü˙˙˙(   R   R   RŹ   R'   R   (   R6   RĐ   Rą   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    	(   R   R<   R6   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_negative_index_assignment  s    c         ` s   d
 \        f d   } x` d d d t  d  d f d t  d  f t  d  t  d  f g D] \ } } | | | d	  qd Wd  S(   Ni   i
   c         ` s   d |  | | f }  j     f  } t   ' } | j t d  d | |  | f <Wd  QXt | j   | d | t | |  | f d d | d  S(   Ns   %r ; %r ; %rs?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   Rů   (   R   R   RŹ   R'   R   R  (   Rö   R÷   t   nitemsR1   RĐ   Rą   (   RÖ   Rő   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   _test_set  s    	i   i   i˙˙˙˙i   iţ˙˙˙i   (   i   i
   (   i   i   (   i˙˙˙˙i   (   i˙˙˙˙iţ˙˙˙(   R   (   Rx   R  Rö   R÷   (    (   RÖ   Rő   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_scalar_assign_2  s
    *%c      	   C` s   |  j  d  } t j d	  } t   L } | j t d  x2 | | g D]$ } d | d
 <d | d <d | d <qG WWd  QXt | j   |  d  S(   Ni   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   i    i   i   i	   (   i   i   (   i   i   (   i    i   (   i   i    (   i   i    (   R   R<   R   R   RŹ   R'   R   RÁ   (   Rx   RĐ   R[  Rą   Rë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_index_scalar_assignĽ  s    	

(   R   R   R  R  R  R  R	  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRţ  Q  s
   				t
   _TestSolvec           B` s   e  Z d    Z RS(   c         C` s_  d } t  j j d  t | | f d t } t  j j |  } t  j j | d  d t  j j | d  } t  j j |  } x. t t |   D] } | | | | | f <q WxP t t |   D]< } | | | | | d f <t | |  | | d | f <qÄ W|  j	 |  } t
   , } | j t d  t |  j |  } Wd  QXt | | |  d  S(   Ni   i    R6   i   y              đ?s   splu requires CSC matrix format(   R<   Rq   RG   R   Rś   R  RĄ   R   R   R   R   RŹ   R'   R,   t   solveR   (   Rx   Rő   RĐ   R7   R8   Rü   Rö   Rą   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt
   test_solveł  s     ."(   R   R   R  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR
  ˛  s   t   _TestSlicingc           B` s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 e
 j j e e j  d k d	 d
 d    Z RS(   c         C` sŘ   t  |  j d d t j d d d  f j t j  t  |  j d d t j d d d  f j t j  t  |  j d d t j d d d  f j t j  t  |  j d	 d t j d d d  f j t j  d  S(
   Ni   i
   R6   i    i   (   i   i
   (   i   i
   (   i   i
   (   i   i
   (   R   R   R<   R:  R6   R?   RĘ   R   (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_dtype_preservationÉ  s    555c         C` s  t  t d  j d d   } |  j |  } t | d d  d   f | d d  d   f j    t | d d d  f | d d d  f j    t d d d g d d d g d d d g d d d g g  } |  j |  } t | d d d	  f | d d d	  f j    t d d d g d d d g d d d g d d d g g  } |  j |  } t | d d d	  f | d d d	  f j    t | d d
 d   f | d d
 d   f j  t t	 | j
 t d   d f  t t	 | j
 d t d	 d  f  d  S(   Ng      I@i   i
   i   i   i   i    i   i   iţ˙˙˙i   i   (   R   R   Rď   R   R   Rv   R
   RĐ   R   R˙  R   t   sliceR2   (   Rx   R[  RĐ   Rë   Rŕ   Rl  Rě   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_get_horiz_sliceĎ  s    33<3<30c         C` s:  t  t d  j d d   } |  j |  } t | d d  d f | d d  d f j    t | d  d   d f | d  d   d f j    t d d d g d d d g d d d g d d d g g  } |  j |  } t | d d	  d f | d d	  d f j    t | d  d   d f | d  d   d f j    t d d d g d d d g d d d g d d d g g  } |  j |  } t | d  d   d f | d  d   d f j    t | d
 d   d f | d
 d   d f j    t t | j	 t
 d   d f  t t | j	 d t
 d	 d  f  d  S(   Ng      I@i   i
   i   i    i   i   i   i   iţ˙˙˙i   i   (   R   R   Rď   R   R   Rv   R
   R   R˙  R   R  R2   (   Rx   R[  RĐ   Rë   Rŕ   Rl  Rě   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_get_vert_sliceă  s    33<33<33c         C` sˇ  t  t d  j d d   } |  j |  } t | d d  d d  f j   | d d  d d  f  t | d d   d  d  f j   | d d   d  d  f  t | d  d  d d   f j   | d  d  d d   f  t d d d g d	 d d g d d d g d d d g g  } |  j |  } t | d d  d d  f | d d  d d  f j    t | d  d   d d   f | d  d   d d   f j    d  S(
   Ng      I@i   i
   i   i    i   i   i˙˙˙˙i   (   R   R   Rď   R   R   Rv   R
   (   Rx   R[  RĐ   Rl  Rě   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_get_slicesř  s    ???<?c         C` s   t  j j d d  } y/ |  j |  d d d  d d d  f } Wn  t k
 rf t j d   n Xt | j   | d d d  d d d  f  d  S(   Ni2   i    i   i   i   i   s   feature not implemented(	   R<   Rq   R  R   R   R   R   R   Rv   (   Rx   t   v0Rô   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt    test_non_unit_stride_2d_indexing	  s    /c         C` sę  t  t d  j d d   } |  j |  } t | d | d  t | d | d  t | d | d  t | t d  d f | d  t | d t d  f | d  t | t d  t d  f | d  t | d d  d   f j   | d d  d   f  t | d d d  f j   | d d d  f  t | t d  d d  f j   | d d d  f  t | d  d   d f j   | d  d   d f  t | d d	  d
 f j   | d d	  d
 f  t | d d	  d f j   | d d	  d f  t | d d  d f j   | d d  d f  t | d d  t d  f j   | d d  d f  t | d d  d d  f j   | d d  d d  f  t | d	 d   d d   f j   | d	 d   d d   f  t | d  d	  d  d  f j   | d  d	  d  d  f  t | d d  d  d  f j   | d d  d  d  f  t | d d  d   f j   | d d  d   f  t | d d  d   f j   | d d  d   f  t | t d  d  d   f j   | d d  d   f  t | d d	 !j   | d d	 ! t | d d !j   | d d ! t t d  t d	  d   } t | | d  d   f j   | d d	  d  d   f  t | d  d   | f j   | d  d   d d	  f  d  S(   Ni2   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   Rv   R  R   R2   (   Rx   R[  RĐ   Rń   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_slicing_2	  s8    !!'33933339????339!!9c   	      ` s\  t  t d  j d d    |  j     t j } | d  | d d !| d | d d  d  | d d d  | d	 d  d
  | d  d d  d d | | d d !d d
 d t d  t j d  g }    f d   } x$ t |  D] \ } } | |  qĺ W   f d   } xD t |  D]6 \ } } x' t |  D] \ } } | | |  q7WqWd  S(   Ni2   i   i
   i   i   i   i   i˙˙˙˙i   iţ˙˙˙i    iű˙˙˙iý˙˙˙c         ` s}     |  }  |  } | j  d k r< t | | t |    n= | j d k r] | j d k r] n t | j   | t |    d  S(   Ni    (    (   R   R   RĆ   RK   R   Rv   (   Rh   R7   R8   (   RĐ   R[  (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   check_1H	  s    

c         ` să   t  |  t j  r! t |   } n |  } t  | t j  rH t |  } n | }   |  | f }  | | f } | j d k r t | | t |  | f   nC | j d k r˝ | j d k r˝ n" t | j	   | t |  | f   d  S(   Ni    (    (
   Ru   R<   R   Rú   R   R   RĆ   RK   R   Rv   (   Rh   RŇ   t   ait   biR7   R8   (   RĐ   R[  (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   check_2V	  s    (	   R   R   Rď   R   R<   t   s_R   R   t	   enumerate(	   Rx   R  t   slicesR  R÷   Rh   R  Rö   RŇ   (    (   RĐ   R[  s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_slicing_3>	  s    	(0c         C` s  t  t d  j d d   } |  j |  } t | d j | d j  t | d j | d j  t | d j | d	 j  t | d
 j | d j  t | d d   d f j | d d   d f j  t | d d d   f j | d d d   f j  t | d d   d d f j | d d   d d f j  t | d d d d   f j | d d d d   f j  t | d | d  t | d | d  d  S(   Ni2   i   i
   .i   (   .(   .(   i   .(   i   .(   .i   (   .i   (   i   i   .(   i   i   .(   i   .i   (   i   .i   (   R   R   Rď   R   R   RĐ   R   (   Rx   RŇ   Rh   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_ellipsis_slicingr	  s    3399s	   1.9.0.devRń  t    c         C` s  t  t d  j d d   } |  j |  } t | d j | d j  t | d j | d	 j  t | d
 j | d j  t | d d   d d f j | d d   d d f j  t | d d d d   f j | d d d d   f j  t | d j | d j j d   d  S(   Ni2   i   i
   .i   (   ..(   ..(   ...(   ...(   i   ..(   i   ..(   ..i   (   ..i   (   i   i   (   R   R   Rď   R   R   RĐ   (   Rx   RŇ   Rh   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_multiple_ellipsis_slicing	  s    99(   R   R   R  R  R  R  R  R  R  R  R   Rî  Rý  R/   R<   R¨  R   (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  Č  s   						-	4	t   _TestSlicingAssignc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c      
   C` sĺ   |  j  d	  } t j d
  } t   Ľ } | j t d  x | | g D]} } d | d d  d f <d | d d  d f <d | d d  d f <d | d d d   f <d | d d  d  d d   f <qG WWd  QXt | j   |  d  S(   Ni   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   i    i   i   i	   i˙˙˙˙(   i   i   (   i   i   (   R   R<   R   R   RŹ   R'   R   RÁ   (   Rx   RĐ   R[  Rą   Rë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_slice_scalar_assign	  s    	)c         ` s   d \        f d   } xo d t  d  f d t  d  d d  f d t  d d  f t d  t  d d  f g D] \ } } | | |  qv Wd  S(	   Ni   i
   c         ` s   d |  | f }  j     f  } t   ' } | j t d  d | |  | f <Wd  QXt j    f  } d | |  | f <t | j   | d | d  S(   Ns
   i=%r; j=%rs?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   Rů   (   R   R   RŹ   R'   R<   R   R   Rv   (   Rö   R÷   R1   RĐ   Rą   R[  (   RÖ   Rő   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  Ľ	  s    	i   i   i   iţ˙˙˙(   i   i
   (   R  R2   R   (   Rx   R  Rö   R÷   (    (   RÖ   Rő   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_slice_assign_2˘	  s
    9(c      
   C` s  |  j  d
  } t   h} | j t d  d | d <d | d <d | d <d | d <| d } | d d  d   f | d d  d   f <t | d d  d   f j | d d  d   f j  | d } | d  d  d  d  f | d  d   d  d   f <t t j d  | d | j  | d } | d d  d   f j | d  d	  d f <t | d d  d   f j j | d  d	  d f j  Wd  QXd  S(   Ni   i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   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Â   (   Rx   R[  Rą   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_self_self_assignment´	  s"    	




&3
2!
)c      	   C` s+  |  j  d  } t d d d g d d d g d d d g d d d g g  } d d g d d g g } t   š } | j t d  d	 | d <d | d <d | d <| | | d  d   d  d   f <t | j   |  t t |   | d  d
  d  d
  f <t | j   d  d
  d  d
  f |  Wd  QXd  S(   Ni   i   i
   i    i   i   i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   i   i   (   i   i   (   i    i    (   i   i   (   i   i   (   R   R   R   RŹ   R'   R   Rv   R   (   Rx   R[  RĂ   t   blockRą   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_slice_assignmentĚ	  s     	


 (c         C` sĹ   |  j  d
  } t   X } | j t d  d | d <d | d <d | d <d	 | d <t t j d   | d *Wd  QXt d d d g d d d g d d d g d	 d d g g  } t | j	   |  d  S(   Ni   i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   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Á   (   Rx   R[  Rą   RĂ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt"   test_sparsity_modifying_assignmentŕ	  s    	



<c   
      C` s$  |  j  d  } t t d t   } t j } | d  | d d !| d | d d  d  | d d d  | d d  d	  | d  d d  d
 d | | d d !d d	 d t d  t j d  g } t   ě} | j	 t
 d  xJ t |  D]< \ } } | | | <| | | <t | j   | t |   qć Wx t |  D] \ } } x| t |  D]n \ } }	 d | d | d | | |	 f <d | d | d | | |	 f <t | j   | t | |	 f   qLWq3Wt d d d  | d
 d d d  f <t d d d  | d
 d d d  f <t | j   |  t j t d d d   d  d   d  f | d d d  d
 f <t j t d d d   d  d   d  f | d d d  d
 f <t | j   |  Wd  QXt t | j d t t d    t t | j d t d   t t | j d
 t d   f t t d    t t | j t d   d f t t d    t t | j t d   d f | j    t t | j d d d g d
 d d g g d d d g f d d d d g  t t | j d d d g d
 d d g d d d g g d d d g d
 d d g g f d d d g  d  S(   Ni   i
   i   i   i   i   i˙˙˙˙i   iţ˙˙˙i    iű˙˙˙iý˙˙˙s?   Changing the sparsity structure of a cs[cr]_matrix is expensiveič  id   (   i   i
   (   i   i
   (   i    i    (   i    i    (   R   R
   R   R-  R<   R  R   R   R   RŹ   R'   R  R   Rv   RĆ   R   RĄ   R2   R   R   R  t   listR   R  R¤   (
   Rx   RĐ   R[  R  R  Rą   R÷   Rh   Rö   RŇ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_set_sliceî	  sJ    	(0	

   *%%>>"(='(   R   R   R"  R#  R$  R&  R'  R)  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR!  	  s   					t   _TestFancyIndexingc           B` sV   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   s   Tests fancy indexing features.  The tests for any matrix formats
    that implement these features should derive from this class.
    c         C` s   |  j  t j d d g   } t t t t f | j d  t t t t f | j d  t t t f | j d d d g d d d d g f  d  S(   Ni   t   fooi   i   i   i   (   i   R+  (   R   R<   R   R   R˙  R   Rđ   R   (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_bad_index 
  s
    c         C` s}  t  t d  j d d   } |  j |  } t | d d g j   | d d g  t | d d d g f j   | d d d g f  t | d d d g f j   | d d d g f  t | t d  d d g f j   | d d d g f  t | d t d d g  f j   | d d d g f  t | t d  t d d g  f j   | d d d g f  t | d  d   d d	 d d g f j   | d  d   d d	 d d g f  t | d d
  d g f j   | d d
  d g f  t | d d
  d d g f j   | d d
  d d g f  t | d d
  t d d g  f j   | d d
  d d g f  t | d d g d f j   | d d g d f  t | d d g d f j   | d d g d f  t | t d d g  d f j   | d d g d f  t | d d g t d  f j   | d d g d f  t | t d d g  t d  f j   | d d g d f  t | d d g d  d   f j   | d d g d  d   f  t | d d g d	 d  f j   | d d g d	 d  f  t | t d d g  d	 d  f j   | d d g d	 d  f  t t | d d g d d
 g f  | d d g d d
 g f  t t | d d g d d g f  | d d g d d g f  t t | t d d g  d d g f  | d d g d d g f  t t | d d g t d d g  f  | d d g d d g f  t t | t d d g  t d d g  f  | d d g d d g f  t | d g d g g d d
 g f j   | d g d g g d d
 g f  t | d g d g d g g d d g f j   | d g d g d g g d d g f  t | t d g d g d g g  d d g f j   | d g d g d g g d d g f  t | d g d g d g g t d d g  f j   | d g d g d g g d d g f  t | t d g d g d g g  t d d g  f j   | d g d g d g g d d g f  t | d d g j   | d d g  t | d d g j   | d d g  t | t d d g  j   | d d g  t | d d g d  d   f d  d   d d
 g f j   | d d g d  d   f d  d   d d
 g f  t | d d g d  d   f d  d   d d g f j   | d d g d  d   f d  d   d d g f  t | t d d g  d  d   f d  d   t d d g  f j   | d d g d  d   f d  d   d d g f  t | d  d   d d g f d d
 g d  d   f j   | d  d   d d g f d d
 g d  d   f  t | d  d   d d g f d d g d  d   f j   | d  d   d d g f d d g d  d   f  t | d  d   t d d g  f t d d g  d  d   f j   | d  d   d d g f d d g d  d   f  t t d  t d
  d   } t | | d  d   f j   | d d
  d  d   f  t | d  d   | f j   | d  d   d d
  f  t
 j d g g d t } t | | | f j   | | | f  t | g  g g  g f j   | g  g g  g f  d  S(   Ni2   i   i
   i   i   i˙˙˙˙i   iű˙˙˙i   i   i	   iü˙˙˙iý˙˙˙iţ˙˙˙R6   (   R   R   Rď   R   R   Rv   R   R  R   R2   R<   Rú   (   Rx   R[  RĐ   Rń   Rö   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing'
  sZ    '3399?K9?E3399???E??EEKKW]]c''-kkwkkw99'c         C` s3  t  j j d  d } d } d } t  j t  j j | |   } t  j | | d k  } t  j j | d | d | } t  j j | d | d | } |  j |  } | | | f } t |  rŇ | j	   } n  t
 | | | | f  | | }	 | | }
 t t | j |	 | f  t t | j | |
 f  d  S(   NiŇ  i2   i   i   g      ŕ?i   RK   (   R<   Rq   RG   R   R  Rf  RI   R   R&   Rv   R   R   R˙  R   (   Rx   t   NUM_SAMPLESR/  R2  Rŕ   t   IRo  R>  t   SIJt   I_badt   J_bad(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_randomizedq
  s"      

c   	      C` ss  t  j j d  t t d  j d d   } |  j |  } t  j t  j j d d d d d t	 } t  j t  j j d d d d d t	 } t  j t  j j d d d d d t	 } t
 t | |  | |  t
 t | d  d   | f  | d  d   | f  t
 t | |  | |  t
 t | | d	 k  | | d	 k  t  j t t t t t g  } t  j t t t t t t t t t t g
  } t
 t | | | f  | | | f  t  j d d t	 } t  j d d t	 } t | d <t  j d d t	 } t | d <t
 | | t  j g    t t | j |  t t | j |  t t t f | j | d f  d  S(   NiŇ  i2   i   i
   i    i   RK   R6   i	   i   i   i˙˙˙˙i   (   i   i
   (   i   i   (   i   i   (   i    i˙˙˙˙(   i   i   (   i˙˙˙˙i    (   R<   Rq   RG   R   R   Rď   R   R   RI   R   R   Rv   R    Rp   R   R   R˙  R   R   (	   Rx   R[  RĐ   R/  Ro  R  t   Z1t   Z2t   Z3(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_boolean
  s.    ***3''

c   	      C` sj  t  j j d  t t d  j d d   } |  j |  } t  j t  j j d d d d d t	 } t
 |  } t t | |  | |  t t | | d	 k  | | d	 k  t  j t  j j d d d d d t	 } t  j t  j j d d d d d t	 } t
 |  } t
 |  } t t | j |  t t | j |  t t t f | j | d f  d  S(   NiŇ  i2   i   i
   i    i   RK   R6   i	   i   i   i   (   i   i
   (   i   i   (   i   i
   (   R<   Rq   RG   R   R   Rď   R   R   RI   R   R   R   Rv   R   R˙  R   R   (	   Rx   R[  RĐ   R  t   Xspt   ZR   t   Zspt   Ysp(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt"   test_fancy_indexing_sparse_booleanŤ
  s    *'**c         C` s   |  j  t d d d g d d d g d d d g g   } t j | j d   d k } t | d  d   | f j d d g d d g d d g g  d  S(   Ni   i    (   R   R   R<   t   ravelR  R   RĐ   (   Rx   Ry   t   desired_cols(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt#   test_fancy_indexing_regression_3087Â
  s    9c         C` sP   |  j  t d d g d d g g   } t t | j d t j d d g   d  S(   Ni   i    i   (   i    i    (   R   R   R   R   R  R<   (   Rx   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_seq_assignÇ
  s    'c         C` sy  t  t d  j d d   } d | d d  d   f <d | d  d   d f <d | d <|  j |  } t j t t t t t g  } t t | |  | |  t j g  d	 t	 } t t | |  | |  t t | | | f  | | | f  t j d d d d d
 g d	 t	 d  d   d  f } t t | | | f  | | | f  t t | | | f  | | | f  d  S(   Ni2   i   i
   i    i   i   i   i   R6   i   (   i   i   (   R   R   Rď   R   R<   R   Rp   R   Rv   Rú   R2   (   Rx   R[  RĐ   Rp  Ro  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_emptyË
  s    
'4'(   R   R   Rě  R,  R-  R3  R7  R<  R?  R@  RA  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR*  
  s   		J		 			c         c` sa   t  |  d  s |  j r# d Vd Sd V|  j j   } t |  _ |  j   t | |  j d  d S(   sI   Checks that sorted indices property is retained through an operation
    t   has_sorted_indicesNs'   Expected sorted indices, found unsorted(   t   hasattrRB  RQ  R¤   Rp   t   sort_indicesR   (   R  RQ  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   check_remains_sortedÜ
  s    	
t   _TestFancyIndexingAssignc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s`   |  j  t j d d g   } t t t t f | j d d  t t t t f | j d d  d  S(   Ni   R+  i   (   i   R+  (   R   R<   R   R   R˙  R   Rđ   R  (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_bad_index_assigně
  s    c         ` sÜ   d
 \        f d   } xl d t  d  d d  f t j d  t  d d  f t  d d  t  d d  f g D] \ } } | | |  qs WxE t j d  t j d  f d d f g D] \ } } | | |  qť Wd  S(   Ni   i
   c         ` s    j     f  } t t j    f   } t   J } | j t d  d | |  | f <t |   d | |  | f <Wd  QXWd  QXt | j	   |  d  S(   Ns?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   (
   R   R   R<   R   R   RŹ   R'   RE  R   Rv   (   Rö   R÷   RĐ   R[  Rą   (   RÖ   Rő   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   _test_set_sliceô
  s    	i   i   i   iţ˙˙˙i    i   (   i   i
   (   i   i   i   (   i    i   i   (   i   i   i   (   R  R2   R<   R   (   Rx   RH  Rö   R÷   (    (   RÖ   Rő   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_setń
  s    +7c         ` s7     f d   } x! t  D] } | t j |   q Wd  S(   Nc      	   ` s    j  d	 d |  } t   á } | j t d  |  j d  | d d g d d g f <t | j   |  j d  d  |  j d  | d d  d d  f <t | j   |  j d  d  |  j d  | d
 <t | j   |  j d  d |  j d   Wd  QXd  S(   Ni   R6   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   i    i   g      đ?i   (   i   i   (   i   i   (   R   R   RŹ   R'   R  R   R  (   R6   RĐ   Rą   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    	% % (   R)   R<   R6   (   Rx   R   R6   (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_assignment_dtypes  s    c         C` sę  |  j  d  } |  j  t d d   } d d d g } d } t |  } t   } | j t d  t |  \ | | d f j | d | f <| | d f j | d | f <| | d f j | d | f <Wd  QXt | j	   | j j	    |  j  d  } t |  ! d d g | d d d  f <Wd  QXt | j	   d d d g d d d g g  |  j  d  } t |  ' d g d g g | d d  d f <Wd  QXt | j	   d d g d d g d d g g  |  j  d  } t
 t j d   } t |  G x? | | g D]1 } d d	 d
 g | d d d g d d d g f <qWWd  QXt | j   |  |  j  d  } t |   d d d g | d d f <Wd  QXt | j   d
  t
 t j d   } d d d g | d d f <t | j	   |  Wd  QXd  S(   Ni   i   i    i   i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei
   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'   RE  RÂ   R   Rv   R   R<   R   RÁ   R   R  (   Rx   RĐ   R[  t   i0t   i1t   i2Rą   Rë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sequence_assignment  sD    	#"+(.5c         C` sq  t  t d  j d d   } d | d d  d   f <d | d  d   d f <d | d <|  j |  } t j t t t t t g  } d	 | | <t t |  |  t j g  d
 t	 } d	 | | <t t |  |  d	 | | | f <t t |  |  t j d d d d d g d
 t	 d  d   d  f } d	 | | | f <t t |  |  d	 | | | f <t t |  |  d  S(   Ni2   i   i
   i    i   i   i   i   i*   R6   i   (   i   i   (   R   R   Rď   R   R<   R   Rp   R   Rv   Rú   R2   (   Rx   R[  RĐ   Rp  Ro  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_assign_emptyD  s$    


4(   R   R   RG  RI  RJ  RN  RO  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRF  ë
  s
   				.t   _TestFancyMultidimc           B` s   e  Z d    Z RS(   c   	   
   C` sY  t  j d g d g d g g  t  j d d d g  f t  j d g d g d g g  t  j d d d g g  f t  j d d d g g  t  j d g d g d g g  f t  j d d d g  t  j d g d g d g g  f t  j d d d g d d d g g  t  j d d d g d d d g g  f g } x#| D]\ } } t  j j d  t  j t  j j d d   } |  j |  } | | | f } t |  rŞ| j   } n  t	 | | | | f  | d } | d } t
 t | j | | f  t
 t | j | | f  t
 t | j | | g t d   f  t
 t | j t d   | | g f  q6Wd  S(	   Ni   i   i   i   i   i   iŇ  i   (   R<   R   Rq   RG   R   R  R   R&   Rv   R   R   R˙  R   R  R2   (	   Rx   t   setsR/  Ro  Rŕ   R>  R0  R1  R2  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_ndarray]  s(    6996$-

%(   R   R   RR  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRP  \  s   t   _TestFancyMultidimAssignc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c   	   
   C` sŃ  t  j j d  t  j t  j j d d   } |  j |  } t  j j d d  } t  j d d d g d d d g g  } t  j d d d g d d d g g  } t |   | | | | f <Wd  QX| | | | f <t | j	   |  | d } | d } d d d g } t |   | | | | f <Wd  QX| | | | f <t | j	   |  t |   d | | | f <Wd  QXd | | | f <t | j	   |  t
 t | j | | f |  t
 t | j | | f |  d  S(	   NiŇ  i   i   i   i   i   i   i   (   R<   Rq   RG   R   R  R   R   RE  R   Rv   R   R˙  R  (	   Rx   Rŕ   R>  R  R/  Ro  R1  R2  Rë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_assign_ndarray  s.    ''

c         ` sÖ   d	 \        f d   } xŽ t  j d d g d d g g  d d g f t  j d d g  d d g d d g g f d d d g d d d g g d d d g d d d g g f g D] \ } } | | |  qľ Wd  S(
   Ni   i
   c         ` s    j     f  } t |  7 t   ' } | j t d  d | |  | f <Wd  QXWd  QXt t j    f   } d | |  | f <t | j	   |  d  S(   Ns?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   (
   R   RE  R   RŹ   R'   R   R<   R   R   Rv   (   Rö   R÷   RĐ   Rą   R[  (   RÖ   Rő   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRH  ¤  s     	i   i   i   i    i   (   i   i
   (   R<   R   (   Rx   RH  Rö   R÷   (    (   RÖ   Rő   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt    test_fancy_indexing_multidim_setĄ  s    
-*Ic         C` sŇ  t  j j d  t  j t  j j d d   } |  j |  } t  j j d d  } d d d g d d d g g } d d d g d d d g g } | | | | f <| | | | f <t | j   |  g  | D]# } g  | D] } | d ^ qŐ ^ qČ } g  | D]# }	 g  |	 D] }
 |
 d ^ q^ qř } d d d g } | | | | f <| | | | f <t | j   |  d | | | f <d | | | f <t | j   |  t t	 | j
 | | f |  t t	 | j
 | | f |  d  S(	   NiŇ  i   i   i   i   i   i   i   (   R<   Rq   RG   R   R  R   R   Rv   R   R˙  R  (   Rx   Rŕ   R>  R  R/  Ro  Rö   t   iiR1  R÷   t   jjR2  Rë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_assign_listł  s(    00c         C` s<  t  j j d  t  j t  j j d d   } |  j |  } d d d g d d d g g } d d d g d d d g g } g  | D]# } g  | D] } | d ^ q ^ q } g  | D]# } g  | D] }	 |	 d ^ q˝ ^ q° }
 d d d d d d d g } t t | j | t	 d   f |  t t | j t	 d   |
 f |  d  S(	   NiŇ  i   i   i   i   i   i   i   (   R<   Rq   RG   R   R  R   R   R˙  R  R  R2   (   Rx   Rŕ   R>  R/  Ro  Rö   RV  R1  R÷   RW  R2  Rë   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_assign_sliceĐ  s    00"(   R   R   RT  RU  RX  RY  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRS    s   	!		t   _TestArithmeticc           B` s)   e  Z d  Z d   Z d   Z d   Z RS(   s&   
    Test real/complex arithmetic
    c      
   C` sŰ  t  d d d d d d g d d d d d d g d d d d	 d d g d d d
 d d d g g d  |  _ t  d d d d d d g d d d d d d g d d d d d d g d d d d d d g g d  |  _ t  d d d d d d g d d d d d d g d d d d d d g d d d d d d g g d  |  j _ t |  j d j d  d |  j  t |  j j d j d  d |  j j  t |  j j d j d  d |  j j  |  j |  j  |  _ |  j |  j  |  _	 d  S(   Ng      řżg      @i    g      @g      	@g     Ŕg      ä?g      Ŕżg      đ?g     Ŕ @R   g      Ř?iű˙˙˙g      @g     ,@g      Ŕg      @g     2@g      °żRĚ   g      ô?i   g      Ŕg     @g      @i   R?   (
   R
   t   _TestArithmetic__At   _TestArithmetic__BRâ   R   RS   Rß   R   t   _TestArithmetic__Aspt   _TestArithmetic__Bsp(   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   __arith_initĺ  s"    $$'$**c   	      C` s´  |  j    t |  j |  j j   |  j |  j  x|t D]t} |  j j |  } |  j	 |  } xJt D]B} t
 j | t
 j  s |  j j j |  } n |  j j |  } |  j	 |  } | | } | | } t | j | j  t | j   |  t | | |  t | | |  t
 j d  | | g k rLt t
 j  d k rLqf n  | | } | | } t | j | j  t | j   |  t | | |  t | | |  qf Wq8 Wd  S(   NR   s	   1.9.0.dev(   t   _TestArithmetic__arith_initR   R]  R^  Rv   R[  R\  R)   RS   R   R<   RL   RŹ  Rß   R   R6   R/   R¨  (	   Rx   R7   RĐ   R  R8   R[  Rg  t   D1t   S1(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_add_subü  s2    
'



c   	   	   C` s"  |  j    t |  j |  j j j   |  j |  j j  xä t D]Ü } |  j j	 |  } |  j
 |  } x˛ t D]Ş } t j | t j  r |  j j	 |  } n |  j j j	 |  } |  j
 |  } | | j } | | j } t | j   | d d t |  j   t | j | j  ql Wq> Wd  S(   Nt   atolg+Ą=(   R`  R   R]  R^  RÂ   Rv   R[  R\  R)   RS   R   R<   RL   RŹ  Rß   R   RŘ   R>   R   R6   (	   Rx   R7   RĐ   R  R8   R[  Rg  Ra  Rb  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_mu$  s    
-(   R   R   Rě  R`  Rc  Re  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRZ  á  s   		(t   _TestMinMaxc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` sÍ  x,t  j t  j t  j t  j t  j g D]} t  j d d | j d d  } |  j |  } t	 | j
   d  t	 | j   d  t	 | j
   j |  t	 | j   j |  | d 9} |  j |  } t	 | j
   d  t	 | j   d  | d 7} |  j |  } t	 | j
   d	  t	 | j   d  q% W|  j t  j d
 d  j d d   } t	 | j
   d
  t	 | j
   j | j  | } t	 | j   d  |  j t  j d
   } t	 | j
   d  t	 | j   d  t	 | j   j | j  t  j d d t j d d  } d | d d  d  d   f <|  j |  } t	 | j
   d  t	 | j   d  xa t  j d  t  j d  t  j d  g D]5 } |  j |  } t t | j
  t t | j  qWd  S(   Ni   R6   i   i   i    i   i˙˙˙˙ií˙˙˙iň˙˙˙i   i
   i   i   (   i    i    (   i    i
   (   i
   i    (   R<   RĘ   R   R?   RH   RĚ   R   Rď   R   R   RN   R>   R6   R   R-  R   R   (   Rx   R6   Rŕ   R  R9  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_minmax=  sB    +!

'!1c         C` s  t  j t  j d  j d d   } d | d d  d   f <d | d  d   d f <d | d <d | d <|  j |  } d
 d d d g } xd | D]\ } t | j d |  j | j d |  j  t | j d |  j | j d |  j  q Wt  j t  j d d  j d d   } |  j |  } xd | D]\ } t | j d |  j | j d |  j  t | j d |  j | j d |  j  q)Wt  j t  j	 d   } |  j |  } xd | D]\ } t | j d |  j | j d |  j  t | j d |  j | j d |  j  qˇWd d
 g } d d g } t  j	 d  } |  j |  } x: | D]2 } t
 t | j d | t
 t | j d | qTWxX | D]P } t t  j	 d  | j d |  j  t t  j	 d  | j d |  j  qWt  j	 d  } |  j |  } x: | D]2 } t
 t | j d | t
 t | j d | q
WxX | D]P } t t  j	 d  | j d |  j  t t  j	 d  | j d |  j  qGWd  S(   Ni2   i   i
   i    i   i	   i   i˙˙˙˙i   iţ˙˙˙R  i3   (   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Đ   RN   R   R   R   (   Rx   Rŕ   R  R˘  R  t	   axes_event   axes_odd(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_minmax_axisl  sL    $

+/'+/+/%)%c         C` s¸   t  j d d d g d d d g d d d	 g g  } |  j |  } xo d D]g } t | |  } t t | d d t t | d d t t | d d t t | d d d d qI Wd  S(   Ni    i   i   i   iü˙˙˙i   iú˙˙˙i   i	   RN   R>   R  g      ř?R  (   RN   R>   (   i    i   (   R<   R
   R   Re   R   R   Rđ   (   Rx   R   R   t   fnameRg   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_minmax_invalid_paramsĄ  s    c         C` sŠ   d d l  m } t j d d d g d d d g d d	 d
 g g  } |  j |  } t | | j  rĽ t t j |  t j |   t t j	 |  t j	 |   n  d  S(   Ni    (   RS  i   i   i   iü˙˙˙i   iú˙˙˙i   i	   (
   t   scipy.sparseRS  R<   R
   R   Ru   t   _minmax_mixinR   RN   R>   (   Rx   RS  R   R   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_numpy_minmaxŽ  s    c      	   C` sc  t  j d d d d g d d d d g d d d d g d	 d d d
 g d	 d d d g g  } | j   } x4| | g D]&} t |  } t | j   t  j |   t | j   t  j |   t | j d d  t  j t  j | d d   t | j d d  t  j t  j | d d   t | j d d	  t  j t  j | d d	 j d d	    t | j d d	  t  j t  j | d d	 j d d	    qs Wt  j	 d  } t  j	 d  } xO d  d g D]A } |  j |  } t t | j d | t t | j d | qČWxO d  d	 g D]A } |  j |  } t t | j d | t t | j d | qWd  S(   Ni˙˙˙˙i   i   i   i    iţ˙˙˙iý˙˙˙iü˙˙˙i   i   R  (   i    i   (   i   i    (   R<   R   R   R   R   t   argmaxt   argminR   Rď   RŁ  R2   R   R   R   (   Rx   Ra  t   D2Rŕ   Ry   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_argmaxŔ  s:    +/(   R   R   Rg  Rj  Rl  Ro  Rs  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRf  <  s
   	/	5		t   _TestGetNnzAxisc           B` s   e  Z d    Z RS(   c         C` sš  t  j d d g d d g d d g g  } | j t  j } |  j |  } t  j t  j f } t | j	 d d   | j d d    t | j	   | j    t | j	 d d  | j d d   t | j d d  j |  t | j	 d d  | j d d   t | j d d  j |  t | j	 d d	  | j d d	   t | j d d	  j |  t | j	 d d
  | j d d
   t | j d d
  j |  t t | j d d d  S(   Ni    i   i   i   iú˙˙˙i	   R  i   iţ˙˙˙i˙˙˙˙(   R<   R
   RS   R   RĐ   R   R?   RH   R   R  R2   t   getnnzR5   R6   R   R   (   Rx   R   t   bool_datR   t   accepted_return_dtypes(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_getnnz_axisé  s"    	%%%%%(   R   R   Rx  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRt  č  s   c         C` s   | r
 |  Sd   } t  |  j  } x? |  j j   D]. \ } } | j d  r2 | |  | | <q2 q2 Wt |  j d |  j |  Sd S(   s   
    Construct a class that either runs tests as usual (require=True),
    or each method skips if it encounters a common error.
    c         ` s"   t  j      f d    } | S(   Nc       	   ` sG   y   |  |   SWn/ t  t t t t f k
 rB t j d   n Xd  S(   Ns   feature not implemented(   RŰ   Rđ   R   R˙  t   AttributeErrorR   R   (   Rh   Ri   (   t   fc(    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   wrapper  s
    
(   t	   functoolst   wraps(   Rz  R{  (    (   Rz  s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   wrap  s    t   test_t   NotImplementedN(   t   dictRĚ  RÍ  t
   startswithR  R   t	   __bases__(   R   t   requireR~  t   new_dictRm   Rg   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   _possibly_unimplemented  s    	c	         C` s!  t  t t |   t t t t t |  t t |  t t |  t t	 |  t t
 | oW |  t t | oi |  t t |  t t |  f }	 i  }
 x~ |	 D]v } xm | j D]b } | j d  sÂ q§ n  |
 j |  } | d k	 r˙ t d | j | | j f   n  | |
 | <q§ Wq Wt d |	 i   S(   s   
    Construct a base class, optionally converting some of the tests in
    the suite to check that the feature is not implemented.
    R  s-   Test class %s overloads test %s defined in %st   TestBaseN(   R   R  Rţ  R
  Rđ  RZ  R  R!  R*  RF  RP  RS  Rf  Rt  RĚ  R  t   getR2   R   R   R  (   t   getsett   slicingt   slicing_assignt   fancy_indexingt   fancy_assignt   fancy_multidim_indexingt   fancy_multidim_assignt   minmaxt   nnz_axist   basest   namesR   Rm   t   old_cls(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   sparse_test_class   s6    R°   c           B` sł   e  Z e d     Z e j e j e j e j g 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 RS(   c         O` s3   t    $ } | j t d  t | |   SWd  QXd  S(   Ns<   Changing the sparsity structure of a csr_matrix is expensive(   R   RŹ   R'   R   (   R   t   argsR9   Rą   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   M  s    	c         C` sĘ   t  d d d g d d d g d d d g g d  } t |  } t | j d d d g  t | j d d d g  t | j d d d d g  t | j   d  t | j	   d  t | j
   |  d  S(   Ni    i   i   i   R   i   R]   (   R
   R   R   RS  R   RQ  RR  R   Ru  t	   getformatRv   (   Rx   RŇ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_constructor1U  s    c      	   C` s   t  d d  } d | d	 <t |  } t | j d g  t | j d g  t | j d d d d d d d g  t | j   |  d  S(
   Ni   R   i   i   i   i    i   (   i   i   (   i   i   (   R   R   R   RS  R   RQ  RR  Rv   (   Rx   RŇ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_constructor2a  s    
%c         C` s   t  d d g d d g d d g g d  } t |  } t | j d d d g  t | j d d d g  t | j d d d d g  t | j   |  d  S(   Ni   i    i   i   R   (   R
   R   R   RS  R   RQ  RR  Rv   (   Rx   RŇ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_constructor3j  s    	c         C` s×   t  d d d d d d d d d d d g  } t  d d d d d d d d d d d g  } t  d d d d d	 d
 d d d d d g  } t | | f  } t | | f d  } t t d  j d d  | j    d  S(   Ni   i   i   i    g      @g      $@g      @g      "@g      đ?g      @g      &@g       @g       @g      @g      @i   i   (   i   i   (   R   R   R   R   R   Rď   Rv   (   Rx   RT  RU  RS  R  R]   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_constructor4  s    --c         C` sq   t  d d d d g  } t  d d d d g  } t  d d d d g  } t | | | f  } t | j d  d  S(	   Ni    i   i   i   i   i   i   (   i   i   (   R   R   R   R   (   Rx   RR  RQ  RS  R]   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_constructor5  s
    c         C` s{   d d d d g } d d d d g } d d d d g } t  | | | f  } t | j d  t t j | j t j   d  S(	   Ni    i   i   i   i   i   i   (   i   i   (   R   R   R   R   R<   RL   R6   t   signedinteger(   Rx   RR  RQ  RS  R]   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_constructor6  s    c         C` sŠ   t  d  } t d d d d d g  } t d d d g  } t | | | f d d
 } | j   } | j   t | j d d d d d g  t | j   | j    d  S(   Ni   i   i   i   i   i    i   R   i
   (   i   i
   (   R   R   R   R¤   RD  R   RQ  Rv   (   Rx   RS  RQ  RR  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sort_indicesĄ  s    
c      	   C` sÔ   t  d d d d d d d d g  } t  d d d d d d d d	 g  } t  d d d	 g  } t | | | f d
 d } | j   } | j   t | j d  t | j d d d g  t | j   | j    d  S(   Ni   i    i   i   i   i   i   i   i   R   i
   (   i   i
   (   R   R   R¤   t   eliminate_zerosR   Rž   RS  Rv   (   Rx   RS  RQ  RR  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_eliminate_zerosŤ  s    $$
c         C` sů   t  t j d  j d d  d  } xÍ d d d d d	 d
 d d d d d d d d d d d d g D] } t t t  |  t  t | |    } t | j | j  t	 | j
 | j
  t	 | j | j  t	 | j   t t |  | j     qb Wd  S(   Ni   i   i   g      4@R×  RŘ  RŮ  RÚ  RŰ  RÜ  RÝ  RŢ  Rß  RÓ  Rŕ  Rá  Râ  Ră  Rä  Rĺ  Rć  Rç  (   R   R<   R   Rď   R   RC  R    Re   R   R   RQ  RR  RÁ   (   Rx   R  RŐ   RÖ  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_ufuncsś  s    %c         C` sÜ   t  d  } t d d d d d g  } t d d d g  } t | | | f d d } t  d
  } t d d d d d d g  } t d d d
 g  } t | | | f d d } t | | j   | j   | j    d  S(   Ni   i   i   i   i   i    i   R   i
   i   i   (   i   i
   (   i   i
   (   R   R   R   R   Rv   (   Rx   RS  RQ  RR  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_unsorted_arithmeticÂ  s    c         C` sź   t  j d g d g d g g  } t  j d d d g  } t  j j d  t  j t  j j d d   } |  j |  } | | | f } t |  rĄ | j   } n  t	 | | | | f  d  S(   Ni   i   i   i   iŇ  i   i   (
   R<   R   Rq   RG   R   R  R   R&   Rv   R   (   Rx   R/  Ro  Rŕ   R>  R0  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_broadcastÍ  s    !c         C` s6  t  j d d g  } t  j d d g  } t  j d d g  } t  j d d g  } t | | | f  j   } t t | j  t | | | f  j   } t t | j  | j   t t | j  t	 | j
 |  t | | | f  j   } t | _ t t | j  t	 | j
 |  | j   t	 | j
 |  d S(   s@   Ensure has_sorted_indices memoizes sorted state for sort_indicesi    i   i   N(   R<   R   R   R¤   R   R    RB  Rp   RD  R   RQ  (   Rx   t   sorted_indst   unsorted_indsRS  RR  R/  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_has_sorted_indicesŰ  s"    
	
c         C` sT  t  t j d g  t j d g  t j d d g  f  } t t | j  t j d d g  } t j d d g  } t j d d g  } t  | | | f  j   } t t | j  | j   t t | j  t d t	 | j
   t  | | | f  j   } t | _ t t | j  t d t	 | j
   | j   t d t	 | j
   d S(   s=   Ensure has_canonical_format memoizes state for sum_duplicatesi   i    i   N(   R   R<   R   R   R    t   has_canonical_formatR¤   Rp   t   sum_duplicatesR   RQ  (   Rx   R/  RQ  RS  RR  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_has_canonical_formatö  s     <
	
c         C` sŹ  t  j d d t  j } t  j d d t  j } t  j d  } t | | | f d d d f } t | | | f d d d	 f } t  j d
 d t  j } t | | f d d d f } t | | f d d d f } t d d f  }	 t d d f  }
 t | j j t  j  t | j j t  j  t | j j t  j  t | j j t  j  t |	 j j t  j  t |
 j j t  j  x( | | | | |	 |
 g D] } | | qWd  S(   Ni   R6   i    R   i   i   I       i˙˙˙I       (   i   i    I       i˙˙˙I       I       i˙˙˙I       (   R<   R   R?   R   R   RR  R6   RH   (   Rx   RR  RQ  t   valsRh   RŇ   R  RÓ   R   RÔ   RŐ   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_scalar_idx_dtype  s$    !!(   R   R   Rí  R   R<   R  Rů  R¸  Rš  R   R  R  R  R  R  R  R  RĄ  R˘  RŁ  R¤  R§  RŞ  RŹ  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR°   L  s    									
						RŻ   c           B` sĄ   e  Z e d     Z e j e j e j e j g 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 RS(   c         O` s3   t    $ } | j t d  t | |   SWd  QXd  S(   Ns<   Changing the sparsity structure of a csc_matrix is expensive(   R   RŹ   R'   R   (   R   R  R9   Rą   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   /  s    	c         C` sÜ   t  d d d d g d d d d g d d d d g g d  } t |  } t | j d d d d g  t | j d d d d g  t | j d d d d d g  t | j   d  t | j	 | j	  t | j
   d  d  S(   Ni   i    i   i   R   i   R\   (   R
   R   R   RS  R   RQ  RR  R   Ru  R   R  (   Rx   RŇ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  7  s    <c      	   C` st   t  d d  } d | d	 <t |  } t | j d g  t | j d g  t | j d d d d d d d g  d  S(
   Ni   R   i   i   i   i    i   (   i   i   (   i   i   (   R   R   R   RS  R   RQ  RR  (   Rx   RŇ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  A  s    
c         C` s   t  d d g d d g d d g g d  } t |  } t | j d d g  t | j d d g  t | j d d d g  d  S(   Ni   i    i   R   (   R
   R   R   RS  R   RQ  RR  (   Rx   RŇ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  I  s
    *c         C` s×   t  d d d d d d d d d d d g  } t  d d d d d d d d d d d g  } t  d d d d d	 d
 d d d d d g  } t | | f  } t | | f d  } t t d  j d d  | j    d  S(   Ni   i   i   i    g      @g      $@g      @g      "@g      đ?g      @g      &@g       @g       @g      @g      @i   i   (   i   i   (   R   R   R   R   R   Rď   Rv   (   Rx   RT  RU  RS  R  R\   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  P  s    --c         C` sq   t  d d d d g  } t  d d d d g  } t  d d d d g  } t | | | f  } t | j d  d  S(	   Ni    i   i   i   i   i   i   (   i   i   (   R   R   R   R   (   Rx   RR  RQ  RS  R\   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  [  s
    c         C` s{   d d d d g } d d d d g } d d d d g } t  | | | f  } t | j d  t t j | j t j   d  S(	   Ni    i   i   i   i   i   i   (   i   i   (   R   R   R   R   R<   RL   R6   R  (   Rx   RR  RQ  RS  R\   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  c  s    c      	   C` sÔ   t  d d d d d d d d g  } t  d d d d d d d d	 g  } t  d d d	 g  } t | | | f d
 d } | j   } | j   t | j d  t | j d d d g  t | j   | j    d  S(   Ni   i    i   i   i   i   i   i   i   R   i
   (   i
   i   (   R   R   R¤   R   R   Rž   RS  Rv   (   Rx   RS  RQ  RR  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRĄ  l  s    $$
c         C` sŁ   t  d  } t d d d d d g  } d d d g } t | | | f d d
 } | j   } | j   t | j d d d d d g  t | j   | j    d  S(   Ni   i   i   i   i   i    i   R   i
   (   i
   i   (   R   R   R   R¤   RD  R   RQ  Rv   (   Rx   RS  RT  t   ptrR  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  w  s    
c         C` sů   t  t j d  j d d  d  } xÍ d d d d d	 d
 d d d d d d d d d d d d g D] } t t t |  t  t | |    } t | j	 | j	  t
 | j | j  t
 | j | j  t
 | j   t t |  | j     qb Wd  S(   Ni   i   i   g      5@R×  RŘ  RŮ  RÚ  RŰ  RÜ  RÝ  RŢ  Rß  RÓ  Rŕ  Rá  Râ  Ră  Rä  Rĺ  Rć  Rç  (   R   R<   R   Rď   R   RC  R   R    Re   R   R   RQ  RR  RÁ   (   Rx   R  RŐ   RÖ  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR˘    s    %c         C` sÜ   t  d  } t d d d d d g  } t d d d g  } t | | | f d d } t  d
  } t d d d d d d g  } t d d d
 g  } t | | | f d d } t | | j   | j   | j    d  S(   Ni   i   i   i   i   i    i   R   i
   i   i   (   i
   i   (   i
   i   (   R   R   R   R   Rv   (   Rx   RS  RQ  RR  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRŁ    s    c         C` sź   t  j d g d g d g g  } t  j d d d g  } t  j j d  t  j t  j j d d   } |  j |  } | | | f } t |  rĄ | j   } n  t	 | | | | f  d  S(   Ni   i   i   i   iŇ  i   i   (
   R<   R   Rq   RG   R   R  R   R&   Rv   R   (   Rx   R/  Ro  Rŕ   R>  R0  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR¤    s    !c         C` s  t  j d d t  j } t  j d d t  j } t  j d  } t | | | f d d	 } t | | | f d d } t  j d d t  j } t | | f d d } t | | f d d } t d d f  }	 t d d f  }
 t | j j t  j  t | j j t  j  t | j j t  j  t | j j t  j  t |	 j j t  j  t |
 j j t  j  x( | | | | |	 |
 g D] } | | q~Wd  S(   Ni   R6   i    R   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   RR  R6   RH   (   Rx   RR  RQ  RŤ  Rh   RŇ   R  RÓ   R   RÔ   RŐ   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRŹ  Ś  s$    (   R   R   Rí  R   R<   R  Rů  R¸  Rš  R   R  R  R  R  R  R  RĄ  R  R˘  RŁ  R¤  RŹ  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRŻ   .  s   	
								
			R   R  R  c           B` s\   e  Z e Z e j e j e j g Z d    Z	 d   Z
 d   Z d   Z d   Z d   Z RS(   c         C` sQ   t  d  } d | d <d | d	 <| | j } | | j } t | j | j  d  S(
   Ni
   i    i   i   i   i   (   i
   i
   (   i    i   (   i   i   (   R    RÂ   Rn  R   RĐ   (   Rx   RĐ   Rŕ   Rl  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_multĆ  s    

c         C` s   |  j  d
  } d | d <d | d <| d } t d d g d d g d d g g  } t | j   |  | d	 } | d	 } t | j   |  d  S(   Ni   i   iö˙˙˙i    i   i   i
   i   y              đ?(   i   i   (   i    i   (   i   i    (   R   R
   R   Rv   (   Rx   RĐ   R[  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_add_nonzeroÎ  s    


'

c         C` si   |  j  d	  } d | d
 <d | d <t | d j   | j   d  t | d j   | j   d  d  S(   Ni   i   iö˙˙˙i    i   i   y              đ?i	   (   i   i   (   i    i   (   i   i    (   R   R   Rv   (   Rx   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_dok_divide_scalarÚ  s
    

!c         C` sY  d	 \ } } t  | | f  } d | d
 <d | d <d | d <d | d <d | d <d | d <t | j   d  d   | d f t |   | j   } t | j   d  d   | d f t |   | | } } | j   } t | j | | f  t | j   | d d  d   f t |   | j   } t | j   | d d  d   f 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   (	   R    R   RÁ   R   RÍ   R   R   R   RÎ   (   Rx   RÖ   Rő   Rh   R\   RŇ   R]   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_convertâ  s"    





---c         C` s  t  t t  t d d d d g d d d d g d d d d g g d  } t |  } t | j | j  t | j   |  t |  } t | j   | j    d d d g d d d g g } t | d t j	 } t | j t j	  | j
   } t | j t j	  t | |  d  S(   Ni   i    i   i   R   R6   (   R   Rđ   R    R
   R   R6   Rv   R   R<   RĘ   RÁ   R   (   Rx   RŇ   RĐ   RÓ   RS  R   t   da(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt	   test_ctor  s    <c         C` st   t  d  } d | d <t d | j   k d  t  d  } d | d  d   d f <t t | j    d k d  d  S(	   Ni   i    s   Unexpected entry (0,0) in keyss   Unexpected entries in keys(   i   i   (   i    i    (   i    i    (   i   i   (   R    R   t   keysR   (   Rx   Rh   RŇ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_ticket1160  s    
(   R   R   R    R   R<   Rů  R¸  Rš  R   RŽ  RŻ  R°  Rą  Rł  Rľ  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   Â  s   					t   TestLILc           B` sn   e  Z e Z e j e j e j g Z d    Z	 d   Z
 d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  t d   } d | d <d | d	 <t d
  } d | d <d | d <t | | j | | j j    t | | j | | j j    d  S(   Ni
   i    i   i   i   i   (   i
   i
   (   i    i   (   i   i   (   i
   i
   (   i    i   (   i   i   (   R
   R   R"   R   RÂ   Rv   Rn  (   Rx   RĐ   R[  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_dot+  s    



!c         C` sP   t  d  } d | d <| d } t | d d  | d } t | d d  d  S(	   Ni   i   i    i   (   i   i   (   i    i    (   i    i    (   i    i    (   R"   R   (   Rx   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_scalar_mul6  s    


c         C` sY  t  d d d g d d d g g  } t  d d d g d d d g g  } i | | | f d 6| | | f d 6d | d f d	 6} x\ | j   D]N \ } \ } } | j   } t | d
 |  |  t | j   | j    q Wt  d d t j d  } t d d d g  } | d d  d   f c | 7<t | d d  d   f j	   j
   |  d  S(   Ni    i   i   i   i   i   t   addt   subt   muls   __i%s__R6   R   gš?(   i   i   (   R"   RÍ  R¤   Re   R   Rv   R<   R6   R   RÁ   t   squeeze(   Rx   RĐ   R[  RS  t   opt   otherRĂ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_inplace_ops@  s    $$c         C` st   d d d g d d d g g } t  t |   } x= t |  D]/ \ } } t | j   t | | d d  q= Wd  S(   Ni   i   i   i   i   i   t   ndmin(   R"   R   R  R   Rv   (   Rx   t   row_dataR[  Rü   RT  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_lil_iterationT  s    c         C` sm   t  d  } d | d <d | d <d | d <d	 | d <d
 | d <| j   } t  |  } t | j | j  d  S(   Ni
   i    i   i   i   i   i   i   i(   i2   i	   (   i
   i
   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i	   (   R"   RÎ   R   RĐ   (   Rx   R[  Rë   Rŕ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_lil_from_csrZ  s    




c         C` s   t  t d  j d d   } t |  } t | t d d d g  d d  f j   | t d d d g  d d  f  d  S(   Ni   i   i   i   i   (   R   R   Rď   R"   R   R   Rv   (   Rx   R/  RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_fancy_indexing_lilg  s    c         C` sí   t  d  } d | d	 <d | d
 <d | d <d | d <t  d  } d | d <d | d <d | d <d | d <d | d <t | j |  j   | j |  j    t | j |  j   d d d g d d d g d d d g d d d g g  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   (   R"   R   Rf  Rv   (   Rx   t   lRÖ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_point_wise_multiplym  s$    








c         C` s9   t  t j d   } | d 9} d | d d  d   f <d  S(   Ni   g       @i    (   i   i   (   R"   R<   Rk  (   Rx   Rh   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_lil_multiply_removal  s    
(   R   R   R"   R   R<   Rů  R¸  Rš  R   Rˇ  R¸  Rż  RÂ  RĂ  RÄ  RĆ  RÇ  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRś  '  s   		
					t   TestCOOR  R  R  R  R  c           B` s¤   e  Z e Z e j e j e j g Z d    Z	 d   Z
 d   Z d   Z e j j d e d d  d    Z d   Z d	   Z d
   Z d   Z d   Z d   Z RS(   c         C` sË   t  d d d d d d d d d d d g  } t  d d d d d d d d d d d g  } t  d d d d d	 d
 d d d d d g  } t | | | f f d  } t t d  j d d  | j    d  S(   Ni   i   i   i    g      @g      $@g      @g      "@g      đ?g      @g      &@g       @g       @g      @g      @i   i   (   i   i   (   R   R!   R   R   Rď   Rv   (   Rx   RT  RU  RS  R[   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR    s    --c         C` sŕ   t  d d d d d d d d d d g
  } t  d d d d d d d d d d g
  } t  d d d d d d d d d d	 g
  } t | | | f f d  } t d d d g d d d g d d d g g  } t | | j    d  S(   Ni    i   i   i	   iü˙˙˙i   i   i˙˙˙˙iű˙˙˙i   i   iý˙˙˙(   i   i   (   R   R!   R
   R   Rv   (   Rx   RT  RU  RS  R[   Ry   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR    s    ***0c         C` si   t  d  } t | j d  t | j g   t | j g   t | j g   t | j   t d   d  S(   Ni   i   (   i   i   (   i   i   (   i   i   (   R!   R   R   RT  RU  RS  Rv   R   (   Rx   R[   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  Ş  s    c         C` s   t  d d d d g d d d d g d d d d g g  } t |  } t | j   |  t  d d d d g  } t |  } t | j   | j d d   d  S(   Ni    i   i   i   i   i˙˙˙˙(   R   R!   R   Rv   Rď   (   Rx   Ry   R[   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  ´  s    t   runRń  s   COO does not have a __getitem__c         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRž  Á  s    c         C` s5   d d g g } t  |  j   } t | j |  d  S(   Ni    (   R!   t   todiaR   RĐ   (   Rx   R   R^   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_todia_all_zerosĹ  s    c         C` s˙   t  d  } | j   t  d d g d d g d d g f f  } | j   t | j d d g d d g g  t  d d g d d g d d g f f  } | j   t | j d d g d d g g  t | j d g  t | j d g  t | j d g  d  S(   Ni   i   i   i   i    (   i   i   (   R!   RŠ  R   RĐ   RT  RU  RS  (   Rx   R[   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_sum_duplicatesĘ  s    
*
"*
"c         C` s_   t  d d d d g d d d d g d d d d g f f  } | j   } t | j | j  d  S(   Ni   i    i   (   R!   RÄ  R   RĐ   (   Rx   R[   R_   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_todok_duplicates×  s    <c      	   C` sĐ   t  d d d d d d d d g  } t  d d d d d d d d g  } t  d d d d d d d d	 g  } t | | | f f d
 d } | j   } | j   t | j d k j    t | j | j  d  S(   Ni   i    i   i   i   i   i   i   i   R   i
   (   i   i
   (	   R   R!   R¤   R   R   RS  t   allR   RĐ   (   Rx   RS  RT  RU  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRĄ  Ü  s    $$$
c         C` sË   d d d d g d d d d g d d d d g g } d	 } t  |  } | j |  } t | j | j k  | j | d t } t | j | j k  | j | d t } t t j | j | j   d  S(
   Ni    i
   i   i   i(   i   i   R¤   (   i   i   (   R!   Rď   R   RS  Rp   R    R<   t   may_share_memory(   Rx   RO   t	   new_shapeR7   R8   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_reshape_copyć  s    3c         C` s   t  d g d g d g f f d
  } t  d g d g d g f f d  } t | j d d d | k j d k  t | j d d d	 | k j d k  d  S(   Ni   iŔĆ- ič  iÁĆ- ié  Rí   Rë   i    Rě   (   iÁĆ- ié  (   ié  iÁĆ- (   ié  iÁĆ- (   iÁĆ- ié  (   R!   R   Rď   Rž   (   Rx   t   mat1t   mat2(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_large_dimensions_reshapeô  s    $$((   R   R   R!   R   R<   Rů  R¸  Rš  R   R  R  R  R  R   Rî  t   xfailRp   Rž  RË  RĚ  RÍ  RĄ  RŃ  RÔ  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRČ    s   			
	$				
	t   TestDIAc           B` s   e  Z e Z e j e j e j g Z d    Z	 e
 j j d e d d  d    Z e d  d    Z e
 j j d d  d    Z RS(	   c         C` sś   t  d d d d g d d d d g d d d d g d d d d g g  } t j d d d d g g  j d d d } t j d d d g  } t t | | f d d	 j   |  d  S(
   Ni   i    i   i   i   R  i˙˙˙˙R   (   i   i   (   R
   R<   R   t   repeatR   R#   Rv   (   Rx   Rŕ   RS  RV  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  	  s    -RÉ  Rń  s   DIA does not have a __getitem__c         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRž    s    i   c         C` sŹ   t  t j d   } t | j j t j  | j d d d t | j j t j  t  t j d   } t | j j t j  | j d d d t | j j t j  d  S(   Ni   Rä   i   i   (   i   (   i   (	   R#   R<   R%   R   RV  R6   R?   Rű   RH   (   Rx   RÖ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_setdiag_dtype  s    s   DIA stores extra zerosc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRx  "  s    (   R   R   R#   R   R<   Rů  R¸  Rš  R   R  R   Rî  RŐ  Rp   Rž  Rt   RŘ  R   Rx  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRÖ    s   		$RŽ   c           B` sě   e  Z e Z e j e j e j g Z d    Z	 d   Z
 d   Z d   Z d   Z d   Z d   Z d   Z e j j d e d	 d
  d    Z e j j d e d	 d  d    Z d   Z e j j d e d	 d  d    Z d   Z RS(   c         C` s  t  d d d d g  } t  d d d d g  } t d  } t  d d d g d d d g g  | d <t  d d d g d d d g g  | d <t  d d d	 g d
 d d g g  | d <t  d d d g d d d g g  | d <t d d d d g d d d d g d d d d g g d d d g d d d g g  } t | | | f d d } t | j   |  t | | | f  } t | j   |  d  S(   Ni    i   i   i   i   i   i   i
   i   i   i   i   i   R   (   i   i   i   (   i   i   (   R   R   R   R$   R   Rv   (   Rx   RR  RQ  RS  RĐ   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  1  s     Tc         C` sO  xE d d d d d d g D]+ } t  |  } t t |  j   |  q Wt  d  } t t | d	 d j   |  t t | d	 d j   |  t d d
 d d
 g d
 d
 d
 d
 g d
 d
 d d g g d
 d d g d d
 d g g  } t t |  j   |  t t | d d j   |  t t | d	 d j   |  t t | d	 d j   |  t t | d	 d j   |  t t | d	 d j   |  t t | d	 d j   |  t t | d	 d j   |  t d d
 d d
 g d
 d d
 d
 g d
 d
 d
 d
 g g d
 d d g d d
 d g g  } t t | d	 d j   |  d  S(   Ni   i   i
   i   i   i   i   i   R  i    R   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$   Rv   R   (   Rx   R   RĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  H  s"    TTc         C` sn   d d d g d d d g d d d g f f } t  d d g d d g g  } t t | d d j   |  d  S(   Ni   i   i   i    R  (   i   i   (   R   R   R$   Rv   (   Rx   t   argRĐ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  `  s    -c         C` s   d } t  j | | d f d t  j } t  j d | g d t  j } t  j | d t  j } t | | | f d | d f d t d  S(   Ni   i   R6   i    R  R¤   (   R<   Rk  R   R   R?   R   R$   Rp   (   Rx   Rő   RS  RR  RQ  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  f  s
    !c         C` s  t  d d d d g  } t  d d d d g  } t d  } t  d d d g d d d g g  | d <t  d d d g d d d g g  | d <t  d d d	 g d
 d d g g  | d <t  d d d g d d d g g  | d <t d d d d g d d d d g d d d d g g d d d g d d d g g  } t | | | f d d } | j   } | j   j   } t | j   |  t | j   | j    d  S(   Ni    i   i   i   i   i   i   i
   i   i   i   i   i   R   (   i   i   i   (   i   i   (   R   R   R   R$   RÎ   RĎ   R   Rv   (   Rx   RR  RQ  RS  RĐ   t   Absrt   Acsrt   Acsr_via_coo(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_bsr_tocsro  s$    3!c      	   C` sč   t  d d d d d d d d g d d g d d g g  j } | j d d d  } t d d d d d d d	 d
 g  } t d d d
 g  } t | | | f d d } | j   } | j   t | j d  t | j	   | j	    d  S(   Ni   i    i   i   i˙˙˙˙i   i   i   i   i   R   i   (   i   i   i   (
   R   RÂ   Rď   R   R$   R¤   R   R   Rž   Rv   (   Rx   RS  RQ  RR  R  R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRĄ    s    <$
c         C` sb   t  t d
  j d d  d d } t | j d  j d d  } t | | | j   |  d  S(   Ni   i   i   i   R  i   i˙˙˙˙i   i   ix   i   i   (   i   i   (   R$   R   Rď   R   R   Rv   (   Rx   RĐ   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_bsr_matvec  s    $c         C` sf   t  t d  j d d  d d } t | j d d  j d d  } t | | | j   |  d  S(   Ni   i   i   i   R  i   i   i˙˙˙˙i   i   ix   i   i   (   i   i   (   R$   R   Rď   R   R   Rv   (   Rx   RĐ   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_bsr_matvecs  s    $#RÉ  Rń  s   BSR does not have a __getitem__c         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRž    s    s   BSR does not have a __setitem__c         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR    s    c         C` s]  t  j d d d d g d d d d g d d d d g g  } |  j | d d } t | j d  d  k  t | j d d g d d g d d g g  | j d	  t | j d d g d d g g  | j d
  t | j d d g d d g d d g g  | j d  t | j d d d d g d d d d g d d d d g g  t t	 | j d  d  S(   Ni   i    i   i   i   R  (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (
   R<   R   R   R   Ré  R2   R   RĐ   R   R   (   Rx   Rŕ   R>  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_resize_blockedŁ  s(    		c         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  ş  s    c         C` sô  t  j d d t  j } t  j d d t  j } t  j d  } t | | | f d d d	 f } t | | | f d d d
 f } t d d f  } t d d f  } t | j j t  j  t | j j t  j  t | j j t  j  t | j j t  j  y˘ t  j d d d f  } t  j d d d f  }	 t | | | f d d d f }
 t |	 | | f d d d f } t |
 j j t  j  t | j j t  j  Wn# t t	 f k
 rÄd }
 d } n Xx( | | | | |
 | g D] } | | qŢWd  S(   Ni   R6   i    i   R   i   (   i    i   i   I       i˙˙˙I       I       i˙˙˙I       I       i˙˙˙I       I       i˙˙˙I       (
   R<   R   R?   R$   R   RR  R6   RH   t   MemoryErrorR   (   Rx   RR  RQ  RŤ  Rh   RŇ   RÓ   R   t   vals2t   vals3RÔ   RŐ   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRŹ  ž  s.    !!!!
(   R   R   R$   R   R<   Rů  R¸  Rš  R   R  R  R  R  RÝ  RĄ  RŢ  Rß  R   Rî  RŐ  Rp   Rž  R  Rŕ  R  RŹ  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRŽ   *  s   									$$	$c         O` s~  | j  d d  } t j |  j t j  sB t j |  j t j  rn | d k rY |  f | S|  f | | f Sn  |  d k j   } |  j d d d }  |  d d d  c d 8<d |  d d d  <| d j	 d k r7t
 d   | D  } d | d f | d } d | d d f | d } d |  | <d |  | <n  t
 d   | D  } | d k rd|  f | S|  f | | d f Sd S(	   s-   Duplicates entries to produce the same matrixRR  i    i   R  Ni   c         s` s   |  ] } | d  Vq d S(   i    N(    (   t   .0t   p(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pys	   <genexpr>ř  s    c         s` s   |  ] } | j  d   Vq d S(   i   N(   R×  (   Rä  RQ  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pys	   <genexpr>ţ  s    (   t   popR2   R<   RL   R6   R  t   unsignedintegerR  R×  RK   R  (   RS  t   indsR9   RR  t	   zeros_post   post   pos1t   pos2(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   _same_sum_duplicateĺ  s(    
t   _NonCanonicalMixinc           B` sn   e  Z e d   Z e j j d d  d    Z e j j d d  d    Z e j j d d  d    Z	 RS(   c      	   K` sP  t  t |   j } | | |  } | j d k j   } | d j d k } | rŞ | d j d } t   < }	 |	 j t d  |  j	 | | d | | d |  } Wd QXn  |  j
 | |  }
 d | k rŘ | j | d <n  | |
 |  } | j t j t j g k rd } n d } t | j | j d	 | | rLt | j d k j    n  | S(
   sc   Replace D with a non-canonical equivalent: containing
        duplicate elements and explicit zerosi    i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensivei   NR   gńhăľřä>gHŻźň×z>t   rtol(   t   superRî  R   RĐ   R  RK   R   RŹ   R'   t   _insert_explicit_zerot   _arg1_for_noncanonicalR   R6   R<   RĘ   RË   R   R   RS  t   any(   Rx   Rŕ   t   sorted_indicesR9   Rc   R/  t   zero_post	   has_zerosRä   Rą   t   arg1t   NCRď  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s*    	.	Rń  s"   bool(matrix) counts explicit zerosc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   -  s    s!   getnnz-axis counts explicit zerosc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRx  1  s    s   nnz counts explicit zerosc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRŔ   5  s    (
   R   R   Rp   R   R   Rî  R   R   Rx  RŔ   (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRî    s   &t   _NonCanonicalCompressedMixinc           B` s   e  Z e d   Z d   Z RS(   c         C` sŻ   t  | j | j d | j \ } } } | s˘ xr t | | d  D]Z \ } } | | | !d d d  j   | | | +| | | !d d d  j   | | | +qA Wn  | | | f S(   s5   Return non-canonical constructor arg1 equivalent to MRR  i   Ni˙˙˙˙(   Rí  RS  RQ  RR  t   izipR¤   (   Rx   R/  Rô  RS  RQ  RR  t   startt   stop(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRň  ;  s     '.c         C` s   d | | | f <| S(   Ni    (    (   Rx   R/  Rö   R÷   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRń  E  s    (   R   R   Rp   Rň  Rń  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRů  :  s   
t   _NonCanonicalCSMixinc           B` sb   e  Z d    Z d   Z e j j d e d d  d    Z e j j d e d d  d    Z	 RS(   c         ` sQ     f d   } x; t  D]3 } x* t t g D] } | t j |  |  q) Wq Wd  S(   Nc   	      ` sý   t  d d d g d d d g d d d g d d d g g d |  }   j | d | } | j \ } } xT t | |  D]B } x9 t | |  D]' } t | | | f | | | f  q Wqw Wx9 d	 d
 d d d d g D] } t t t f | j |  qÖ Wd  S(   Ni   i    i   i   i   R6   Rô  i˙˙˙˙(   i    i   (   i˙˙˙˙i   (   i   i    (   i   i   (   i   i˙˙˙˙(   i   i   i   (	   R   R   R   RĄ   R   R   R˙  Rđ   R   (	   R6   Rô  Rŕ   RĐ   R/  R2  Rö   R÷   R  (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   L  s    )(   R)   Rp   R    R<   R6   (   Rx   R   R6   Rô  (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  K  s    c      	   C` s  t  j d  } |  j |  } |  j d d d g g  } | j   | d d  d   f <t   - } | j t d  | | d d  d   f <Wd  QXt | j   |  | j   j   | d  d   d f <t   0 } | j t d  | j	 | d  d   d f <Wd  QXt | j   |  d  S(   Ni   i   i   s?   Changing the sparsity structure of a cs[cr]_matrix is expensive(
   R<   R%   R   RÁ   R   RŹ   R'   R   R=  RÂ   (   Rx   Rŕ   RĐ   R[  Rą   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_setitem_sparse`  s    	"	RÉ  Rń  s(   inverse broken with non-canonical matrixc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR9  s  s    s&   solve broken with non-canonical matrixc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  w  s    (
   R   R   R  Rţ  R   Rî  RŐ  Rp   R9  R  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRý  J  s   		$t   TestCSRNonCanonicalc           B` s   e  Z RS(    (   R   R   (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR˙  |  s   t   TestCSCNonCanonicalc           B` s   e  Z RS(    (   R   R   (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s   t   TestBSRNonCanonicalc           B` sY   e  Z d    Z e j j d e d d  d    Z e j j d e d d  d    Z RS(   c         C` s/   | j    } d | | | f <| j d | j  S(   Ni    R  (   RÎ   RĹ  R  (   Rx   R/  Rö   R÷   R7   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRń    s    RÉ  Rń  s&   diagonal broken with non-canonical BSRc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRę     s    s"   expm broken with non-canonical BSRc         C` s   d  S(   N(    (   Rx   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR7    s    (	   R   R   Rń  R   Rî  RŐ  Rp   Rę   R7  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR    s   	$t   TestCOONonCanonicalc           B` s&   e  Z d d   Z d   Z d   Z RS(   c         C` s4   t  | j | j | j  \ } } } | | | f f S(   s5   Return non-canonical constructor arg1 equivalent to M(   Rí  RS  RT  RU  (   Rx   R/  Rô  RS  RT  RU  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRň    s    $c         C` s|   t  j | j j j d  | j f | _ t  j | j j j |  | j f | _ t  j | j j j |  | j f | _ | S(   Ni    (   R<   t   r_RS  R6   R  RT  RU  (   Rx   R/  Rö   R÷   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyRń    s    (((c         C` sn   |  j  t j d   } | j   | j d d g d d | j   t t j t j | j  d k   d  S(   Ni   i   Rä   i   i    (	   R   R<   R%   RŠ  Rű   R   RÎ  t   diffRU  (   Rx   RÖ   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_setdiag_noncanonical  s
    

N(   R   R   R2   Rň  Rń  R  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR    s   	c    
      c` sŚ  t  t t t t t t g }  i d d 6d d 6d d 6d d 6d d	 6} x[|  D]S} xJt t |   D]6} t	 | |  } | j
 d
  rd t	 | d t  rd g  } | j |  } t |  rŰ | t j j d |  g 7} n  t t j  t d  k r;t	 | d g   } xu | D]% } | j d k r| j |  qqWnE xB d d d d g D]. }	 t | |	  rN| t	 | |	  g 7} qNqNWt j | | d | Vqd qd WqK Wd  S(   Ns%   expm for 64-bit indices not availableR7  s)   linsolve for 64-bit indices not availableR9  R  s   test implemented in base classRŹ  s%   test actually requires 64-bit to workRÔ  R  Rď  Rń  s   3.6.0t
   pytestmarkRý  R   RŐ  t   xslowt   marks(   Rý  R   RŐ  R  (   RŽ   RČ  RŻ   R°   RÖ  R   Rś  t   sortedt   dirRe   R  Rp   R  R   R   Rî  R   R   R¨  Rm   Rd   RC  t   param(
   t   TEST_CLASSESt
   SKIP_TESTSR   t   method_namet   methodR  R1   t   markersRî  t   mname(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   cases_64bit§  s4    
t	   Test64Bitc           B` sř   e  Z e e e e e g Z d    Z d   Z	 d   Z
 d   Z d   Z e j j d e    d    Z e j j d e    d    Z e j j d e    d    Z e j j d e    d	    Z e j j d e    d
    Z d   Z RS(   c         C` s   | t  j j | |   S(   N(   R<   Rq   R  (   Rx   t   mat_clsRÖ   Rő   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   _create_some_matrixŃ  s    c         C` sĹ   t  j |  } t | t  s< t | t  s< t | t  r^ | j j | k o] | j j | k St | t  r | j	 j | k o | j
 j | k St | t  rŽ | j j | k St d | f   d  S(   Ns    matrix %r has no integer indices(   R<   R6   Ru   R   R   R$   RQ  RR  R!   RT  RU  R#   RV  R   (   Rx   RÖ   R6   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   _compare_index_dtypeÔ  s    ""c         ` s@   t  d d    f d    } x   j D] } | |  q( Wd  S(   NRQ   i
   c         ` sl   |  t  j j d d   } t   j | t  j   |  t  j j d d   } t   j | t  j   d  S(   Ni
   i   i   (   R<   Rq   R  R   R  R?   RH   (   R  RÖ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   ă  s    (   Rt   t   MAT_CLASSES(   Rx   R   R  (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_decorator_maxval_limitŕ  s    c         ` s@   t  d t    f d    } x   j D] } | |  q( Wd  S(   NRq   c         ` s   t  } t  } x{ t d  D]a }   j |  d d  } | pL   j | t j  } | pg   j | t j  } | r | r Pq q Wt d   d  S(   Nid   i	   s#   both 32 and 64 bit indices not seen(   Rp   RĄ   R  R  R<   R?   RH   RR   (   R  t   seen_32t   seen_64Rä   RÖ   (   Rx   (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR   đ  s    (   Rt   R    R  (   Rx   R   R  (    (   Rx   s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_decorator_maxval_randomí  s    c         K` s&   t  |   d    } | | |  d  S(   Nc         S` s]   |    } t  | d  r% | j   n  z t | |    Wd  t  | d  rX | j   n  Xd  S(   Nt   setup_methodt   teardown_method(   RC  R  Re   R  (   R   R  t   instance(    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR     s    	(   Rt   (   Rx   R   R  Ri   R   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   _check_resiliency   s    s   cls,method_namec         C` s   |  j  | | d d d  S(   NRQ   i
   (   R  (   Rx   R   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_resiliency_limit_10  s    c         C` s   |  j  | | d t d  S(   NRq   (   R  R    (   Rx   R   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_resiliency_random  s    c         C` s   |  j  | | d t j d  S(   NRF   (   R  R<   R?   (   Rx   R   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_resiliency_all_32  s    c         C` s   |  j  | | d t j d  S(   NRF   (   R  R<   RH   (   Rx   R   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_resiliency_all_64   s    c         C` s   |  j  | | d t d  S(   NRs   (   R  R    (   Rx   R   R  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt
   test_no_64$  s    c         C` sN   t  d t j d d  d    } t  d t j  d    } |   |   d  S(   NRF   RU   i   c          S` sË   t  d d g d d g d d g g  }  t t |  j d d t t |  j d d t d d d g d d d g g  }  t t |  j d d t d d d g d d d g g  }  t t |  j d d d  S(	   Ni   i   i   i   i   i   R  i    (   R   R   RR   Ru  R  R   R!   (   Rh   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   check_limited/  s    '$$c          S` sł   t  d d g d d g d d g g  }  |  j d d  |  j d d  t d d d g d d d g g  }  |  j d d  t d d d g d d d g g  }  |  j d d  d  S(	   Ni   i   i   i   i   i   R  i    (   R   Ru  R  R   R!   (   Rh   (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   check_unlimited=  s    '$$(   Rt   R<   RH   (   Rx   R%  R&  (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   test_downcast_intp(  s
    (   R   R   R$   R!   R   R   R#   R  R  R  R  R  R  R   Rî  t   parametrizeR  R   R!  R"  R#  R$  R'  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyR  Î  s   					!!!!!(z   Rě  t
   __future__R    R   R   t	   __usage__R  t
   contextlibR|  t   distutils.versionR   t   numpyR<   t   scipy._lib.sixR   R   Rú  R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   Rq   t   numpy.testingR   R   R   R   R   R   R   R   R   t   scipy._lib._numpy_compatR   t   scipy.linalgRX   Rm  RY   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   t   scipy.sparse.sputilsR)   R*   R+   t   scipy.sparse.linalgR,   R-   R.   t   scipy._lib._versionR/   t   scipy._lib.decoratorR0   R2   R5   R:   RC  R  R­   RŹ   Rp   Rt   Rv   t   objectRw   R   R   Rđ  Rţ  R
  R  R!  R*  t   contextmanagerRE  RF  RP  RS  RZ  Rf  Rt  R    R  R  R°   R   RŻ   R   Rś  RČ  RÖ  RŽ   Rí  Rî  Rů  Rý  R˙  R   R  R  R  R  (    (    (    s;   lib/python2.7/site-packages/scipy/sparse/tests/test_base.pyt   <module>	   s°   	j.L			L	-˙ ˙ ˙ ˙ ˙ ˙ ˙ daËÁq#b[Ź	)ß

%b
d
p
"
ą
	!42	'