
&]\c           @` s  d  Z  d d l m Z m Z m Z d d l Z d d l m Z m	 Z	 m
 Z
 m Z d d l m Z d d l m Z m Z d d l m Z m Z d d l m Z d d l Z d	   Z d
   Z d   Z d   Z d   Z d   Z e e d d d  Z d e f d     YZ  d e  f d     YZ! d e! f d     YZ" d e! f d     YZ# d e! f d     YZ$ d e  f d     YZ% d e f d     YZ& d e% f d      YZ' d! e% f d"     YZ( d# e% f d$     YZ) d%   Z* d S(&   s"   
Unit test for Linear Programming
i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_t   assert_allcloset   assert_equalt   assert_array_less(   t   raises(   t   linprogt   OptimizeWarning(   t   _assert_warnst   suppress_warnings(   t   MatrixRankWarningc         C` s  t  j j d  |  |  d d d } t  j |  d  |  d d } | j |  d |  |   } t  j |  d |  |  f  } g  } g  } xc t |  d  D]Q } | j   } d | | d  d   d  d   f <| j | j	    | j d  q Wxp t |   D]b } xY t |   D]K } | j   } d | d  d   | | f <| j | j	    | j d  qWq Wxx t |   D]j } | j   } | d  d   | d  d   f | d  d   | d  d   f <| j | j	    | j |  qlWxx t |   D]j } | j   } | d  d   d  d   | f | d  d   d  d   | f <| j | j	    | j |  qW| j   } | d  d   t |   t |   f | d  d   t |   t |   f <| j | j	    | j |  | j   } | d  d   t |   t d |  d d  f | d  d   t |   t d |  d d  f <| j | j	    | j |  t  j
 t  j |  d t }	 t  j
 | d t }
 t  j j |	 j d  } |	 |
 | | f S(   Ni    i   i   i   it   dtype(   t   npt   randomt   seedt   aranget   reshapet   zerost   ranget   copyt   appendt   flattent   arrayt   vstackt   floatt   randt   shape(   t   nt   Mt   numbersR   t   A_listt   b_listt   it   A_rowt   jt   At   bt   c(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   magic_square   sP    88DZc         C` sJ  t  j j d  t  j j d |  | f  } t  j |  |  | f  } t  j |   } xJ t |   D]< } | d } d | | | | | |  f <| |  | | <qa Wt  j | |  | f  } t  j |  } xA t |  D]3 } | d } d | | | d |  f <d | | <q Wt  j | | f  }	 t  j | | f  }
 |	 |
 | j   f S(   s    -> A b c LP test: m*n vars, m+n constraints
        row sums == n/m, col sums == 1
        https://gist.github.com/denis-bz/8647461
    i    t   sizei   N(	   R   R   R   t   exponentialR   R   R   t   hstackt   ravel(   t   mR   R'   t   Arowt   browR$   t   j1t   Acolt   bcolR%   R&   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   lpgen_2dM   s"    

c         C` s>   t  |  j d  t  |  j | k  d  t |  j d d  d  S(   Ns   Incorrectly reported successs)   Incorrectly reported number of iterationsi   s(   Failed to report iteration limit reached(   R   t   successR   t   status(   t   rest   maxiter(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   _assert_iteration_limit_reachedh   s    c         C` s(   t  |  j d  t |  j d d  d  S(   Ns   incorrectly reported successi   s"   failed to report infeasible status(   R   R4   R   R5   (   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   _assert_infeasiblen   s    c         C` s(   t  |  j d  t |  j d d  d  S(   Ns   incorrectly reported successi   s!   failed to report unbounded status(   R   R4   R   R5   (   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   _assert_unboundedt   s    c         C` s(   t  |  j d  t |  j d d  d  S(   Ns   incorrectly reported successi   s%   failed to report optimization failure(   R   R4   R   R5   (   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt)   _assert_unable_to_find_basic_feasible_solz   s    g:0yE>c      	   C` s   |  j  s0 d j |  j |  j  } t |   n  t |  j d  | d  k	 rq t |  j | d d d | d | n  | d  k	 r t |  j	 | d d d | d | n  d  S(   Ns    linprog status {0}, message: {1}i    t   err_msgs*   converged to an unexpected objective valuet   rtolt   atols#   converged to an unexpected solution(
   R4   t   formatR5   t   messaget   AssertionErrorR   t   NoneR   t   funt   x(   R6   t   desired_funt	   desired_xR=   R>   t   msg(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   _assert_success   s    	t   LinprogCommonTestsc           B` sQ  e  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 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, d+   Z- d,   Z. d-   Z/ d.   Z0 d/   Z1 d0   Z2 d1   Z3 d2   Z4 d3   Z5 d4   Z6 d5   Z7 d6   Z8 d7   Z9 d8   Z: d9   Z; d:   Z< d;   Z= d<   Z> d=   Z? d>   Z@ d?   ZA d@   ZB RS(A   c         C` s   d d g } d d g d d g g } d d g } d } d } t | d | d | d	 | | f d
 |  j d |  j } t | d d d  S(   Nii   ii   i   i   t   A_ubt   b_ubt   boundst   optionst   methodRE   i(   NN(   iN(   RB   R   RM   RN   RH   (   t   selfR'   R%   R&   t	   x0_boundst	   x1_boundsR6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_docstring_example   s    !c         C` s   t  j d g  } t  j d g g  } t  j d g  } | j   } d t  j f } t | d | d | d | d |  j d |  j } t | d	 d
 d d
 g t | |  d  S(   Ng      ?g      @g      RJ   RK   RL   RN   RM   RE   iRF   (	   R   R   R   t   infR   RN   RM   RH   R   (   RO   R'   RJ   t	   b_ub_origRK   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_aliasing_b_ub   s    c         C` s   t  j d g  } t  j d g g  } t  j d g  } | j   } d t  j f } t | d | d | d | d |  j d |  j } t | d	 d
 d d
 g t | |  d  S(   Ng      ?g      @g      t   A_eqt   b_eqRL   RN   RM   RE   i   RF   (	   R   R   R   RS   R   RN   RM   RH   R   (   RO   R'   RV   t	   b_eq_origRW   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_aliasing_b_eq   s    c         C` s   t  j d g  } t  j d g g  } t  j d g  } d } t | d | d | d | d |  j d |  j } t | d	 d
 d d
 g d  S(   Ng      ?g      @g      $@RV   RW   RL   RN   RM   RE   i   RF   (   Ng      $@(   R   R   RB   R   RN   RM   RH   (   RO   R'   RV   RW   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt'   test_bounds_second_form_unbounded_below   s    c         C` s   t  j d g  } t  j d g g  } t  j d g  } d } t | d | d | d | d |  j d |  j } t | d d	 d
 d	 g d  S(   Ng      ?g      @RV   RW   RL   RN   RM   RE   i   RF   (   g      ?N(   R   R   RB   R   RN   RM   RH   (   RO   R'   RV   RW   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt'   test_bounds_second_form_unbounded_above   s    c         C` s   d g } d g g } d g } d g g } d g } d } t  | d | d | d | d	 | d
 | d |  j d |  j } t | d d d d g d  S(   Ng      ?g      @g       @g      g      $@RJ   RK   RV   RW   RL   RN   RM   RE   i   RF   (   g      g      $@(   R   RN   RM   RH   (   RO   R'   RJ   RK   RV   RW   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_non_ndarray_args   s    			!c      
   C` s   t  j d d g  d } d d g d d g d d g g } d d d g } t | d	 | d
 | d |  j d |  j } t | d d d d d g d  S(   Ni   i   ii   i    i
   i   i   RJ   RK   RN   RM   RE   iRF   i   (   R   R   R   RN   RM   RH   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt$   test_linprog_upper_bound_constraints   s    		c      
   C` s   d d g } d d g d d g d d g g } d d d g } t  | d | d	 | d
 |  j d |  j } t | d d d d d g d  S(   Ni   i   i    iii   i   RJ   RK   RN   RM   RE   i   RF   gUUUUUU?gUUUUUU?(   R   RN   RM   RH   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_linprog_mixed_constraints   s    		c      
   C` s   t  j d d d g  d } d d d g d d d g d d d g g } d d d g } t | d	 | d
 | d |  j d |  j } t | d d d d g d d d d d  S(   Nid   i
   i   ii    i   i   i'  RJ   RK   RN   RM   RF   R>   gh㈵>R=   gHz>(   R   R   R   RN   RM   RH   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_linprog_cyclic_recovery   s    c      
   C` s  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  } d d d
 g } d } d   |  j j   D } | | d <t | d | d | d | d |  j } |  j d k r |  j j d  r t | | d  n t | d d
 d d
 d g d  S(   Nii9   i	   g      8@g      ?g      g      g      g      i   i    id   c         S` s   i  |  ] \ } } | |  q S(    (    (   t   .0t   keyt   val(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>  s   	 R7   RJ   RK   RM   RN   t   simplext   blandRF   (	   R   R   RM   t   itemsR   RN   t   getR8   RH   (   RO   R'   RJ   RK   R7   t   oR6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_linprog_cyclic_bland   s    
"c         C` s:  t  j d d d d d g  } t  j d d d d d g d	 d
 d d d g d d d d d g d d d d d g d d d d d g g  } t  j d d d d d	 g  } |  j d k r t | d | d | d t d d d t  d |  j } n* t | d | d | d |  j d |  j } t | d d d d  d# d$ g d  S(%   Ni   i    ig      ?i   g      @g      ?g      i   g      ig      @g      ?i   g      g      )iig      @i   g      g      #@Rc   RJ   RK   RM   R7   id   Rd   RN   RF   i   i   i   gUUUUUU@gUUUUUU#@(   R   R   RN   R   t   dictt   TrueRM   RH   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt"   test_linprog_cyclic_bland_bug_8561  s    c      
   C` su   t  j d d g  d } d d g d d g g } d d g } t | d | d | d |  j d |  j } t |  d  S(   Ni   iiRJ   RK   RN   RM   (   R   R   R   RN   RM   R:   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_linprog_unbounded#  s    	c      
   C` st   d d g } d d g d d g d d g g } d d d g } t  | d | d | d |  j d	 |  j } t |  d  S(
   Nii   i    i   iRJ   RK   RN   RM   (   R   RN   RM   R9   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_linprog_infeasible-  s    		c         C` s   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 } d	 d d d g } d d d d g g } d g } t  | d | d | d | d | d |  j d |  j } t | d d d d d  d
 d! g d  S("   Nii   i   iii   i	   i   ii    i
   ii   i   iiRJ   RK   RV   RW   RN   RM   RE   i  io  RF   ie   i  i  gqY:^@gk椀?gs?gkL?(   R   RN   RM   RH   (   RO   R'   RJ   RK   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_nontrivial_problem8  s    	!c         C` s   t  j d d g  d } t  j d d g d d g g d t  j } | j   } d d g } t  j t  j f } d t  j f } t | d | d	 | d
 | | f d |  j d |  j } t | |  t	 | d d d d d g d  S(   Nii   ii   i   R   i   RJ   RK   RL   RN   RM   RE   ii   RF   ii   gm۶m&g$I$Ig%I$I@(
   R   R   t   float64R   RS   R   RN   RM   R   RH   (   RO   R'   RJ   t	   A_ub_origRK   RP   RQ   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_negative_variableH  s    !c      
   C` sV   t  d d  \ } } } t | d | d | d |  j d |  j } t | d d d  S(   Ni   RJ   RK   RN   RM   RE   gT*P(   R3   R   RN   RM   RH   (   RO   R%   R&   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_large_problemY  s    c         C` s  d d d d d d d d d d	 d
 d g } d \ } } | | | d | d d d d | d d g | d d | d | d d d d d d g d d | | d d d d d d d d g d d d d d d | | d d | d g d d d d | | | d | d d d g d d d d d d d | | d d | g d d d d d d d d d | | | g g } d d d d d d d g } t  d | d | d | d |  j d |  j  } t | d d d d d d d  S(   Ni   i   i	   i   i   i   i   i    i   i   i   ii   i   ii!   iR'   RV   RW   RN   RM   RE   i  R>   gư>R=   gHz>(   ii   (   R   RN   RM   RH   (   RO   R'   R   t   pRV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_network_flowa  s    *''''''-c   	      C` s=  d d d d d g } d d g d d g d d g d d g d d g g } d \ } } | | d d d g | d | | d g d | | d | g d d d | | g g } d d d d g } t    j } | j t d	  | j t d
  | j t d  t d | d | d | d | d |  j d |  j  } Wd  QXt | d d d  S(   Ni   i   i   i    i   i   iis   scipy.linalg.solve
Ill...s   A_eq does not appear...s   Solving system with option...R'   RV   RW   RL   RN   RM   RE   i   (   ii   (   R   t   filtert   RuntimeWarningR	   R   RN   RM   RH   (	   RO   t   costRL   R   Rs   RV   RW   t   supR6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt"   test_network_flow_limited_capacityt  s&    				c         C` sz   d d d g } d d d g d d d g g } d d	 g } t  d
 | d | d | d |  j d |  j  } t | d d d  S(   Niiii   i   i   i   i
   i   R'   RJ   RK   RN   RM   RE   i(   R   RN   RM   RH   (   RO   t   ZRJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt(   test_simplex_algorithm_wikipedia_example  s    c         C` s   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
 d d g } t  d | d | d | d |  j d |  j  } t | d d d d d d d d d g d d d d d  S(   Ni   i   i   i    i   i   ig      @i
   i   i   iX  R'   RV   RW   RN   RM   RE   g     s@RF   g     P@g     1@g     f@R>   gTqs*>R=   gHz>(   R   RN   RM   RH   (   RO   R'   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_enzo_example  s    c         C` s  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 d d	 d d d	 d g d d d	 d d d	 g g } d
 d d d d g } t    D } | j t d  t d | d | d | d |  j d |  j  } Wd  QXt | d d d d d d d d d g d  S(   Ngffffff@g333333@g%@gffffffg333333g%ii    i   g      g?g333333?s   A_eq does not appear...R'   RV   RW   RN   RM   RE   gRQRF   g?g        g?(   R   Ru   R	   R   RN   RM   RH   (   RO   R'   RV   RW   Rx   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_enzo_example_b  s    c         C` s   d } t  j |  } d t  j t  j d | d  | d } t  j t  j |  d t  j |  f  } d d g } t d | d | d | d |  j d	 |  j	  } t
 | d
 d d t  j |  d  S(   Ni   i   i   i    R'   RV   RW   RN   RM   RE   RF   (   R   t   onest   piR   R   t   cost   sinR   RN   RM   RH   R   (   RO   R-   R'   t   tmpRV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt#   test_enzo_example_c_with_degeneracy  s    )+c         C` s   d } t  j |  } d t  j t  j |  | d } t  j t  j |  d t  j |  f  } d d g } t d | d | d | d |  j d	 |  j	  } t
 |  d  S(
   Ni2   i   i   i    R'   RV   RW   RN   RM   (   R   R~   R   R   R   R   R   R   RN   RM   R:   (   RO   R-   R'   R   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt&   test_enzo_example_c_with_unboundedness  s    "+c         ` s   d } t  j |  } d t  j t  j |  | d } t  j t  j |  d t  j |  f  } d d g }   f d     j D } t | d <t	 d | d | d | d	   j
 d
 |  } t |  d  S(   Ni2   i   i   c         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>  s   	 t   presolveR'   RV   RW   RN   RM   (   R   R~   R   R   R   R   R   RM   t   FalseR   RN   R9   (   RO   R-   R'   R   RV   RW   Rg   R6   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt&   test_enzo_example_c_with_infeasibility  s    "+
!	c      
   ` s   t  j d d g  } d d g d d g d d g g } d d d g } d  d  d  d  d  i    f d	  }   f d
     j D } d | d <t t | | d | d | d | d  S(   Niii   i   i    i
   i   i   c         ` s,   t  |  | | | | | d   j d | d  S(   NRN   RM   (   R   RN   (   R'   RJ   RK   RV   RW   RL   RM   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   f  s    !c         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>  s   	 i*   t   spamRJ   RK   RM   (   R   R   RB   RM   R
   R	   (   RO   R'   RJ   RK   R   Rg   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_unknown_options  s    !
	c         C` s2   t  d d g d |  j d |  j } t |  d  S(   NiiRN   RM   (   R   RN   RM   R:   (   RO   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_no_constraints  s    $c         C` s   t  d d g d d d |  j d |  j } t | d d d g t  d d g d d d	 g d |  j d |  j } t | d d d g d  S(
   Ni   i   RL   RN   RM   RF   (   i   i   (   i   i   (   i   i   (   R   RN   RM   RH   (   RO   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_simple_bounds  s    c      	   ` s  d  d  d  d  d    f d  } x d d d g d d g d d d g d t j t j f d g d t j t j f d g g D]% } t t | d d d g d | qx Wt t | d d g d	 d d g g d
 d d g t t | d d g d	 d g g d
 d g t t | d d g d d d g g d d d g t t | d d g d d g g d d g t t | d d g d d g d d d   j k r  j d rd  St t | d d g d	 t j d  d d d  S(   Nc         ` s/   t  |  | | | | | d   j d   j d  S(   NRN   RM   (   R   RN   RM   (   R'   RJ   RK   RV   RW   RL   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR      s    i   i    i   i   i   i   RL   RJ   RK   RV   RW   t   _sparse_presolve(   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   (   RB   R   RS   t   assert_raisest
   ValueErrorRM   R   (   RO   R   t	   bad_bound(    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_invalid_inputs  s     	$#1+1+%c         C` sd  t  j d d d d d d g  } t  j 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 d d d d d d g g  } t  j d d d d d g  } t  j d d d	 d
 d	 d
 g d d d	 d
 d	 d
 g g  } t  j d d g  } t | d | d | d | d | d |  j d |  j } t | d d d t  j |  d d d  S(   NggQ뱿gMbp?g      ?i    g      g      @g      4@ii   RJ   RK   RV   RW   RN   RM   RE   RF   R>   g>(   R   R   R   RN   RM   RH   t
   zeros_like(   RO   R'   RJ   RK   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_basic_artificial_vars  s    !0*9!c         C` su   t  d d d d g d d t j f t j d f d
 d g d |  j d |  j } t | d d d d d g d d	 d  S(   Ni   iRL   i    RN   RM   RF   RE   i(   ii   (   ii   (   R   R   RS   RN   RM   RH   (   RO   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_empty_constraint_2)  s    %c         C` s   d d d g d d d g d d d g g } d d d g } d d d g } t  d | d | d | d |  j d	 |  j  } t | d
 d d  S(   Ni    i   i   i   R'   RV   RW   RN   RM   RE   (   R   RN   RM   RH   (   RO   RV   RW   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_zero_row_2/  s    *c         C` s   d d d g d d d g d d d g g } d d d g } d d d g } t  d | d | d | d |  j d	 |  j  } t | d
 d d  S(   Ni    i   i   i   R'   RJ   RK   RN   RM   RE   (   R   RN   RM   RH   (   RO   RJ   RK   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_zero_row_47  s    *c   	      C` s   d \ } } t  j j d  t  j j |  } d | d <t  j j | |  } d | d  d   d f <t  j j |  } d d d d g g } d } t | | | | | d d d d d g d |  j d	 |  j } t | d
 d d  S(   Ni   i   i    i   RL   ii
   RN   RM   RE   gyMj#(   i   i   (   ii
   (   ii
   (   iN(   NN(	   R   R   R   R   R   RB   RN   RM   RH   (	   RO   R-   R   R'   RV   RW   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_zero_column_1?  s    
c      
   C` s   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 } d d d d g } t  | d | d | d |  j d |  j } t | d	 d d  S(
   Ni   i   i    i   RV   RW   RN   RM   RE   (   R   RN   RM   RH   (   RO   R'   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_singleton_row_eq_2O  s    Bc         C` s   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 } d d d d g } t  | d | d | d	 d d d d g d
 |  j d |  j } t | d d d  S(   Ni   i   i    ig      i   RJ   RK   RL   RN   RM   RE   g      ?(   NN(   i    N(   i    N(   i    N(   R   RB   RN   RM   RH   (   RO   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_singleton_row_ub_2W  s    Bc         C` s   d
 \ } } t  j j |  } t  j j | |  } t  j j |  } d | d d  d   f | d d  d   f <| d c d 9<t   A } | j t d  t | d | d | d |  j d	 |  j } Wd  QXt	 |  d  S(   Ni
   i   iis   A_eq does not appear...RV   RW   RN   RM   (   i
   i
   (
   R   R   R   R   Ru   R	   R   RN   RM   R9   (   RO   R-   R   R'   t   A0t   b0Rx   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt$   test_remove_redundancy_infeasibility`  s    *c         C` s   t  j d  } t  j d d d g  } t  j d  } t | d | d | d d t  j f d |  j d	 |  j } t | d
 | d t  j	 |  d  S(   Ni   i   i   RV   RW   RL   g      ?RN   RM   RF   RE   (
   R   t   eyeR   R~   R   RS   RN   RM   RH   t   sum(   RO   R%   R&   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bounded_below_onlym  s    $c         C` s   t  j d  } t  j d d d g  } t  j d  } t | d | d | d t  j d f d |  j d	 |  j } t | d
 | d t  j	 |  d  S(   Ni   i   i   RV   RW   RL   i   RN   RM   RF   RE   (
   R   R   R   R~   R   RS   RN   RM   RH   R   (   RO   R%   R&   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bounded_above_onlyu  s    %c         C` s   t  j d  } t  j d d d g  } t  j d  } t | d | d | d t  j t  j f d |  j d |  j } t | d	 | d
 t  j	 |  d  S(   Ni   i   i   RV   RW   RL   RN   RM   RF   RE   (
   R   R   R   R~   R   RS   RN   RM   RH   R   (   RO   R%   R&   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_unbounded_below_and_above}  s    (c         C` s   d d g } d d g d d g d d g g } d d d g } d d g } t d	 | d
 | d | d | d |  j d |  j  } t |  d  S(   Nii   i   ii    i   i   i   R'   RJ   RK   RL   RN   RM   (   i   i   (   i    N(   RB   R   RN   RM   R9   (   RO   R'   RJ   RK   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt    test_bounds_equal_but_infeasible  s    !c         C` s   d d g } d d g d d g d d g g } d d d g } d d g } t d	 | d
 | d | d | d |  j d |  j  } t |  d  S(   Nii   i   ii    i   i   i   R'   RV   RW   RL   RN   RM   (   i   i   (   i    N(   RB   R   RN   RM   R9   (   RO   R'   RV   RW   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt!   test_bounds_equal_but_infeasible2  s    !c         C` s   t  d d d d g d d t j f t j d f d	 d
 g d |  j d |  j } t |  |  j j d t  rt d n d } t | j	 |  d  S(   Nii   RL   i    RN   RM   R   i   (   ii   (   ii   (
   R   R   RS   RN   RM   R:   Rf   Rj   R   t   nit(   RO   R6   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_empty_constraint_1  s    %
!c      
   C` s   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 } d d d d g } t  | d | d | d |  j d |  j } t |  |  j j d	 t  r d n d
 } t | j |  d  S(   Ni   i   i    i   RV   RW   RN   RM   R   i   (   R   RN   RM   R9   Rf   Rj   R   R   (   RO   R'   RV   RW   R6   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_singleton_row_eq_1  s    B
!c         C` s   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 } d d d d g } t  | d | d | d	 d d d d g d
 |  j d |  j } t |  |  j j d t  r d n d } t | j |  d  S(   Ni   i   i    iii   RJ   RK   RL   RN   RM   R   i   (   NN(   i    N(   i    N(   i    N(	   R   RB   RN   RM   R9   Rf   Rj   R   R   (   RO   R'   RJ   RK   R6   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_singleton_row_ub_1  s    B
!c   	      C` s!  t  j j d  d \ } } t  j j |  } d | d <t  j j | |  } d | d  d   d f <t  j j |  } t  j j | |  } d | d  d   d f <t  j j |  } t | | | | | d d d |  j d |  j } t |  |  j j	 d	 t
  rd n d
 } t | j |  d  S(   Ni    i   i   ii   RL   RN   RM   R   i   (   i   i   (   NN(   R   R   R   R   R   RB   RN   RM   R:   Rf   Rj   R   R   (	   RO   R-   R   R'   RV   RW   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_zero_column_2  s    

!c         C` s   d \ } } t  j j |  } t  j j | |  } d | d d  d   f <t  j j |  } t d | d | d | d |  j d |  j  } t |  |  j j d	 t  r d n d
 } t	 | j
 |  d  S(   Ni   i   i    R'   RV   RW   RN   RM   R   i   (   i   i   (   R   R   R   R   RN   RM   R9   Rf   Rj   R   R   (   RO   R-   R   R'   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_zero_row_1  s    
!c         C` s   d	 \ } } t  j j |  } t  j j | |  } d | d d  d   f <t  j j |  } t d | d | d | d |  j d |  j  } t |  t | j d  d  S(
   Ni   i   i    R'   RJ   RK   RN   RM   (   i   i   (	   R   R   R   R   RN   RM   R9   R   R   (   RO   R-   R   R'   RJ   RK   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_zero_row_3  s    
c         C` s   d g } d g g } d } d } t  d | d | d | d	 | d
 |  j d |  j  } t |  |  j j d t  ry d n d } t | j |  d  S(   Ni   i   i   i   i   R'   RJ   RK   RL   RN   RM   R   i    (   i   i   (   R   RN   RM   R9   Rf   Rj   R   R   (   RO   R'   RJ   RK   RL   R6   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_infeasible_ub  s    	
!c         C` sM   d g } d g g } d } t  t t | d | d | d |  j d |  j d  S(   Ni   t   helloRV   RW   RN   RM   (   R   t	   TypeErrorR   RN   RM   (   RO   R'   RV   RW   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_type_error  s    		c         ` s   d d g } d d g d d g g } d d g } d d g }   f d     j  D } t | d <t d	 | d
 | d | d | d   j d |  } t |  d  S(   Ni   i   g?g@i   i   c         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>	  s   	 R   R'   RJ   RK   RL   RN   RM   (   i   i   (   i   i   (   RM   R   R   RN   R9   (   RO   R'   RJ   RK   RL   Rg   R6   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_equal_bounds_no_presolve   s    
c      	   ` sg   d g } d g }   f d     j D } t | d <t d | d | d   j d |  } t |  d  S(	   Ni   c         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>  s   	 R   R'   RL   RN   RM   (   Ni   (   RB   RM   R   R   RN   R:   (   RO   R'   RL   Rg   R6   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt*   test_unbounded_below_no_presolve_corrected  s    		
		c         C` s  t  j d d d d d d g  } t  j d d d d d d g d d d d d d g d d d d d d g g  } t  j d d d g  } d d d d d d g } t | | | d
 d
 | d |  j d |  j } t |  t | j d t  j	  t | j
 d  d	  d
 S(   s|   
        Test whether presolve pathway for detecting unboundedness after
        constraint elimination is working.
        i    i   ii   iRN   RM   i$   s$   The problem is (trivially) unboundedN(   NN(   NN(   NN(   ii   (   ii   (   i    N(   R   R   RB   R   RN   RM   R:   R   RD   RS   R@   (   RO   R'   R%   R&   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt*   test_unbounded_no_nontrivial_constraints_1  s    !	!
c         C` s  t  j d d d d d d g  } t  j d d d d d d g d d d d d d g d d d d d d g g  } t  j d d d g  } d d d d d d g } t | | | d
 d
 | d |  j d |  j } t |  t | j d t  j	  t | j
 d  d	  d
 S(   s|   
        Test whether presolve pathway for detecting unboundedness after
        constraint elimination is working.
        i    i   ii   iRN   RM   i$   s$   The problem is (trivially) unboundedN(   NN(   NN(   NN(   ii   (   ii   (   Ni    (   R   R   RB   R   RN   RM   R:   R   RD   RS   R@   (   RO   R'   R%   R&   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt*   test_unbounded_no_nontrivial_constraints_2+  s    !	!
c   	   .   C` s  d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* g } d+ } d } d } t j d d d d d	 d d d d
 d
 d d
 d
 d d d d d d g d d d | d d	 d d
 d d d
 d d
 d d d d d d g d d d | d d d	 d
 d
 d d
 d
 d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d
 d d d d d g d d d d d d d d d d d d d d d
 d d d d g d d d d d d d d d d d d d d d d
 d d d g d d d d d d d d d d d d d d d d d
 d d g d d d d d d d d d d d d d d d d d d
 d g d d d d d d d d d d d d d d d d d d d
 g d d d
 d
 d d d d
 | | d d d | d d d d d g d d d d d d
 d
 d d d d
 | | d | d d d d g d d
 d d d d d | d
 d
 d d d d d | d d d g d d d d d
 d d
 d d d | d
 | d d d | d d g d d
 d
 d d d d | | d
 d d d d d d d | d g d d d d d
 d
 d d d d | | d
 d d d d d | g g  } 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 d d d d g  } t j d d d d d d d d d d d d d d d d d d d g  } |  j d k rt j t  / t | | | d | d |  j d |  j } Wd  QXn: t | | | d | d |  j d |  j } t	 | d d d  S(,   Ni    id   i  i   i	   g     ggQiig333333gףp=
?i   gffffff?g @g        g      Rc   RL   RN   RM   RE   g^Z(   i    N(   i    id   (   i    id   (   i    id   (   i    id   (   i    id   (   i    id   (   i    i  (   i    i  (   i    i  (   i    i  (   i    i  (   i    i  (   i    N(   i    N(   i    N(   i    N(   i    N(   i    Ngqq?(
   RB   R   R   RN   t   pytestt   warnsR	   R   RM   RH   (	   RO   RL   R   t   gt   hRJ   RK   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_5400=  s^    <<<<<<<<<<<<<<<<<<<<<<<<<<E*0!'c         C` s   t  j d d d g  } t  j d d d g d d d g g  } t  j d d g  } t  j d d d g g  } t  j d	 g  } d } t | | | | | d
 |  j d | d |  j } t | d d d t  j d d d g  d  S(   Ni   g      ?g        g     @g      @g     g    .Ag    .Ag    cARN   RL   RM   RE   gfffff-@RF   i   g@(   NN(   R   R   RB   R   RN   RM   RH   (   RO   R'   RV   RW   RJ   RK   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_issue_6139u  s    	'c         C` s  t  j d d d d d d d d d d g
 g  } t  j d g  } t  j d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d	 d d d d d d g
 d d
 d d d d d d d d g
 d d d d d d d d d d g
 g  } t  j d d d d d g  } t  j d d d d d d d d d d g
 d d d d d d  d! d" d# d$ g
 g  j } t  j d% d& d' d( d) d* d+ d, d- d. g
  } t   S } | j t d/  t | d0 | d1 | d2 | d3 | d4 | d5 |  j d6 |  j } Wd  QXd7 }	 t  j d d d d d d  d d d# d g
  }
 t	 | d8 |	 d9 |
 d: } t
 | d  d   d f | | j  t
 | j | d  d   d; f |  d  S(<   Ni    g(\?g?g(\?g%䃞?gzG?gɿg)\(̿gQ?gQg      пg{Gz gQ?gGz?gjt?g+gI+gzGg
ףp=
g(\?g?gQտgGzgGz?g
ףp=
?g333333g\(\gGz?g{Gz?gzG@gQ?g      ?g)\(?g(\?g{Gz?g333333ÿg=
ףp=gffffff?g?g(\g(\gp=
ף?g
ףp=
@g{Gz?gQ?gQ?s$   Solving system with option 'sym_pos'RJ   RK   RV   RW   RL   RN   RM   gVRE   RF   gư>i   (   R   R   t   TR   Ru   R	   R   RN   RM   RH   R   RD   (   RO   RV   RW   RJ   RK   RL   R'   Rx   R6   RE   RF   R>   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_6690  s<    0!!!!*!-'!$c         C` s   t  d  \ } } } } t   A } | j t d  t | d | d | d |  j d |  j } Wd  QXd } t | d | t | j	 | j
  |  t t j | j
 j  d	 | j
  d  S(
   Ni   s   A_eq does not appear...RV   RW   RN   RM   g-U?RE   gh㈵>(   R(   R   Ru   R	   R   RN   RM   RH   R   t   dotRD   R   R   R   R)   (   RO   R%   R&   R'   t   NRx   R6   RE   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_7044  s    c         C` s  t  j d d d d d d d d d g	  } t  j d d d d d d d	 d
 d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d  d! d" d# g	 d d$ d% d& d% d' d( d) d* g	 d d+ d, d- d. d/ d0 d1 d2 g	 d3 d4 d5 d5 d5 d5 d5 d5 d5 g	 d3 d5 d4 d5 d5 d5 d5 d5 d5 g	 d3 d5 d5 d4 d5 d5 d5 d5 d5 g	 d3 d5 d5 d5 d4 d5 d5 d5 d5 g	 d3 d5 d5 d5 d5 d4 d5 d5 d5 g	 d3 d5 d5 d5 d5 d5 d4 d5 d5 g	 d3 d5 d5 d5 d5 d5 d5 d4 d5 g	 d3 d5 d5 d5 d5 d5 d5 d5 d4 g	 d3 d d3 d3 d3 d3 d3 d3 d3 g	 d3 d3 d d3 d3 d3 d3 d3 d3 g	 d3 d3 d3 d d3 d3 d3 d3 d3 g	 d3 d3 d3 d3 d d3 d3 d3 d3 g	 d3 d3 d3 d3 d3 d d3 d3 d3 g	 d3 d3 d3 d3 d3 d3 d d3 d3 g	 d3 d3 d3 d3 d3 d3 d3 d d3 g	 d3 d3 d3 d3 d3 d3 d3 d3 d g	 g  } t  j d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d3 d d d d d d d d g  } t  j d3 d d d d d d d d g	 g  } t  j d g g  } dB g d6 } t | d7 | d8 | d9 | d: | d; | d< |  j d= |  j } t | d> d? d@ dA d  S(C   Nii    g      ?g     g     x@g     8g     Xg      g     }@g      Tg     Prg     @g      E@g     H@g      m@g     @g     x@g     hg     L@g      jg     g     ؀@g     t@g     @g     g     p@g     K@g     Ȋ@g     ؊g     T@g     |@g     pg     Xg     Љ@g      ~@g     s@g     zg     n@g     @h@g     {g      Zg     zg     @g     8@g     v@g     b@g     ؉g     `@g     ȃ@g     r@g        g      g       i	   RJ   RK   RV   RW   RL   RN   RM   RE   ghb$[@R>   gư>(   NN(   R   R   RB   R   RN   RM   RH   (   RO   R'   RJ   RK   RV   RW   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_issue_7237  sB    *'!*-!c         C` s   t  j d d d d d g d d d d	 d
 g d d d d d g d d d d	 d g g  } t  j | j d  } t  j | j d  } d g | j d } t d | d | d | d | d |  j d |  j  } d  S(   NiX  i  iD4  g     3iiiig    @i  i    i   R'   RJ   RK   RL   RM   RN   (   i    i   (   R   R   R   R   R~   R   RM   RN   (   RO   RJ   RK   R'   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_issue_8174  s    c         C` s  t  j d d d d d d d g  } t  j d  } t  j d g d g d g d g d g d g d g g  } t  j d d d d d d d g d d d d d d d g d d d d d d d g d d
 d d d d d g d d d d d d d g g  } t  j d g d g d g d g d g g  } t j t  > t d | d | d | d | d | d |  j d |  j  } Wd  QXt	 | d d d  S(   Ni   i    i   ig333333?g?g?ii   g?i   id   R'   RJ   RK   RV   RW   RN   RM   RE   g?E@gUUUUUUgg(
   R   R   t   identityR   R   R	   R   RN   RM   RH   (   RO   R'   RJ   RK   RV   RW   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_issue_8174_stackoverflow  s    $9!-c   	   
   C` s8  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 } d d d d g } d d d d g } d } t | | | d | d |  j d |  j } | j d d d d g  | j d  d | d <t | | | d | d |  j d |  j } d } t | d | d | t | d | d | d  S(   Nii
   i   i   i   iii   iii	   ii    g      B@RL   RN   RM   ii   gh㈵>RE   R=   (   i    N(   i    N(   i    N(   i    N(   NN(   RB   R   RN   RM   R   RH   (	   RO   R'   R%   R&   RL   RE   t   res1t   res2R=   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_8662  s$    
c         C` s   d d g g } d g } d d g } d d g } t | d | d | d | d	 |  j d
 |  j } t | d d d g d d d  S(   Ni    iii   i   RV   RW   RL   RN   RM   RF   g      @i   RE   (   i    N(   NNg۶m۶m?g      >@gI$I$@(   RB   R   RN   RM   RH   (   RO   R%   R&   R'   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_86639  s    		c   	      ` s   d g } d g d g g } d d g } d g d g d g g } d d d g } t    n } | j t  | j t d	    f d
     j D } t | d <t | | | | | d | d   j } Wd  QXt | j	 d  d  S(   Ni   i   i   i    ii	   i   i
   s   Solving system with option...c         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>N  s   	 R   RM   RN   s   incorrectly reported success(
   R   Ru   Rv   R	   RM   R   R   RN   R   R4   (	   RO   R'   RJ   RK   RV   RW   Rx   Rg   R6   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_8664D  s    	
c         C` s   t  j d d d d d g  } t  j d d d d d g d d d d d g g  } t  j d d g  } d d d d d g } t | | | d
 d
 | d |  j d |  j } t | d d d d d d g d	 d d
 S(   sv   
        Test whether bug described at:
        https://github.com/scipy/scipy/issues/8973
        was fixed.
        i    i   ii   iRN   RM   RF   RE   N(   NN(   NN(   NN(   ii   (   ii   (   R   R   RB   R   RN   RM   RH   (   RO   R'   R%   R&   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_8973T  s    3!	c         C` sw   t  j d  } t  j d g g  } t  j d g  } d } t | | | d d | d |  j d |  j } t |  d S(   s   
        Additional test for:
        https://github.com/scipy/scipy/issues/8973
        suggested in
        https://github.com/scipy/scipy/pull/8985
        review by @antonior92
        i   iRN   RM   N(   NN(   R   R   R   RB   R   RN   RM   RH   (   RO   R'   R%   R&   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_bug_8973_2d  s    !(C   t   __name__t
   __module__RR   RU   RY   RZ   R[   R\   R]   R^   R_   Rh   Rk   Rl   Rm   Rn   Rq   Rr   Rt   Ry   R{   R|   R}   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   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/optimize/tests/test_linprog.pyRI      s   														
																																	
									
			8		.		)						t   BaseTestLinprogSimplexc           B` s   e  Z d  Z RS(   Rc   (   R   R   RN   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   u  s   t   TestLinprogSimplexCommonc           B` s)   e  Z i  Z d    Z d   Z d   Z RS(   c      
   ` s   i      f d   } t  j d d g  } d d g d d g d d g g } d d d	 g } t | d
 | d | d | d |  j } t | d d d d d g t   d | d  t   d | d  t   d | d  t   d | d  d  S(   Nc         ` s   |  j  d  } |  j  d  } t |  j  d  d k  t |  j  d  t d  k  t t |  j  d  t   t t | t   t t | t   | r |  d	   d	 <|  d
   d
 <|  d   d <|  d   d <n  d  S(   NR@   t   completet   phasei   i   R5   i   R   RD   RC   t   slackt   con(   i   i   (   t   popR   R   t
   isinstancet   intt   boolt   str(   R6   R@   R   (   t   last_cb(    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   cb  s    iii   i   i    i
   i   i   RJ   RK   t   callbackRN   RE   g      2RF   i   RC   RD   R   R   (   R   R   R   RN   RH   R   (   RO   R   R'   RJ   RK   R6   (    (   R   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_callback|  s    !'c         C` s-   t  j t   t t |   j   Wd  QXd  S(   N(   R   R   R   t   superR   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s-   t  j t   t t |   j   Wd  QXd  S(   N(   R   R   R	   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    (   R   R   RM   R   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   y  s   		t   TestLinprogSimplexBlandc           B` s'   e  Z i e d  6Z d   Z d   Z RS(   Rd   c         C` s-   t  j t   t t |   j   Wd  QXd  S(   N(   R   R   R   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s-   t  j t   t t |   j   Wd  QXd  S(   N(   R   R   R	   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    (   R   R   Rj   RM   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s   	t   TestLinprogSimplexNoPresolvec           B` sK   e  Z i e d  6Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   R   c         C` s-   t  j t   t t |   j   SWd  QXd  S(   N(   R   R   R   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s-   t  j t   t t |   j   Wd  QXd  S(   N(   R   R   R   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s-   t  j t   t t |   j   Wd  QXd  S(   N(   R   R   R	   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s/   t  j t   } t t |   j   Wd  QXd  S(   N(   R   R   R	   R   R   R   (   RO   t   redundant_warning(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s   t  j d  d  S(   Ns#   Tests behavior specific to presolve(   R   t   skip(   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    c         C` s   t  j d  d  S(   Ns#   Tests behavior specific to presolve(   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    (
   R   R   R   RM   R   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s   					t   BaseTestLinprogIPc           B` s   e  Z d  Z RS(   s   interior-point(   R   R   RN   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s   t   TestLinprogIPSpecificc           B` sD   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s   interior-pointc         C` sX   d g } d
 g } t d | d | d |  j d i t d 6t d 6 } t | d	 d d  S(   Nii   R'   RL   RN   RM   R   t   choleskyRE   (   Ni   (   RB   R   RN   R   Rj   RH   (   RO   R'   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt)   test_unbounded_below_no_presolve_original  s    			c         C` sZ   t  d d  \ } } } t | d | d | d |  j d i t d 6} t | d d d  S(	   Ni   RJ   RK   RN   RM   R   RE   gT*P(   R3   R   RN   Rj   RH   (   RO   R%   R&   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_cholesky  s    c         C` s   t  d d  \ } } } t   \ } | j t d  | j t d  t | d | d | d |  j d i t d 6t d	 6} Wd  QXt | d
 d d  S(   Ni   s   scipy.linalg.solve
Ill...s   Solving system with option...RJ   RK   RN   RM   t   ipt   dispRE   gT*P(	   R3   R   Ru   Rv   R	   R   RN   Rj   RH   (   RO   R%   R&   R'   Rx   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_alternate_initial_point  s    c         C` s   t  d d  \ } } } t j j d  d } t | d | d | d |  j d i | d 6} t | j d  t | j |  d  S(	   Ni   i   i   RJ   RK   RN   RM   R7   (	   R3   R   R   t   randintR   RN   R   R5   R   (   RO   R%   R&   R'   R7   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_maxiter  s    c         C` sZ   t  d d  \ } } } t | d | d | d |  j d i t d 6} t | d d d  S(	   Ni   RJ   RK   RN   RM   R   RE   gT*P(   R3   R   RN   Rj   RH   (   RO   R%   R&   R'   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt	   test_disp  s    c         C` s   d   } d d g g } d g } d d g } d d g } t | d | d | d	 | d
 |  j d | } t | d d d g d d t j t  ? t | d | d | d	 | d
 |  j d | d i t d 6} Wd  QXd  S(   Nc           S` s   d  S(   N(    (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    i    iii   i   RV   RW   RL   RN   R   RF   g      @i   RE   RM   R   (   i    N(   NNg۶m۶m?g      >@gI$I$@(   RB   R   RN   RH   R   R   t   NotImplementedErrorR   (   RO   R   R%   R&   R'   RL   R6   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s    		$(	   R   R   RN   R   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR     s   							
t   TestLinprogIPSparsec           B` sE   e  Z i e d  6Z e j j d d  d    Z d   Z d   Z	 RS(   t   sparset   reasons   Fails with ATLAS, see gh-7877c         C` s   t  t |   j   d  S(   N(   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   )  s    c         ` s   t  d  \ } } } } t   w } | j t d  | j t d    f d     j D } t | d <t | d | d | d d d | d   j } Wd  QXt	 | d d d  S(   Ni   s   Matrix is exactly singulars   Solving system with option...c         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>4  s   	 R   RV   RW   RL   i    i   RM   RN   RE   g-U?(   i    i   (
   R(   R   Ru   R   R	   RM   R   R   RN   RH   (   RO   R%   R&   R'   R   Rx   Rg   R6   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt$   test_magic_square_sparse_no_presolve.  s    
c   
      ` s   t  d  \ } } } } t    } | j t d  | j t d    f d     j D } d } xU | D]M } | | d
 <t | d | d | d d d   j d | }	 t |	 d d qj WWd  QXd  S(   Ni   s   A_eq does not appear...s   Invalid permc_spec optionc         ` s    i  |  ] }   j  | |  q S(    (   RM   (   R`   Ra   (   RO   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pys
   <dictcomp>?  s   	 t   NATURALt   MMD_ATAt   MMD_AT_PLUS_At   COLAMDs   ekki-ekki-ekkit
   permc_specRV   RW   RL   i    i   RN   RM   RE   g-U?(   R   R   R   R   s   ekki-ekki-ekki(   i    i   (   R(   R   Ru   R	   RM   R   RN   RH   (
   RO   R%   R&   R'   R   Rx   Rg   t   permc_specsR   R6   (    (   RO   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_sparse_solve_options:  s     
(
   R   R   Rj   RM   R   t   markt   xfailR   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   &  s   	t   TestLinprogIPDensec           B` s   e  Z i e d  6Z RS(   R   (   R   R   R   RM   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   I  s   t   TestLinprogIPSparsePresolvec           B` sC   e  Z i e d  6e d 6Z d   Z e j j d d  d    Z RS(   R   R   c         C` s   t  j d  d  S(   Ns6   _sparse_presolve=True incompatible with presolve=False(   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   P  s    R   s   Fails with ATLAS, see gh-7877c         C` s   t  t |   j   d  S(   N(   R   R   R   (   RO   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   S  s    (	   R   R   Rj   RM   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyR   M  s   	c       
   C` sk   t  j d d g  }  d d g d d g d d g g } d d d g } t t t |  d	 | d
 | d d d  S(   Niii   i   i    i
   i   i   RJ   RK   RN   s   ekki-ekki-ekki(   R   R   R   R   R   (   R'   RJ   RK   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   test_unknown_solverY  s
    !	(+   t   __doc__t
   __future__R    R   R   t   numpyR   t   numpy.testingR   R   R   R   R   R   R   t   scipy.optimizeR   R	   t   scipy._lib._numpy_compatR
   R   t   scipy.sparse.linalgR   R(   R3   R8   R9   R:   R;   RB   RH   t   objectRI   R   R   R   R   R   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_linprog.pyt   <module>   s<   "	<					   +!Q#