
    gM#                     &   d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)Z)  e#d          Z* e#d          Z+d Z,d Z-d Z.d Z/dS )    )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            
      ,   t           dt          z  z   dk    t           dt          z  z
  dk    dt          z  t           z   dt          z  z   dk    t          dk    t           dk    t          dk    g} t           t           z
  dt          z  z
  }t          t          ||           x}\  }}|t          ||           k    sJ |                    |          |k    sJ | D ]}|                    |          dk    sJ t          t           z
  dt          z  z   dk    t           dt           z  z   dt          z  z
  dk    dt          z  t           z   dt          z  z
  dk    t          dk    t           dk    t          dk    g} t           t           z
  dt          z  z
  }t          t          ||           x}\  }}|t          ||           k    sJ |                    |          |k    sJ | D ]}|                    |          dk    sJ t          t           z
  dt          z  z   d	k    t           dt           z  z   dt          z  z
  d
k    dt          z  t           z   dt          z  z
  dk    t          dk    t           dk    t          dk    g} d}t           t           z
  dt          z  z
  |z   }t          t          ||           x}\  }}|t          ||           k    sJ |                    |          |k    sJ | D ]}|                    |          dk    sJ t          d          x}\  }}	}
}||	z
  d|
z  z
  |z
  dk    d|z  |
z   d|z  z
  dk    d|z  |	z   |z   dk    |d|	z  z
  d|
z  z
  |z
  gd |D             z   } }t          t          ||           x}\  }}|t          ||           k    sJ |d|d|	d|
d|difk    sJ t          t           z
  dt          z  z   d	k    t           dt           z  z   dt          z  z
  d
k    dt          z  t           z   dt          z  z
  dk    gd t          t           t          fD             z   } t           t           z
  dt          z  z
  }t          t          ||           \  }}|                    |          |k    sJ | D ]}|                    |          dk    sJ t          t           z
  t          d          t          z  z   d	k    t           dt           z  z   dt          z  z
  d
k    dt          z  t           z   dt          z  z
  dk    t          t          fd           t          dk    t          t          fd           t          dk    t          t          fd           t          dk    t          t          fd           t          t          d          t          t          fd           dd}t          t          t                     t          t           t                    t          dk    g} t          }t          t          ||           x}\  }}|t          ||           k    sJ |                    |          |k    sJ | D ]}|                    |          dk    sJ d S )N            r   T   
   x1 x2 x3 x4      c                     g | ]}|d k    	S r    .0is     \/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/solvers/tests/test_simplex.py
<listcomp>ztest_lp.<locals>.<listcomp>D   s/     D D DQD D D    g       @g      @c                     g | ]}|d k    	S r1   r2   r3   s     r6   r7   ztest_lp.<locals>.<listcomp>N   s    !<!<!<Q!q&!<!<!<r8   c                  h    t          t          t           t          z
  dt          z  z
   g          S )Nr(   )lpmaxr   r   r    )r1r2r3s   r6   <lambda>ztest_lp.<locals>.<lambda>Y   s'    bqbd1Q3hR== r8   c                  <    t          t          t           g          S Nr;   r<   r   r=   s   r6   r@   ztest_lp.<locals>.<lambda>\   s    RQ%5%5 r8   c                  >    t          t          t           g          S rB   rC   )r=   r>   s   r6   r@   ztest_lp.<locals>.<lambda>^   s    ba"b&:&: r8   c                  <    t          t          t           g          S rB   rC   rD   s   r6   r@   ztest_lp.<locals>.<lambda>b       ba".. r8   c                  <    t          t          t           g          S rB   rC   rD   s   r6   r@   ztest_lp.<locals>.<lambda>f   rH   r8   皙?c                     fdt          d| dz   z            fdt          |          D             }t          fdD                       }||fS )Nc                      t                      k     rt          d          S d t          d          D             \  } }t          | |          t	          ddg          z  S )Nr   c                 .    g | ]}t          d d          S )r      r   )r4   _s     r6   r7   zFtest_lp.<locals>.make_random_problem.<locals>.rand.<locals>.<listcomp>l   s"    >>>)As++>>>r8   r$   rE   r/   )r	   r   ranger   r
   )int1int2sparsitys     r6   randz2test_lp.<locals>.make_random_problem.<locals>.randi   sZ    xx(""qzz!>>U1XX>>>JD$D$''Aw77r8   zx1:%sr/   c                 ^    g | ])}t          fd D                                    k    *S )c              3   2   K   | ]}             |z  V  d S rB   r2   r4   r   rT   s     r6   	<genexpr>zBtest_lp.<locals>.make_random_problem.<locals>.<listcomp>.<genexpr>o   s-      88DDFF1H888888r8   )sum)r4   rO   rT   	variabless     r6   r7   z8test_lp.<locals>.make_random_problem.<locals>.<listcomp>o   sQ     8 8 8 8888i88888DDFFB 8 8 8r8   c              3   2   K   | ]}             |z  V  d S rB   r2   rW   s     r6   rX   z7test_lp.<locals>.make_random_problem.<locals>.<genexpr>q   s-      66q
666666r8   )r   rP   rY   )nvarnum_constraintsrS   constraints	objectiverT   rZ   s     `  @@r6   make_random_problemz$test_lp.<locals>.make_random_problemh   s    	8 	8 	8 	8 	8
 Gtax011	8 8 8 8 8 %o 6 68 8 86666I66666	+y00r8   )r$   r$   rJ   )r   r    r   r;   r<   r   subsr   r   r   	TypeErrorr   r   r   r   )r^   r_   ansoptimumargmaxconstrconstvx1x2x3x4r`   r=   r>   r?   s                @@@r6   test_lprm      s   	
QqSAB
acRB	
1q1Q3!	Br2qAvqAvqAv6KQQIsI{;;;C/'6%	;//////>>&!!W,,,, + +{{6""d*****	
Q1	B
acAaC2	B	
1q1Q3"	Br2qAvqAvqAv6KQ1IsI{;;;C/'6%	;//////>>&!!W,,,, + +{{6""d*****	
Q1	B
acAaC1	B	
1q1Q3"	Br2qAvqAvqAv6KE1QqSIsI{;;;C/'6%	;//////>>&!!W,,,, + +{{6""d*****
 !///ABB	b1R4"		!B	
2AbDA	B	BbA	B!B$Y2-2RRL D DD D D 5{IsI{;;;C/'6%	;//////1r1b!RB233333 
QQ"	B
acCE	Q	B	
1q1Q3"	Br2,!<!<1a)!<!<!<<K1QqSIi55OGV>>&!!W,,,, + +{{6""d***** 
Qa1		"B
acAaC1	B	
1q1Q3"	B
9======>>>	
aB
5555666	
bB
:::::;;; 
QB
9..../// 
AqB
9....///
1 
1 
1 
1 
AqB	AqB	
aBr2,KIsI{;;;C/'6%	;//////>>&!!W,,,, + +{{6""d*****+ +r8   c                  Z
   ddgddgddgddggg dddggdgg} t          t          |  d          \  }}}}t          ||| |           ddd	gg d
fk    sJ t          ||| | d          dg d
ddgfk    sJ t          g gg dggdg          ddgg fk    sJ t          t          t
          z
  t          t
          d	z   k    t          t
          d	z   k    t          dk    t
          dk    g          d	t          d	t
          difk    sJ t          t          t
          z
  t          t
          d	z   k    t          t          t
          d	z             t          dk    t
          dk    g          d	t          d	t
          difk    sJ t          t          t
          z
  t          t
          d	z   k    t          t          d	          g          d	t          d	t
          difk    sJ t          t
          t          t
          d	          g          d	t
          d	ifk    sJ t          t
          t          t
          d	z   k    t          t
          d	z   k    t
          dk    g          dt          d	t
          difk    sJ t          t
          dt
          d	z   k    dt
          d	z   k    g          dt
          difk    sJ t          t
          dt
          d	z   k    dt
          d	z   k    t
          dk    g          dt
          difk    sJ t          t          t
          dk    t          t
          k    g          dt          dt
          difk    sJ t          t          t
          dk    t          t
          t          z   k    t          dk    t          dk    g          dt          dt
          dt          difk    sJ t          d          x\  t          t          fd           t          }dz  z   dz  z   z
  }dz  d	z  z   dz  z   dz   z
  } | dk    gt          dz  z   d	          t           z   d	z  z   d          gz   } ||          \  }}	 ||           \  }
} ||dd                    \  }}t          d          d	z  dt          d          d	z  dt          d          d	z  gf}t          ||
|||d          |k    sJ t          ||dk    dk    dk    dk    dk    dk    dk    dk    gz             }|d         t          |d                                                   f|k    sJ d S )Nr/   rE   r   )r(   r/   r$   rE   F)listir%   r$   )r/   r   r   r   T)dualr(   r&   r-   c                      t          dz  dz  z
  dz  z   dz   dz  dz  z
  dk     dz  z
  dz  z   dk    d	z  z
  dz  z   d
k    gd  D             z             S )N	   r+   r%      r(   r$   r   r,   r*   c                     g | ]}|d k    	S r1   r2   r3   s     r6   r7   z2test_simplex.<locals>.<lambda>.<locals>.<listcomp>   s    "5"5"5a16"5"5"5r8   )r   )rh   ri   rj   rk   rl   s   r6   r@   ztest_simplex.<locals>.<lambda>   s    e	"qtadQ	
2"		ad
QrTR
2
AbDB	 "5"51"5"5"5	6'7 '7 r8   r.   rr   )r   r/   bounds)r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   ro   values)LABCDMfcondcdabaeqbeqrc   lpansrh   ri   rj   rk   rl   s                   @@@@@r6   test_simplexr      s   
Q"a1a&2q'*
Q			A
 r1vE***JAq!QAq1"qb!!b1a&,,,%?????Aq1"qbt,,,q!f1     RDaSE1#&&1qc2,6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1XX.//A1a|3DDDDDR1XXJ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 7 7 7 7 7 7 8 8 8 	A	"r	AbD2A	"qtadb1f%AF8r!B$)Q''RC"HqtOQ)?)?@@D1Q77DAq1Q77DAqqabb1~~HCQ446AqttAvq!A$$q&)
*C1aCV444;;;;!TR1WbAg
aq"'27B!GR1W> > ? ?E!Hd58??,,--.#555555r8   c                  F   t          d          x} \  }}}}ddggdgddggdgf}d |D             \  }}}}	t          ||g||	gg          }
t          |
          d         \  }}t          ||d | d d         D             z             }|d|d|difk    s
J |            ddgddggddgddggdgf}d |D             \  }}}}	t          ||g||	gg          }
t          |
          d         \  }}t	          ||d	 | d
d          D             z             }|d|d|difk    sJ d S )Nzx1 x2 y1 y2r/   rE   r$   c                 ,    g | ]}t          |          S r2   r   r3   s     r6   r7   z$test_lpmin_lpmax.<locals>.<listcomp>       '''&))'''r8   r   c                     g | ]}|d k    	S r1   r2   r3   s     r6   r7   z$test_lpmin_lpmax.<locals>.<listcomp>   s    333Q!V333r8   c                 ,    g | ]}t          |          S r2   r   r3   s     r6   r7   z$test_lpmin_lpmax.<locals>.<listcomp>   r   r8   c                     g | ]}|d k    	S r1   r2   r3   s     r6   r7   z$test_lpmin_lpmax.<locals>.<listcomp>   s    444Q!V444r8   r&   )r   r   r   r   r   )rh   ri   rj   y1y2ry   r   r   r   r   mr   rf   rc   s                 r6   test_lpmin_lpmaxr      s    ///ABB
R	A3!Q1#%A''Q'''JAq!QAA  AQ"IAv
633QrrU3333
4
4C2Ar1~&&&&s&&&
R1a&Aq6QF8aS0A''Q'''JAq!QAA  AQ"IAv
644QrssV4444
5
5C2Ar1~&&&&&&&r8   c            
         t          d          D ]} | sd }nd }t          d          x}\  }}}||z   d|z  z
  } |||          d         }d|z  d|z  z   d|z  z
  dk    d|z  |z
  d	|z  z   d
k    |dk    |dk    |dk    g} |d |D             |          }	t          d
           dz  ddt          d          dz  gf}
t          ||          |
d         t	          t          ||
d                             fk    sJ t          |g|	R  |
k    sJ |dz  } |||          d         }t          |d|z  z
  d          g} |d |D             |          }dt          d          dz  z
  ddt          d          d	z  gf}
t          |||z             |
d         t	          t          ||
d                             fk    sJ t          |g|	|R  |
d         dz
  |
d         fk    sJ ||z
  t          j        k    g} |d |D             |          }dt          d	          dz  z
  dt          d          dz  t          d          dz  gf}
t          |||z             |
d         t	          t          ||
d                             fk    sJ t          |g|	|R  |
d         dz
  |
d         fk    sJ ddd t          j        fg}dddt          j        gf}
t          |||t          j        k    gz             |
d         t	          t          ||
d                             fk    sJ t          |g|	R d|i|
d         dz
  |
d         fk    sJ t          |g|	R d|	                    |          |d         ii|
d         dz
  |
d         fk    sJ ||z
  t          j        k    g}t          dggg g d          ddgfk    sJ t          dgg g d          ddgfk    sJ t          dgd          ddgfk    sJ t          ddgddggdgddi          dddgfk    sJ t          ddgddggdgddi          dddgfk    sJ d S )Nr$   c                 "    t          | |          S rB   r   r   r   s     r6   r@   ztest_linprog.<locals>.<lambda>   s    0A66 r8   c                 P    t          d t          | |          D                       S )Nc                 6    g | ]}|                                 S r2   )tolistr3   s     r6   r7   z2test_linprog.<locals>.<lambda>.<locals>.<listcomp>   s-     $? $? $? 

$? $? $?r8   )tupler   r   s     r6   r@   ztest_linprog.<locals>.<lambda>   s8    U $? $?$71$=$=$? $? $? @ @ r8   zx1:4r   r'   r.   r%   r,   rs   c                 ,    g | ]}|j         |j        z
  S r2   )ltsgtsr3   s     r6   r7   z test_linprog.<locals>.<listcomp>   s     ,,,!,,,r8   r(   r/   rr   c                 ,    g | ]}|j         |j        z
  S r2   lhsrhsr3   s     r6   r7   z test_linprog.<locals>.<listcomp>        ,,,A!%!%-,,,r8   c                 ,    g | ]}|j         |j        z
  S r2   r   r3   s     r6   r7   z test_linprog.<locals>.<listcomp>   r   r8         )r   Nrw   rE   )r$   r%   rv   )NNr&   )r%   Nr)   )
rP   r   r   r   dictzipr   r   Halfindex)dor~   rh   r   r   r    r   r   ineqabrc   eqabeqrw   s                 r6   test_linprogr      sa   Ahh ( ( 	@66AA@ @A foo%GAq!EAaCKAaGGAJ!ac	AaC1$aC!GbdNaFAFAF$ Q,,t,,,a00!uQwAqttAv'Q~~#a&$s1c!f~~*>*>!?????q2#%%%%	QAaGGAJQqS!nnq,,,,,a001Q446zAq!A$$r'?+Qr	""s1vtC3q6NN/C/C&DDDDDq%2%%%%#a&1*c!f)=====!eqvoq,,,,,a001R557{Q!Q"b12Qr	""s1vtC3q6NN/C/C&DDDDDq%2%%%%#a&1*c!f)=====Yqv71a.!QQV},--FDQA((2* * * * *q-2---f--#a&1*c!f1EEEEEq 2   qwwqzz6":&>  a&1*c!f%& & & &!eqvoQC5"b000QH<<<<A3Bv...1qc(::::A3v&&&1qc(2222Ar7aVHqc1\2B 
 
 
1a&\   Ar7aVHqc1Y- 
 
 
1a&\     r8   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"   rm   r   r   r   r2   r8   r6   <module>r      s   ' ' ' ' ' ' ( ( ( ( ( ( ( ( % % % % % % & & & & & & " " " " " " , , , , , , , , 9 9 9 9 9 9 , , , , , , ' ' ' ' ' ' 6 6 6 6 6 6" " " " " " " " " " " " " " " " " " " " " " " " 5 4 4 4 4 4 ' ' ' ' ' '           ]7gd+ d+ d+N86 86 86v' ' '"1 1 1 1 1r8   