
&]\c           @   s  d  d l  Z d  d l m Z d  d l m Z m Z m Z d  d l m	 Z
 d  d l m Z d  d l m Z d  d l m Z e j d d	 g d
 d g d d g g  Z e j d d d g  Z d e f d     YZ d e f d     YZ d e e f d     YZ d e f d     YZ d S(   iN(   t   lstsq(   t   assert_allcloset   assert_equalt   assert_(   t   raises(   t   rand(   t   aslinearoperator(   t
   lsq_lineargS?gv/gJ+gX9vϿgsh|?ſgS㥫?gl?gMbX9?gPnؿt	   BaseMixinc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  j j d  |  _ d  S(   Ni    (   t   npt   randomt   RandomStatet   rnd(   t   self(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   setup_method   s    c         C   sY   xR |  j  D]G } t t t d |  j d | } t | j t t t d d d  q
 Wd  S(   Nt   methodt
   lsq_solvert   rcondii    (   t   lsq_solversR   t   At   bR   R   t   xR    (   R   R   t   res(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   test_dense_no_bounds   s    c      	   C   s  t  j d d g  } t  j d d g  } x[ |  j D]P } t t t | | f d |  j d | } t | j t	 t t d d d  q4 Wt  j d t  j
 g  } x` |  j D]U } t t t | t  j
 f d |  j d | } t | j t  j d d	 g  d
 d q Wt  j d d g  } x` |  j D]U } t t t | t  j
 f d |  j d | } t | j t  j d d g  d
 d q#Wt  j t  j
 d g  } x[ |  j D]P } t t t t  j
 | f d |  j d | } t | j t  j d d g   qWt  j d t  j
 g  } x[ |  j D]P } t t t t  j
 | f d |  j d | } t | j t  j d d g   qWt  j d d g  } t  j d d g  } xW |  j D]L } t t t | | f d |  j d | } t | j t  j d d g   qWd  S(   Niii   i    R   R   R   g        g1Vt   atolgư>gԡw?gV瞯<iggUw-rig 
su?(   R	   t   arrayR   R   R   R   R   R   R   R    t   inf(   R   t   lbt   ubR   R   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   test_dense_bounds   sD    	'!	!	"	#"	#	c      	   C   sB  t  j d d g g  } t  j d g  } d d g } d d g } xN |  j D]C } t | | | | f d |  j d | } t | j d d g  qL Wt  j d d	 g d
 d g d d g g  } t  j d d d g  } d d g } d d g } xN |  j D]C } t | | | | f d |  j d | } t | j d d d q Wd  S(   NgSӿgZd;Oǿg#~j?gg?R   R   gK7A`?gK7A`?gPngPng~jt?g~jt?g`"gHzG?gJ+?i    ii   g      R   gdy=(   R	   R   R   R   R   R   R   t
   optimality(   R   R   R   R   R   R   R   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   test_dense_rank_deficientF   s&    				c         C   s/  t  j d d g  } t  j d d g  } t t t | | f d |  j } t | j d d g  t j | j  t } t | j	 d t  j | |   t | j
 |  t | j d d d	 t | j d d
 g  t | j d k   t | j d k p| j d k  t t | j t   t | j  d  S(   Ni    ii   R   g 
su?g      ?g        R   g-q=ii   i   (   R	   R   R   R   R   R   R   R   t   dott   costt   funR   R   t   active_maskR   t   nitt   statust
   isinstancet   messaget   strt   success(   R   R   R   R   t   r(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   test_full_result]   s    ! "(   t   __name__t
   __module__R   R   R   R   R+   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyR      s
   			*	t   SparseMixinc           B   s   e  Z d    Z d   Z RS(   c         C   s   d } d } t  | | d d } |  j j |  } t | |  } t | j d d d t |  } t | |  } t | j d d d d  S(   Ni  i  t   random_statei    R   gư>(   R   R   t   randnR   R   R   R   (   R   t   mt   nR   R   R   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   test_sparse_and_LinearOperatorq   s    c         C   s   d } d } t  | | d d } |  j j |  } |  j j |  } | d } t | | | | f  } t | j d d d t | | | | f d	 d
 } t | j d d d t | | | | f d	 d } t | j d d d d  S(   Ni  i  R/   i    i   g        R   gư>t   lsmr_tolgvIh%<=t   auto(   R   R   R0   R   R   R   (   R   R1   R2   R   R   R   R   R   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   test_sparse_bounds}   s    
(   R,   R-   R3   R6   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyR.   p   s   	t   TestTRFc           B   s   e  Z d  Z d d g Z RS(   t   trft   exactt   lsmr(   R,   R-   R   R   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyR7      s   t   TestBVLSc           B   s   e  Z d  Z d g Z RS(   t   bvlsR9   (   R,   R-   R   R   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyR;      s   (   t   numpyR	   t   numpy.linalgR    t   numpy.testingR   R   R   t   pytestR   t   assert_raisest   scipy.sparseR   t   scipy.sparse.linalgR   t   scipy.optimizeR   R   R   R   t   objectR   R.   R7   R;   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_linear.pyt   <module>   s   		]