
    -i-                         S r SSKJr  SSKJr  SSKrSSKJrJ	r	J
r
  SSKJr  SSKJr  SSKJrJr  S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rg)z9
Unit test for Linear Programming via Simplex Algorithm.
    )deepcopy)dateN)assert_assert_allcloseassert_equal)VisibleDeprecationWarning)raises)_clean_inputs
_LPProblemc            	      :   [        SS//S/S//S/[        R                  * [        R                  4S9n [        U 5      n[	        U 5        [        U R                  UR                  :H  S5        [        U R                  UR                  :H  S5        [        U R                  UR                  :H  S5        [        U R                  UR                  :H  S5        [        U R                  UR                  :H  S5        [        U R                  UR                  :H  S5        g	)
z
Test for ensuring that no objects referred to by `lp` attributes,
`c`, `A_ub`, `b_ub`, `A_eq`, `b_eq`, `bounds`, have been modified
by `_clean_inputs` as a side effect.
   cA_ubb_ubA_eqb_eqboundsc modified by _clean_inputsA_ub modified by _clean_inputsb_ub modified by _clean_inputsA_eq modified by _clean_inputsb_eq modified by _clean_inputs bounds modified by _clean_inputsN)r   npinfr   r
   r   r   r   r   r   r   r   lplp_copys     b/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test__linprog_clean_inputs.pytest_aliasingr!      s     

cUScUS 
B rlG"BDDGII<=BGGw||#%EFBGGw||#%EFBGGw||#%EFBGGw||#%EFBII')KL    c            	         [        [        R                  " SS/5      [        R                  " SS/SS//5      [        R                  " S/S//5      [        R                  " SS//5      [        R                  " S/5      [        R                  * [        R                  4S/S9n [	        U 5      n[        U 5        [        U R                  UR                  SS9  [        U R                  UR                  SS9  [        U R                  UR                  SS9  [        U R                  UR                  S	S9  [        U R                  UR                  S
S9  [        U R                  UR                  :H  S5        g)z+
Similar purpose as `test_aliasing` above.
r      Nr   r   r   )err_msgr   r   r   r   r   N)r   r   arrayr   r   r
   r   r   r   r   r   r   r   r   r   s     r    test_aliasing2r(   )   s    

((Aq6
XX1v1v&'XXsQCj!XX1vhXXqc]&&"&&!9-
B rlG"BDD'))-JKBGGW\\3STBGGW\\3STBGGW\\3STBGGW\\3STBII')KLr"   c            
         SS/n [         R                  " SS/SS//5      n[         R                  " SS/5      n[         R                  " SS/SS//5      n[         R                  " SS/5      n[        [        [        5        [        [        [        [        S S95        [        [        [        [        XS95        [        [        [        [        XS S95        [        [        [        [        XS95        [        [        [        [        U S US95        [        [        [        [        XS95        [        [        [        [        XS S95        [        [        [        [        XS	95        [        [        [        [        U S US95        g )
Nr   r$   r   )r   r   r   r   r   )r   r   )r   r   r   r   r   )r   r   )r   r'   assert_raises	TypeErrorr
   r   
ValueError)r   r   r   r   r   s        r    test_missing_inputsr0   A   s   	
AA88aVaV$%D88QFD88aVaV$%D88QFD)]+)]J,>?*mZ!-GH*mZ!T-RS*mZ!-GH*mZ!$T-RS*mZ!-GH*mZ!T-RS*mZ!-GH*mZ!$T-RSr"   c            
         / SQn [         R                  R                  SS5      nSS/SS//n[         R                  R                  SSS5      n[        [        [
        [        X!U S95        [        [        [
        [        XU S95        [        [        [
        [        XUS95        [        [        [
        [        XU S95        [        [        [
        [        XUS95        g )Nr   r$         r4   r   r$   r3   r+   r,   )r   randomrandr-   r/   r
   r   )cbAbad2Dbad3Ds       r    test_too_many_dimensionsr;   T   s    	B
		q!AVaVEIINN1a#E*mZ%b-QR*mZ"r-RS*mZ"5-QR*mZ"r-RS*mZ"5-QRr"   c            
         [         R                  R                  SS5      R                  5       n [         R                  R                  S5      n[	        [
        [        [        XUS95        [	        [
        [        [        XUS95        g )Nr4   r+   r,   )r   r5   r6   ravelr-   r/   r
   r   )badr7   s     r    test_too_few_dimensionsr?   `   sW    
))..A

$
$
&C		B*mZ"R-PQ*mZ"R-PQr"   c                  8   Sn Sn/ SQn[         R                  R                  X5      n[         R                  R                  XS-   5      n[         R                  R                  U 5      n[         R                  R                  U S-   5      nS/US-   -  n[        [        [
        [        X$US95        [        [        [
        [        X#US95        [        [        [
        [        X$US95        [        [        [
        [        X#US95        [        [        [
        [        X'S95        [         R                  R                  5        nUR                  [        S	5        [        [        [
        [        USS/SS
/S
S// SQ/S95        S S S 5        g ! , (       d  f       g = f)Nr$   r4   r2   r   r   r   r+   r,   )r   r   Creating an ndarray from raggedr3   )r4         )r   r5   r6   r-   r/   r
   r   testingsuppress_warningsfilterr   )	mnr   AgoodAbadbgoodbbad	boundsbadsups	            r    test_inconsistent_dimensionsrP   g   s(   	A	AAIINN1 E99>>!U#DIINN1E99>>!a% DAE"I*mZ!U-ST*mZ!d-ST*mZ!U-ST*mZ!d-ST*mZ!-NO		%	%	'3

,.OPj- 1q!fq!fq!fi-PQ	S 
(	'	's   A F
Fc                     [        SS/[        R                  " SS/SS//5      [        R                  " SS/5      [        R                  " SS/SS//5      [        R                  " SS/5      S/S9n Sn[        [        [
        U R                  US95        [        [        [
        U R                  US95        [        [        [
        U R                  US95        [        [        [
        U R                  US	95        [        [        [
        U R                  US
95        [        [        [
        U R                  US95        [        [        [
        U R                  SS95        [        [        [
        U R                  S/S95        [        [        [
        U R                  S/S95        [        [        [
        U R                  S/S95        [        [        [
        U R                  SS/S95        [        [        [
        U R                  S[        SSS5      4/S95        [        [        [
        U R                  SS///S95        g )Nr   r$   rA   r   hellor*   r   r   r   r   r   hi)r    r   r$   i     )	r   r   r'   r-   r.   r
   _replacer/   r   )r   r>   s     r    test_type_errorsr]   |   s   	a&XX1v1v&'XXq!fXX1v1v&'XXq!fx
B C)]BKK#K,>?)]BKKSK,AB)]BKKSK,AB)]BKKSK,AB)]BKKSK,AB*mR[[[-DE*mR[[[-EF*mR[[[-GH*mR[[$[-IJ*mR[[	[-JK*mR[[@Q[-RS)]++q$tQ*;&<%=+>@*mR[[1a&
[-KLr"   c            
         [        SS/[        R                  " SS/SS//5      [        R                  " SS/5      [        R                  " SS/SS//5      [        R                  " SS/5      S/S9n [        [        [
        U R                  SS /S95        [        [        [
        U R                  [        R                  S/S95        [        [        [
        U R                  S[        R                  * /S95        [        [        [
        U R                  [        R                  S/S95        [        [        [
        U R                  SS/S S//S95        [        [        [
        U R                  [        R                  S/S95        [        [        [
        U R                  SS/S[        R                  * //S	95        [        [        [
        U R                  S[        R                  /S
95        g )Nr   r$   rA   r   r   r*   rS   rT   rU   rV   )	r   r   r'   r-   r/   r
   r\   r   nan)r   s    r    test_non_finite_errorsr`      sr   	a&XX1v1v&'XXq!fXX1v1v&'XXq!fx
B *mR[[At9[-EF*mR[[BFFA;[-GH*mR[[Aw<[-HI*mR[[BFFA;[-GH*mR[[1vay>Q[-RS*mR[[rvvqk[-JK*mR[[1vBFF7|>T[-UV*mR[[q"&&k[-JKr"   c            	         [        SS/SS/SS//SS/SS/SS//SS/S S9n [        U 5      n[        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  S[        R                  4/S-  5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        g )Nr   r$   r   r   r$   rY   )r$   r$   )r   r
   r   r   r   r'   r   r   r   r   r   r   r   r   shaper   
lp_cleaneds     r    test__clean_inputs1rf      sr   	a&!fq!fV!fq!fV
B r"JJLL"((244.1JOORXXbgg%67JOORXXbgg%67JOORXXbgg%67JOORXXbgg%67""a[MA$56JLL$&+JOO!!V+R0JOO!!T)2.JOO!!V+R0JOO!!T)2.r"   c            	         [        SS//SS//SSS9n [        U 5      n[        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  [        R
                  " U R                  5      5        [        UR                  S/5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        g )Nr   rA   r   )r   rY   )r   r   )r   r
   r   r   r   r'   r   r   r   r   r   r   r   rc   rd   s     r    test__clean_inputs2rh      sG   	
cUcU
B r"JJLL"((244.1JOORXXbgg%67JOORXXbgg%67JOORXXbgg%67JOORXXbgg%67""VH-JLL$&+JOO!!V+R0JOO!!T)2.JOO!!V+R0JOO!!T)2.r"   c            	         [        SS//[        R                  R                  SS5      S/S//[        R                  R                  SS5      S/S//S/S9n [	        U 5      n[        UR                  [        R                  " SS/5      5        [        UR                  [        R                  " SS/5      5        [        UR                  [        R                  " SS/5      5        [        UR                  S/S-  5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        [        UR                  R                  S:H  S5        g )Nr   r$   rA   r   rb   rY   )r   r   r5   r6   r
   r   r   r'   r   r   r   r   r   rc   rd   s     r    test__clean_inputs3rj      s   	q6(YY^^Aq!cA3ZYY^^Aq!cA3Zx
B r"JJLL"((Aq6"23JOORXXq!f%56JOORXXq!f%56""VHqL1JLL$&+JOO!!T)2.JOO!!T)2.r"   c            	      .   [        SS/S9n [        [        [        U R	                  SS95        [        [        [        U R	                  S/S95        [
        R                  R                  5        nUR                  [        S5        [        [        [        U R	                  SS/S95        S S S 5        [        [        [        U R	                  / SQS95        [        / S	QS9n [        [        [        U R	                  S	S	/S95        g ! , (       d  f       Nb= f)
Nr   r$   r*   )r   r$   r$   rW   rB   rZ   )rZ   rZ   rZ   r2   )
r   r-   r/   r
   r\   r   rE   rF   rG   r   )r   rO   s     r    test_bad_boundsrl      s    	q!f	B*mR[[	[-JK*mR[[[-LM		%	%	'3

,.OPj-kk&))<k=	? 
( *m++%=+>@ 
l	#B*m++lL%A+BD 
(	's   /;D
Dc            	         [        SS/S9n [        U 5      n[        UR                  S[        R
                  4/S-  5        [        U R                  / S95      n[        UR                  S[        R
                  4/S-  5        [        U R                  / /S95      n[        UR                  S[        R
                  4/S-  5        [        U R                  SS95      n[        UR                  S/S-  5        [        U R                  S/S95      n[        UR                  S/S-  5        [        U R                  S/S95      n[        UR                  S[        R
                  4/S-  5        [        U R                  S/S95      n[        UR                  [        R
                  * S4/S-  5        [        U R                  S	[        R
                  * S 4/S95      n[        UR                  [        R
                  * [        R
                  4/S-  5        [        / S
QS9n [        U 5      n[        UR                  S[        R
                  4/S-  5        [        U R                  SS95      n[        UR                  S/S-  5        [        U R                  S/S95      n[        UR                  S/S-  5        [        U R                  S/S95      n[        UR                  S[        R
                  4/S-  5        [        U R                  S/S95      n[        UR                  [        R
                  * S4/S-  5        [        U R                  S	[        R
                  * S 4S [        R
                  4[        R
                  * [        R
                  4/S95      n[        UR                  [        R
                  * [        R
                  4/S-  5        g )Nr   r$   r*   r   rW   rZ   )r   Nr%   )NNr2   r4   )r   r
   r   r   r   r   r\   rd   s     r    test_good_boundsrn     s!   	q!f	Br"J""a[MA$56r{{"{56J""a[MA$56r{{2${78J""a[MA$56r{{&{9:J""VHqL1r{{6({;<J""VHqL1r{{9+{>?J""a[MA$56r{{9+{>?J""rvvgq\NQ$67r{{<266'42Q{RSJ""rvvgrvv%6$7!$;<	l	#Br"J""a[MA$56r{{&{9:J""VHqL1r{{6({;<J""VHqL1r{{9+{>?J""a[MA$56r{{9+{>?J""rvvgq\NQ$67r{{<57VVGT?48"&&>57VVGRVV3D3F{  G HJ ""rvvgrvv%6$7!$;<r"   ) __doc__copyr   datetimer   numpyr   numpy.testingr   r   r   numpy.exceptionsr   pytestr	   r-   scipy.optimize._linprog_utilr
   r   r!   r(   r0   r;   r?   rP   r]   r`   rf   rh   rj   rl   rn    r"   r    <module>rx      sn       @ @ 6 * BM4M0T&	SRS*M8L(/4/4/,D$0=r"   