
    \hM#                        S SK Jr  S SKJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJrJrJrJrJrJrJrJrJ r J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'J(r(J)r)  \#" S5      r*\#" S5      r+S r,S r-S r.S r/g)    )Rational)EqNe)symbols)sympify)S)randomchoice)sqrt)	randprime)Matrixlinear_eq_to_matrix)
_lp_primal_dualUnboundedLPErrorInfeasibleLPErrorlpminlpmax_m_abcd_simplexlinprog)import_module)raises)xyznumpyscipyc            
        ^^^ [         S[        -  -   S:*  m[        * S[        -  -
  S:*  mS[        -  [         -   S[        -  -   S:*  mTTT[        S:  [         S:  [        S:  /n [        * [         -
  S[        -  -
  n[        [        X5      =nu  p4U[        X5      :X  d   eUR                  U5      U:X  d   eU  H  nUR                  U5      S:X  a  M   e   [        [         -
  S[        -  -   S:*  m[        * S[         -  -   S[        -  -
  S:*  mS[        -  [         -   S[        -  -
  S:*  mTTT[        S:  [         S:  [        S:  /n [        * [         -
  S[        -  -
  n[        [        X5      =nu  p4U[        X5      :X  d   eUR                  U5      U:X  d   eU  H  nUR                  U5      S:X  a  M   e   [        [         -
  S[        -  -   S	:*  m[        * S[         -  -   S[        -  -
  S
:*  mS[        -  [         -   S[        -  -
  S:*  mTTT[        S:  [         S:  [        S:  /n Sn[        * [         -
  S[        -  -
  U-   n[        [        X5      =nu  p4U[        X5      :X  d   eUR                  U5      U:X  d   eU  H  nUR                  U5      S:X  a  M   e   [        S5      =nu  ppX-
  SU
-  -
  U-
  S:*  mSU-  U
-   SU-  -
  S:*  mSU-  U	-   U-   S:*  mUSU	-  -
  SU
-  -
  U-
  TTT/U Vs/ s H  oS:  PM	     sn-   p[        [        X5      =nu  p4U[        X5      :X  d   eUSUSU	SU
SUS04:X  d   e[        [         -
  S[        -  -   S	:*  m[        * S[         -  -   S[        -  -
  S
:*  mS[        -  [         -   S[        -  -
  S:*  mTTT/[        [         [        4 Vs/ s H  oS:  PM	     sn-   n [        * [         -
  S[        -  -
  n[        [        X5      u  p4UR                  U5      U:X  d   eU  H  nUR                  U5      S:X  a  M   e   [        [         -
  [        S5      [        -  -   S	:*  m[        * S[         -  -   S[        -  -
  S
:*  mS[        -  [         -   S[        -  -
  S:*  m[        [        UUU4S j5        [        S:  m[        [        U4S j5        [        S:*  m[        [        UU4S j5        [        S:  m[        [        U4S j5        [        [        S5      m[        [        U4S j5        SS jn[        [        [         5      m[        [         [        5      m[        S:*  mTTT/n [        n[        [        X5      =nu  p4U[        X5      :X  d   eUR                  U5      U:X  d   eU  H  nUR                  U5      S:X  a  M   e   g s  snf s  snf )N            r   T   
   x1 x2 x3 x4      g       @g      @c                  X   > [        [        [        * [        -
  S[        -  -
  T TT/5      $ )Nr&   )lpmaxr   r   r   )r1r2r3s   X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/solvers/tests/test_simplex.py<lambda>test_lp.<locals>.<lambda>Y   s"    bqbd1Q3hR=    c                  0   > [        [        [        T /5      $ Nr/   r0   r   r1   s   r4   r5   r6   \   s    RQ%5r7   c                  2   > [        [        [        T T/5      $ r9   r:   )r1   r2   s   r4   r5   r6   ^   s    ba"b&:r7   c                  0   > [        [        [        T /5      $ r9   r:   r;   s   r4   r5   r6   b       ba".r7   c                  0   > [        [        [        T /5      $ r9   r:   r;   s   r4   r5   r6   f   r?   r7   c                    ^^ U4S jm[        SU S-   -  5      n[        U5       Vs/ s H   n[        U4S jU 5       5      T" 5       :*  PM"     nn[        U4S jU 5       5      nXeU4$ s  snf )Nc                     > [        5       T:  a  [        S5      $ [        S5       V s/ s H  n [        SS5      PM     sn u  p[	        X5      [        SS/5      -  $ s  sn f )Nr   r"      r<   r-   )r	   r   ranger   r   r
   )_int1int2sparsitys      r4   rand2test_lp.<locals>.make_random_problem.<locals>.randi   sU    x("qz!5:1X>X)As+X>JDD'Aw77 ?s   Azx1:%sr-   c              3   8   >#    U  H  nT" 5       U-  v   M     g 7fr9    .0r   rI   s     r4   	<genexpr>7test_lp.<locals>.make_random_problem.<locals>.<genexpr>o   s     8iDF1Hi   c              3   8   >#    U  H  nT" 5       U-  v   M     g 7fr9   rL   rM   s     r4   rO   rP   q   s     6Iq
IrQ   )r   rD   sum)nvarnum_constraintsrH   	variablesrE   constraints	objectiverI   s     `    @r4   make_random_problem$test_lp.<locals>.make_random_problemh   st    	8
 Gtax01	 %o 68 61 8i88DFB 6 	 86I66	y008s   'A))r"   r"   g?)r   r   r   r/   r0   r   subsr   r   r   	TypeErrorr   r   r   r   )rW   rX   ansoptimumargmaxconstrconstvx1x2x3x4irY   r1   r2   r3   s                 @@@r4   test_lprh      s   	
QqSAB
acRB	
1q1Q3!	Br2qAvqAvqAv6KQQIsI;;C/'%	////>>&!W,,,{{6"d***  
Q1	B
acAaC2	B	
1q1Q3"	Br2qAvqAvqAv6KQ1IsI;;C/'%	////>>&!W,,,{{6"d***  
Q1	B
acAaC1	B	
1q1Q3"	Br2qAvqAvqAv6KE1QqSIsI;;C/'%	////>>&!W,,,{{6"d***  !//A	1R4"		!B	
2AbDA	B	BbA	B!B$Y2-2RRLD1QD 5{sI;;C/'%	////1r1b!RB23333 
QQ"	B
acCE	Q	B	
1q1Q3"	Br2,1a)!<)Qq&)!<<K1QqSIi5OG>>&!W,,,{{6"d***  
Qa1		"B
acAaC1	B	
1q1Q3"	B
9=>	
aB
56	
bB
:; 
QB
9./ 
AqB
9./
1 
AqB	AqB	
aBr2,KIsI;;C/'%	////>>&!W,,,{{6"d*** sD "=s   V97V>c                  r  ^^^^^ SS/SS/SS/SS/// SQSS//S//n [        [        U 6 SS9u  pp4[        XU* U* 5      SSS	// S
Q4:X  d   e[        XU* U* SS9S/ S
QSS/4:X  d   e[        / // S//S/5      SS// 4:X  d   e[        [        [
        -
  [        [
        S	-   :*  [        [
        S	-   :  [        S:  [
        S:  /5      S	[        S	[
        S04:X  d   e[        [        [
        -
  [        [
        S	-   :*  [        [        [
        S	-   5      [        S:  [
        S:  /5      S	[        S	[
        S04:X  d   e[        [        [
        -
  [        [
        S	-   :*  [        [        S	5      /5      S	[        S	[
        S04:X  d   e[        [
        [        [
        S	5      /5      S	[
        S	04:X  d   e[        [
        [        [
        S	-   :*  [        [
        S	-   :  [
        S:  /5      S[        S	[
        S04:X  d   e[        [
        S[
        S	-   :*  S[
        S	-   :  /5      S[
        S04:X  d   e[        [
        S[
        S	-   :*  S[
        S	-   :  [
        S:*  /5      S[
        S04:X  d   e[        [        [
        S:  [        [
        :  /5      S[        S[
        S04:X  d   e[        [        [
        S:  [        [
        [        -   :  [        S:  [        S:  /5      S[        S[
        S[        S04:X  d   e[        S5      =mu  mmmm[        [        UUUUU4S j5        [        nST-  T-   ST-  -   T-
  nST-  S	T-  -   ST-  -   TS-   -
  n U S:*  /[        ST-  T-   S	5      [        T* T-   S	T-  -   S5      /-   nU" UT5      u  pU" U T5      u  pU" USS  T5      u  p[        S5      S	-  S[        S5      S	-  S[        S5      S	-  /4n[        XXUSS9U:X  d   e[        XgTS:  TS:*  TS:  TS:*  TS:  TS:*  TS:  TS:*  /-   5      nUS   [        US   R!                  5       5      4U:X  d   eg )Nr-   r<   r   )r&   r-   r"   r<   F)listir#   r"   )r-   r   r   r   T)dualr&   r$   r+   c            	         > [        ST-  ST-  -
  ST-  -   S-   ST-  ST-  -
  S:*  T* ST-  -
  ST-  -   S:*  S	T-  T-
  ST-  -   S
:*  /T V s/ s H  o S:  PM	     sn -   5      $ s  sn f )N	   r)   r#      r&   r"   r   r*   r(   )r   )rg   rb   rc   rd   re   rf   s    r4   r5   test_simplex.<locals>.<lambda>   s    e	"qtadQ	
2"		ad
QrTR
2
AbDB	 34"51a61"5	6'7 #6s   A$r,   rm   )r   r-   bounds)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   values)LABCDMfcondcdabaeqbeqr]   lpansrb   rc   rd   re   rf   s                   @@@@@r4   test_simplexr      s   
Q"a1a&2q'*
Q			A
 r1vE*JA!A1"qb!b1a&,%????A1"qbt,q!f1    RDaSE1#&1qc2,666 Qa!eQ!a%Zaa@ 
!Q1  Qa!eR1q5\1616B 
!Q1  Qa!eR1X./A1a|3DDDDR1XJA1v;... Q!a%Za!eQ!V4 
!Q1   Q!a%Za!e,-"q"g>>>Q!a%Za!eQ!V4 
1b']   Q!VQ!V$%!aAq\)::::Q!VQ!a%Zaa8 
!Q1a#$% % %
 !//ABB
 7 7 8 	A	"r	AbD2A	"qtadb1f%AF8r!B$)Q'RC"HqtOQ)?@@DQ7DAQ7DAab1~HCQ46AqtAvq!A$q&)
*C1V4;;;!R1WbAg
aq"'27B!GR1W> > ?E!Hd58??,-.#555r7   c            	      V   [        S5      =n u  pp4SS//S/SS//S/4nU Vs/ s H  n[        U5      PM     snu  pxp[        Xx/X//5      n[        U5      S   u  p[        XU S S  Vs/ s H  ofS:  PM	     sn-   5      nUSUSUS04:X  d   U5       eSS/SS//SS/SS//S/4nU Vs/ s H  n[        U5      PM     snu  pxp[        Xx/X//5      n[        U5      S   u  p[	        XU SS   Vs/ s H  ofS:  PM	     sn-   5      nUSUSUS04:X  d   eg s  snf s  snf s  snf s  snf )Nzx1 x2 y1 y2r-   r<   r"   r   r$   )r   r   r   r   r   )rb   rc   rd   y1y2rt   rg   r~   r   r|   r}   mrz   r`   r]   s                  r4   test_lpmin_lpmaxr      ss    //A
R	A3!Q1#%A%&'Q&)Q'JA! AQ"IA
QrU3U!VU33
4C2Ar1~&&*s*&
R1a&Aq6QF8aS0A%&'Q&)Q'JA! AQ"IA
QrsV4V!VV44
5C2Ar1~&&&& ( 4 ( 5s   D*D*D!1D&c            
         [        S5       GHL  n U (       d  S nOS n[        S5      =nu  p4nX4-   SU-  -
  nU" Xb5      S   nSU-  SU-  -   SU-  -
  S:*  SU-  U-
  S	U-  -   S
:*  US:  US:  US:  /nU" U V	s/ s H  oR                  U	R                  -
  PM     sn	U5      n
[	        S
5      * S-  SS[	        S5      S-  /4n[        Xh5      US   [        [        X+S   5      5      4:X  d   e[        U/U
Q76 U:X  d   eUS-  nU" Xb5      S   n[        USU-  -
  S5      /nU" U V	s/ s H  oR                  U	R                  -
  PM     sn	U5      nS[	        S5      S-  -
  SS[	        S5      S	-  /4n[        XhU-   5      US   [        [        X+S   5      5      4:X  d   e[        U/U
QUQ76 US   S-
  US   4:X  d   eXT-
  [        R                  :*  /nU" U V	s/ s H  oR                  U	R                  -
  PM     sn	U5      nS[	        S	5      S-  -
  S[	        S5      S-  [	        S5      S-  /4n[        XhU-   5      US   [        [        X+S   5      5      4:X  d   e[        U/U
QUQ76 US   S-
  US   4:X  d   eSSS [        R                  4/nSSS[        R                  /4n[        XhU[        R                  :*  /-   5      US   [        [        X+S   5      5      4:X  d   e[        U/U
Q7SU06US   S-
  US   4:X  d   e[        U/U
Q7SUR                  U5      US   006US   S-
  US   4:X  d   eXT-
  [        R                  :*  /nGMO     [        S/// / SS9SS/4:X  d   e[        S// / SS9SS/4:X  d   e[        S/SS9SS/4:X  d   e[        SS/SS//S/SS0S9SSS/4:X  d   e[        SS/SS//S/SS0S9SSS/4:X  d   eg s  sn	f s  sn	f s  sn	f )Nr"   c                     [        X5      $ r9   r   )r~   r   s     r4   r5   test_linprog.<locals>.<lambda>   s
    06r7   c                 p    [        [        X5       Vs/ s H  o"R                  5       PM     sn5      $ s  snf r9   )tupler   tolist)r~   r   rg   s      r4   r5   r      s0    U$7$=$?$=q
$=$? @ $?s   3zx1:4r   r%   r,   r#   r*   rn   r&   r-   rm         )r   Nrr   r<   )r"   r#   rq   )NNr$   )r#   Nr'   )rD   r   ltsgtsr   r   dictzipr   r   lhsrhsHalfindex)dory   rb   r   r   r   rz   r|   ineqrg   abr]   eqabeqrr   s                  r4   test_linprogr      s   Ah6A@A fo%GA!EAaCKaGAJ!ac	AaC1$aC!GbdNaFAFAF$ t,t!t,a0!uQwAqtAv'Q~#a&$s1!f~*>!????q2#%%%	QaGAJQqS!n,A%%!%%-,a01Q46zAq!A$r'?+Qr	"s1vtCq6N/C&DDDDq%2%%#a&1*c!f)====eqvvo,A%%!%%-,a01R57{Q!Q"b12Qr	"s1vtCq6N/C&DDDDq%2%%#a&1*c!f)====Yqvv71a.!QQVV},-FDQA(2* * 	* *q-2-f-#a&1*c!f1EEEEq 2 qwwqz6":&> a&1*c!f%& 	& &eqvvoQ T QC5"b0QH<<<A3Bv.1qc(:::A3v&1qc(222Ar7aVHqc1\2B 
1a&\  Ar7aVHqc1Y- 
1a&\  C - - -s   :"O
*"O 
"O%
N)0sympy.core.numbersr   sympy.core.relationalr   r   sympy.core.symbolr   sympy.core.sympifyr   sympy.core.singletonr   sympy.core.randomr	   r
   (sympy.functions.elementary.miscellaneousr   sympy.ntheory.generater   sympy.matrices.denser   sympy.solvers.solvesetr   sympy.solvers.simplexr   r/   r   r   r   r   r   r   r   r   r   sympy.external.importtoolsr   sympy.testing.pytestr   	sympy.abcr   r   r   npr    rh   r   r   r   rL   r7   r4   <module>r      sm    ' ( % & " , 9 , ' 6" " " 5 '   7gd+N86v'"1r7   