ó
î&]\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
 d d l m Z d d l m Z d „  Z d d d	 d	 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 S(   s9   
Unit test for Linear Programming via Simplex Algorithm.
i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_t   assert_allcloset   assert_equali   (   t   magic_square(   t   _remove_redundancyc           C` s   t  j j d ƒ d  S(   Niá  (   t   npt   randomt   seed(    (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   setup_module   s    gH¯¼šò×z>c      	   C` sƒ   t  |  j ƒ t |  j d ƒ | d  k	 rN t |  j | d d d | d | ƒn  | d  k	 r t |  j | d d d | d | ƒn  d  S(   Ni    t   err_msgs*   converged to an unexpected objective valuet   rtolt   atols#   converged to an unexpected solution(   R   t   successR   t   statust   NoneR   t   funt   x(   t   rest   desired_funt	   desired_xR   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   _assert_success   s     	
c          C` sy   d \ }  } t  j j |  | ƒ } t  j j |  ƒ } t | | ƒ \ } } } } t | | ƒ t | | ƒ t | d ƒ d  S(   Ni
   i    (   i
   i
   (   R   R	   t   randR   R   R   (   t   mt   nt   A0t   b0t   A1t   b1R   t   message(    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_no_redundancy4   s    c          C` sc   t  j d ƒ }  d |  d d  d  … f <t  j j d ƒ } t |  | ƒ \ } } } } t | d ƒ d  S(   Ni   i    i   i   (   R   t   eyeR	   R   R   R   (   t   At   bR   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_infeasible_zero_row>   s
    c          C` s§   t  j d ƒ }  d |  d d  d  … f <t  j j d ƒ } d | d <t |  | ƒ \ } } } } t | d ƒ t | |  d d g d  d  … f ƒ t | | d d g ƒ d  S(   Ni   i    i   i   (   R   R!   R	   R   R   R   R   (   R"   R#   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_remove_zero_rowF   s    
#c          C` s_   d \ }  } t  j j |  | ƒ } t  j j |  ƒ } t | | ƒ \ } } } } t | d ƒ d  S(   Ni   i
   i   (   i   i
   (   R   R	   R   R   R   (   R   R   R   R   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_infeasible_m_gt_nQ   s
    c          C` s‰   d \ }  } t  j j |  | ƒ } t  j j |  ƒ } d | d d  d  … f | d d  d  … f <t | | ƒ \ } } } } t | d ƒ d  S(   Ni
   i   iþÿÿÿiÿÿÿÿ(   i
   i
   (   R   R	   R   R   R   (   R   R   R   R   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_infeasible_m_eq_nY   s    *c          C` s   d \ }  } t  j j |  | ƒ } t  j j |  ƒ } t  j |  d ƒ j | d  ƒ | d d  d  … f <t | | ƒ \ } } } } t | d ƒ d  S(   Ni	   i
   i   iÿÿÿÿi   (   i	   i
   (   R   R	   R   t   aranget   dotR   R   (   R   R   R   R   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_infeasible_m_lt_nb   s    0c    	      C` sô   t  j j d ƒ d \ }  } t  j j |  | ƒ } t  j j |  ƒ } t  j j | d  | … d  d  … f | |  ƒ } | | d  … d  d  … f j | ƒ | | )t | | ƒ \ } } } } t | d ƒ t | j	 d | ƒ t t  j j
 | ƒ | ƒ d  S(   Nið  i   i
   i    (   i   i
   (   R   R	   R
   R   t   linalgt   solveR)   R   R   t   shapet   matrix_rank(	   R   R   R   R   R   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_m_gt_nk   s    /)c          C` s¦   d \ }  } t  j |  | f ƒ } d | d  d  … d f <t  j |  ƒ } t | | ƒ \ } } } } t | d ƒ t | | d d … d  d  … f ƒ t | | d ƒ d  S(   Ni   i
   i   i    (   i   i
   (   R   t   zerost   onesR   R   R   (   R   R   R   R   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_m_gt_n_rank_deficientx   s    #c          C` sà   d \ }  } t  j j |  | ƒ } t  j j |  ƒ } t  j |  d ƒ j | d  ƒ | d d  d  … f <t  j |  d ƒ j | d  ƒ | d <t | | ƒ \ } } } } t | d ƒ t | j d d ƒ t t  j j	 | ƒ d ƒ d  S(   Ni	   i
   i   iÿÿÿÿi    i   (   i	   i
   (
   R   R	   R   R(   R)   R   R   R-   R+   R.   (   R   R   R   R   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_m_lt_n_rank_deficientƒ   s    0$c          C` s  t  j d ƒ }  d |  d d  d … f <d |  d d d  … f <d |  d d  … d  d  d … f <d |  d d  d … f <d |  d d d  … f <t  j |  j d ƒ } |  d d d d g d  d  … f } t  j d ƒ } t |  | ƒ \ } } } } t | | ƒ t | | ƒ t | d ƒ d  S(	   Ni   i    i   i   iÿÿÿÿi   i   (   i   i   (   R   R1   R0   R-   R   R   R   (   R"   R#   t   A2t   b2R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_dense1   s    "c          C` s¥   t  j d ƒ }  d |  d <d |  d d  d  … f <t  j |  j d ƒ } t |  | ƒ \ } } } } t | |  d  d … d  d  … f ƒ t | | d  ƒ t | d ƒ d  S(   Ni   i   iþÿÿÿiÿÿÿÿi    (   iþÿÿÿiÿÿÿÿ(   R   R!   R0   R-   R   R   R   (   R"   R#   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_dense2¡   s    
#c          C` s¿   t  j d ƒ }  d |  d <d |  d d  d  … f <t  j j |  j d ƒ } t  j | d  ƒ | d <t |  | ƒ \ } } } } t | |  d  d … d  d  … f ƒ t | | d  ƒ t | d ƒ d  S(   Ni   i   iþÿÿÿiÿÿÿÿi    (   iþÿÿÿiÿÿÿÿ(	   R   R!   R	   R   R-   t   sumR   R   R   (   R"   R#   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_dense3¬   s    
#c    
      C` s×   t  j j d ƒ d \ }  } d } t  j j |  | ƒ } d | t  j j |  | ƒ | k <t  j j | ƒ } t  j | j d ƒ } t | | ƒ \ } } } }	 t	 | d ƒ t	 | j d | ƒ t	 t  j j | ƒ | ƒ d  S(   NiÝ  i   i   gš™™™™™¹?i    (   i   i   (
   R   R	   R
   R   R+   R.   R0   R-   R   R   (
   R   R   t   pR"   t   rankR#   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_m_gt_n_sparse¸   s    c    
      C` s×   t  j j d ƒ d \ }  } d } t  j j |  | ƒ } d | t  j j |  | ƒ | k <t  j j | ƒ } t  j | j d ƒ } t | | ƒ \ } } } }	 t	 | d ƒ t	 | j d | ƒ t	 t  j j | ƒ | ƒ d  S(   Niá  i   i2   gš™™™™™©?i    (   i   i2   (
   R   R	   R
   R   R+   R.   R0   R-   R   R   (
   R   R   R:   R"   R;   R#   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_m_lt_n_sparseÆ   s    c    
      C` s×   t  j j d ƒ d \ }  } d } t  j j |  | ƒ } d | t  j j |  | ƒ | k <t  j j | ƒ } t  j | j d ƒ } t | | ƒ \ } } } }	 t	 | d ƒ t	 | j d | ƒ t	 t  j j | ƒ | ƒ d  S(   Niá  id   g{®Gáz„?i    (   id   id   (
   R   R	   R
   R   R+   R.   R0   R-   R   R   (
   R   R   R:   R"   R;   R#   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_m_eq_n_sparseÔ   s    c          C` sq   t  d ƒ \ }  } } } t |  | ƒ \ } } } } t | d ƒ t | j d d ƒ t t j j | ƒ d ƒ d  S(   Ni   i    i   (   R   R   R   R-   R   R+   R.   (   R"   R#   t   ct   numbersR   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_magic_squareâ   s
    c          C` sq   t  d ƒ \ }  } } } t |  | ƒ \ } } } } t | d ƒ t | j d d ƒ t t j j | ƒ d ƒ d  S(   Ni   i    i'   (   R   R   R   R-   R   R+   R.   (   R"   R#   R?   R@   R   R   R   R   (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   test_magic_square2ê   s
    (#   t   __doc__t
   __future__R    R   R   t   numpyR   t   numpy.testingR   R   R   t   test_linprogR   t!   scipy.optimize._remove_redundancyR   R   R   R   R    R$   R%   R&   R'   R*   R/   R2   R3   R6   R7   R9   R<   R=   R>   RA   RB   (    (    (    sK   lib/python2.7/site-packages/scipy/optimize/tests/test__remove_redundancy.pyt   <module>   s6   		
																	