+
    ,i                       R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
HtHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIt^ RItR	t ^ R
IHt R	t  ^ RI!t!^ RI"H#t$ R t%R t&R t'R t(RTR lt)R t*R t+RUR lt,R t-RVR lt.R t/]P`                  Pb                  R 4       t2R t3]P`                  Pb                  R 4       t4R t5R t6Rt7Rt8Rt9Rt:Rt; ! R R4      t<]P`                  P{                  R4       ! R  R!]<4      4       t>]P`                  P{                  R4       ! R" R#]<4      4       t?]P`                  P{                  R4       ! R$ R%]<4      4       t@ ! R& R']<4      tA ! R( R)]>4      tB ! R* R+]>4      tC ! R, R-]>4      tD ! R. R/]?4      tE] '       d    ! R0 R1]?4      tF]'       d    ! R2 R3]?4      tG ! R4 R5]?4      tH ! R6 R7]?4      tI]P`                  P{                  R4       ! R8 R94      4       tJ ! R: R;]@4      tK ! R< R=]@4      tL ! R> R?]A4      tM ! R@ RA]A4      tN ! RB RC4      tO]P`                  P{                  R4       ! RD RE4      4       tP ! RF RG]P4      tQ ! RH RI]P4      tR ! RJ RK]P4      tS]P`                  P{                  R4       ! RL RM4      4       tT ! RN RO]T4      tU ! RP RQ]T4      tV ! RR RS]T4      tWR#   ] d    Rt ELui ; i  ] d    Rt  ELxi ; i)Wz"
Unit test for Linear Programming
N)VisibleDeprecationWarning)assert_assert_allcloseassert_equalassert_array_lessassert_warnssuppress_warnings)raises)linprogOptimizeWarning)approx_derivative)MatrixRankWarning)LinAlgWarningT)UmfpackWarningF)choleskyc                     \        V P                  '       * R 4       \        V P                  V8  R4       \        V P                  ^R4       R# )Incorrectly reported successz)Incorrectly reported number of iterationsz(Failed to report iteration limit reachedNr   successr   status)resmaxiters   &&C/usr/lib/python3/dist-packages/scipy/optimize/tests/test_linprog.py_assert_iteration_limit_reachedr   "   s8    O;<CKK'!#NOQ JK    c                 j    \        V P                  '       * R 4       \        V P                  ^R4       R# )incorrectly reported successz"failed to report infeasible statusNr   r   s   &r   _assert_infeasibler   (   s$    O;<Q DEr   c                 j    \        V P                  '       * R 4       \        V P                  ^R4       R# )r   z!failed to report unbounded statusNr   r   s   &r   _assert_unboundedr    .   s$    O;<Q CDr   c                 n    \        V P                  '       * R 4       \        V P                  R9   R4       R# )r   z%failed to report optimization failureN)      )r   r   r   r   s   &r   )_assert_unable_to_find_basic_feasible_solr$   4   s)     O;<CJJ& "IJr   c                    V P                   '       g(   R V P                   RV P                   2p\        V4      h\	        V P                  ^ 4       Ve   \        V P                  VRW4R7       Ve   \        V P                  VRW4R7       R# R# )zlinprog status z, message: Nz*converged to an unexpected objective valueerr_msgrtolatolz#converged to an unexpected solution)r   r   messageAssertionErrorr   r   funx)r   desired_fun	desired_xr(   r)   msgs   &&&&& r   _assert_successr1   >   s    
 ;;;

|;s{{mDS!!Q L!	. y E!	. r   c           	     b   \         P                  P                  ^ 4      pW ^,          ^,           ,          ^,          p\         P                  ! V ^,          4      V ^,          ,          ^,           pVP	                  V ^,          W 4      p\         P
                  ! V ^,          W 34      p. p. p\        V ^,          4       FJ  pVP                  4       p^WRR3&   VP                  VP                  4       4       VP                  ^4       KL  	  \        V 4       F\  p\        V 4       FJ  p	VP                  4       p^VRWy3&   VP                  VP                  4       4       VP                  ^4       KL  	  K^  	  \        V 4       FU  pVP                  4       pVRVR3,          VRVR3&   VP                  VP                  4       4       VP                  V4       KW  	  \        V 4       FU  pVP                  4       pVRRV3,          VRRV3&   VP                  VP                  4       4       VP                  V4       KW  	  VP                  4       pVR\        V 4      \        V 4      3,          VR\        V 4      \        V 4      3&   VP                  VP                  4       4       VP                  V4       VP                  4       pVR\        V 4      \        RV ) ^,
          R4      3,          VR\        V 4      \        RV ) ^,
          R4      3&   VP                  VP                  4       4       VP                  V4       \         P                  ! \         P                  ! V4      \        R7      p
\         P                  ! V\        R7      pVP                  V
P                  ^,          4      pWWV3# )z
Generates a linear program for which integer solutions represent an
n x n magic square; binary decision variables represent the presence
(or absence) of an integer 1 to n^2 in each position of the square.
NNNdtype)nprandomRandomStatearangereshapezerosrangecopyappendflattenarrayvstackfloatrandshape)nrngMnumbersr<   A_listb_listiA_rowjAbcs   &            r   magic_squarerR   R   s    ))


"C	TAXAii1oA%)GooadA)GHHadA\"EFF 1a4[

Agemmo&a	  1XqAJJLEE!Q'NMM%--/*MM!	   1X

 Aq)aAgemmo&a	  1X

 Aq)aAgemmo&a	  JJLE#*1eAha+@#AE!U1XuQx
 
MM%--/"
MM!JJLE58U2rAvr223 
!U1XuR!a,
,-
MM%--/"
MM!
6"%0A
u%AAQr   c                z   \         P                  P                  ^ 4      pVP                  W3R7      ) p\         P                  ! W V,          34      p\         P                  ! V 4      p\        V 4       F*  pV^,           p^WFWa,          Wq,          13&   W,          WV&   K,  	  \         P                  ! WV,          34      p\         P                  ! V4      p	\        V4       F  pV^,           p^WVRV13&   ^W&   K  	  \         P                  ! WH34      p
\         P                  ! WY34      pWVP                  4       3# )zt-> 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
sizeN)	r7   r8   r9   exponentialr<   r=   rB   hstackravel)mrF   rG   rQ   ArowbrowrN   j1AcolbcolrO   rP   s   &&          r   lpgen_2dr_      s   
 ))


"C
//v/
&&A88QAJD88A;D1XU !bf_% 
 88QAJD88A;D1XU1W 
 			4,A
		4,A?r   c                 \   \         P                  P                  V 4      p^
^^2rCpVP                  V4      R,
          pVP                  W44      R,
          pVP                  V4      R,
          pVP                  W$4      R,
          pVP                  V4      R,
          p	VP                  V4      ) p
VP                  V4      p\         P                  ) WVP                  4       ) 8  &   \         P                  WVP                  4       8  &   \         P
                  ! W34      P                  pWVWxW3# )
         ?)r7   r8   r9   rD   infrB   T)seedrG   m_eqm_ubrF   rQ   A_ubb_ubA_eqb_eqlbubboundss   &            r   very_random_genro      s    
))


%CBDCA88DS D88D>#D88DS D88D>#D
((1+B	!BFF7BSXXZK&&BCHHJYYx ""FD,,r   c                  V    . ROp . RO. RO. RO. RO.p. ROp. RO.pR.p. R	OpR
pWW#WEV3# )   )r6      r#   )rt      	   )rq   r6       )ra   rt      )ru   r6      r#   )rw   ru   rs   ru   )ry   rq   rq   )gk椀?gs?rx   gkL?gqY:^@ )rQ   rh   ri   rj   rk   x_starf_stars          r   nontrivial_problemr      sI    AD DD4D5FFDf44r   c                >   \         P                  P                  V 4      pVP                  ^ ^W3R7      pVP	                  V4      pVP                  ^ ^W#3R7      pWeV,          ,          VP                  ^ RVR7      ,           p\         P
                  ! W,           4      p	^ V	RV% \        P                  P                  ^V,          W1,           34      p
^ p\        V4       Fh  pWWRV3,          ,          WRV13&   RWW,           3&   RV,          VRV3,          ,          W^,           RV13&   RW^,           W,           3&   V^,          pKj  	  V
P                  4       p
\         P                  ! ^V,          4      pWR&   V) VR&   R.V,          R	.V,          ,           pWW3# )
z
Training data is {(x0, y0), (x1, y2), ..., (xn-1, yn-1)}
    x in R^d
    y in R
n: number of training samples
d: dimension of x, i.e. x in R^d
phi: feature map R^d -> R^m
m: dimension of feature space
rT   h㈵>Nr3   :rx   Nr"   :rq   Nr"   r6   NNrx   N)r7   r8   r9   normalrandnonesscipysparse	lil_arrayr=   tocscr<   )re   rY   drF   rG   phiw_truer-   yrQ   rh   idxiiri   bndss   &&&&           r   l1_regression_probr      su    ))


%C
**Q*
'CYYq\F

1aqf
%A'SZZ4aZ88A 	AAbqE<<!!1Q3*-D
CAh2h"1"W!$YS&1QU8+UBQBYUAD[q  ::<D88AaC=DJDJ>!yk!m+DDr   c                   a / oV3R  lp\         P                  ! RR	.4      p^^.^^.^^ ..p. R
Op\        W#WAV P                  R7      p\	        VR^^.R7       \        SR,          VR,          4       \        SR,          VR,          4       \        SR,          VR,          4       \        SR,          VR,          4       R# )c                   < V P                  R 4      pV P                  R4      p\        V P                  R4      R
9   4       \        V P                  R4      \        ^4      9   4       \        \        V P                  R4      \        4      4       \        \        V\
        4      4       \        \        V\        4      4       V R,          SR&   V R,          SR&   V R,          SR&   V R,          SR&   R	# )r*   completephaser   nitr-   r,   slackconNrq   r"   )popr   r=   
isinstanceintboolstr)r   r*   r   last_cbs   &  r   cb!generic_callback_test.<locals>.cb   s    '')$77:& F*+!U1X-.
3775>3/0
8T*+
7C()3xUw<Ur   rh   ri   callbackmethodr.   r/   r,   r-   r   r   Nrw   ra   rr   r#         2)r7   rA   r
   r   r1   r   )selfr   rQ   rh   ri   r   r   s   &     @r   generic_callback_testr      s    G$ 	"bAFQFQF#DD
!Tt{{
KCCUq!f=GENCJ/GCL#c(+GENCJ/GG$c'l3r   c            	      Z   \         P                  ! R	R
.4      p ^^.^^.^^ ..p. ROp\        \        \        WVRR7       \        \        \        WVRR7       Rp\
        P                  ! \        VR7      ;_uu_ 4        \	        WVRR/R7       RRR4       R#   + '       g   i     R# ; i)r{   ekki-ekki-ekkirh   ri   r   z
highs-ekkiz>Unrecognized options detected: {'rr_method': 'ekki-ekki-ekki'}match	rr_methodrh   ri   optionsNrw   r   r   )r7   rA   assert_raises
ValueErrorr
   pytestwarnsr   )rQ   rh   ri   r*   s       r    test_unknown_solvers_and_optionsr     s    
"bAFQFQF#DD*gT2BD*gT,@NG	oW	5	54$&67	9 
6	5	5	5s   >BB*	c                      \         P                  ! RR.4      p ^^.^^.^^ ..p. ROp\        WVRR7      p\        VR^^.R7       R# )	r{   highsr   r   Nrw   r   r   r   )r7   rA   r
   r1   )rQ   rh   ri   r   s       r   test_choose_solverr     sO    
"bAFQFQF#DD
!4
0CCUq!f=r   c                     \         P                  ! \        4      ;_uu_ 4        \        ^RR7       RRR4       \         P                  ! \        4      ;_uu_ 4        \        ^RR7       RRR4       \         P                  ! \        4      ;_uu_ 4        \        ^RR7       RRR4       R#   + '       g   i     L; i  + '       g   i     L]; i  + '       g   i     R# ; i)rq   interior-pointr   Nrevised simplexsimplex)r   r   DeprecationWarningr
   r~   r   r   test_deprecationr   )  s~    	(	)	)*+ 
*	(	)	)+, 
*	(	)	))$ 
*	)	 
*	)	)	)	)	)	)s#   B+B>C+B;	>C	C"	c            
         \        ^RR7      p RpV P                  ^ 8X  g   Q hV P                  P                  V4      '       g   Q h\	        ^4      w  r#rEpR.\        V4      ,          p^.\        V4      ,          pRR/p	\        WBW7RWR7      p RpV P                  ^8X  g   Q hV P                  P                  V4      '       g   Q hR^
/p	\        WBW7R	V	R
7      p RpV P                  ^8X  g   Q hV P                  P                  V4      '       g   Q h\        ^RRR7      p RpV P                  ^8X  g   Q hV P                  P                  V4      '       g   Q h\        RRR7      p RpV P                  ^8X  g   Q hV P                  P                  V4      '       g   Q h^ RIHp
 V
! ^:R4      w  rRpV^8X  g   Q hVP                  V4      '       g   Q hV
! RR4      w  rRpV^8X  g   Q hVP                  V4      '       g   Q hR# )rq   r   r   z6Optimization terminated successfully. (HiGHS Status 7:
time_limit皙?)rQ   rj   rk   rn   r   r   integralityz%Time limit reached. (HiGHS Status 13:r   highs-dsrQ   rj   rk   rn   r   r   z*Iteration limit reached. (HiGHS Status 14:)rn   r   z+The problem is infeasible. (HiGHS Status 8:z+The problem is unbounded. (HiGHS Status 10:)_highs_to_scipy_status_messagezHello!z;The HiGHS status code was not recognized. (HiGHS Status 58:Nz>HiGHS did not provide a status code. (HiGHS Status None: None)rx   rq   r6   )rq   r6   )r
   r   r*   
startswithrR   lenscipy.optimize._linprog_highsr   )r   r0   rO   rP   rQ   rI   rH   rn   r   r   r   r   r*   s                r   test_highs_status_messager   3  s   
!G
$C
BC::??;;!!#&&&&&q/A!aXAF#A,KS!G
AAW!<C
1C::??;;!!#&&&&"oG
AAZ!#C
6C::??;;!!#&&&&
!GG
4C
7C::??;;!!#&&&&
"W
%C
7C::??;;!!#&&&&L4RBOF
GCQ;;c""""4T4@OF
JCQ;;c""""r   c                  4    \        ^^.R^ ..R.^^.R7       R# )rq   rh   ri   r   Nr6         )r
   r~   r   r   test_bug_17380r   `  s     QF2q'$aVDr   c                   ^  a  ] tR tRt o RtR tR tR tR tR t	R t
R	 t]P                  P                  R
 4       t]P                  P                  R 4       tR tR tR tR tR t]P                  P-                  ]P0                  ! 4       P3                  R4      RR7      ]P                  P                  R 4       4       tR tR tR tR tR tR t R t!R t"R t#R t$R t%R  t&R! t'R" t(R# t)R$ t*R% t+R& t,R' t-R( t.R) t/R* t0R+ t1R, t2R- t3R. t4R/ t5R0 t6R1 t7R2 t8R3 t9R4 t:R5 t;R6 t<R7 t=R8 t>R9 t?R: t@R; tAR< tBR= tCR> tDR? tER@ tFRA tGRB tHRC tIRD tJRE tKRF tLRG tMRH tNRI tORJ tPRK tQRL tRRM tSRN tTRO tURP tVRQ tW]P                  P-                  ]XP.                  RR8H  RSR7      RT 4       tYRUtZV t[RV# )WLinprogCommonTestsio  ai  
Base class for `linprog` tests. Generally, each test will be performed
once for every derived class of LinprogCommonTests, each of which will
typically change self.options and/or self.method. Effectively, these tests
are run for many combination of method (simplex, revised simplex, and
interior point) and options (such as pivoting rule or sparse treatment).
c                    \        V 4       R # N)r   r   s   &r   test_callback LinprogCommonTests.test_callback|  s
    d#r   c                r    \        ^^4      w  rp\        W1W P                  RR/R7      p\        VRR7       R# )   dispTrh   ri   r   r   r.   NT*Pr_   r
   r   r1   r   rO   rP   rQ   r   s   &    r   	test_dispLinprogCommonTests.test_disp  s5    2r"aaa%tn.7r   c           	         R^.pR^.^^..p^^.pRpRp\        WW4V3V P                  V P                  R7      p\        VRR7       R# )	rq   N)rh   ri   rn   r   r   r   r6   rw   r   rw   N)r
   r   r   r1   )r   rQ   rO   rP   	x0_bounds	x1_boundsr   s   &      r   test_docstring_example)LinprogCommonTests.test_docstring_example  s[    G!Wq!fF 		aaI0F"ll4;;@-r   c           
     r    ^.p^..pRp\        \        \        WVV P                  V P                  R7       R# )rq   hellorj   rk   r   r   N)r   	TypeErrorr
   r   r   )r   rQ   rj   rk   s   &   r   test_type_error"LinprogCommonTests.test_type_error  s8     Cui![[$,,	@r   c                f   \         P                  ! R .4      p\         P                  ! R ..4      p\         P                  ! R.4      pVP                  4       pR\         P                  3p\	        WV\
        \        VV P                  V P                  R7      p\        VRR.R7       \        W44       R# )      ?      @r   r   r   N      r}   )r7   rA   r>   rc   r
   rj   rk   r   r   r1   r   )r   rQ   rh   	b_ub_origri   rn   r   s   &      r   test_aliasing_b_ub%LinprogCommonTests.test_aliasing_b_ub  s     HHcUOxx# HHcUO	~~atT4![[$,,@t<	(r   c                f   \         P                  ! R .4      p\         P                  ! R ..4      p\         P                  ! R.4      pVP                  4       pR\         P                  3p\	        V\
        \        W$VV P                  V P                  R7      p\        V^^.R7       \        W44       R# )r   r   r   r   Nr   )r7   rA   r>   rc   r
   rh   ri   r   r   r1   r   )r   rQ   rj   	b_eq_origrk   rn   r   s   &      r   test_aliasing_b_eq%LinprogCommonTests.test_aliasing_b_eq  s     HHcUOxx# HHcUO	~~atT![[$,,@qc:	(r   c                    R .pR ..pR.pR ..pR.pRp\        WW4WVV P                  V P                  R7      p\        V^^.R7       R# )r   r   g       @r   r   N)            $@)r
   r   r   r1   r   rQ   rh   ri   rj   rk   rn   r   s   &       r   test_non_ndarray_args(LinprogCommonTests.test_non_ndarray_args  s\     Ewuwuat4![[$,,@qc:r   c           	        a  \         P                  ! RR.4      p^^.^^.^^ ..p. ROpRV 3R llpS P                   Uu/ uF  qUS P                  V,          bK  	  pp^*VR&   \        \        VWW6R7       R# u upi )	r{   Nc                 <   < \        WW#WESP                  VR 7       R# r   Nr
   r   )rQ   rh   ri   rj   rk   rn   r   r   s   &&&&&&&r   f2LinprogCommonTests.test_unknown_options.<locals>.f  s    AT;;9r   spamr   rw   r   r   )NNNNNN)r7   rA   r   r   r   )r   rQ   rh   ri   r	  keyos   f      r   test_unknown_options'LinprogCommonTests.test_unknown_options  s|    HHb"XAAA'	9
 04||<|$,,s##|<&	_a	9 =s   A7c                ~   \         P                  ! R^.^^.^^..4      p\         P                  ! . RO4      p\         P                  ! ^ ^.4      ) p^ \         P                  3.\        V4      ,          p^.\        V4      ,          p\         P                  P                  \        4      ;_uu_ 4        \        W1W$V P                  VR7      pRRR4       \         P                  P                  XP                  RR.4       \         P                  P                  VP                  R4       R#   + '       g   i     Lh; i)rq   rQ   rh   ri   rn   r   r   N?ffffff@r6   rq      r  ffffff)r7   rA   rc   r   testingr   r   r
   r   r   r-   r,   r   rh   ri   rQ   rn   r   r   s   &      r   test_integrality_without_highs1LinprogCommonTests.test_integrality_without_highs  s    
 xx"a1a&1a&12xx$XXq!fbff+Q'cCFlZZ$$_55At!%+GC 6 	

""3553*5


""377D1 65s   2D,,D<	c           	       a  RV 3R llp\        \        V. R	OR
R.R7       \        P                  P	                  4       ;_uu_ 4       pVP                  \        R4       \        \        V. R	O. ROR7       R R R 4       \        \        V. R	ORR
.R7       \        \        V^^.^^..^^.R7       \        \        V^^.^..^.R7       \        \        V^^.^^..^^.R7       \        \        V^^.^..^.R7       \        \        V^^.^.^R7       RS P                  9   d   S P                  R,          '       d   R # \        \        V^^.\        P                  ! R4      ^R7       R #   + '       g   i     L; i)Nc                 P   < \        WW#WESP                  SP                  R 7       R# r  r
   r   r   rQ   rh   ri   rj   rk   rn   r   s   &&&&&&r   r	  1LinprogCommonTests.test_invalid_inputs.<locals>.f      AT;;>r   rn   zCreating an ndarray from ragged)rh   ri   )rj   rk   _sparse_presolve)rh   rk   NNNNNrq   r"   r{   r   r{   r#   )r   r%  )r{   r#      rq   r   )rq   rq   r{   )	r   r   r7   r  r   filterr   r   r<   )r   r	  sups   f  r   test_invalid_inputs&LinprogCommonTests.test_invalid_inputs  s<   	>
 	j!Y7GHZZ))++sJJ02ST*a;VW , 	j!Y7HI 	j!aVAq6(!QHj!aVA3%qcBj!aVAq6(!QHj!aVA3%qcBj!aV1#A> $,,./00 	j!aV"((92EAN% ,+s   .E++E;	c                  a  R
V 3R llp\         P                  P                  ^ 4      p^dp^p\        P                  P                  W43RR7      pVP                  V4      pVP                  V4      pWbP                  V4      ,           pWbP                  V4      ,
          p	\         P                  ! W34      p
WV,          pS P                  R9   dV   \        \        RS P                   R2R7      ;_uu_ 4        \        WuWS P                  S P                  R7       R R R 4       R # / S P                  CpS P                  R9   d   RVR	&   \        WuWS P                  VR7      pVP                  '       g   Q hR #   + '       g   i     R # ; i)Nc                 P   < \        WW#WESP                  SP                  R 7       R# r  r  r  s   &&&&&&r   r	  5LinprogCommonTests.test_sparse_constraints.<locals>.f  r   r   rb   )densityzMethod 'z.' does not support sparse constraint matrices.r   r   Tr   r#  >   r   r   >   r   )r7   r8   r9   r   r   random_arrayr   rD   column_stackr   r   r   r
   r   r   )r   r	  rG   rY   rF   rj   x_validrQ   rm   rl   rn   rk   r   r   s   f             r   test_sparse_constraints*LinprogCommonTests.test_sparse_constraints  sN   	> ii##A&||((!(=))A,IIaLxx{"xx{""*~;;88z8DKK= IN 2N O O!T#{{DLLBO O '&G{{00$(!At!%g?C;;;;O O Os   6$E77F	c                    . ROp. RO. RO. RO.p. ROp\         P                  P                  ^ 4       ^p\        WW0P                  RV/R7      p\        WT4       \        VP                  V4       R# )	r#   r   r   Nr#   rr   r{   rx   rx   rx   r"   r&  r{   r6   rx   rx   r{         @rr   rx   r6   rx   rr   ra   r#   rx   rx   r6         iX  )r7   r8   re   r
   r   r   r   r   )r   rQ   rO   rP   r   r   s   &     r   test_maxiterLinprogCommonTests.test_maxiter#  sc    ! " 
		qaa('24'5SWWg&r   c           	        V P                   P                  R R4      p\        ^.RV P                  V P                   R7      p\	        V^^4       V'       d   \        VP                  ^ 4       \        . RO. ROV P                  V P                   R7      p\	        V^. RO4       V'       d   \        VP                  ^ 4       \        ^^.RR	.V P                  V P                   R7      p\	        V^^^.4       V'       d   \        VP                  ^ 4       \        . R
O. RO. RO.^^.. ROV P                  V P                   R7      p\	        V^. RO4       V'       d   \        VP                  ^ 4       R# R# )presolveTrn   r   r   rj   rk   rn   r   r   N)rq   rq   r$  ))r&  r&  )r6   r6   )r{   r{   )r&  r6   r{   )rq   r{   )rq   rq   r"   rq   rx   rx   rx   rq   rx   ))r&  )rx   ra   )      @rG  )rq   rz   rG  )r   getr
   r   r1   r   r   r   do_presolver   s   &  r   test_bounds_fixed$LinprogCommonTests.test_bounds_fixed2  s#   
 ll&&z48qc&![[$,,@Q"!$i(B![[$,,@R,!$q!fff%5![[$,,@QA'!$iy)&<Aq6;![[$,,@ 	R-!$ r   c                   V P                   P                  R R4      p\        ^.RV P                  V P                   R7      p\	        V4       V'       d   \        VP                  ^ 4       \        ^.R.V P                  V P                   R7      p\	        V4       V'       d   \        VP                  ^ 4       \        . RO. ROV P                  V P                   R7      p\	        V4       V'       d   \        VP                  ^ 4       R# R# )rA  TrB  Nr'  r$  ))r&  rx   r   r%  )r   rH  r
   r   r   r   r   rI  s   &  r   test_bounds_infeasible)LinprogCommonTests.test_bounds_infeasibleR  s    
 ll&&z48qc'$++t||T3!$qc7)DKKV3!$i(@![[$,,@3!$ r   armztest known to fail on armelreasonc           	     ~  a  S P                   P                  R R4      pV'       * ;'       d    S P                  R8H  p. ROpR\        P                  \        P                  3R	.pR\        P                  ) \        P                  ) 3R	.pV'       d   V 3R lp\
        P                  ! \        4      ;_uu_ 4        \
        P                  ! \        4      ;_uu_ 4        V! W4R7       RRR4       RRR4       \
        P                  ! \        4      ;_uu_ 4        \
        P                  ! \        4      ;_uu_ 4        V! W5R7       RRR4       RRR4       R# \        W4S P                  S P                   R7      p\        V4       V'       d   \        VP                  ^ 4       \        W5S P                  S P                   R7      p\        V4       V'       d   \        VP                  ^ 4       R# R#   + '       g   i     EL; i  + '       g   i     EL ; i  + '       g   i     L; i  + '       g   i     R# ; i)
rA  Tr   c                 L   < \        WSP                  SP                  R 7      pV# )rB  r  )rQ   rn   r   r   s   && r   g6LinprogCommonTests.test_bounds_infeasible_2.<locals>.g|  s"    a%)[[$,,H
r   r!  NrQ   rn   r   r   r$  r   r%  )r   rH  r   r7   rc   r   r   RuntimeWarningr	   
IndexErrorr
   r   r   r   )r   rJ  simplex_without_presolverQ   bounds_1bounds_2rU  r   s   f       r   test_bounds_infeasible_2+LinprogCommonTests.test_bounds_infeasible_2i  sx    ll&&z48'2?#O#Ot{{i7O RVVRVV,f5bffWrvvg.7#
 n--]]:..a) / . n--]]:..a) / .- A!%dllDCs#SWWa(A!%dllDCs#SWWa(  /.. .--
 /. .--sH   8#H
G0	%H#H+:
H	H+0H;	HH	H(#H++H<	c                f    RR.p\        WP                  V P                  R7      p\        V4       R# rq   r   Nr6   r   )r
   r   r   r    )r   rQ   r   s   &  r   test_empty_constraint_1*LinprogCommonTests.test_empty_constraint_1  s'    HaT\\B#r   c                *   . ROp^ \         P                  3\         P                  ) ^ 3RR.p\        WV P                  V P                  R7      p\        V4       V P                  P                  RR4      '       d   \        VP                  ^ 4       R# R# )rq   rB  rA  TN)r6   rq   r6   rq   r6   rq   )	r7   rc   r
   r   r   r    rH  r   r   r   rQ   rn   r   s   &   r   test_empty_constraint_2*LinprogCommonTests.test_empty_constraint_2  ss    bff+|Wg>a![[$,,@#<<J--!$ .r   c                    . ROp^ \         P                  3\         P                  ) ^ 3RR.p\        WV P                  V P                  R7      p\        V. RORR7       R# )rq   rB  r/   r.   N)rq   r6   rq   r6   rd  )rx   rx   r6   rq   r   )r7   rc   r
   r   r   r1   re  s   &   r   test_empty_constraint_3*LinprogCommonTests.test_empty_constraint_3  sM    bff+|Wg>a![[$,,@}"Er   c                    \         P                  ! ^^.4      R,          p^^.^^.^^ ..p. ROp\        WV\        \        \
        V P                  V P                  R7      p\        VR^^.R7       R# )r{   r   r   Nr6   r   i	r7   rA   r
   rj   rk   rn   r   r   r1   r   rQ   rh   ri   r   s   &    r   test_inequality_constraints.LinprogCommonTests.test_inequality_constraints  sp     HHaVr!AAA atT4![[$,,@A?r   c                    ^^.p^ ^.RR.R^..p. ROp\        WV\        \        \        V P                  V P
                  R7      p\        V^RR.R7       R# )	ru   r   r   Nr6   r   )r"   r6   r6   gUUUUUU?gUUUUUU?r
   rj   rk   rn   r   r   r1   rn  s   &    r   test_inequality_constraints2/LinprogCommonTests.test_inequality_constraints2  sb     FARQ atT4![[$,,@uenEr   c                2   ^^.pRp\        V\        \        \        \        VV P
                  V P                  R7      p\        V^^.R7       RR.p\        V\        \        \        \        VV P
                  V P                  R7      p\        V^^.R7       R# )rq   r   r/   Nr   )r
   rh   ri   rj   rk   r   r   r1   re  s   &   r   test_bounds_simple%LinprogCommonTests.test_bounds_simple  s~    FatT4![[$,,@1v.&!atT4![[$,,@1v.r   c                   \         P                  ! R .4      p\         P                  ! R ..4      p\         P                  ! R.4      pRp\        V\        \        W#VV P
                  V P                  R7      p\        V^^.R7       R# )r   r   Nr   r   )r   Nr7   rA   r
   rh   ri   r   r   r1   r   rQ   rj   rk   rn   r   s   &     r   test_bounded_below_only_1,LinprogCommonTests.test_bounded_below_only_1  sg    HHcUOxx# xxatT![[$,,@qc:r   c                P   \         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! . RO4      pR\         P                  3p\        V\        \        W#VV P                  V P                  R7      p\        WS\         P                  ! V4      R7       R# )r{   rb   r   ri  Nr$  r7   r   eyerA   rc   r
   rh   ri   r   r   r1   sumr{  s   &     r   test_bounded_below_only_2,LinprogCommonTests.test_bounded_below_only_2  sk    GGAJvvayxx	"rvvatT![[$,,@Fr   c                   \         P                  ! R .4      p\         P                  ! R ..4      p\         P                  ! R.4      pRp\        V\        \        W#VV P
                  V P                  R7      p\        V^^.R7       R# )r   r   Nr   r   )Nr  rz  r{  s   &     r   test_bounded_above_only_1,LinprogCommonTests.test_bounded_above_only_1  sg    HHcUOxx# xxatT![[$,,@qc:r   c                R   \         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! . RO4      p\         P                  ) ^3p\        V\        \        W#VV P                  V P                  R7      p\        WS\         P                  ! V4      R7       R# r{   r   ri  Nr$  r  r{  s   &     r   test_bounded_above_only_2,LinprogCommonTests.test_bounded_above_only_2  sm    GGAJvvayxx	"66'1atT![[$,,@Fr   c                n   \         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! . RO4      p\         P                  ) \         P                  3p\        V\        \        W#VV P                  V P                  R7      p\        WS\         P                  ! V4      R7       R# r  r  r{  s   &     r   test_bounds_infinity'LinprogCommonTests.test_bounds_infinity  sr    GGAJvvayxx	"66'266"atT![[$,,@Fr   c                   \         P                  ! R^.4      R,          p\         P                  ! R^.^^..\         P                  R7      p^^.p\         P                  ) \         P                  3pR\         P                  3pWE3p\	        WV\
        \        VV P                  V P                  R7      p\        VRRR	.R7       R# )
rq   r4   r   r   Nr6   rw   gm۶m&g$I$Ig%I$I@)
r7   rA   float64rc   r
   rj   rk   r   r   r1   )r   rQ   rh   ri   r   r   rn   r   s   &       r   test_bounds_mixed$LinprogCommonTests.test_bounds_mixed  s     HHb!W"xx"aQ!(*

41vffWbff%	L	'atT4![[$,,@VV<LMr   c                    R^.p^R.^ ^.^R..p. ROpRR.p\        WV\        \        VV P                  V P                  R7      p\        V4       R# r#   Nr   r}   r   )   rx   r{   r"   r"   r   )r
   rj   rk   r   r   r   r   rQ   rh   ri   rn   r   s   &     r    test_bounds_equal_but_infeasible3LinprogCommonTests.test_bounds_equal_but_infeasible
  s\    GB!Q!R))$atT4![[$,,@3r   c                    R^.p^R.^ ^.^R..p. ROpRR.p\        V\        \        W#VV P                  V P                  R7      p\        V4       R# r  )r
   rh   ri   r   r   r   r{  s   &     r   !test_bounds_equal_but_infeasible24LinprogCommonTests.test_bounds_equal_but_infeasible2  s\    GB!Q!R))$atT![[$,,@3r   c                    ^^.p^^.RR..p^^.pRR.pV P                    Uu/ uF  qUV P                   V,          bK  	  ppRVR&   \        WV\        \        VV P                  VR7      p\        V4       R# u upi )	rq   g?g@FrA  r   Nr   r  )r   r
   rj   rk   r   r   )r   rQ   rh   ri   rn   r  r  r   s   &       r   test_bounds_equal_no_presolve0LinprogCommonTests.test_bounds_equal_no_presolve  s    
 FAc
#1v&!/3||<|$,,s##|<*atT4![[!53 =s   A7c                <   ^^r!\         P                  P                  ^ 4      pVP                  V4      p^V^&   VP                  W4      p^ VR&   VP                  V4      p. RO.p^p. ROp	\	        WGWWiV P
                  V P                  R7      p
\        V
RR7       R# )r{   Nr   r   r3   rq   )rq   rx   rq   rq   )ry   ra   r  )ry   Nr   gyMj#)r7   r8   r9   rD   r
   r   r   r1   )r   rY   rF   rG   rQ   rj   rk   rh   ri   rn   r   s   &          r   test_zero_column_1%LinprogCommonTests.test_zero_column_1-  s    !1ii##A&HHQK!xx~T
xx{~Bat4![[$,,@)<=r   c                Z   V P                   R9   d   \        P                  ! 4        \        P                  P                  ^ 4      p^^r2VP                  V4      pRV^&   VP                  W#4      p^ VR&   VP                  V4      pVP                  W#4      p^ VR&   VP                  V4      pR	p	\        WGWWiV P                   V P                  R7      p
\        V
4       V P                  P                  RR4      '       d,   RV P                   9  d   \        V
P                  ^ 4       R# R# R# )
r   Nr   rA  Tr   >   r   	highs-ipmr6   r  r   )r   r   xfailr7   r8   r9   rD   r
   r   r    rH  r   r   )r   rG   rY   rF   rQ   rj   rk   rh   ri   rn   r   s   &          r   test_zero_column_2%LinprogCommonTests.test_zero_column_2<  s    ;;33LLNii##A&!1HHQK!xx~T
xx{xx~T
xx{at4![[$,,@#<<J--'2L !$	 3M-r   c                    . ROp. RO. RO. RO.p. ROp\        V\        \        W#\        V P                  V P
                  R7      p\        V^R7       R# )rq   r   r   Nr$  rx   rx   rx   rq   rq   rq   rx   r{   rx   r
   rh   ri   rn   r   r   r1   r   rQ   rj   rk   r   s   &    r   test_zero_row_1"LinprogCommonTests.test_zero_row_1W  sD    9i0atT![[$,,@+r   c                    . RO. RO. RO.p. ROp. ROp\        W1V\        \        \        V P                  V P
                  R7      p\        V^ R7       R# )rx   r   r   Nr  r  r  r$  rr  )r   rh   ri   rQ   r   s   &    r   test_zero_row_2"LinprogCommonTests.test_zero_row_2_  sD    9i0atT4![[$,,@+r   c                   ^^r!\         P                  P                  R4      pVP                  V4      pVP                  W4      p^ VR&   VP                  V4      p\	        V\
        \        WV\        V P                  V P                  R7      p\        V4       V P                  P                  RR4      '       d   \        VP                  ^ 4       R# R# r"   i  r   rA  TN)rx   r3   )r7   r8   r9   rD   r
   rh   ri   rn   r   r   r   rH  r   r   )r   rY   rF   rG   rQ   rj   rk   r   s   &       r   test_zero_row_3"LinprogCommonTests.test_zero_row_3g  s    !1ii##D)HHQKxx~T
xx{atT![[$,,@3 <<J--!$ .r   c                   ^^r!\         P                  P                  R4      pVP                  V4      pVP                  W4      p^ VR&   VP                  V4      ) p\	        WEV\
        \        \        V P                  V P                  R7      p\        V4       V P                  P                  RR4      '       d   \        VP                  ^ 4       R# R# r  )r7   r8   r9   rD   r
   rj   rk   rn   r   r   r   rH  r   r   )r   rY   rF   rG   rQ   rh   ri   r   s   &       r   test_zero_row_4"LinprogCommonTests.test_zero_row_4v  s    !1ii##D)HHQKxx~T
|atT4![[$,,@3 <<J--!$ .r   c                    . ROp. RO. RO. RO. RO.p. R	Op\        V\        \        W#\        V P                  V P
                  R7      p\        V4       V P
                  P                  RR4      '       d   \        VP                  ^ 4       R# R# )
rq   r   rA  TNrq   rq   rq   r"   rq   rx   rx   rx   rx   r"   rx   rx   rq   rq   rq   rq   )rq   r"   r"   r#   )
r
   rh   ri   rn   r   r   r   rH  r   r   r  s   &    r   test_singleton_row_eq_1*LinprogCommonTests.test_singleton_row_eq_1  sp    lL,GatT![[$,,@3 <<J--!$ .r   c                    . ROp. RO. RO. RO. RO.p. ROp\        V\        \        W#\        V P                  V P
                  R7      p\        V^R7       R# )	rq   r   r   Nr  r  r  r  )rq   r"   rq   r#   r  r  s   &    r   test_singleton_row_eq_2*LinprogCommonTests.test_singleton_row_eq_2  sF    lL,GatT![[$,,@+r   c                    . ROp. RO. RO. RO. R	O.p. R
Op. ROp\        WV\        \        VV P                  V P                  R7      p\        V4       V P                  P                  RR4      '       d   \        VP                  ^ 4       R# R# )rq   Nr   rA  Tr  r  r  r6   rx   rx   rx   r  )rq   r"   r   r#   r   r   r   r   	r
   rj   rk   r   r   r   rH  r   r   r  s   &     r   test_singleton_row_ub_1*LinprogCommonTests.test_singleton_row_ub_1  su    lM<H@atT4![[$,,@3 <<J--!$ .r   c                    . ROp. RO. RO. RO. R	O.p. R
Op. ROp\        WV\        \        VV P                  V P                  R7      p\        VRR7       R# )rq   rb   Nr   r   r  r  r  r  r  )rq   r"         r#   r  )r
   rj   rk   r   r   r1   r  s   &     r   test_singleton_row_ub_2*LinprogCommonTests.test_singleton_row_ub_2  sK    lM<H@atT4![[$,,@-r   c                    RR.p^^ .^ ^.RR..p. ROp\        WV\        \        \        V P                  V P
                  R7      p\        V4       R# )rq   r   Nr6   )r"   r"   rF  )r
   rj   rk   rn   r   r   r   rn  s   &    r   test_infeasible"LinprogCommonTests.test_infeasible  sX    HAAR atT4![[$,,@3r   c                   ^.p^..p^pRp\        WV\        \        VV P                  V P                  R7      p\        V4       V P                  P                  RR4      '       d   \        VP                  ^ 4       R# R# )rq   r   rA  TN)r&  ru   r  r  s   &     r   !test_infeasible_inequality_bounds4LinprogCommonTests.test_infeasible_inequality_bounds  sr    CuatT4![[$,,@3 <<J--!$ .r   c                    \         P                  ! ^^.4      R,          pR^.RR..pRR.p\        WV\        \        \
        V P                  V P                  R7      p\        V4       R# r`  )	r7   rA   r
   rj   rk   rn   r   r   r    rn  s   &    r   test_unbounded!LinprogCommonTests.test_unbounded  sa    HHaVr!QRBxatT4![[$,,@#r   c                   ^.pR.pV P                    Uu/ uF  q3V P                   V,          bK  	  ppRVR&   \        WV P                  VR7      pV P                  R8X  d   \        VP                  ^4       R# \        V4       R# u upi )rq   NFrA  rW  r   Nrq   )r   r
   r   r   r   r    )r   rQ   rn   r  r  r   s   &     r   *test_unbounded_below_no_presolve_corrected=LinprogCommonTests.test_unbounded_below_no_presolve_corrected  s}    C/3||<|$,,s##|<*![[! ;;++Q'c" =s   Bc                   \         P                  ! . RO4      p\         P                  ! . RO. R	O. R
O.4      p\         P                  ! . RO4      p. ROp\        WV\        \        VV P
                  V P                  R7      p\        V4       V P
                  P                  4       P                  R4      '       gK   \        VP                  R,          \         P                  4       \        VP                  R,          R4       R# R# )d
Test whether presolve pathway for detecting unboundedness after
constraint elimination is working.
Nr   r   N$   N$The problem is (trivially) unboundedr6   )rx   rx   rx   rq   r6   r6   rq   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   )rx   rx   rx   rx   rx   r6   r"   r   rx   )r   r   r   rd  rd  r   r7   rA   r
   rj   rk   r   r   r    lowerr   r   r-   rc   r*   r  s   &     r   *test_unbounded_no_nontrivial_constraints_1=LinprogCommonTests.test_unbounded_no_nontrivial_constraints_1  s    
 HH)*xx++,. / xx
#/atT4![[$,,@#{{  "--g66rBFF+S)?A 7r   c                   \         P                  ! . RO4      p\         P                  ! . RO. R	O. R
O.4      p\         P                  ! . RO4      p. ROp\        WV\        \        VV P
                  V P                  R7      p\        V4       V P
                  P                  4       P                  R4      '       gL   \        VP                  R,          \         P                  ) 4       \        VP                  R,          R4       R# R# )r  Nr   r   r  r  r6   )rx   rx   rx   rq   r6   rq   r  r  )rx   rx   rx   rx   rx   rq   r  )r   r   r   rd  rd  )Nrx   r  r  s   &     r   *test_unbounded_no_nontrivial_constraints_2=LinprogCommonTests.test_unbounded_no_nontrivial_constraints_2  s    
 HH()xx+++- . xx
#/atT4![[$,,@#{{  "--g66rRVVG,S)?A 7r   c                    \         P                  ! . RO4      R,          p. RO. R	O. R
O.p. ROp\        WV\        \        \
        V P                  V P                  R7      p\        V. RORRR7       R# )d   r   gh㈵>Hz>)r/   r)   r(   N)r  ra   rq   r6   rD  )r   rq   rx   )   r   rq   )rq   r  '  )rx   rx   r  rm  rn  s   &    r   test_cyclic_recovery'LinprogCommonTests.test_cyclic_recovery	  s^     HH\"R' atT4![[$,,@}4dKr   c                   \         P                  ! . RO4      p\         P                  ! . RO. R	O. R
O.4      p. ROp^dpV P                  P                  4        UUu/ uF  w  rVWVbK	  	  pppWGR&   \	        WV\
        \        \        V P                  VR7      pV P                  R8X  d6   V P                  P                  R4      '       g   \        WR,          4       R# \        V. ROR7       R# u uppi )ra   r   r   r   blandrv  N)ry   9   rv   g      8@)rb   g      r   rv   )rb   g      r  rq   r  )rx   rx   rq   )rq   rx   rq   rx   )r7   rA   r   itemsr
   rj   rk   rn   r   rH  r   r1   )	r   rQ   rh   ri   r   r  valr  r   s	   &        r   test_cyclic_bland$LinprogCommonTests.test_cyclic_bland  s    HH&'xx--%' (  &*ll&8&8&:;&:(#SX&:;)atT4![[!5 ;;)#DLL,<,<W,E,E+C9> C<8 <s   C.c                   ^
^
r!\         P                  P                  ^ 4      pVP                  V4      pVP                  W4      pVP                  V4      p^VR,          ,          VR&   VR;;,          R,          uu&   \	        4       ;_uu_ 4       pVP                  \        R4       \        V\        \        WV\        V P                  V P                  R7      pRRR4       \        X4       R#   + '       g   i     L; i)ra   A_eq does not appear...r   N)r   r3   r6   )r6   r3   )r7   r8   r9   rD   r   r(  r   r
   rh   ri   rn   r   r   r   )	r   rY   rF   rG   rQ   rj   rk   r)  r   s	   &        r   $test_remove_redundancy_infeasibility7LinprogCommonTests.test_remove_redundancy_infeasibility.  s     21ii##A&HHQKxx~xx{$u+oURB  CJJ(AB!T4V!%dllDC ! 	3	 ! s   A	C..C>	c                    \        4       w  rr4rVp\        WW4V\        V P                  V P                  R 7      p\        WVR7       R# )r   r   N)r   r
   rn   r   r   r1   	r   rQ   rh   ri   rj   rk   r   r   r   s	   &        r   test_nontrivial_problem*LinprogCommonTests.test_nontrivial_problemB  s@     5G4H1T6at4![[$,,@6Br   c                   \        ^^4      w  rp\        4       ;_uu_ 4       pVP                  \        R4       VP                  \        R4       VP                  \
        4       \        W1V\        \        \        V P                  V P                  R7      pRRR4       \        XRR7       R#   + '       g   i     L; i)r   $Solving system with option 'sym_pos'invalid value encounteredr   Nr   r   )r_   r   r(  r   rX  r   r
   rj   rk   rn   r   r   r1   )r   rh   ri   rQ   r)  r   s   &     r   test_lpgen_problem%LinprogCommonTests.test_lpgen_problemJ  s     !R(A  CJJ(NOJJ~'BCJJ}%!4tV!%dllDC	 ! 	7 ! s   A4B--B=	c                   . ROpR^r2W"V^ V^ ^ ^ ^ V^ ^ .V^ ^ V^ V^ ^ ^ ^ ^ ^ .^ ^ W"^ ^ ^ ^ ^ ^ ^ ^ .^ ^ ^ ^ ^ ^ W3^ ^ V^ .^ ^ ^ ^ W"V^ V^ ^ ^ .^ ^ ^ ^ ^ ^ ^ W"^ ^ V.^ ^ ^ ^ ^ ^ ^ ^ ^ W"V..p. R	Op\        4       ;_uu_ 4       pVP                  \        4       \        V\        \
        WE\        V P                  V P                  R7      pRRR4       \        XRRRR7       R#   + '       g   i     L!; i)
r"   r   Ni  ư>r  )r.   r)   r(   )r"   r#   rv      r#   r{   rr   rz   rx            r6   )rx      i!   rx   rx   i)
r   r(  r   r
   rh   ri   rn   r   r   r1   )r   rQ   rF   prj   rk   r)  r   s   &       r   test_network_flow$LinprogCommonTests.test_network_flowW  s-    5111aAq!Q1a01aAq!Q1a01Aq!Q1a01aAqQ1a01aq!Q1a01aAq!1a01aAq!Qa02 +  CJJ}%!T4V!%dllDC ! 	4dC	 ! s   5ACC&	c                ,   . ROp^ ^.^ ^.^ ^.^ ^.^ ^..pR^rCW3^ ^ ^ .V^ W3^ .^ WD^ V.^ ^ ^ WD..p. R	Op\        4       ;_uu_ 4       p\        '       d   VP                  \        4       VP                  \        R4       VP                  \
        R4       VP                  \
        R4       VP                  \        4       \        V\        \        WVVV P                  V P                  R7      pRRR4       \        X^R7       R#   + '       g   i     L; i)
r"   scipy.linalg.solve
Ill...r  Solving system with option...r   Nr   )r"   r"   rq   r{   rq   r6   )r}   rx   rx   r#   )r   has_umfpackr(  r   rX  r   r   r
   rh   ri   r   r   r1   )	r   rQ   rn   rF   r  rj   rk   r)  r   s	   &        r   "test_network_flow_limited_capacity5LinprogCommonTests.test_network_flow_limited_capacityl  s    FFFFF 111aO1OaO1aO	
   C{

>*JJ~'CDJJ(ABJJ(GHJJ}%!T4V!%dllDC ! 	, ! s   B'DD	c                    . ROp. RO. RO.p^
^.p\        WV\        \        \        V P                  V P
                  R7      p\        VRR7       R# )r"   r   r   N)r   rw   r}   )r{   r"   rq   )r"   r&  r{   irr  rn  s   &    r   (test_simplex_algorithm_wikipedia_example;LinprogCommonTests.test_simplex_algorithm_wikipedia_example  sK     BxatT4![[$,,@-r   c                    . ROp. RO. R	O. R
O.p. ROp\        V\        \        W#\        V P                  V P
                  R7      p\        VR. RORRR7       R# )r#   r   g     s@gTqs*>r  )r.   r/   r)   r(   Nr6  r7  r8  r:  r;  )g     P@rx   g     1@rx   g     f@rx   r  r  s   &    r   test_enzo_example$LinprogCommonTests.test_enzo_example  sV     ! " atT![[$,,@"@!	.r   c                D   . ROp. RO. RO. RO. R	O. R
O.p. ROp\        4       ;_uu_ 4       pVP                  \        R4       \        V\        \
        W#\        V P                  V P                  R7      pRRR4       \        XR. ROR7       R#   + '       g   i     L"; i)r  r  r   Nr   )r  g333333@g%@r  g333333g%)r6   r6   r6   rx   rx   rx   )rx   rx   rx   rq   rq   rq   )rq   rx   rx   rq   rx   rx   )rx   rq   rx   rx   rq   rx   )rx   rx   rq   rx   rx   rq   )r  皙?333333?r  r  gRQ)r  g?        r   r   r  )
r   r(  r   r
   rh   ri   rn   r   r   r1   )r   rQ   rj   rk   r)  r   s   &     r   test_enzo_example_b&LinprogCommonTests.test_enzo_example_b  s    /%""""	$
 *  CJJ(AB!T4V!%dllDC ! 	"@	B	 ! s   A	BB	c                   ^p\         P                  ! V4      ) p^\         P                  ,          \         P                  ! ^V^,           4      ,          V^,           ,          p\         P                  ! \         P
                  ! V4      ^,
          \         P                  ! V4      34      p^ ^ .p\        V\        \        WE\        V P                  V P                  R7      p\        V^ \         P                  ! V4      R7       R# )r   r   r   N)r7   r   pir:   rB   cossinr
   rh   ri   rn   r   r   r1   r<   )r   rY   rQ   tmprj   rk   r   s   &      r   #test_enzo_example_c_with_degeneracy6LinprogCommonTests.test_enzo_example_c_with_degeneracy  s    WWQZK"%%i"))Aq1u--Q7yy"&&+/266#;781vatT![[$,,@bhhqkBr   c                   ^2p\         P                  ! V4      ) p^\         P                  ,          \         P                  ! V4      ,          V^,           ,          p\         P                  ! V4      ^,
          pRV^ &   \         P
                  ! V4      pRV^ &   \         P                  ! WE34      p^ ^ .p\        V\        \        Wg\        V P                  V P                  R7      p\        V4       R# )2   r   r   N)r7   r   r$  r:   r%  r&  rB   r
   rh   ri   rn   r   r   r    )	r   rY   rQ   r'  row0row1rj   rk   r   s	   &        r   &test_enzo_example_c_with_unboundedness9LinprogCommonTests.test_enzo_example_c_with_unboundedness  s    WWQZK"%%i"))A,&!a%0 vvc{QQvvc{Qyy$&1vatT![[$,,@#r   c                    ^2p\         P                  ! V4      ) p^\         P                  ,          \         P                  ! V4      ,          V^,           ,          p\         P                  ! \         P
                  ! V4      ^,
          \         P                  ! V4      34      p^^.pV P                   Uu/ uF  qfV P                  V,          bK  	  ppRVR&   \        V\        \        WE\        V P                  VR7      p\        V4       R# u upi )r+  FrA  r   N)r7   r   r$  r:   rB   r%  r&  r   r
   rh   ri   rn   r   r   )	r   rY   rQ   r'  rj   rk   r  r  r   s	   &        r   &test_enzo_example_c_with_infeasibility9LinprogCommonTests.test_enzo_example_c_with_infeasibility  s    WWQZK"%%i"))A,&!a%0yy"&&+/266#;781v/3||<|$,,s##|<*atT![[!53 =s   3Dc                   \         P                  ! . RO4      p\         P                  ! . RO. RO. RO. R	O. R
O.4      p\         P                  ! . RO4      p\         P                  ! . RO. RO.4      p\         P                  ! ^ ^ .4      p\        WW4V\        V P                  V P
                  R7      p\        V^ \         P                  ! V4      RR7       R# )r   r   g>)r.   r/   r)   N)ggQ뱿Mbp?r4  r4  r4  )r   rx   rx   rx   rx   rx   )r   rx   rx   rx   rx   rx   )rx   r   rx   rx   rx   rx   )rx   r   rx   rx   rx   rx   )r   r   rx   rx   rx   rx   )r   r   r   r   g      4@)r   rx   r6   rq   r6   rq   )rx   r   r6   rq   r6   rq   )r7   rA   r
   rn   r   r   r1   
zeros_like)r   rQ   rh   ri   rj   rk   r   s   &      r   test_basic_artificial_vars-LinprogCommonTests.test_basic_artificial_vars  s    
 HH>?xx-/D.0D/1 2 xx23xx/1HIJxxAat4![[$,,@bmmA6F!	#r   c                H   \        ^ 4      w  rr4rV\        WW4VW`P                  V P                  R7      p\	        VP
                  4       \	        VP                  4       \	        VP                  '       * 4       RV P                  9  d   \	        VP                  R8H  4       \        WP                  ,          VP                  4       \        WTVP                  ,          ,
          VP                  RR7       \        W2VP                  ,          ,
          VP                  RR7       R	 Fw  pWP                  4       9   g   K  \        Wx,          R,          \         P"                  4      '       g   Q h\        Wx,          R,          \         P"                  4      '       d   Kw  Q h	  R# )
rx   rh   ri   rj   rk   rn   r   r   r   z%Optimization terminated successfully.gdy=r)   	marginalsresidualN)eqlinineqlinr  upper)ro   r
   r   r   r   r   r   r   r*   r   r-   r,   r   r   keysr   r7   ndarray)	r   rQ   rh   ri   rj   rk   rn   r   r  s	   &        r   test_optimize_result'LinprogCommonTests.test_optimize_result  s   ,;A,>)Tat#KKOCJJ$++%CKK#JJKEE	377+cee|+SWW5Acee|+SYYUC9Chhj !#(;"7DDDD!#(:"6

CCCC :r   c           /        . R	OpR
pRpRp\         P                  ! . RO^^ RV^ R^ R^ ^ R^ R^ ^ ^^^ ^ .^^ ^ V^ ^ RRR^ RR^ ^ ^ ^ ^ ^^.. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. R O. R!O. R"O^ RRR^ ^ ^ RW"^ ^ ^ V^ ^ ^ ^ ^ .^ ^ ^ ^ ^RR^ ^ ^ RW"^ V^ ^ ^ ^ .^ RRR^ ^ ^ VRR^ ^ ^ ^ ^ V^ ^ ^ .^ ^ ^ ^ R^R^ ^ ^ VRV^ ^ ^ V^ ^ .^ RRR^ ^ ^ W"R^ ^ ^ ^ ^ ^ ^ V^ .^ ^ ^ ^ RR^^ ^ ^ W"R^ ^ ^ ^ ^ V..4      p\         P                  ! . R#O4      p\         P                  ! . R$O4      p\        4       ;_uu_ 4       pVP                  \        R4       VP                  \
        R4       VP                  \        4       \        WuV\        \        VV P                  V P                  R7      p	RRR4       \        X	R%R7       R#   + '       g   i     L; i)&rx   Ngףp=
?gffffff?g @r  r  r   r   )r   rx   r  rE  rE  rE  rE  rE  rx     rF  rF  rF  rF  rF  r   r   r   r   r   r   gqq?     grw   r6   )rq   gQrx   rx   rw   rx   rx   rx   r6   r6   rx   r6   r6   rq   rq   rx   rx   rx   rx   g333333)rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rq   rx   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r6   rx   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r6   rx   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r6   rx   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r6   rx   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r6   rx   )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r6   )r   rx   rx   r  r  r  r  r  r  rG  rG  rG  rG  rG  rG  rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )r   rq   rq   rq   rq   rq   rq   rq   rq   rq   rq   rq   rq   rx   rx   rx   rx   rx   rx   g^Z)r7   rA   r   r(  r   rX  r   r
   rj   rk   r   r   r1   )
r   rn   r	  rU  hrh   ri   rQ   r)  r   s
   &         r   test_bug_5400 LinprogCommonTests.test_bug_5400  sO   N xxN4Ar1b!QAr1aAq!L1aAr2r1b"aAq!QJEEEEEEEEEEEEFFFFFFb"aAr1Aq!Q1aK1aBAq!Rq!Q1aHCaAq"b!Q1aAq!L1aQAq!QAq!Q1aHBQ1aB1aAq!QJ1aRAq!Q2q!Q1aH7J K: xx 5 6 HH 4 5  CJJ=?JJ~'BCJJ}%!4tV!%dllDC ! 	)<= ! s   8A0F??G	c                   \         P                  ! . RO4      p\         P                  ! . RO. R	O.4      p\         P                  ! RR
.4      p\         P                  ! . RO.4      ) p\         P                  ! R.4      ) pRp\        WWRW6V P                  V P                  R7      p\        VR\         P                  ! . RO4      R7       R# )rq   g      @g    cANr   gfffff-@r   r  )r   r   r   )     @r   rM  rH  )r   g    .Ag    .Ar   )r&  g@r&  r7   rA   r
   r   r   r1   )r   rQ   rj   rk   rh   ri   rn   r   s   &       r   test_bug_6139 LinprogCommonTests.test_bug_6139E  s     HHYxx'<=>xx9:2344)%%at4![[$,,@ 	"$((<"8	:r   c                   \         P                  ! . R	O.4      p\         P                  ! R.4      p\         P                  ! . R
O. RO. RO. RO. RO.4      p\         P                  ! . RO4      p\         P                  ! . RO. RO.4      P                  p\         P                  ! . RO4      p\        4       ;_uu_ 4       p\        '       d   VP                  \        4       VP                  \        R4       VP                  \        R4       VP                  \        R4       VP                  \        4       \        WcWAW%V P                  V P                  R7      pRRR4       Rp	\         P                  ! . RO4      p
\        XWR7       Rp\        VR,          V,
          VP                  4       \        VP                  VR,          V,           4       R#   + '       g   i     L; i)rx   g%䃞?z%Solving system with option 'cholesky'r  r  r   Nr   r  )
rx   rx   rx   g(\?rx   ?rx   rx   g(\?rx   )
rx   rx   rx   zG?rx   rx   rx   gɿrx   g)\(̿)
rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   )
rx   rx   rx   gQ?rx   rx   rx   rx   rx   rx   )
rx   gQ      пrx   rx   rx   g{Gz rx   rx   gQ?)
rx   rx   rx   rx   rx   rx   rx   rT  rx   rx   )gGz?rx   gjt?g+gI+)
gzG
ףp=
(\?r  gQտgGzGz?
ףp=
?g333333\(\)
Gz?g{Gz?gzG@gQ?rS  rb   g)\(?g(\?{Gz?g333333ÿ)
g=
ףp=gffffff?r  g(\g(\gp=
ף?g
ףp=
@g{Gz?gQ?gQ?gV)
rZ  rU  rV  r  rS  rb   rW  rX  r[  rY  )r3   rx   r  )r7   rA   rd   r   r  r(  r   r   rX  r   r
   r   r   r1   r   r-   )r   rj   rk   rh   ri   rn   rQ   r)  r   r.   r/   r)   s   &           r   test_bug_6690 LinprogCommonTests.test_bug_6690[  sr   
 xx@ABxx!xx4*-9.
  xx9:MH
  1 	 HH     C{

>*JJ>@JJ(NOJJ~'BCJJ}%!4t!%dllDC ! %HH G H	J &,-suu5#%%!45' ! s   >BGG&	c                Z   \        ^4      w  rp p\        4       ;_uu_ 4       pVP                  \        R4       VP                  \        R4       VP                  \
        4       \        V\        \        W\        V P                  V P                  R7      pRRR4       Rp\        XVR7       \        VP                  VP                  4      V4       \!        \"        P$                  ! VP                  P&                  4      R,
          VP                  4       R#   + '       g   i     L; i)r{   r  r  r   N-U?r   r   )rR   r   r(  r   rX  r   r
   rh   ri   rn   r   r   r1   r   dotr-   r   r7   r<   rU   )r   rj   rk   rQ   _r)  r   r.   s   &       r   test_bug_7044 LinprogCommonTests.test_bug_7044  s    
 +1oAq!  CJJ(ABJJ~'BCJJ}%!T4V!%dllDC	 ! "5."((355::.5suu= ! s   A4DD*	c                   \         P                  ! . RO4      p\         P                  ! . RO. R	O. R
O. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.4      p\         P                  ! . RO4      p\         P                  ! . RO.4      p\         P                  ! R..4      pR .^	,          p\        WW4WVV P                  V P                  R7      p\        VRRR7       R# )!rq   r   Nr   ghb$[@r  r.   r)   )	r6   rx   rx   rx   rx   rx   rx   rx   rx   )	r   g     g     x@g     8g     Xg      g     }@g      Tg     Pr)	r   g     @g      E@g     H@g      m@g     @g     x@g     hg     L@)	r   g      jg     g     ؀@g     t@g     @g     g     p@g     K@)	r   g     Ȋ@g     ؊g     T@g     |@g     pg     Xg     Љ@g      ~@)	r   g     s@     zg     n@rf  g     @h@g     {g      Zg     z)	r   g     @g     8@g     v@g     b@g     ؉g     `@g     ȃ@g     r@)	r   r          rg  rg  rg  rg  rg  rg  )	r   rg  r   rg  rg  rg  rg  rg  rg  )	r   rg  rg  r   rg  rg  rg  rg  rg  )	r   rg  rg  rg  r   rg  rg  rg  rg  )	r   rg  rg  rg  rg  r   rg  rg  rg  )	r   rg  rg  rg  rg  rg  r   rg  rg  )	r   rg  rg  rg  rg  rg  rg  r   rg  )	r   rg  rg  rg  rg  rg  rg  rg  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   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   r   )	r   r   r   r   r   r   r   r   r   r   rN  r  s   &       r   test_bug_7237 LinprogCommonTests.test_bug_7237  s    
 HH12xxE?BBEA8888888800000000- 0 xx 8 9 xx=>?xx"!#at4![[$,,@$?r   c                   \         P                  ! . R
O. RO. RO. RO.4      p\         P                  ! VP                  ^ ,          4      p\         P                  ! VP                  ^,          4      ) pR.VP                  ^,          ,          p\        4       ;_uu_ 4       pVP                  \        R4       VP                  \        4       \        W1V\        \        VV P                  V P                  R7      pRRR4       V P                  P                  RR4      R8  d   V P                  R8X  d   \        X4       R# \!        XRRR	7       R#   + '       g   i     L_; i)X  r  r   Ntolg&.>绽|=r   r  re  )rk  i  iD4       3i)ii    @i  )ro  rx   rx   rn  rx   )rk  rx   rx   rp  rx   r   g )r7   rA   r<   rE   r   r   r(  rX  r   r
   rj   rk   r   r   rH  r$   r1   )r   rh   ri   rQ   rn   r)  r   s   &      r   test_bug_8174 LinprogCommonTests.test_bug_8174  s     xx00%%	' (
 xx

1&WWTZZ]##DJJqM)  CJJ~'BCJJ}%!4tV!%dllDC ! <<E4(50T[[I5M5c:C-@tL ! s   AEE 	c                l   \         P                  ! . RO4      p\         P                  ! ^4      ) p\         P                  ! R.R.R.R.R.R.R..4      p\         P                  ! . RO. R	O. R
O. RO. RO.4      p\         P                  ! ^d.^ .^ .^ .^ ..4      p\        4       ;_uu_ 4       p\        '       d   VP                  \        4       VP                  \        R4       \        WW4V\        V P                  V P                  R7      pRRR4       \        XRR7       R#   + '       g   i     L; i)rq   r  r   Ng?E@r   )rq   rx   rx   rx   rx   rx   rx   r   )rq   rq   rq   rq   rq   rq   rx   )r  g?g?rx   rx   rx   r6   )r  rx   rx   rx   rx   rx   gUUUUUU)rx   rR  rx   rx   rx   rx   )rx   rx   r  rx   rx   rx   rt  )r7   rA   identityr   r  r(  r   r   r
   rn   r   r   r1   r   rQ   rh   ri   rj   rk   r)  r   s   &       r   test_bug_8174_2"LinprogCommonTests.test_bug_8174_2  s     HH*+Axx"tbTB4"tbTBCxx!(&('
  xx#aS1#s34  C{

>*JJ(AB!4tV!%dllDC	 ! 	)9: ! s   +A!D##D3	c                   \         P                  ! . RO4      p\         P                  ! . RO. RO. RO. RO. R	O.4      p\         P                  ! . R
O4      p\        WW0P                  V P                  R7      p\        V. ROR7       R# )rz   )rh   ri   r   r   rv  N)rz   rx   r}         ?rz  )r#         @rz  r         )rq   r   r   r9  rb   )r{   r  r#   g      )rt   )r6   g      @r"   r|  r   )r{  r"   g      r6   g      #@)rx   rx   rx   rx   rq   )rx   rx   r  gUUUUUU@gUUUUUU#@)r7   rA   r
   r   r   r1   rn  s   &    r   test_bug_8561 LinprogCommonTests.test_bug_8561  si    
 HH)*xx$##"#% & xx(a||![[*'=>r   c                h   . ROp. RO. R	O. R
O. RO.p. ROp. ROpRp\        4       ;_uu_ 4       p\        '       d   VP                  \        4       VP                  \        R4       VP                  \
        4       \        WV\        \        VV P                  V P                  R7      pRRR4       VP                  . RO4       VP                  ^ 4       RV^&   \        4       ;_uu_ 4       p\        '       d   VP                  \        4       VP                  \        R4       VP                  \
        4       \        WV\        \        VV P                  V P                  R7      pRRR4       Rp	\        XWYR7       \        XWYR7       R#   + '       g   i     L; i  + '       g   i     LA; i)ra   Ng      B@r  r   r   )r.   r(   )ry   ra   ru   r{   )rr   r|   r}   ru   )r|   rr   r#   rs   )r}   r#   rr   r}   )r{   rw   rw   ry   )rv   r  r}   )r   r   r   r   )rx   rx   r6   rx   r   )r   r  r(  r   rX  r   r
   rj   rk   r   r   r?   r1   )
r   rQ   rh   ri   rn   r.   r)  res1res2r(   s
   &         r   test_bug_8662 LinprogCommonTests.test_bug_8662  s8     " =#  C{

>*JJ~'BCJJ}%1D$f"&++t||ED ! 	M"A q	  C{

>*JJ~'BCJJ}%1D$f"&++t||ED ! +A+A- !  ! s   A;F-A;F!F	!F1	c                    ^^.p^ R..pR.pRR.p\        V\        \        W#VV P                  V P                  R7      p\        V^ R.R	R7       R# )
rq   Nr   ri  rt   rs   r   r   g۶m۶m?gI$I$@)r
   rh   ri   r   r   r1   r{  s   &     r   test_bug_8663 LinprogCommonTests.test_bug_8663&  s[     FByt\*atT![[$,,@4yfEr   c                R   ^.p^.^..p^^.p^ .R.^	..p. ROp\        4       ;_uu_ 4       pVP                  \        4       VP                  \        R4       \	        WW4V\
        V P                  V P                  R7      pRRR4       \        X4       R#   + '       g   i     L; i)r#   r  r   Nr|   r{   r"   ra   )	r   r(  rX  r   r
   rn   r   r   r   rv  s   &       r   test_bug_8664 LinprogCommonTests.test_bug_86641  s     CaSz1vbTA3  CJJ~&JJ(GH!4tV!%dllDC !
 	3 ! s   ABB&	c                h   \         P                  ! . RO4      p\         P                  ! . RO. RO.4      p\         P                  ! ^R.4      p. ROp\        WV\        \        VV P
                  V P                  R7      p\        VRR7       \        WP                  ,          VP                  4       R# )	zV
Test whether bug described at:
https://github.com/scipy/scipy/issues/8973
was fixed.
Nr   r   )rx   rx   rx   rq   r6   )rq   rx   rx   rx   rx   )rx   rq   rx   rx   rx   r   )r   r   r   rd  rd  )r7   rA   r
   rj   rk   r   r   r1   r   r-   r,   r  s   &     r   test_bug_8973 LinprogCommonTests.test_bug_8973A  s     HH%&xx/:;xxB MatT4![[$,,@ 	,QY(r   c                   \         P                  ! ^4      p\         P                  ! ^..4      p\         P                  ! R.4      pRp\        WV\        \
        VV P                  V P                  R7      p\        VR.^ R7       R# )z
Additional test for:
https://github.com/scipy/scipy/issues/8973
suggested in
https://github.com/scipy/scipy/pull/8985
review by @antonior92
Nr   ri  r   r   )	r7   r<   rA   r
   rj   rk   r   r   r1   r  s   &     r   test_bug_8973_2"LinprogCommonTests.test_bug_8973_2R  sf     HHQKxx!xx~atT4![[$,,@t;r   c                b   \         P                  ! ^4      p\         P                  ! ^..4      p\         P                  ! R.4      pRpR^.pR	^.^^..p^^.pRR
.pRR/pVP                  V P                  4       \        WV\        \        VV P                  VR7      p\        V^
R	.RR7       R# )zO
Test for linprog docstring problem
'disp'=True caused revised simplex failure
Nr   Tr   ri  r   r   r6   rw   r   r   )
r7   r<   rA   updater   r
   rj   rk   r   r1   )r   rQ   rh   ri   rn   r  r   s   &      r   test_bug_10124!LinprogCommonTests.test_bug_10124b  s    
 HHQKxx!xx~GQ!Q 1v
+TN	atT4![[!5BxSAr   c                   \         P                  ! . RO. RO. RO. R	O. R
O. RO.4      p\         P                  ! . RO4      p\         P                  ! ^ ^\         P                  ! ^4      3RR7      p\	        4       ;_uu_ 4       pVP                  \        R4       \        V\        \        W\        V P                  V P                  R7      pRRR4       \        X. RO^\R7       R#   + '       g   i     L"; i)zY
Test for redundancy removal tolerance issue
https://github.com/scipy/scipy/issues/10349
Naxisr  r   ri  )rq   rq   rx   rx   rx   rx   )rx   rx   rq   rq   rx   rx   )rx   rx   rx   rx   rq   rq   )rq   rx   rq   rx   rx   rx   )rx   rx   rx   rq   rq   rx   )rx   rq   rx   rx   rx   rq   )      ra         f   )   \   r  r  rx   ra   )r7   rA   concatenater<   r   r(  r   r
   rh   ri   rn   r   r   r1   )r   rj   rk   rQ   r)  r   s   &     r   test_bug_10349!LinprogCommonTests.test_bug_10349u  s    
 xx++++++- . xx56NNAq"((1+.T:  CJJ(AB!T4V!%dllDC ! 	'@bQ	 ! s   A	C%%C5	darwinz0Failing on some local macOS builds, see gh-13846c                   . ROp. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.
p. ROp/ pV P                   P                  R4      '       g   RR/pVP                  V P                  4       \	        4       ;_uu_ 4       pVP                  \        R4       \        '       d   VP                  \        4       VP                  \        R4       VP                  \        R4       VP                  \        R4       VP                  \        R4       VP                  \        R	4       \        V\        \        W#\        V P                   VR
7      pRRR4       \        XP                   R4       R#   + '       g   i     L(; i)z1
Test that autoscale fixes poorly-scaled problem
r   	autoscaleTr  r  zdivide by zero encountered...zoverflow encountered...zinvalid value encountered...Ill-conditioned matrix...r   N)       rg  r  rg  r  rg  rg  rg  rg  rg  rg  rg  rg  )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   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   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   )
g     Ag      Ag     @Ag      A   Ar  r  r  r  r  l )r   r   r  r   r   r(  r   r  r   rX  r   r
   rh   ri   rn   r   r,   )r   rQ   rj   rk   r  r)  r   s   &      r   test_bug_10466!LinprogCommonTests.test_bug_10466  s    NDDDEDDDDDD	F 
 {{%%g..d#A	  CJJ(GH{

>*JJ~'CDJJ~'FGJJ~'@AJJ~'EFJJ}&AB!T4V!%a9C ! 	- ! s   =CE++E;	r~   N)\__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   r  r   markthread_unsafer  r  r*  r3  r>  rK  rN  skipifplatformmachiner   r]  ra  rf  rj  ro  rs  rw  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.  r1  r6  rB  rJ  rO  r\  rb  rh  rq  rw  r}  r  r  r  r  r  r  r  sysr  __static_attributes____classdictcell____classdict__s   @r   r   r   o  sY    $8	.@)); [[9 9  [[2 2$O8B'%@%. [[((*55e<Ebc[[')  d')R
%F
@F
/;G;GGN   ">%6,,%%
%,%.	 %# A(A(
L92 (C8D*->	..(B"	C" #"D.5>n:,*6X>$'@RM.;0?""BH	F  )"< B&R& [[0!/  1&.1&.r   r   zignore::DeprecationWarningc                       ] tR tRtRtRtR# )LinprogSimplexTestsi  r   r~   Nr  r  r  r  r   r  r~   r   r   r  r    s    Fr   r  c                   *   a  ] tR tRt o RtR tRtV tR# )LinprogIPTestsi  r   c                2    \         P                  ! R 4       R# )z*Test is failing, but solver is deprecated.Nr   skipr   s   &r   r  LinprogIPTests.test_bug_10466  s    @Ar   r~   N)r  r  r  r  r   r  r  r  r  s   @r   r  r    s     FB Br   r  c                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )LinprogRSTestsi  r   c                2    \         P                  ! R 4       R# z Intermittent failure acceptable.Nr  r   s   &r   rJ  LinprogRSTests.test_bug_5400      67r   c                2    \         P                  ! R 4       R# r  r  r   s   &r   r  LinprogRSTests.test_bug_8662  r  r   c                2    \         P                  ! R 4       R# r  r  r   s   &r   r   LinprogRSTests.test_network_flow  r  r   r~   N)
r  r  r  r  r   rJ  r  r  r  r  r  s   @r   r  r    s     F$888 8r   r  c                   d  a  ] tR tRt o R t]P                  P                  ]P                  P                  RRR/RR/RR/RR/RR/R	R/R
R/RR/.4      R 4       4       t	R t
]P                  P                  ^
4      R 4       tR tR t]P                  P                  RR7      R 4       tRtV tR# )LinprogHiGHSTestsi  c           
         R  p\         P                  ! RR.4      p^^.^^.^^ ..p. ROp\        \        \        W#VWP
                  R7       \	        W#W@P
                  R7      p\        VR^^.R7       R# )	c                     R # r   r~   r   s   &r   r   +LinprogHiGHSTests.test_callback.<locals>.cb  s    r   r   r   r   Nrw   r   r   r   )r7   rA   r   NotImplementedErrorr
   r   r1   )r   r   rQ   rh   ri   r   s   &     r   r   LinprogHiGHSTests.test_callback  sn    	HHb"XAAA')7At!++	7akkB1a&Ar   r   r   r   rA  r   dual_feasibility_toleranceprimal_feasibility_toleranceipm_optimality_tolerance!simplex_dual_edge_weight_strategyekkic                l   a  V 3R  lpVP                  S P                  4       \        \        W!R7       R# )c                 8   < \        ^SP                  V R7       R# )rq   r   Nr  )r   r   s   &r   r	  7LinprogHiGHSTests.test_invalid_option_values.<locals>.f  s    Adkk7;r   r   N)r  r   r   r   )r   r   r	  s   f& r   test_invalid_option_values,LinprogHiGHSTests.test_invalid_option_values  s"    	<t||$_a9r   c           	         \        ^4      w  rp pRp\        W1VWPP                  V P                  R7      p\	        VP
                  ^ 8H  V P                  R8g  4       R# )r#   rC  r  Nr   )rR   r
   r   r   r   crossover_nit)r   rj   rk   rQ   ra  rn   r   s   &      r   test_crossover LinprogHiGHSTests.test_crossover  sU    *1oAq!a#KKO 	S&&!+T[[K-GHr   c                "  a a
aaaaaaa \        ^ R7      w  oooo
oo\        SSSS
SSS P                  S P                  R7      pSP                  w  ooV
VVVVV 3R lp\        VSRVP                  R7      p\        VP                  P                  V4       V
VVVVV 3R lp\        VSRVP                  R7      p\        VP                  P                  V4       V
VVVVV V3R lp\        P                  ! RR	7      ;_uu_ 4        \        VSRVP                  R7      p^ V\        P                  ! S4      ( &   R
R
R
4       \        VP                  P                  X4       V
VVVVVV 3R lp\        P                  ! RR	7      ;_uu_ 4        \        VSRVP                  R7      p	^ V	\        P                  ! S4      ( &   R
R
R
4       \        VP                  P                  X	4       R
#   + '       g   i     L; i  + '       g   i     LE; i)rx   re   r9  c           
      P   < \        SSV SSSSP                  R 7      P                  # r   r
   r   r,   )r-   rj   rh   rk   rn   rQ   r   s   &r   f_bub/LinprogHiGHSTests.test_marginals.<locals>.f_bub  s(    1dAtT6"&++//2s3r   z3-point)r   f0c           
      P   < \        SSSSV SSP                  R 7      P                  # r  r  )r-   rj   rh   ri   rn   rQ   r   s   &r   f_beq/LinprogHiGHSTests.test_marginals.<locals>.f_beq  s(    1dD$6"&++//2s3r   c           
         < \         P                  ! V S.4      P                  p\        SSSSSVSP                  R 7      P
                  # r  r7   rA   rd   r
   r   r,   )	r-   rn   rj   rh   rk   ri   rQ   r   rm   s	   & r   f_lb.LinprogHiGHSTests.test_marginals.<locals>.f_lb$  s@    XXq"g&((F1dD$f"&++//2s3r   ignore)invalidNc           
         < \         P                  ! SV .4      P                  p\        SSSSSVSP                  R 7      P
                  # r  r  )	r-   rn   rj   rh   rk   ri   rQ   rl   r   s	   & r   f_ub.LinprogHiGHSTests.test_marginals.<locals>.f_ub1  s@    XXr1g&((F1dD$f"&++//2s3r   )ro   r
   r   r   rd   r   r,   r   r>  r;  r=  r7   errstateisfiniter  r?  )r   r   r  dfdbubr  dfdbeqr  dfdlbr  dfdubrj   rh   rk   ri   rn   rQ   rl   rm   s   f         @@@@@@@@r   test_marginals LinprogHiGHSTests.test_marginals
  s    -<,C)4tT6adDt#DKKOB	3 	3 #5$ySWWM--v6	3 	3 #5$ySWWM		++V4	3 	3
 [[**%dBySWWME&'E2;;r?"# +
 			++U3	3 	3
 [[**%dBySWWME&'E2;;r?"# + 			++U3# +* +*s   4G+4G>+G;	>H	c                   \        ^*R7      w  rr4rV\        WW4VW`P                  V P                  R7      pV) VP                  VP
                  P                  ,          ,           VP                  VP                  P                  ,          ,           VP                  P                  ,           VP                  P                  ,           p\        V^ RR7       R# )*   r  r9  -q=r:  N)ro   r
   r   r   rd   r>  r;  r=  r?  r  r   )	r   rQ   rh   ri   rj   rk   rn   r   resids	   &        r   test_dual_feasibility'LinprogHiGHSTests.test_dual_feasibility<  s    ,;,D)Tat#KKO
 dffs{{4444#))---.$$% $$% 	qu-r   c                   \        ^*R7      w  rr4rV\        WW4VW`P                  V P                  R7      p\        P
                  ! VP                  P                  W2VP                  ,          ,
          ,          ^ 4      '       g   Q hR# )r   r  r9  N)	ro   r
   r   r   r7   allcloser>  r;  r-   r  s   &       r   test_complementary_slackness.LinprogHiGHSTests.test_complementary_slacknessJ  sd    ,;,D)Tat#KKO {{3;;00D#%%<4GH!LLLLr   z&Upstream / Wrapper issue, see gh-20589rQ  c           	        . RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNp. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNp. ^ N^ N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^	N^	N^
N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^Np. ^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^ N^ N^N^N^N^N^ N^N^ N^ N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^N^	N^N^	N^N^N^N^
N^	N^
N^	N^N^N^N^
N^N^
N^N^N^N^N^N^Np. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR	NRNR
NRNRNRNRNR NRNR!NRNR"NRNR#NRNR$Np. RNRNRNR%NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNp\         P                  ! V\         P                  R7      p\         P                  ! V\         P                  R7      p\         P                  ! V\         P                  R7      p	\        P
                  P                  WxV	33R&R7      p
\         P                  ! V\         P                  R7      p\         P                  ! V\         P                  R7      p\        P                  P                  VRRWVR7      pVP                  ^ 8X  g   Q hVP                  p\         P                  P                  W,          V,
          4      p\         P                  P                  VP                  P                  4      p\        VV4       R# )'z8
Test that `linprog` now solves a poorly-scaled problem
r   Nr   MbP?g<:=g    *aAgelaz?gZPd%q?g̚y?g֛x?gE3-w?gsF]Fv?gbu?gжlt?gnTs?g,'* +=r?r4   )rE   )rh   ri   rj   rk   rn   )     @g    j/aA)r   N)r  N)r   gS8(U@r   r   gMbPg?2g4gC1|gKcg-.f?`g@ʥugNg=ЂgQ3og)[ngl'V3)    r  )r7   asarrayr  int32r   r   	csr_arrayoptimizer
   r   r-   linalgnormr=  r<  r   )r   
boundaries
eq_entries
eq_indizeseq_vars	eq_valuescoefficientsnp_eq_entriesnp_eq_indizes
np_eq_varsa_eqrk   rQ   resultr-   n_r_xn_rs   &                r   test_bug_20336 LinprogHiGHSTests.test_bug_20336U  s   
	#* 	#K 	# 	#-	#/>	#@O	#$	#&5	#7F	# %	# '6	# 8G	# %		# '3		# 5A		# CO		#
 "	#
 $0	#
 2>	#
 @L	# "	# $0	# 2>	# @L	# "	# $0	# 2>	# @L	# "	# $0	# 2>	# @L	# "	#
9d 9C 9 9s 9D 9# 9t 9S 9$ 9 9T 9SV 999!%9'*9,092597;9=@9BE9GJ9LP9RW99496L9NQ9SW9 9 $9 &<9 >T9 	9  	9 "'	9 )/	9 1G	9
 -9
 /29
 489
 :?9
 AG9 -9 /E9 GJ9 LP9 RW9 9 59 7M9 OR9 TX9 9 $9 &<9 >T9 9  9 "'9 )/9 1G9 -9 /29 599 ;@9 BH9 -9 /E9 GJ9 LP9 RW9 9 59 8N9 PS9 9 "9 $*9 ,B9 -9 /29 489
Na N NA Nq N! NQ N N1 Na N NA Nq N! NQ N N1 Na N NA Nq NRT NNN N"$N&(N*,N.0N24N68N:<N>@NBDNFHNJLNNPNRTNNN N"$N&(N*,N.0N24N68N:<N>@NBDNFHNJLNNPNRTN N N !N #%N ')N +-N /1N 35N 79N ;=N ?AN CEN GIN KMN OQN SUN 	N 	N !	N #%	N ')	N +-	N /1	N 35	N 79	N ;=	N ?A	N CE	N GI	N KM	N

32 3r 32 3r 32 3r 32 3r 32 3r 32 3r 32 3r 32 3r 3SU 33333!#3%&3(*3,.30133436739:3<>3@B3DE3GI3KL3NP3RT33333 !3#%3')3+,3./3123453793;=3?@3BC3EF3HI3KM3OQ3ST3 3 3 3 3 !#3 %&3 ()3 +,3 ./3 133 573 9;3 =>3 @B3 DE3 GI3 KM3 OQ3 SU3 	3 	3 	3  "	3 $&	3 (*	3 ,.	3 02	3
?S ?# ?s ?C ? ?c ?3 ? ?S ?# ?y ?RU ?)?+=??T?&?(=??Q? *? ,<? >R? (	? *?	? AS	?
 *?
 ,>?
 @T? (? *>? @R? *? ,>?	T TS T# T'< Tc T3 T TS TRU TT T"%T'*T,/T14T69T;>T@CTEHTJMTORTT T"%T'*T,/T14T69T;>T@CTEHTJMTORT 

:RZZ@

:RXX>ZZrxx8
||%%}Z5P&Q,4 & 6zz)2::6JJ|2::6''4d/9 ( ;}}aHH		tx$/iinnV\\223U#r   r~   Nr6   )r  r  r  r  r   r   r  r  parametrizer  r  	fail_slowr  r  r  r  r   r  r  r  s   @r   r  r    s     
B [[[[Y("o%rl)2.+R0;R@=rB92>BFK 	!:	! :I [[2/4 /4b.	M [[FGA$ HA$r   r  c                   v   a a ] tR tRt oR tR tR t]P                  P                  V 3R l4       t
RtVtV ;t# )TestLinprogSimplexDefaulti  c                    / V n         R # r   r  r   s   &r   setup_method&TestLinprogSimplexDefault.setup_method  s	    r   c                2    \         P                  ! R 4       R# zSimplex fails on this problem.Nr  r   s   &r   rJ  'TestLinprogSimplexDefault.test_bug_5400      45r   c                2    \         P                  ! R 4       R# r*  r  r   s   &r   test_bug_7237_low_tol/TestLinprogSimplexDefault.test_bug_7237_low_tol  s     	45r   c                   < V P                   P                  R R/4       \        P                  ! \        4      ;_uu_ 4        \
        SV `  4        RRR4       R#   + '       g   i     R# ; irl  r  Nr   r  r   r   r   superrq  r   	__class__s   &r   test_bug_8174_low_tol/TestLinprogSimplexDefault.test_bug_8174_low_tol  D     	UEN+\\/**G!# +***   AA+	r  )r  r  r  r  r'  rJ  r.  r   r  r  r6  r  r  __classcell__r5  r  s   @@r   r%  r%    s7     66
 [[$ $ $r   r%  c                   p   a a ] tR tRt oR tR t]P                  P                  V 3R l4       t	Rt
VtV ;t# )TestLinprogSimplexBlandi  c                    R R/V n         R# )r  TNr  r   s   &r   r'  $TestLinprogSimplexBland.setup_method  s    r   c                2    \         P                  ! R 4       R# r*  r  r   s   &r   rJ  %TestLinprogSimplexBland.test_bug_5400  r,  r   c           	     X  < V P                   P                  R R/4       \        P                  ! \        4      ;_uu_ 4        \        P
                  ! \        4      ;_uu_ 4        \        SV `!  4        RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir1  )	r   r  r   r	   r+   r   r   r3  rq  r4  s   &r   r6  -TestLinprogSimplexBland.test_bug_8174_low_tol  sd     	UEN+]]>**o..%' / +*.. +**s$   #B$B	3BBBB)	r  )r  r  r  r  r'  rJ  r   r  r  r6  r  r  r:  r;  s   @@r   r=  r=    s2     '6 [[( ( (r   r=  c                   \  a a ] tR tRt oR t]P                  ! ^ 4      P                  ^8  t]	P                  P                  R4      t]P                  P                  ];'       d    ]RR7      V 3R l4       tV 3R ltR t]P                  P&                  V 3R	 l4       tR
 tR tRtVtV ;t# )TestLinprogSimplexNoPresolvei  c                    R R/V n         R# )rA  FNr  r   s   &r   r'  )TestLinprogSimplexNoPresolve.setup_method  s    "E*r   linuxz"Fails with warning on 32-bit linux)	conditionrR  c                $   < \         SV `  4        R # r   )r3  rJ  r4  s   &r   rJ  *TestLinprogSimplexNoPresolve.test_bug_5400  s     	r   c                   < V P                   P                  R R/4       \        P                  ! \        RR7      ;_uu_ 4        \
        SV `  4       uuRRR4       #   + '       g   i     R# ; i)rl  r  zlinprog status 4r   N)r   r  r   r	   r+   r3  rO  r4  s   &r   test_bug_6139_low_tol2TestLinprogSimplexNoPresolve.test_bug_6139_low_tol  sH    
 	UEN+]]>1CDD7(* EDDDs   AA-	c                2    \         P                  ! R 4       R# r*  r  r   s   &r   r.  2TestLinprogSimplexNoPresolve.test_bug_7237_low_tol  r,  r   c                   < V P                   P                  R R/4       \        P                  ! \        4      ;_uu_ 4        \
        SV `  4        RRR4       R#   + '       g   i     R# ; ir1  r2  r4  s   &r   r6  2TestLinprogSimplexNoPresolve.test_bug_8174_low_tol  r8  r9  c                2    \         P                  ! R 4       R# z#Tests behavior specific to presolveNr  r   s   &r   r  GTestLinprogSimplexNoPresolve.test_unbounded_no_nontrivial_constraints_1      9:r   c                2    \         P                  ! R 4       R# rT  r  r   s   &r   r  GTestLinprogSimplexNoPresolve.test_unbounded_no_nontrivial_constraints_2  rV  r   r  )r  r  r  r  r'  r7   intpitemsize	is_32_bitr  r  r   is_linuxr   r  r  rJ  rM  r.  r  r6  r  r  r  r  r:  r;  s   @@r   rE  rE    s     + 
##a'I||&&w/H[[((3  5 5 +6 [[$ $;; ;r   rE  c                      a a ] tR tRt oRR/t]P                  P                  ]P                  R8H  RR7      V 3R l4       t
RtVtV ;t# )	TestLinprogIPDensei  r   Fr  z:Fails on some macOS builds for reason not relevant to testrQ  c                $   < \         SV `  4        R # r   r3  rO  r4  s   &r   rO   TestLinprogIPDense.test_bug_6139  s    
 	r   r~   )r  r  r  r  r   r   r  r  r  r  rO  r  r  r:  r;  s   @@r   r^  r^    sK     G [[ K   	   r   r^  c                   "    ] tR tRtRRRR/tRtR# )TestLinprogIPSparseCholmodi  r   Tr   r~   Nr  r  r  r  r   r  r~   r   r   rc  rc    s    T:t4r   rc  c                   2   a  ] tR tRt o RRRR/tR tRtV tR# )	TestLinprogIPSparseUmfpacki  r   Tr   Fc                2    \         P                  ! R 4       R# )z2Failing due to numerical issues on some platforms.Nr  r   s   &r   r  =TestLinprogIPSparseUmfpack.test_network_flow_limited_capacity	  s    KKLMr   r~   N)r  r  r  r  r   r  r  r  r  s   @r   rf  rf    s     T:u5	N 	Nr   rf  c                   .  a a ] tR tRt oRRRRRR/t]P                  P                  ]P                  R8H  RR	7      ]P                  P                  R
4      V 3R l4       4       t]P                  P                  RR	7      V 3R l4       tR tR tRtVtV ;t# )TestLinprogIPSparsei  r   Tr   Fsym_posr  /Fails on macOS x86 Accelerate builds (gh-20510)rQ  rThis test is sensitive to machine epsilon level perturbations in linear system solution in _linprog_ip._sym_solve.c                $   < \         SV `  4        R # r   r`  r4  s   &r   rO  !TestLinprogIPSparse.test_bug_6139       	r   Fails with ATLAS, see gh-7877c                $   < \         SV `  4        R # r   r3  r\  r4  s   &r   r\  !TestLinprogIPSparse.test_bug_6690       	r   c                   \        ^4      w  rp pR	p\        4       ;_uu_ 4       p\        '       d   VP                  \        4       VP                  \
        R4       VP                  \        R4       V P                   Uu/ uF  qwV P                  V,          bK  	  ppRVR&   \        V\        \        WVV P                  VR7      p	RRR4       \        X	RR7       R# u upi   + '       g   i     L$; i)
r{   zMatrix is exactly singularr  FrA  r   Nr_  r   r   )rR   r   r  r(  r   r   r   r   r
   rh   ri   r   r1   )
r   rj   rk   rQ   ra  rn   r)  r  r  r   s
   &         r   $test_magic_square_sparse_no_presolve8TestLinprogIPSparse.test_magic_square_sparse_no_presolve  s    *1oAq!  C{

>*JJ(*FGJJ(GH37<<@<Cdll3''<A@!AjM!T4V!%a9C ! 	5 A ! s   AC$C+C$C$$C4	c                   \        ^4      w  rp p\        4       ;_uu_ 4       pVP                  \        R4       VP                  \        R4       V P                   Uu/ uF  qfV P                  V,          bK  	  ppRpV F<  p	WR&   \        V\        \        W\        V P                  VR7      p
\        V
RR7       K>  	  RRR4       R# u upi   + '       g   i     R# ; i)	r{   r  zInvalid permc_spec option
permc_specr   r_  r   N)NATURALMMD_ATAMMD_AT_PLUS_ACOLAMDr   )rR   r   r(  r   r   r
   rh   ri   rn   r   r1   )r   rj   rk   rQ   ra  r)  r  r  permc_specsrz  r   s   &          r   test_sparse_solve_options-TestLinprogIPSparse.test_sparse_solve_options1  s    *1oAq!  CJJ(ABJJ(CD37<<@<Cdll3''<A@7K *
",,atT%)[[!==	 * !  A !  s   ;CC
:AC
CC 	r~   )r  r  r  r  r   r   r  r  r  r  xfail_on_32bitrO  r  r\  rw  r  r  r  r:  r;  s   @@r   rj  rj    s     z5)UCG[[ @   [[ !: ; ;	  [[=>  ? 6$> >r   rj  c                   $  a a ] tR tRt oRRRR/t]P                  P                  ]P                  R8H  RR7      ]P                  P                  R4      V 3R	 l4       4       tR
 t]P                  P                  RR7      V 3R l4       tRtVtV ;t# )TestLinprogIPSparsePresolveiC  r   Tr"  r  rl  rQ  rm  c                $   < \         SV `  4        R # r   r`  r4  s   &r   rO  )TestLinprogIPSparsePresolve.test_bug_6139F  rp  r   c                2    \         P                  ! R 4       R# )z6_sparse_presolve=True incompatible with presolve=FalseNr  r   s   &r   r1  BTestLinprogIPSparsePresolve.test_enzo_example_c_with_infeasibilityP  s    LMr   rq  c                $   < \         SV `  4        R # r   rs  r4  s   &r   r\  )TestLinprogIPSparsePresolve.test_bug_6690S  ru  r   r~   )r  r  r  r  r   r   r  r  r  r  r  rO  r1  r  r\  r  r  r:  r;  s   @@r   r  r  C  s     148G[[ @   [[ !: ; ;	 N [[=>  ?   r   r  c                   B   a  ] tR tRt o RtR tR tR tR tR t	Rt
V tR	# )
TestLinprogIPSpecificiY  r   c                &   \         '       d   R RRR/pM\        '       d   R RRR/pMR RRRRR/p\        ^^4      w  r#p\        WBW0P                  VR7      p\        WBW0P                  R7      p\        VP                  VP                  RRR	R
7       R# )r   Tr   Frk  r   r   z(linprog default solver unexpected resultgV瞯<gV瞯<r&   N)has_cholmodr  r_   r
   r   r   r,   )r   r   rO   rP   rQ   r  r  s   &      r   test_solver_select(TestLinprogIPSpecific.test_solver_select_  s    ;z48G[z59Gz5)UKG2r"aqqgNqq=$(( J"	0r   c           	     d    R.pR	.p\        WV P                  RRRR/R7      p\        VRR7       R# )
rq   NrA  Fr   TrW  r   r6   r  )r
   r   r1   re  s   &   r   )test_unbounded_below_no_presolve_original?TestLinprogIPSpecific.test_unbounded_below_no_presolve_originaln  s<    D![[)5*dCE 	,r   c                r    \        ^^4      w  rp\        W1W P                  RR/R7      p\        VRR7       R# )r   r   Tr   r   Nr   r   r   s   &    r   test_cholesky#TestLinprogIPSpecific.test_choleskyw  s6    2r"aaa)4027r   c                V   \        ^^4      w  rp\        4       ;_uu_ 4       pVP                  \        R4       VP                  \        R4       VP                  \
        R4       \        W1W P                  RRRR/R7      pRRR4       \        XR
R	7       R#   + '       g   i     L; i)r   r  r  r  ipTr   r   Nr   r   )	r_   r   r(  rX  r   r   r
   r   r1   )r   rO   rP   rQ   r)  r   s   &     r   test_alternate_initial_point2TestLinprogIPSpecific.test_alternate_initial_point~  s    2r"a  CJJ~'CDJJ(GHJJ}&AB!!KK#'vt"<>C	 ! 	7 ! s   ABB(	c                b   ^.p^.^..p^^.p^ .R.^	..p. ROp\        4       ;_uu_ 4       pVP                  \        4       VP                  \        R4       \	        WW4V\
        V P                  RR/R7      pRRR4       \        XP                  '       * R4       R#   + '       g   i     L-; i)	r#   r  rA  Fr   Nr   r|   r  )	r   r(  rX  r   r
   rn   r   r   r   rv  s   &       r   r  #TestLinprogIPSpecific.test_bug_8664  s    CaSz1vbTA3  CJJ~&JJ(GH!4tV!%z56IKC !
 	CKK!?@ ! s   ABB.	r~   N)r  r  r  r  r   r  r  r  r  r  r  r  r  s   @r   r  r  Y  s*     F0-8
8A Ar   r  c                   N   a  ] tR tRt o / tR tR tR tR tR t	R t
R tR	tV tR
# )TestLinprogRSCommoni  c                2    \         P                  ! R 4       R# r  r  r   s   &r   r  %TestLinprogRSCommon.test_cyclic_bland  r  r   c                    \        4       w  rr4rVp\        WW4V\        V P                  V P                  VR 7	      p\        WVR7       \        VP                  ^ 4       R# r   r   x0r   Nr   r
   rn   r   r   r1   r   r   r  s	   &        r   "test_nontrivial_problem_with_guess6TestLinprogRSCommon.test_nontrivial_problem_with_guess  M    4F4H1T6at4![[$,,6K6BSWWa r   c                    \        4       w  rr4rVp. ROp\        WW4WXV P                  V P                  VR7	      p	\	        WVR7       \        V	P                  ^ 4       R # )Nr  r   )r   r   r   r   r   r
   r   r   r1   r   r   
r   rQ   rh   ri   rj   rk   r   r   rn   r   s
   &         r   0test_nontrivial_problem_with_unbounded_variablesDTestLinprogRSCommon.test_nontrivial_problem_with_unbounded_variables  sP    4F4H1T6Fat4![[$,,6K6BSWWa r   c                    \        4       w  rr4rVp. ROp\        WW4WXV P                  V P                  VR7	      p	\	        WVR7       \        V	P                  ^ 4       R # )Nr  r   )r  rq   Nr   r  g333333?r  r  s
   &         r   .test_nontrivial_problem_with_bounded_variablesBTestLinprogRSCommon.test_nontrivial_problem_with_bounded_variables  sP    4F4H1T6<at4![[$,,6K6BSWWa r   c                    \        4       w  rr4rVp^.p\        P                  ! . RO4      pRp. ROp\        WW4WXV P                  V P
                  VR7	      p	\        WVR7       \        V	P                  ^ 4       R# )r#   Nr  r   )gibl3g%G/?rx   r  g@Q$@)r   r  r   r  )	r   r7   rA   r
   r   r   r1   r   r   r  s
   &         r   8test_nontrivial_problem_with_negative_unbounded_variableLTestLinprogRSCommon.test_nontrivial_problem_with_negative_unbounded_variable  sk    4F4H1T6s67?at4![[$,,6K6BSWWa r   c                    \        4       w  rr4rVp. ROp\        WW4V\        V P                  V P                  VR7	      p	\        V	P                  ^4       R# rq   r  N)rq   r"   r{   rb   r   r
   rn   r   r   r   r   
r   rQ   rh   ri   rj   rk   r   r   	bad_guessr   s
   &         r   &test_nontrivial_problem_with_bad_guess:TestLinprogRSCommon.test_nontrivial_problem_with_bad_guess  H    4F4H1T6!	at4![[$,,9NSZZ#r   c           
        \        ^4      w  rp p\        P                  P                  ! VP                  !  p\        4       ;_uu_ 4       pVP                  \        R4       VP                  \        R4       VP                  \        4       \        W1W P                  R7      p\        W1W P                  VP                  R7      p\        W5,           WV P                  VP                  R7      p	RRR4       \        XRR7       \        VP                  ^ 4       \        X	4       \!        V	P                  XP                  8  4       R#   + '       g   i     Lb; i)r{   r  r  )rj   rk   r   )rj   rk   r   r  Nr_  r   )rR   r7   r8   rD   rE   r   r(  r   rX  r   r
   r   r-   r1   r   r   r   )
r   rO   rP   rQ   ra  r  r)  r   r  res3s
   &         r   %test_redundant_constraints_with_guess9TestLinprogRSCommon.test_redundant_constraints_with_guess  s    $QaAIINNAGG$  CJJ(ABJJ~'BCJJ}%!!KK@C11[[SUUKD15qOD ! 	+6TXXq!377"# ! s   B$E		E	r~   N)r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  s   @r   r  r    s2     G8!!!	!$$ $r   r  c                       ] tR tRtRR/tRtR# )TestLinprogRSBlandi  pivotr  r~   Nrd  r~   r   r   r  r    s     Gr   r  c                   .   a  ] tR tRt o Rt/ tR tRtV tR# )TestLinprogHiGHSSimplexDuali  r   c                   \        4       w  rr4\        WW4V P                  V P                  R7      p\	        VP
                  ^ 4       \        VP                  RJ4       \        \        P                  ! VP                  R8  4      4       \        \        P                  ! VP                  V UUu. uF  w  rgVf   \        P                  MTNK  	  upp8*  4      4       \        \        P                  ! VP                  V UUu. uF#  w  rgVf   \        P                  ) MVR,
          NK%  	  upp8  4      4       R# u uppi u uppi )z
The scaled model should be optimal, i.e. not produce unscaled model
infeasible.  See https://github.com/ERGO-Code/HiGHS/issues/494.
)rh   ri   rn   r   r   Nr  gư)r   r
   r   r   r   r   r   r-   r7   allr   rc   )r   rQ   rh   ri   r   r   rl   rm   s   &       r   test_lad_regression/TestLinprogHiGHSSimplexDual.test_lad_regression  s    12a![[$,,@SZZ#T!"syy5()*suu/3!5/3VR ,.:2!=/3!5 5 6 	7suu/3!5/3VR -/J"&&BI!E/3!5 5 6 	7!5!5s   /!D<)Er~   N)	r  r  r  r  r   r   r  r  r  r  s   @r   r  r    s     FG7 7r   r  c                       ] tR tRtRt/ tRtR# )TestLinprogHiGHSIPMi	  r  r~   N)r  r  r  r  r   r   r  r~   r   r   r  r  	  s    FGr   r  c                     a  ] tR tRt o Rt/ t]P                  P                  ^
4      ]P                  P                  ]
P                  R8  ;'       d    ]P                  ! 4       R8H  RRR7      R 4       4       tR tR	 tR
 tR t]P                  P&                  R 4       t]P                  P&                  R 4       tR tR tRtV tR# )TestLinprogHiGHSMIPi	  r   LinuxFzgh-16347)rI  runrR  c           	        ^p\        V4      w  r#rEpR.\        V4      ,          p^.\        V4      ,          p\        V^ ,          W#VV P                  VR7      p	VP	                  4       V	P
                  ,          P                  V^,          W4      p
\        P                  ! V
^ R7      p\        P                  P                  VP                  ^ R7      V4       \        P                  P                  VP                  ^R7      V4       \        P                  P                  \        P                  ! V4      P                  4       V4       \        P                  P                  \        P                  ! VRRRR13,          4      P                  4       V4       \        P                  P                  V	P
                  \        P                  ! V	P
                  4      RR7       R# )	r#   rQ   rj   rk   rn   r   r   r  r3   Nr  r:  r   r6   )rR   r   r
   r   r@   r-   r;   r7   r  r  r   diaground)r   rF   rO   rP   rQ   rI   rH   rn   r   r   ssquares   &           r   	test_mip1TestLinprogHiGHSMIP.test_mip1	  sL    *1oa!CF"cCFl!!F![[kC __&//1a;"


""6::1:#5q9


""6::1:#5q9


""2776?#6#6#8!<


""2776!TrT'?#;#?#?#A1E


""355"((355/"Fr   c           	        \         P                  ! ^R.R^
..4      p\         P                  ! R^.4      p\         P                  ! ^^.4      ) p\         P                  ! ^ \         P                  3.\        V4      ,          4      p\         P                  ! V4      p\        W1W$V P                  VR7      p\         P                  P                  VP                  ^^.4       \         P                  P                  VP                  R4       R# )r"   r  Nr   r|   r6   rw   )r7   rA   rc   r   	ones_liker
   r   r  r   r-   r,   r  s   &      r   	test_mip2TestLinprogHiGHSMIP.test_mip2*	  s     xx!R2r(+,xxR!XXq!fArvv;-#a&01ll1o4![[kC 	

""3551a&1


""377B/r   c           	     D   \         P                  ! R^.^^.^^..4      p\         P                  ! . RO4      p\         P                  ! ^ ^.4      ) p^ \         P                  3.\        V4      ,          p^.\        V4      ,          p\	        W1W$V P
                  VR7      p\         P                  P                  VP                  R4       \         P                  ! VP                  ^^.4      '       g.   \         P                  ! VP                  ^^.4      '       g   Q hR# R# )rq   r  Nr6   r  r   )r7   rA   rc   r   r
   r   r  r   r,   r  r-   r  s   &      r   	test_mip3TestLinprogHiGHSMIP.test_mip3=	  s     xx"a1a&1a&12xx$XXq!fbff+Q'cCFl4![[kC 	

""377B/{{3551a&))R[[A-G-GGG-G)r   c           	        \         P                  ! RR.RR.^^..4      p\         P                  ! . RO4      p\         P                  ! ^^.4      p^ \         P                  3.\        V4      ,          p^ ^.p\	        W1W$V P
                  VR7      p\         P                  P                  VP                  R^.4       \         P                  P                  VP                  ^;4       R# )rq   r  g      @Nr6   r   r}   )r  ir   )
r7   rA   rc   r   r
   r   r  r   r-   r,   r  s   &      r   	test_mip4TestLinprogHiGHSMIP.test_mip4N	  s     xx"bB8aV45xx&HHaVbff+Q'!f4![[kC 	

""3553(3


""377B/r   c                   \         P                  ! . RO.4      p\         P                  ! ^.4      p\         P                  ! . RO.4      p\         P                  ! ^.4      p\         P                  ! . RO4      p^ \         P                  3^ \         P                  3R	.p. R
Op\        WQW#VW`P                  VR7      p\         P
                  P                  VP                  . RO4       \         P
                  P                  VP                  R4       VP                  RR4      f   Q hVP                  RR4      f   Q hVP                  RR4      f   Q hR# )rq   )rQ   rh   ri   rj   rk   rn   r   r   mip_node_countNmip_dual_boundmip_gapr  )r#   r"   rq   )rw   r   r6   r   rE  )rx   ru   rx   i)
r7   rA   rc   r
   r   r  r   r-   r,   rH  )	r   rh   ri   rj   rk   rQ   rn   r   r   s	   &        r   	test_mip5TestLinprogHiGHSMIP.test_mip5^	  s    xx$xx}xx$xx~HH\"bff+266{F34#KK"-/ 	

""355)4


""377C0 ww'.:::ww'.:::wwy$'333r   c           	     x   \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO4      p\         P                  ! . R	O4      p^ \         P                  3.^,          p^.^,          p\        W1W$V P                  VR7      p\         P
                  P                  VP                  R4       R# )
   r  i>  Nr        r     r{   r  r  '   r
  r     r           r  r        r  &   r  r  )   r  r  r  r  r  r
  r  i  i(  i:,  i/  r"   ra   r     rz   r&  rz   r{   )r7   rA   rc   r
   r   r  r   r,   )r   rj   rk   rQ   rn   r   r   s   &      r   	test_mip6TestLinprogHiGHSMIP.test_mip6v	  s     xx8999; < xx34HH01bff+qc!e4![[kC 	

""377D1r   c                x   \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . R	O4      p\         P                  ! . R
O4      p^ \         P                  3.^,          p^.^,          p. ROp. pV FK  p\        V\        \
        WW@P                  VRV/R7	      p	V	R,          p
W8:  g   Q hVP                  V
4       KM  	  \         P                  ! \         P                  ! V4      4      p\         P                  ! V^ 8  4      '       g   Q h\         P                  ! V^ 8H  4      '       d   Q hR# )r  mip_rel_gap)	rQ   rh   ri   rj   rk   rn   r   r   r   r  Nr  r  r  r  r  r  )rb   g      ?g{Gz?r
  )r7   rA   rc   r
   rh   ri   r   r?   diffflipr  )r   rj   rk   rQ   rn   r   mip_rel_gapssol_mip_gapsr  r   final_mip_gap	gap_diffss   &           r   test_mip_rel_gap_passdown-TestLinprogHiGHSMIP.test_mip_rel_gap_passdown	  s   
 xx8999; < xx34HH01bff+qc!e/'KADt$!'&1#0+">@C  	NM !///. (" GGBGGL12	vvi1n%%%%66)q.)))))r   c                D   \         P                  ! . RO4      p\         P                  ! RR.RR.RR.RR..4      p\         P                  ! . RO4      p\        WVRR7      p\         P                  P	                  VP
                  . RO4       VP                  ^ 8X  g   Q hR# )	r   rb   rz  r   )rn   r   r   N)r   r   r6   r6   )r"   r{   r"   r{   )rx   rx   rz  rq   )r7   rA   r
   r  r   r-   r   )r   rQ   rn   r   r   s   &    r   test_semi_continuous(TestLinprogHiGHSMIP.test_semi_continuous	  s    
 HH%&C:SzC:SzJKhh|,a"-g? 	

""355.9zzQr   c           	     "   ^^.pR^ ..pR.p\        WV^ ^ .R7      p\        WV\        P                  ! ^ ^ .4      R7      p\        WVRR7      p\        VP                  VP                  4       \        VP                  VP                  4       R# )z
Test that when integrality is a list of all zeros, linprog gives the
same result as when it is an array of all zeros / integrality=None
r   Nr6   r   )r
   r7   r  r   r-   )r   rQ   rh   ri   r  r  r  s   &      r   test_bug_20584"TestLinprogHiGHSMIP.test_bug_20584	  s~    
 FQyvq$QFCq$BJJ1v<NOq$DATVVTVV$TVVTVV$r   r~   Nl        )r  r  r  r  r   r   r   r  r#  r  r  maxsizer  systemr  r  r  r  r  xslowr  r  r  r  r  r  r  s   @r   r  r  	  s     FG[[2[[#++"7 #4 #4(G3 (  *G	* 
G*0&H"0 40 [[2 2$ [[#* #*J% %r   r  c                   f    ] tR tRtRR/t]P                  t]P                  t]P                  tRt	R# )AutoscaleTestsi	  r  Tr~   N)
r  r  r  r  r   r   rO  r\  rh  r  r~   r   r   r  r  	  s-    D!G&44M&44M&44Mr   r  c                   *   a  ] tR tRt o RtR tRtV tR# )TestAutoscaleIPi	  r   c                J    R V P                   R&   \        P                  V 4      # )rm  rl  )r   r  rO  r   s   &r   rO  TestAutoscaleIP.test_bug_6139	  s!    #U++D11r   r~   N)r  r  r  r  r   rO  r  r  r  s   @r   r  r  	  s     F2 2r   r  c                       ] tR tRtRtRtR# )TestAutoscaleSimplexi	  r   r~   Nr  r~   r   r   r  r  	  s    Fr   r  c                   0   a  ] tR tRt o RtR tR tRtV tR# )TestAutoscaleRSi	  r   c                    \        4       w  rr4rVp\        WW4V\        V P                  V P                  VR 7	      p\        WVR7       \        VP                  ^ 4       R# r  r  r  s	   &        r   r  2TestAutoscaleRS.test_nontrivial_problem_with_guess	  r  r   c                    \        4       w  rr4rVp. ROp\        WW4V\        V P                  V P                  VR7	      p	\        V	P                  ^4       R# r  r  r  s
   &         r   r  6TestAutoscaleRS.test_nontrivial_problem_with_bad_guess	  r  r   r~   N)	r  r  r  r  r   r  r  r  r  r  s   @r   r  r  	  s     F!$ $r   r  c                       ] tR tRtRt]t]P                  t]P                  t	]P                  t
]P                  t]P                  tRtR# )RRTestsi	  r   r~   N)r  r  r  r  r   r   LCTr  test_RR_infeasibilityr  rb  r  	test_NFLCr!  r  r~   r   r   r"  r"  	  sE    F
CDD''N%%M66I11r   r"  c                       ] tR tRtRR/tRtR# )	TestRRSVDi

  r   SVDr~   Nrd  r~   r   r   r'  r'  

  s    E"Gr   r'  c                       ] tR tRtRR/tRtR# )TestRRPivoti
  r   r  r~   Nrd  r~   r   r   r*  r*  
  s    G$Gr   r*  c                       ] tR tRtRR/tRtR# )TestRRIDi
  r   IDr~   Nrd  r~   r   r   r,  r,  
  s    D!Gr   r,  )NN:0yE>r.  )rx   )rx   rr   rv   r  )Xr  r  r  numpyr7   numpy.exceptionsr   numpy.testingr   r   r   r   r   r   r   r	   r   scipy.optimizer
   r   scipy.optimize._numdiffr   scipy.sparse.linalgr   scipy.linalgr   scipy.sparser   r  scikits.umfpackr   ImportErrorr  sksparsesksparse.cholmodr   cholmodr   r   r    r$   r1   rR   r_   ro   r   r   r   r  r  r   r   r   r   r   rh   ri   rj   rk   rn   r   filterwarningsr  r  r  r  r%  r=  rE  r^  rc  rf  rj  r  r  r  r  r  r  r  r  r  r  r  r"  r'  r*  r,  r~   r   r   <module>r=     sI      6O O * 3 5 1 &   . 4
LFEK.(?D6- 5 F4> 9 9> % %*#ZE 	B. B.T* 89,  : 89B' B :B 898' 8 :8:s$* s$v$ 3 $,(1 ($&;#6 &;\	  	  5^ 5 N^ N3>. 3>l .  , 89<A <A :<AH<$. <$~! !7"3 78+ ~% ~%L 895 5 :52n 2> $n $. 892 2 :2# #%' %"w "wO  K  Ks$   K 
K 	KK	K K 