ó
î&]\c           @` s  d  d l  m Z m Z m Z d  d l m Z m Z m Z d  d l m	 Z
 d  d l Z d  d l 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 d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z  d S(   i    (   t   divisiont   absolute_importt   print_function(   t   assert_t   assert_allcloset   assert_equal(   t   raisesN(   t   LinearOperator(   t   step_size_to_boundt   find_active_constraintst   make_strictly_feasiblet   CL_scaling_vectort   intersect_trust_regiont   build_quadratic_1dt   minimize_quadratic_1dt   evaluate_quadratict   reflective_transformationt   left_multiplied_operatort   right_multiplied_operatort
   TestBoundsc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` sý  t  j d d d g ƒ } t  j d d d g ƒ } t  j d d d g ƒ } t  j d	 d d g ƒ } t | | | | ƒ \ } } t | d
 ƒ t | d d d g ƒ t  j d d d g ƒ } t | | | | ƒ \ } } t | d ƒ t | d d d g ƒ t  j d d d g ƒ } t | | | | ƒ \ } } t | t  j d ƒ ƒ t | d d d g ƒ t  j d d d g ƒ } t | | | | ƒ \ } } t | d ƒ t | d d d g ƒ t  j d ƒ } t | | | | ƒ \ } } t | t  j ƒ t | d d d g ƒ d  S(   Ng      ð¿g      @g      $@g      ð?g      @g      Y@g        g      (@gš™™™™™¹?i
   i   i    g{®Gáz„?gš™™™™™©?i   iÿÿÿÿg-Cëâ6¿g      à?g       Ài   (   t   npt   arrayR   R   t   zerost   inf(   t   selft   lbt   ubt   xt   st   stept   hits(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_step_size_to_bounds   s.    c         C` s3  t  j d d d g ƒ } t  j d d d g ƒ } t  j d d d g ƒ } t | | | ƒ } t | d d d g ƒ t  j d d d	 g ƒ } t | | | ƒ } t | d
 d d g ƒ t | | | d d ƒ} t | d
 d d g ƒ t  j d d d g ƒ } t | | | ƒ } t | d d d g ƒ t | | | d d ƒ} t | d
 d d g ƒ t  j d t  j t  j g ƒ } t  j t  j d	 t  j g ƒ } t  j d ƒ } t | | | ƒ } t | d
 d d g ƒ t  j d d d g ƒ } t | | | ƒ } t | d
 d d g ƒ t | | | d d ƒ} t | d
 d d g ƒ d  S(   Ng        g      $Àg      ð?g      Y@g      à?g      Àg       @i    g      $@iÿÿÿÿi   t   rtolg•Ö&è.>g:Œ0âŽyE¾id   gßA:ÜÅ>i   g      &@gíþÿÿÿX@(   R   R   R	   R   R   t   ones(   R   R   R   R   t   active(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_find_active_constraints.   s2     c         C` s±  t  j d d d g ƒ } t  j d d d g ƒ } t  j d d d g ƒ } t | | | d
 d ƒ} t | d d k ƒ t | d | d ƒ t | | | d
 d ƒ} t | d d d d g ƒ t  j d d d g ƒ } t | | | ƒ } t t  j | | k | | k @ƒ ƒ t | | | d
 d ƒ} t t  j | | k | | k @ƒ ƒ t  j d d g ƒ } t  j d d g ƒ } t  j d d g ƒ } t | | | d
 d ƒ} t | d d g ƒ d  S(   Ng      à¿gš™™™™™é¿g       @gš™™™™™é?g      ð?g      @g        i   g»½×Ùß|Û=t   rstepi    i   g-Cëâ6?iÿÿÿÿgÍÌÌÌÌÌ@g      Y@g:Œ0âŽyE>g»½×Ùß|Ë=gœo    @g<NÑ‘\þß¿gq¬‹Ûh ð?g}    Y@g¾    Y@(   R   R   R
   R   R   t   all(   R   R   R   R   t   x_new(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_make_strictly_feasibleS   s$    ##c         C` sË   t  j t  j d d t  j g ƒ } t  j d t  j d t  j g ƒ } t  j d d d d g ƒ } t  j d d d	 d g ƒ } t | | | | ƒ \ } } t | d d
 d d g ƒ t | d d d d g ƒ d  S(   Ng      Àg      ð?g      $@g      à?g       @g      @g        gš™™™™™¹?g      $Àg      @g      ð¿(   R   R   R   R   R   (   R   R   R   R   t   gt   vt   dv(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_scaling_vectorm   s    #!(   t   __name__t
   __module__R   R#   R'   R+   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyR      s   		%	t   TestQuadraticFunctionc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` sa   t  j d d g d d g d d g g ƒ |  _ t  j d d g ƒ |  _ t  j d d g ƒ |  _ d  S(	   Ngš™™™™™¹?gš™™™™™É?g      ð¿g      ð?g      à?gš™™™™™é?g       Àg       @(   R   R   t   JR(   t   diag(   R   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   setup_methodx   s    		c         C` s†  t  j d ƒ } t |  j |  j | ƒ \ } } t | d ƒ t | d ƒ t |  j |  j | d |  j ƒ\ } } t | d ƒ t | d ƒ t  j d d g ƒ } t |  j |  j | ƒ \ } } t | d ƒ t | d ƒ t |  j |  j | d |  j ƒ\ } } t | d ƒ t | d ƒ t  j d	 d	 g ƒ } t |  j |  j | d |  j d
 | ƒ\ } } } t | d ƒ t | d ƒ t | d ƒ d  S(   Ni   i    R0   g      ð?g      ð¿gffffff @gffffff@gffffff@g      à?t   s0g…ëQ¸@g…ëQ¸…Ã¿(	   R   R   R   R/   R(   R   R0   R   R   (   R   R   t   at   bR2   t   c(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_build_quadratic_1d€   s&    ''0c         C` s4  d } d } t  | | d d ƒ \ } } t | d ƒ t | | | d | | ƒ t  | | d d ƒ \ } } t | d ƒ t | | | d | | ƒ t  | | d d ƒ \ } } t | d ƒ t | | | d | | ƒ d } t  | | d d d | ƒ\ } } t | d ƒ t | | | d | | | ƒ d  S(	   Ni   iÿÿÿÿi   i   iþÿÿÿgš™™™™™¹?i
   R5   (   R   R   (   R   R3   R4   t   tt   yR5   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_minimize_quadratic_1d™   s    !c         C` sû   t  j d d g ƒ } t |  j |  j | ƒ } t | d ƒ t |  j |  j | d |  j ƒ} t | d ƒ t  j d d g d d g d d g g ƒ } t |  j |  j | ƒ } t | d d d g ƒ t |  j |  j | d |  j ƒ} t | d d d g ƒ d  S(	   Ng      ð?g      ð¿gffffff@R0   gffffff@g        g…ëQ¸í¿gáz®Gáâ?(   R   R   R   R/   R(   R   R0   R   (   R   R   t   valuet   values(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_evaluate_quadratic®   s    !	!(   R,   R-   R1   R6   R9   R<   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyR.   w   s   			t   TestTrustRegionc           B` s   e  Z d  „  Z RS(   c         C` sh  d } t  j d ƒ } t  j d d d g ƒ } t | | | ƒ \ } } t | d ƒ t | d ƒ t  j d d d g ƒ } t | | | ƒ \ } } t | d ƒ t | d ƒ t  j d d d	 g ƒ } t  j d	 d	 d g ƒ } t | | | ƒ \ } } t | d ƒ t | d ƒ t  j d ƒ } t t t | | | ƒ t  j d ƒ } t  j d ƒ } t t t | | | ƒ d  S(   Ng      ð?i   g        iÿÿÿÿi   g      ð¿g      à¿g      à?i    i   g3E§yâ?g3E§yâ¿g3E§yâ?gÍ;fž æ?gÍ;fž æ¿gÍ;fž æ?(	   R   R   R   R   R   R   R!   t   assert_raisest
   ValueError(   R   t   DeltaR   R   t   t_negt   t_pos(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_intersectÃ   s(    (   R,   R-   RC   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyR=   Â   s   c          C` s  t  j d d g d t ƒ}  t  j d d g d t ƒ} t  j d d g ƒ } t | |  | ƒ \ } } t | | ƒ t | t  j d ƒ ƒ t  j d d	 g d t ƒ} t | |  t  j t  j t  j g ƒ ƒ \ } } t | d d	 g ƒ t | d d
 g ƒ t | t  j t  j t  j g ƒ | ƒ \ } } t | d d g ƒ t | d
 d g ƒ t | |  | ƒ \ } } t | d d g ƒ t | d d g ƒ t  j t  j d g ƒ }  t  j d t  j g ƒ } t  j d d g d t ƒ} t | |  | ƒ \ } } t | d d g ƒ t | d d
 g ƒ d  S(   Niÿÿÿÿiþÿÿÿt   dtypei   i   i    i   iüÿÿÿi   i   i
   (   R   R   t   floatR   R   R!   R   (   R   R   R8   R   R(   (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_reflective_transformationß   s,    -/c    
      C` s£  t  j d ƒ j d ƒ }  t  j d d d g ƒ } t  j | ƒ j |  ƒ } t |  | ƒ } t  j d d g ƒ } |  j t  j | ƒ ƒ } t |  | ƒ } t  j d d g ƒ } d t  j d d ƒ j d ƒ } t  j d	 d d
 g ƒ }	 t | j | ƒ | j	 | ƒ ƒ t | j | ƒ | j
 | ƒ ƒ t | j j |	 ƒ | j |	 ƒ ƒ t | j | ƒ | j	 | ƒ ƒ t | j | ƒ | j
 | ƒ ƒ t | j j |	 ƒ | j |	 ƒ ƒ d  S(   Ni   i   i   iÿÿÿÿi   i
   iþÿÿÿi   i    i   (   i   i   (   i   i   (   R   t   aranget   reshapeR   R0   t   dotR   R   R   t   matvect   matmatt   Tt   rmatvec(
   t   At   d_leftt   DAt   J_leftt   d_rightt   ADt   J_rightR   t   Xt   xt(    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   test_linear_operatorsþ   s     "(!   t
   __future__R    R   R   t   numpy.testingR   R   R   t   pytestR   R>   t   numpyR   t   scipy.sparse.linalgR   t   scipy.optimize._lsq.commonR   R	   R
   R   R   R   R   R   R   R   R   t   objectR   R.   R=   RF   RW   (    (    (    sC   lib/python2.7/site-packages/scipy/optimize/tests/test_lsq_common.pyt   <module>   s   LhK	