ó
î&]\c           @` sÂ   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 Z	 d  d l
 j Z d  d l m Z m Z m Z m Z m Z m Z m Z d e f d     YZ d   Z d   Z d	   Z d S(
   i    (   t   divisiont   print_functiont   absolute_importN(   t   TestCaset   assert_array_equal(   t   Boundst   LinearConstraintt   NonlinearConstraintt   PreparedConstraintt   new_bounds_to_oldt   old_bound_to_newt   strict_boundst   TestStrictBoundsc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` sÅ   d } d } d } t  } t | | | |  \ } } t | t j t j t j g  t | t j t j t j g  t } t | | | |  \ } } t | d d d g  t | d d d g  d  S(   Ni   i   i   (   t   FalseR   R   t   npt   inft   True(   t   selft   mt   lbt   ubt   enforce_feasibilityt	   strict_lbt	   strict_ub(    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt+   test_scalarvalue_unique_enforce_feasibility   s    	"	c         C` s×   d } d d d g } d d d g } t  } t | | | |  \ } } t | t j t j t j g  t | t j t j t j g  t } t | | | |  \ } } t | d d d g  t | d d d g  d  S(   Ni   i   i   i   i   i   (   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt+   test_vectorvalue_unique_enforce_feasibility   s    	"	c         C` sz   d } d } d } t  t t  g } t | | | |  \ } } t | t j d t j g  t | t j d t j g  d  S(   Ni   i   i   (   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt+   test_scalarvalue_vector_enforce_feasibility0   s    	c         C` s   d } d d d g } d d t  j g } t t t g } t | | | |  \ } } t | d t  j d g  t | d t  j t  j g  d  S(   Ni   i   i   i   i   (   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt+   test_vectorvalue_vector_enforce_feasibility;   s    	(   t   __name__t
   __module__R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyR      s   			c    
      ` s  t  j d d d g  }  t  j d t  j d g  } t  j d d d g  } t  j t t t g d	 t } t |  | |  } t j t	 t
 | |  t  j d d d d
 g  } t  j d d d d
 g d d d d g d d d d g g    t  j t t t g d	 t } t   t  j d |  } t j t	 t
 | |    f d   }   f d   } d   } t | t  j d | | |  }	 t j t	 t
 |	 |  d  S(   Ni    i   i   g      à?iF   i   i   i   t   dtypei   i   i   i   i   c         ` s     j  |   S(   N(   t   dot(   t   x(   t   A(    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt   funU   s    c         ` s     S(   N(    (   R    (   R!   (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt   jacX   s    c         S` s   t  j d  S(   Ni   (   i   i   (   t   spst
   csr_matrix(   R    t   v(    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt   hess[   s    (   R   t   arrayR   R   R   t   boolR   t   pytestt   raisest
   ValueErrorR   R   R   (
   R   R   t   x0R   t   boundst   linearR"   R#   R'   t	   nonlinear(    (   R!   sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt%   test_prepare_constraint_infeasible_x0G   s"    <		c    	      C` sa  t  j t  j d d g  }  t  j d t  j d g  } d d d	 g } t t |  | d  |  d
 d d g } t t d | d  |  d d d g } t t t  j | d  |  d d d g } t t |  d d  |  d d d g } t t |  t  j d  |  d d d g } t t d d d  |  d d d g } t t t  j t  j d  |  d  S(   Ni   i   i
   iÿÿÿÿi   i   (   Ni   (   i   N(   i   i
   (   iÿÿÿÿi   (   iÿÿÿÿN(   iÿÿÿÿi
   (   Ni   (   NN(   Ni
   (   Ni   (   i   i   (   i   i   (   NN(   i   N(   i   N(   i   i   (   i   i   (   i   i   (   NN(   NN(   NN(   R   R(   R   t   NoneR   R	   (	   R   R   R.   t   bounds_single_lbt   bounds_no_lbt   bounds_single_ubt   bounds_no_ubt   bounds_single_botht   bounds_no_both(    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt   test_new_bounds_to_oldc   s     c          C` s|   d d g d d f }  t j d t j d g  } t j d d t j g  } t |   \ } } t | |  t | |  d  S(   Ni   i   i   iÿÿÿÿ(   Ni   (   iÿÿÿÿN(   R2   R   R(   R   R
   R   (   R.   t   lb_truet   ub_trueR   R   (    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt   test_old_bounds_to_new}   s    (   t
   __future__R    R   R   R*   t   numpyR   t   numpy.testingR   R   t   scipy.sparset   sparseR$   t   scipy.optimize._constraintsR   R   R   R   R	   R
   R   R   R1   R9   R<   (    (    (    sD   lib/python2.7/site-packages/scipy/optimize/tests/test_constraints.pyt   <module>   s   4<		