+
    /i                    ^   R t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI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	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(RUR lt)R t*RVR lt+R t,RWR lt-R t.R t/R t0R t1R t2R t3Rt4Rt5Rt6Rt7Rt8 ! R R4      t9]Pt                  Pw                  R4       ! R  R!]94      4       t<]Pt                  Pw                  R4       ! R" R#]94      4       t=]Pt                  Pw                  R4       ! R$ R%]94      4       t> ! R& R']94      t? ! R( R)]<4      t@ ! R* R+]<4      tA ! R, R-]<4      tB ! R. R/]=4      tC]'       d    ! R0 R1]=4      tD]'       d    ! R2 R3]=4      tE ! R4 R5]=4      tF ! R6 R7]=4      tG]Pt                  Pw                  R4       ! R8 R94      4       tH ! R: R;]>4      tI ! R< R=]>4      tJ ! R> R?]?4      tK ! R@ RA]?4      tL ! RB RC4      tM]Pt                  Pw                  R4       ! RD RE4      4       tN ! RF RG]N4      tO ! RH RI]N4      tP ! RJ RK]N4      tQ]Pt                  Pw                  R4       ! RL RM4      4       tR ! RN RO]R4      tS ! RP RQ]R4      tT ! RR RS]R4      tUR#   ] d    Rt ELEi ; i  ] d    Rt ELHi ; i)Xz"
Unit test for Linear Programming
N)VisibleDeprecationWarning)assert_assert_allcloseassert_equalassert_array_less)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   &&_/var/www/html/photoedit/myenv/lib/python3.14/site-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_successr/   >   s    
 ;;;

|;s{{mDS!!Q L!	. y E!	. r   c           	     n   Vf    \         P                  P                  R4      MT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.
l   g-hP NNNdtype)nprandomdefault_rngarangereshapezerosrangecopyappendflattenarrayvstackfloatshape)nrngMnumbersr:   A_listb_listiA_rowjAbcs   &&           r   magic_squarerO   R   s    :="))

 4
5#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

1771:AQr   c                z   \         P                  P                  R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
l   -!j sizeN)	r5   r6   r7   exponentialr:   r;   r@   hstackravel)mrC   rD   rN   ArowbrowrK   j1AcolbcolrL   rM   s   &&          r   lpgen_2dr\      s   
 ))

 4
5C
//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                  R 4      p^
^^2rCpVP                  V4      R,
          pVP                  W434      R,
          pVP                  V4      R,
          pVP                  W$3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# )l   )       ?)r5   r6   r7   infr@   T)seedrD   m_eqm_ubrC   rN   A_ubb_ubA_eqb_eqlbubboundss   &            r   very_random_genrk      s    
))


0CBD

1cA::ti $D::dCD::ti $D::dCD
**Q-B	AB ffWBSZZ\MFFBCJJL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# )   )r4      r!   )rp      	   )rm   r4       )
   rp      )rq   r4      r!   )rs   rq   ro   rq   )rv   rm   rm   )gk椀?gs?rt   gkL?gqY:^@ )rN   rd   re   rf   rg   x_starf_stars          r   nontrivial_problemr~      sI    AD DD4D5FFDf44r   c                >   \         P                  P                  R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
l   p^vn? rQ   h㈵>Nr1   :rt   Nr    :rm   Nr    r4   NNrt   N)r5   r6   r7   normalstandard_normalonesscipysparse	lil_arrayr;   tocscr:   )ra   rV   drC   rD   phiw_truer+   yrN   rd   idxiire   bndss   &&&&           r   l1_regression_probr      sy    ))

 4
5C
**Q*
'C  #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rm   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   rd   re   callbackmethodr,   r-   r*   r+   r   r   Nrs   ru   rn   r!         2)r5   r?   r   r   r/   r   )selfr   rN   rd   re   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)rx   ekki-ekki-ekkird   re   r   z
highs-ekkiz>Unrecognized options detected: {'rr_method': 'ekki-ekki-ekki'}match	rr_methodrd   re   optionsNrs   r   r   )r5   r?   assert_raises
ValueErrorr   pytestwarnsr	   )rN   rd   re   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# )	rx   highsr   r   Nrs   r   r   r   )r5   r?   r   r/   )rN   rd   re   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)rm   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# )rm   r   r   z6Optimization terminated successfully. (HiGHS Status 7:
time_limit皙?)rN   rf   rg   rj   r   r   integralityz%Time limit reached. (HiGHS Status 13:r   highs-dsrN   rf   rg   rj   r   r   z*Iteration limit reached. (HiGHS Status 14:)rj   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)rt   rm   r4   )rm   r4   )r   r   r(   
startswithrO   lenscipy.optimize._linprog_highsr   )r   r.   rL   rM   rN   rF   rE   rj   r   r   r   r   r(   s                r   test_highs_status_messager   1  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# )rm   rd   re   r   Nr4         )r   r{   r   r   test_bug_17380r   ^  s     QF2q'$aVDr   c                   L  a  ] tR tRt o 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 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- t/R. t0R/ t1R0 t2R1 t3R2 t4R3 t5R4 t6R5 t7R6 t8R7 t9R8 t:R9 t;R: t<R; t=R< t>R= t?R> t@R? tAR@ tBRA tCRB tDRC tERD tFRE tGRF tHRG tIRH tJRI tKRJ tLRK tMRL tNRM tORN tP]QP                  P                  ]TP                  RO8H  RPRQ7      RR 4       tVRStWV tXRT# )ULinprogCommonTestsim  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_callbackz  s
    d#r   c                r    \        ^^4      w  rp\        W1W P                  RR/R7      p\        VRR7       R# )   dispTrd   re   r   r   r,   NfOr\   r   r   r/   r   rL   rM   rN   r   s   &    r   	test_dispLinprogCommonTests.test_disp}  s6    2r"aaa%tn.);<r   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# )	rm   N)rd   re   rj   r   r   r   r4   rs   r   rs   N)r   r   r   r/   )r   rN   rL   rM   	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# )rm   hellorf   rg   r   r   N)r   	TypeErrorr   r   r   )r   rN   rf   rg   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      rz   )r5   r?   r<   r_   r   rf   rg   r   r   r/   r   )r   rN   rd   	b_ub_origre   rj   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   )r5   r?   r<   r_   r   rd   re   r   r   r/   r   )r   rN   rf   	b_eq_origrg   rj   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   r/   r   rN   rd   re   rf   rg   rj   r   s   &       r   test_non_ndarray_args(LinprogCommonTests.test_non_ndarray_args  s\     Ewuwuat4![[$,,@qc:r   c           	     d  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&   \        P                  ! \
        4      ;_uu_ 4        V! WW6R7       RRR4       R# u upi   + '       g   i     R# ; i)	rx   Nc                 <   < \        WW#WESP                  VR 7       R# r   Nr   r   )rN   rd   re   rf   rg   rj   r   r   s   &&&&&&&r   f2LinprogCommonTests.test_unknown_options.<locals>.f  s    AT;;9r   spamr   rs   r   r   )NNNNNN)r5   r?   r   r   r   r	   )r   rN   rd   re   r  keyos   f      r   test_unknown_options'LinprogCommonTests.test_unknown_options  s    HHb"XAAA'	9
 04||<|$,,s##|<&	\\/**a1 +* = +**s   BBB/	c                l   \         P                  ! R^.^^.^^..4      p\         P                  ! . RO4      p\         P                  ! ^ ^.4      ) p^ \         P                  3.\        V4      ,          p^.\        V4      ,          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)rm   rN   rd   re   rj   r   r   N?ffffff@r4   rm      r  ffffff)r5   r?   r_   r   r   r   r	   r   r   testingr   r+   r*   r   rd   re   rN   rj   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\\/**At!%+GC + 	

""3553*5


""377D1 +*s   )D##D3	c           	       a  R	V 3R llp\        \        V. R
ORR.R7       \        P                  ! 4       ;_uu_ 4        \        P                  ! R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   rN   rd   re   rf   rg   rj   r   s   &&&&&&r   r  1LinprogCommonTests.test_invalid_inputs.<locals>.f      AT;;>r   rj   ignorezCreating an ndarray from ragged)rd   re   )rf   rg   _sparse_presolve)rd   rg   NNNNNrm   r    rx   r   rx   r!   )r   r#  )rx   r!      rm   r   )rm   rm   rx   )	r   r   warningscatch_warningsfilterwarningsr   r   r5   r:   )r   r  s   f r   test_invalid_inputs&LinprogCommonTests.test_invalid_inputs  s>   	>
 	j!Y7GH$$&&##;=VX*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   4E((E8	c                  a  RV 3R llp\         P                  P                  R4      p^dp^p\        P                  P                  W43RV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   l   QxD;r^   )densityrD   zMethod 'z.' does not support sparse constraint matrices.r   r   Tr   r!  >   r   r   >   r   )r5   r6   r7   r   r   random_arrayr   column_stackr   r   r   r   r   r   )r   r  rD   rV   rC   rf   x_validrN   ri   rh   rj   rg   r   r   s   f             r   test_sparse_constraints*LinprogCommonTests.test_sparse_constraints  sW   	> ii##$45||((!#(F%%a("zz!}$zz!}$"*~;;88z8DKK= IN 2N O O!T#{{DLLBO O '&G{{00$(!At!%g?C;;;;O O Os   7$E88F		c                    . ROp. RO. RO. RO.p. ROp^p\        WW0P                  RV/R7      p\        WT4       \        VP                  V4       R# )	r!   r   r   Nr!   rn   rx   rt   rt   rt   r    r$  rx   r4   rt   rt   rx         @rn   rt   r4   rt   rn   ru   r!   rt   rt   r4         iX  )r   r   r   r   r   )r   rN   rL   rM   r   r   s   &     r   test_maxiterLinprogCommonTests.test_maxiter   sS    ! " 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rj   r   r   rf   rg   rj   r   r   N)rm   rm   r"  ))r$  r$  )r4   r4   )rx   rx   )r$  r4   rx   )rm   rx   )rm   rm   r    rm   rt   rt   rt   rm   rt   ))r$  )rt   ru   )      @rF  )rm   rw   rF  )r   getr   r   r/   r   r   r   do_presolver   s   &  r   test_bounds_fixed$LinprogCommonTests.test_bounds_fixed.  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# )r@  TrA  Nr%  r"  ))r$  rt   r   r#  )r   rG  r   r   r   r   r   rH  s   &  r   test_bounds_infeasible)LinprogCommonTests.test_bounds_infeasibleN  s    
 ll&&z48qc'$++t||T3!$qc7)DKKV3!$i(@![[$,,@3!$ r   c           	     ~  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)
r@  Tr   c                 L   < \        WSP                  SP                  R 7      pV# )rA  r  )rN   rj   r   r   s   && r   g6LinprogCommonTests.test_bounds_infeasible_2.<locals>.gv  s"    a%)[[$,,H
r   r  NrN   rj   r   r   r"  r   r#  )r   rG  r   r5   r_   r   r   RuntimeWarningr   
IndexErrorr   r   r   r   )r   rI  simplex_without_presolverN   bounds_1bounds_2rQ  r   s   f       r   test_bounds_infeasible_2+LinprogCommonTests.test_bounds_infeasible_2e  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# rm   r   Nr4   r   )r   r   r   r   )r   rN   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# )rm   rA  r@  TN)r4   rm   r4   rm   r4   rm   )	r5   r_   r   r   r   r   rG  r   r   r   rN   rj   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# )rm   rA  r-   r,   N)rm   r4   rm   r4   r`  )rt   rt   r4   rm   r   )r5   r_   r   r   r   r/   ra  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# )rx   r   r   Nr4   r   i	r5   r?   r   rf   rg   rj   r   r   r/   r   rN   rd   re   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# )	rq   r   r   Nr4   r   )r    r4   r4   gUUUUUU?gUUUUUU?r   rf   rg   rj   r   r   r/   rj  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# )rm   r   r-   Nr   )r   rd   re   rf   rg   r   r   r/   ra  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r5   r?   r   rd   re   r   r   r/   r   rN   rf   rg   rj   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# )rx   r^   r   re  Nr"  r5   r   eyer?   r_   r   rd   re   r   r   r/   sumrw  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   rv  rw  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# rx   r   re  Nr"  r{  rw  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{  rw  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# )
rm   r2   r   r   Nr4   rs   gm۶m&g$I$Ig%I$I@)
r5   r?   float64r_   r   rf   rg   r   r   r/   )r   rN   rd   re   r   r   rj   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   rz   r   )   rt   rx   r    r    r   )r   rf   rg   r   r   r   r   rN   rd   re   rj   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   rd   re   r   r   r   rw  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 )	rm   g?g@Fr@  r   Nr   r  )r   r   rf   rg   r   r   )r   rN   rd   re   rj   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                  R4      pVP                  V4      p^V^&   VP                  W3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# )	rx   l   ujo0o Nr   r   r1   rm   )rm   rt   rm   rm   )rv   ru   r  )rv   Nr   g[")r5   r6   r7   r   r   r   r/   )r   rV   rC   rD   rN   rf   rg   rd   re   rj   r   s   &          r   test_zero_column_1%LinprogCommonTests.test_zero_column_1'  s    !1ii##O4JJqM!zz1&!T
zz!}~Bat4![[$,,@);<r   c                ^   V P                   R9   d   \        P                  ! 4        \        P                  P                  R4      p^^r2VP	                  V4      pRV^&   VP	                  W#34      p^ VR	&   VP	                  V4      pVP	                  W#3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   l   T-	r Nr   r@  Tr   >   r   	highs-ipmr4   r  r   )r   r   xfailr5   r6   r7   r   r   r   rG  r   r   )r   rD   rV   rC   rN   rf   rg   rd   re   rj   r   s   &          r   test_zero_column_2%LinprogCommonTests.test_zero_column_26  s    ;;33LLNii##$78!1JJqM!zz1&!T
zz!}zz1&!T
zz!}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# )rm   r   r   Nr"  rt   rt   rt   rm   rm   rm   rt   rx   rt   r   rd   re   rj   r   r   r/   r   rN   rf   rg   r   s   &    r   test_zero_row_1"LinprogCommonTests.test_zero_row_1Q  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# )rt   r   r   Nr  r  r  r"  rn  r   rd   re   rN   r   s   &    r   test_zero_row_2"LinprogCommonTests.test_zero_row_2Y  sD    9i0atT4![[$,,@+r   c                   ^^r!\         P                  P                  R4      pVP                  V4      pVP                  W3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    l   <l(Sr   r@  TNrt   r1   )r5   r6   r7   r   rd   re   rj   r   r   r   rG  r   r   r   rV   rC   rD   rN   rf   rg   r   s   &       r   test_zero_row_3"LinprogCommonTests.test_zero_row_3a  s    !1ii##$56JJqMzz1&!T
zz!}atT![[$,,@3 <<J--!$ .r   c                   ^^r!\         P                  P                  R4      pVP                  V4      pVP                  W3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    l   F- r   r@  TNr  )r5   r6   r7   r   rf   rg   rj   r   r   r   rG  r   r   )r   rV   rC   rD   rN   rd   re   r   s   &       r   test_zero_row_4"LinprogCommonTests.test_zero_row_4p  s    !1ii##$45JJqMzz1&!T


1~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# )
rm   r   r@  TNrm   rm   rm   r    rm   rt   rt   rt   rt   r    rt   rt   rm   rm   rm   rm   )rm   r    r    r!   )
r   rd   re   rj   r   r   r   rG  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# )	rm   r   r   Nr  r  r  r  )rm   r    rm   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# )rm   Nr   r@  Tr  r  r  r4   rt   rt   rt   r  )rm   r    r   r!   r   r   r   r   	r   rf   rg   r   r   r   rG  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# )rm   r^   Nr   r   r  r  r  r  r  )rm   r          r!   r  )r   rf   rg   r   r   r/   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# )rm   r   Nr4   )r    r    rE  )r   rf   rg   rj   r   r   r   rj  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# )rm   r   r@  TN)r$  rq   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\  )	r5   r?   r   rf   rg   rj   r   r   r   rj  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 )rm   NFr@  rS  r   Nrm   )r   r   r   r   r   r   )r   rN   rj   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) unboundedr4   )rt   rt   rt   rm   r4   r4   rm   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   )rt   rt   rt   rt   rt   r4   r    r   rt   )r   r   r   r`  r`  r   r5   r?   r   rf   rg   r   r   r   lowerr   r   r+   r_   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  r4   )rt   rt   rt   rm   r4   rm   r  r  )rt   rt   rt   rt   rt   rm   r  )r   r   r   r`  r`  )Nrt   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  ru   rm   r4   rC  )r   rm   rt   )   r   rm   )rm   r  '  )rt   rt   r  ri  rj  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 )ru   r   r   r   blandrr  N)rv   9   rr   g      8@)r^   g      r   rr   )r^   g      r  rm   r  )rt   rt   rm   )rm   rt   rm   rt   )r5   r?   r   itemsr   rf   rg   rj   r   rG  r   r/   )	r   rN   rd   re   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                  R4      pVP                  V4      pVP                  W34      pVP                  V4      p^VR,          ,          VR&   VR;;,          R,          uu&   \        P                  ! 4       ;_uu_ 4        \        P
                  ! RR\        4       \        V\        \        WV\        V P                  V P                  R7      pRRR4       \        X4       R#   + '       g   i     L; i)	ru   l   $*P r  A_eq does not appear...r   N)r   r1   r4   )r4   r1   )r5   r6   r7   r&  r'  r(  r	   r   rd   re   rj   r   r   r   r  s   &       r   $test_remove_redundancy_infeasibility7LinprogCommonTests.test_remove_redundancy_infeasibility(  s     21ii##O4JJqMzz1&!zz!}$u+oURB$$&&##3_F!T4V!%dllDC '
 	3 '&s   AD  D	c                    \        4       w  rr4rVp\        WW4V\        V P                  V P                  R 7      p\        WVR7       R# )r   r   N)r~   r   rj   r   r   r/   	r   rN   rd   re   rf   rg   r|   r}   r   s	   &        r   test_nontrivial_problem*LinprogCommonTests.test_nontrivial_problem=  s@     5G4H1T6at4![[$,,@6Br   c                   \        ^^4      w  rp\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! RR\
        4       \        P                  ! R\        4       \        W1V\        \        \        V P                  V P                  R7      pRRR4       \        XRR7       R#   + '       g   i     L; i)r   r  $Solving system with option 'sym_pos'invalid value encounteredr   Nr   r   )r\   r&  r'  r(  r	   rT  simplefilterr   r   rf   rg   rj   r   r   r/   r  s   &    r   test_lpgen_problem%LinprogCommonTests.test_lpgen_problemE  s     !R(A$$&&##@/S##5~G!!(M:!4tV!%dllDC ' 	);< '&s   BC

C	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\         P                  ! 4       ;_uu_ 4        \         P                  ! R\        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  r   Ni  ư>r  )r,   r'   r&   )r    r!   rr      r!   rx   rn   rw   rt            r4   )rt      i!   rt   rt   i)r&  r'  r  r   r   rd   re   rj   r   r   r/   )r   rN   rC   prf   rg   r   s   &      r   test_network_flow$LinprogCommonTests.test_network_flowU  s5    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 +$$&&!!(M:!T4V!%dllDC ' 	4dC	 '&s    AC''C7	c                ~   . ROp^ ^.^ ^.^ ^.^ ^.^ ^..pR	^rCW3^ ^ ^ .V^ W3^ .^ WD^ V.^ ^ ^ WD..p. R
Op\         P                  ! 4       ;_uu_ 4        \        '       d   \         P                  ! R\        4       \         P
                  ! RR\        4       \         P
                  ! RR\        4       \         P
                  ! RR\        4       \         P                  ! R\        4       \        V\        \        WVVV P                  V P                  R7      pRRR4       \        X^R7       R#   + '       g   i     L; i)r    r  scipy.linalg.solve
Ill...r  Solving system with option...r   Nr   )r    r    rm   rx   rm   r4   )rz   rt   rt   r!   )r&  r'  has_umfpackr  r   r(  rT  r	   r   r   rd   re   r   r   r/   )r   rN   rj   rC   r  rf   rg   r   s   &       r   "test_network_flow_limited_capacity5LinprogCommonTests.test_network_flow_limited_capacityj  s+    FFFFF 111aO1OaO1aO	
 $$&&{%%h?##6H##3_F##9?L!!(M:!T4V!%dllDC ' 	, '&s   C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   rs   rz   )rx   r    rm   )r    r$  rx   irn  rj  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&   Nr5  r6  r7  r9  r:  )g     P@rt   g     1@rt   g     f@rt   r  r  s   &    r   test_enzo_example$LinprogCommonTests.test_enzo_example  sV     ! " atT![[$,,@"@!	.r   c                f   . ROp. RO. RO. R	O. R
O. RO.p. ROp\         P                  ! 4       ;_uu_ 4        \         P                  ! R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  r   Nr   )r  g333333@g%@r  g333333g%)r4   r4   r4   rt   rt   rt   )rt   rt   rt   rm   rm   rm   )rm   rt   rt   rm   rt   rt   )rt   rm   rt   rt   rm   rt   )rt   rt   rm   rt   rt   rm   )r  皙?333333?r  r  gRQ)r  g?        r  r   r  )r&  r'  r(  r	   r   rd   re   rj   r   r   r/   r  s   &    r   test_enzo_example_b&LinprogCommonTests.test_enzo_example_b  s    /%""""	$
 *$$&&##3_F!T4V!%dllDC '
 	"@	B '&s   AB  B0	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)r5   r   pir8   r@   cossinr   rd   re   rj   r   r   r/   r:   )r   rV   rN   tmprf   rg   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)r5   r   r#  r8   r$  r%  r@   r   rd   re   rj   r   r   r   )	r   rV   rN   r&  row0row1rf   rg   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*  Fr@  r   N)r5   r   r#  r8   r@   r$  r%  r   r   rd   re   rj   r   r   )	r   rV   rN   r&  rf   rg   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?r3  r3  r3  )r   rt   rt   rt   rt   rt   )r   rt   rt   rt   rt   rt   )rt   r   rt   rt   rt   rt   )rt   r   rt   rt   rt   rt   )r   r   rt   rt   rt   rt   )r   r   r   r   g      4@)r   rt   r4   rm   r4   rm   )rt   r   r4   rm   r4   rm   )r5   r?   r   rj   r   r   r/   
zeros_liker   rN   rd   re   rf   rg   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# )
rt   rd   re   rf   rg   rj   r   r   r   z%Optimization terminated successfully.gdy=r'   	marginalsresidualN)eqlinineqlinr  upper)rk   r   r   r   r   r   r   r   r(   r   r+   r*   r   r   keysr   r5   ndarray)	r   rN   rd   re   rf   rg   rj   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\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\
        4       \        P                  ! RR\        4       \        P                  ! R\        4       \        WuV\        \        VV P                  V P                  R7      pRRR4       \        XR&R	7       R#   + '       g   i     L; i)'rt   Ngףp=
?gffffff?g @r  r   r  r   r   )r   rt   r  rE  rE  rE  rE  rE  rt     rF  rF  rF  rF  rF  r   r   r   r   r   r   gqq?     grs   r4   )rm   gQrt   rt   rs   rt   rt   rt   r4   r4   rt   r4   r4   rm   rm   rt   rt   rt   rt   g333333)rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rm   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   r4   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   r4   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   r4   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   r4   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   r4   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   r4   )r  rt   rt   r  r  r  r  r  r  rG  rG  rG  rG  rG  rG  rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )r   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rt   rt   rt   rt   rt   rt   g^Z)r5   r?   r&  r'  r(  r	   rT  r  r   r   rf   rg   r   r   r/   )	r   rj   r  rQ  hrd   re   rN   r   s	   &        r   test_bug_5400 LinprogCommonTests.test_bug_5400  se   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$$&&##@/S##5~G!!(M:!4tV!%dllDC ' 	)<= '&s   BG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# )rm   g      @g    cANr   gfffff-@r   r  )r   r  r  )     @r  rM  rH  )r  g    .Ag    .Ar   )r$  g@r$  r5   r?   r   r   r   r/   )r   rN   rf   rg   rd   re   rj   r   s   &       r   test_bug_6139 LinprogCommonTests.test_bug_6139H  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\        P                  ! 4       ;_uu_ 4        \
        '       d   \        P                  ! R\        4       \        P                  ! RR\        4       \        P                  ! RR\        4       \        P                  ! RR\        4       \        P                  ! R\        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)rt   g%䃞?r  z%Solving system with option 'cholesky'r   r  r   Nr   r  )
rt   rt   rt   g(\?rt   ?rt   rt   g(\?rt   )
rt   rt   rt   zG?rt   rt   rt   gɿrt   g)\(̿)
rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )
rt   rt   rt   gQ?rt   rt   rt   rt   rt   rt   )
rt   gQ      пrt   rt   rt   g{Gz rt   rt   gQ?)
rt   rt   rt   rt   rt   rt   rt   rT  rt   rt   )gGz?rt   gjt?g+gI+)
gzG
ףp=
(\?r  gQտgGzGz?
ףp=
?g333333\(\)
Gz?g{Gz?gzG@gQ?rS  r^   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  r^   rW  rX  r[  rY  )r1   rt   r  )r5   r?   r`   r&  r'  r  r  r   r(  r	   rT  r   r   r   r   r/   r   r+   )r   rf   rg   rd   re   rj   rN   r   r,   r-   r'   s   &          r   test_bug_6690 LinprogCommonTests.test_bug_6690^  s   
 xx@ABxx!xx4*-9.
  xx9:MH
  1 	 HH   $$&&{%%h?##A?T##@/S##5~G!!(M:!4t!%dllDC ' %HH G H	J &,-suu5#%%!45+ '&s   	B;G??H	c                   \        ^4      w  rp p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! RR\
        4       \        P                  ! R\        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)	rx   r  r  r  r   N`4?r   r   )rO   r&  r'  r(  r	   rT  r  r   r   rd   re   rj   r   r   r/   r   dotr+   r   r5   r:   rR   )r   rf   rg   rN   _r   r,   s   &      r   test_bug_7044 LinprogCommonTests.test_bug_7044  s    
 +1oAq!$$&&##3_F##5~G!!(M:!T4V!%dllDC ' )5."((355::.5suu= '&s   BD77E	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# )!rm   r   Nr   ghb$[@r  r,   r'   )	r4   rt   rt   rt   rt   rt   rt   rt   rt   )	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\
        P                  ! 4       ;_uu_ 4        \
        P                  ! RR\        4       \
        P                  ! R\        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  r   Ntolg&.>绽|=r   r  re  )rk  i  iD4       3i)ii    @i  )ro  rt   rt   rn  rt   )rk  rt   rt   rp  rt   r   g )r5   r?   r:   rB   r   r&  r'  r(  rT  r  r   r   rf   rg   r   r   rG  r"   r/   )r   rd   re   rN   rj   r   s   &     r   test_bug_8174 LinprogCommonTests.test_bug_8174  s	    xx00%%	' (
 xx

1&WWTZZ]##DJJqM)$$&&##5~G!!(M:!4tV!%dllDC	 ' <<E4(50T[[I5M5c:C-@tL '&s   *A&E''E7	c                   \         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\        P                  ! 4       ;_uu_ 4        \
        '       d   \        P                  ! R\        4       \        P                  ! RR\        4       \        WW4V\        V P                  V P                  R7      pRRR4       \        XRR7       R#   + '       g   i     L; i)rm   r  r  r   Ng?E@r   )rm   rt   rt   rt   rt   rt   rt   r   )rm   rm   rm   rm   rm   rm   rt   )r  g?g?rt   rt   rt   r4   )r  rt   rt   rt   rt   rt   gUUUUUU)rt   rR  rt   rt   rt   rt   )rt   rt   r  rt   rt   rt   rt  )r5   r?   identityr&  r'  r  r  r   r(  r	   r   rj   r   r   r/   r5  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$$&&{%%h?##3_F!4tV!%dllDC ' 	)9: '&s   6A-D::E
	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# )rw   )rd   re   r   r   rr  N)rw   rt   rz         ?ry  )r!         @ry  r         )rm   r   r   r8  r^   )rx   r  r!   g      )rp   )r4   g      @r    r{  r   )rz  r    g      r4   g      #@)rt   rt   rt   rt   rm   )rt   rt   r  gUUUUUU@gUUUUUU#@)r5   r?   r   r   r   r/   rj  s   &    r   test_bug_8561 LinprogCommonTests.test_bug_8561  si    
 HH)*xx$##"#% & xx(a||![[*'=>r   c                   . ROp. R	O. R
O. RO. RO.p. ROp. ROpRp\         P                  ! 4       ;_uu_ 4        \        '       d   \         P                  ! R\        4       \         P
                  ! RR\        4       \         P                  ! R\        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^&   \         P                  ! 4       ;_uu_ 4        \        '       d   \         P                  ! R\        4       \         P
                  ! RR\        4       \         P                  ! R\        4       \        WV\        \        VV P                  V P                  R7      pRRR4       Rp\        XWXR7       \        XWXR7       R#   + '       g   i     EL
; i  + '       g   i     LB; i)ru   Ng      B@r  r  r   r   )r,   r&   )rv   ru   rq   rx   )rn   ry   rz   rq   )ry   rn   r!   ro   )rz   r!   rn   rz   )rx   rs   rs   rv   )rr   r  rz   )r   r   r   r   )rt   rt   r4   rt   r   )r&  r'  r  r  r   r(  rT  r   r   rf   rg   r   r   r=   r/   )	r   rN   rd   re   rj   r,   res1res2r&   s	   &        r   test_bug_8662 LinprogCommonTests.test_bug_8662  sc     " =#$$&&{%%h?##5~G!!(M:1D$f"&++t||ED ' 	M"A q	$$&&{%%h?##5~G!!(M:1D$f"&++t||ED ' +A+A1 '&& '&s   BGBGG	G,	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# )
rm   Nr   re  rp   ro   r   r   g۶m۶m?gI$I$@)r   rd   re   r   r   r/   rw  s   &     r   test_bug_8663 LinprogCommonTests.test_bug_86631  s[     FByt\*atT![[$,,@4yfEr   c                   ^.p^.^..p^^.p^ .R.^	..p. ROp\         P                  ! 4       ;_uu_ 4        \         P                  ! R\        4       \         P                  ! R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  r   Nry   rx   r    ru   )r&  r'  r  rT  r(  r	   r   rj   r   r   r   r5  s   &      r   test_bug_8664 LinprogCommonTests.test_bug_8664<  s     CaSz1vbTA3$$&&!!(N;##9?L!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   )rt   rt   rt   rm   r4   )rm   rt   rt   rt   rt   )rt   rm   rt   rt   rt   r   )r   r   r   r`  r`  )r5   r?   r   rf   rg   r   r   r/   r   r+   r*   r  s   &     r   test_bug_8973 LinprogCommonTests.test_bug_8973M  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   re  r   r   )	r5   r:   r?   r   rf   rg   r   r   r/   r  s   &     r   test_bug_8973_2"LinprogCommonTests.test_bug_8973_2^  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   re  r   r   r4   rs   r   r   )
r5   r:   r?   updater   r   rf   rg   r   r/   )r   rN   rd   re   rj   r
  r   s   &      r   test_bug_10124!LinprogCommonTests.test_bug_10124n  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\        P
                  ! 4       ;_uu_ 4        \        P                  ! R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  r   re  )rm   rm   rt   rt   rt   rt   )rt   rt   rm   rm   rt   rt   )rt   rt   rt   rt   rm   rm   )rm   rt   rm   rt   rt   rt   )rt   rt   rt   rm   rm   rt   )rt   rm   rt   rt   rt   rm   )      ru         f   )   \   r  r  rt   ru   )r5   r?   concatenater:   r&  r'  r(  r	   r   rd   re   rj   r   r   r/   )r   rf   rg   rN   r   s   &    r   test_bug_10349!LinprogCommonTests.test_bug_10349  s    
 xx++++++- . xx56NNAq"((1+.T:$$&&##3_F!T4V!%dllDC '
 	'@bQ '&s   AC66D	darwinz0Failing on some local macOS builds, see gh-13846reasonc                   . 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       \        P
                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        '       d   \        P                  ! R\        4       \        P                  ! RR\        4       \        P                  ! RR\        4       \        P                  ! RR\        4       \        P                  ! RR	\        4       \        P                  ! RR
\        4       \        P                  ! R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  r  zdivide by zero encountered...zoverflow encountered...zinvalid value encountered...Ill-conditioned matrix...An ill-conditioned...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  r  r   rT  r   r   rd   re   rj   r   r*   )r   rN   rf   rg   r
  r   s   &     r   test_bug_10466!LinprogCommonTests.test_bug_10466  so    NDDDEDDDDDD	F 
 {{%%g..d#A	$$&&##9?L{%%h?##6H##9>K##3^E##8.J##5}F##1=B !T4V!%a9C% '( 	-) '&s   DF<<G	r{   N)Y__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   r   r  r  r)  r2  r=  rJ  rM  rY  r]  rb  rf  rk  ro  rs  rx  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-  r0  r6  rB  rJ  rO  r\  rb  rh  rq  rv  r|  r  r  r  r  r  r  r  r   markskipifsysplatformr  __static_attributes____classdictcell____classdict__s   @r   r   r   m  s    $=	.@));2 2$O:B'%@%.')R
%F
@F
/;G;GGN   "=%6,,%%
%,%.	 %# A(A(
L92 *C= D* -D	..(B$	C" #"D.6>p:,,6\>('@RM0;2?"$BL	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                   2  a  ] tR tRt o R t]P                  P                  RRR/RR/RR/RR/RR/R	R/R
R/RR/.4      R 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   Nrs   r   r   r   )r5   r?   r   NotImplementedErrorr   r   r/   )r   r   rN   rd   re   r   s   &     r   r   LinprogHiGHSTests.test_callback  sn    	HHb"XAAA')7At!++	7akkB1a&Ar   r   r   r   r@  r   dual_feasibility_toleranceprimal_feasibility_toleranceipm_optimality_tolerance!simplex_dual_edge_weight_strategyekkic                   a  V 3R  lpVP                  S P                  4       \        P                  ! \        4      ;_uu_ 4        V! VR7       RRR4       R#   + '       g   i     R# ; i)c                 8   < \        ^SP                  V R7       R# )rm   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   r  s   f& r   test_invalid_option_values,LinprogHiGHSTests.test_invalid_option_values  s>    	<t||$\\/**g +***s   
AA*	c           	         \        ^\        P                  P                  R4      R7      w  rp pRp\	        W1VWPP
                  V P                  R7      p\        VP                  ^ 8H  V P
                  R8g  4       R# )r!   i(! rD   rB  r  Nr   )	rO   r5   r6   r7   r   r   r   r   crossover_nit)r   rf   rg   rN   ra  rj   r   s   &      r   test_crossover LinprogHiGHSTests.test_crossover  sg    *1"))2G2G2PQ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)rt   ra   r9  c           
      P   < \        SSV SSSSP                  R 7      P                  # r   r   r   r*   )r+   rf   rd   rg   rj   rN   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+   rf   rd   re   rj   rN   r   s   &r   f_beq/LinprogHiGHSTests.test_marginals.<locals>.f_beq2  s(    1dD$6"&++//2s3r   c           
         < \         P                  ! V S.4      P                  p\        SSSSSVSP                  R 7      P
                  # r  r5   r?   r`   r   r   r*   )	r+   rj   rf   rd   rg   re   rN   r   ri   s	   & r   f_lb.LinprogHiGHSTests.test_marginals.<locals>.f_lb:  s@    XXq"g&((F1dD$f"&++//2s3r   r  )invalidNc           
         < \         P                  ! SV .4      P                  p\        SSSSSVSP                  R 7      P
                  # r  r  )	r+   rj   rf   rd   rg   re   rN   rh   r   s	   & r   f_ub.LinprogHiGHSTests.test_marginals.<locals>.f_ubG  s@    XXr1g&((F1dD$f"&++//2s3r   )rk   r   r   r   r`   r
   r*   r   r>  r;  r=  r5   errstateisfiniter  r?  )r   r   r  dfdbubr  dfdbeqr  dfdlbr  dfdubrf   rd   rg   re   rj   rN   rh   ri   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)rk   r   r   r   r`   r>  r;  r=  r?  r  r   )	r   rN   rd   re   rf   rg   rj   r   resids	   &        r   test_dual_feasibility'LinprogHiGHSTests.test_dual_feasibilityR  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)	rk   r   r   r   r5   allcloser>  r;  r+   r   s   &       r   test_complementary_slackness.LinprogHiGHSTests.test_complementary_slackness`  sd    ,;,D)Tat#KKO {{3;;00D#%%<4GH!LLLLr   z&Upstream / Wrapper issue, see gh-20589r  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?r2   )rB   )rd   re   rf   rg   rj   )     @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  )r5   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_eqrg   rN   resultr+   n_r_xn_rs   &                r   test_bug_20336 LinprogHiGHSTests.test_bug_20336k  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{   Nr4   )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                   D   a a ] tR tRt oR tR tR tV 3R l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.  r6  r  r  __classcell__r5  r  s   @@r   r%  r%    s     66
$ $r   r%  c                   >   a a ] tR tRt oR tR tV 3R l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  r6  r  r  r:  r;  s   @@r   r=  r=    s     '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V 3R	 ltR
 tR tRtVtV ;t# )TestLinprogSimplexNoPresolvei  c                    R R/V n         R# )r@  FNr  r   s   &r   r'  )TestLinprogSimplexNoPresolve.setup_method  s    "E*r   linuxz"Fails with warning on 32-bit linux)	conditionr  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'  r5   intpitemsize	is_32_bitr  r  r   is_linuxr   r  r  rJ  rM  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 testr  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)r  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\        P                  ! 4       ;_uu_ 4        \        '       d   \        P                  ! R\
        4       \        P                  ! RR\        4       \        P                  ! RR\        4       V P                   Uu/ uF  qfV P                  V,          bK  	  ppRVR&   \        V\        \        WVV P                  VR7      pRRR4       Rp	\        XV	R	7       R# u upi   + '       g   i     L&; i)rx   r  zMatrix is exactly singularr  Fr@  r   Nr_  r   r   )rO   r&  r'  r  r  r   r(  r   r	   r   r   rd   re   r   r/   )
r   rf   rg   rN   ra  rj   r	  r
  r   r,   s
   &         r   $test_magic_square_sparse_no_presolve8TestLinprogIPSparse.test_magic_square_sparse_no_presolve2  s    *1oAq!$$&&{%%h?##68IK##9?L 48<<@<Cdll3''<A@!AjM!T4V!%a9C ' )5 A '&s   A.DC>:+D>DD	c                   \        ^4      w  rp p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! RR\        4       V P
                   Uu/ uF  qUV P
                  V,          bK  	  ppR	pV F=  pWR&   \        V\        \        W\        V P                  VR7      p	Rp
\        WR7       K?  	  RRR4       R# u upi   + '       g   i     R# ; i)
rx   r  r  zInvalid permc_spec option
permc_specr   r_  r   N)NATURALMMD_ATAMMD_AT_PLUS_ACOLAMDr   )rO   r&  r'  r(  r	   r   r   rd   re   rj   r   r/   )r   rf   rg   rN   ra  r	  r
  permc_specsrz  r   r,   s   &          r   test_sparse_solve_options-TestLinprogIPSparse.test_sparse_solve_optionsG  s    *1oAq!$$&&##3_F##5H37<<@<Cdll3''<A@7K *
",,atT%)[[!=0= * '&
 A '&&s   AC'5C"AC'"C''C8	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# )TestLinprogIPSparsePresolvei\  r   Tr   r  rl  r  rm  c                $   < \         SV `  4        R # r   r`  r4  s   &r   rO  )TestLinprogIPSparsePresolve.test_bug_6139_  rp  r   c                2    \         P                  ! R 4       R# )z6_sparse_presolve=True incompatible with presolve=FalseNr  r   s   &r   r0  BTestLinprogIPSparsePresolve.test_enzo_example_c_with_infeasibilityi  s    LMr   rq  c                $   < \         SV `  4        R # r   rs  r4  s   &r   r\  )TestLinprogIPSparsePresolve.test_bug_6690l  ru  r   r{   )r  r  r  r  r   r   r  r  r  r  r  rO  r0  r  r\  r  r  r:  r;  s   @@r   r  r  \  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	# )
TestLinprogIPSpecificir  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   rL   rM   rN   r  r  s   &      r   test_solver_select(TestLinprogIPSpecific.test_solver_selectx  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# )
rm   Nr@  Fr   TrS  r   r4   r  )r   r   r/   ra  s   &   r   )test_unbounded_below_no_presolve_original?TestLinprogIPSpecific.test_unbounded_below_no_presolve_original  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_cholesky  s7    2r"aaa)402);<r   c                   \        ^^4      w  rp\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! RR\
        4       \        P                  ! RR\        4       \        P                  ! R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  r  r  ipTr   r   Nr   r   )
r\   r&  r'  r(  rT  r	   r   r   r   r/   r   s   &    r   test_alternate_initial_point2TestLinprogIPSpecific.test_alternate_initial_point  s    2r"a$$&&##6H##9?L##5}F##1=B !!KK#'vt"<>C ' 	);< '&s   BCC!	c                   ^.p^.^..p^^.p^ .R.^	..p. R	Op\         P                  ! 4       ;_uu_ 4        \         P                  ! R\        4       \         P                  ! R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  r  r@  Fr   Nr   ry   r  )r&  r'  r  rT  r(  r	   r   rj   r   r   r   r5  s   &      r   r  #TestLinprogIPSpecific.test_bug_8664  s    CaSz1vbTA3$$&&!!(N;##9?L!4tV!%z56IKC	 ' 	CKK!?@ '&s   AB55C	r{   N)r  r  r  r  r   r  r  r  r  r  r  r  r  s   @r   r  r  r  s*     F0-==$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   rj   r   r   r/   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   r/   r   r   
r   rN   rd   re   rf   rg   r|   r}   rj   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  rm   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/?rt   r  g@Q$@)r   r  r   r  )	r~   r5   r?   r   r   r   r/   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# rm   r  N)rm   r    rx   r^   r~   r   rj   r   r   r   r   
r   rN   rd   re   rf   rg   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           
     .   \         P                  P                  R 4      p\        ^VR7      w  r#p pVP                  VP                  4      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! RR\        4       \
        P                  ! RR\        4       \
        P                  ! R\        4       \        WBW0P                  R7      p\        WBW0P                  VP                  R7      p\        WF,           W#V P                  VP                  R7      p	RRR4       \        XXP                   R7       \#        VP$                  ^ 4       \        X	4       \'        V	P$                  VP$                  8  4       R#   + '       g   i     Ll; i)	l   %4| r  r  r  r  )rf   rg   r   )rf   rg   r   r  Nr   )r5   r6   r7   rO   rB   r&  r'  r(  r	   rT  r  r   r   r   r+   r/   r*   r   r   r   )
r   rD   rL   rM   rN   ra  r  r   r  res3s
   &         r   %test_redundant_constraints_with_guess9TestLinprogRSCommon.test_redundant_constraints_with_guess  s   ii##O4$QC0aAJJqww$$&&##3_F##5~G!!(M:!!KK@C11[[SUUKD15qOD ' 	#''2TXXq!377"# '&s   *B6FF	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.
)rd   re   rj   r   r   Nr  gư)r   r   r   r   r   r   r   r+   r5   allr   r_   )r   rN   rd   re   r   r   rh   ri   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  runr  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!   rN   rf   rg   rj   r   r   r  r1   Nr  r:  r   r4   )rO   r   r   r   r>   r+   r9   r5   r}  r  r   diaground)r   rC   rL   rM   rN   rF   rE   rj   r   r   ssquares   &           r   	test_mip1TestLinprogHiGHSMIP.test_mip13	  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   ry   r4   rs   )r5   r?   r_   r   	ones_liker   r   r  r   r+   r*   r  s   &      r   	test_mip2TestLinprogHiGHSMIP.test_mip2M	  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# )rm   r  Nr4   r  r   )r5   r?   r_   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# )rm   r  g      @Nr4   r   rz   )r  ir   )
r5   r?   r_   r   r   r   r  r   r+   r*   r  s   &      r   	test_mip4TestLinprogHiGHSMIP.test_mip4q	  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# )rm   )rN   rd   re   rf   rg   rj   r   r   mip_node_countNmip_dual_boundmip_gapr  )r!   r    rm   )rs   r   r4   r   rD  )rt   rq   rt   i)
r5   r?   r_   r   r   r  r   r+   r*   rG  )	r   rd   re   rf   rg   rN   rj   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     rx   r  r  '   r	  r     r           r
  r        r  &   r  r  )   r  r  r  r
  r  r	  r  i  i(  i:,  i/  r    ru   r     rw   r$  rw   rx   )r5   r?   r_   r   r   r  r   r*   )r   rf   rg   rN   rj   r   r   s   &      r   	test_mip6TestLinprogHiGHSMIP.test_mip6	  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)	rN   rd   re   rf   rg   rj   r   r   r   r  Nr  r  r  r  r  r  )r^   g      ?g{Gz?r
  )r5   r?   r_   r   rd   re   r   r=   diffflipr  )r   rf   rg   rN   rj   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   r^   ry  r   )rj   r   r   N)r   r   r4   r4   )r    rx   r    rx   )rt   rt   ry  rm   )r5   r?   r   r  r   r+   r   )r   rN   rj   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   Nr4   r   )r   r5   r  r   r+   )r   rN   rd   re   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# )TestRRPivoti1
  r   r  r{   Nrd  r{   r   r   r*  r*  1
  s    G$Gr   r*  c                       ] tR tRtRR/tRtR# )TestRRIDi5
  r   IDr{   Nrd  r{   r   r   r,  r,  5
  s    D!Gr   r,  )NN:0yE>r.  r   )rt   )rt   rn   rr   r  )Vr  r  r  r&  numpyr5   numpy.exceptionsr   numpy.testingr   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"   r/   rO   r\   rk   r~   r   r   r   r   r   r   r   rd   re   rf   rg   rj   r   r  r(  r  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<     s       6. . * 3 5 1 &  . 4
LFEK.(?D6- 5 F4>9>%*#ZE 	Z. Z.D+ 89,  : 89B' B :B 898' 8 :8:s$* s$v$ 3 $*(1 ("%;#6 %;Z	  	  5^ 5 N^ N9>. 9>x .  , 89CA CA :CAV?$. ?$D! !7"3 78+ ~% ~%L 895 5 :52n 2> $n $. 892 2 :2# #%' %"w "}P  K  Ks$   J 
J 	JJ	J,+J,