
    Pid.                         d Z ddlZddlmZ ddlmZ ddlZddlm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZmZ d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z dS )z9
Unit test for Linear Programming via Simplex Algorithm.
    N)deepcopy)date)assert_assert_allcloseassert_equal)VisibleDeprecationWarning)raises)_clean_inputs
_LPProblemc            	         t          ddggdgdggdgt          j         t          j        f          } t          |           }t	          |            t          | j        |j        k    d           t          | j        |j        k    d           t          | j        |j        k    d           t          | j	        |j	        k    d           t          | j
        |j
        k    d           t          | j        |j        k    d           d	S )
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     /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/optimize/tests/test__linprog_clean_inputs.pytest_aliasingr!      s     

cUScUS 
 
 
B rllG"BDGI<===BGw|#%EFFFBGw|#%EFFFBGw|#%EFFFBGw|#%EFFFBI')KLLLLL    c            	         t          t          j        ddg          t          j        ddgddgg          t          j        dgdgg          t          j        ddgg          t          j        dg          t          j         t          j        fdg          } t	          |           }t          |            t          | j        |j        d           t          | j        |j        d           t          | j	        |j	        d           t          | j
        |j
        d	           t          | j        |j        d
           t          | j        |j        k    d           dS )z3
    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(   +   sH    

(Aq6

X1v1v&''XsQCj!!X1vhXqc]]&"&!9-
 
 
B rllG"BD')-JKKKKBGW\3STTTTBGW\3STTTTBGW\3STTTTBGW\3STTTTBI')KLLLLLr"   c            	         ddg} t          j        ddgddgg          }t          j        ddg          }t          j        ddgddgg          }t          j        ddg          }t          t          t                     t          t          t          t          d                      t          t          t          t          | |                     t          t          t          t          | |d                      t          t          t          t          | |                     t          t          t          t          | d |                     t          t          t          t          | |                     t          t          t          t          | |d                      t          t          t          t          | |	                     t          t          t          t          | d |                     d S )
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   C   s   	
AA8aVaV$%%D8QFD8aVaV$%%D8QFD)]+++)]J,>,>,>???*mZ!$-G-G-GHHH*mZ!$T-R-R-RSSS*mZ!$-G-G-GHHH*mZ!$T-R-R-RSSS*mZ!$-G-G-GHHH*mZ!$T-R-R-RSSS*mZ!$-G-G-GHHH*mZ!$T-R-R-RSSSSSr"   c            	      ^   g d} t           j                            d          }|                    d          }ddgddgg}|                    d          }t          t          t
          t          ||| 	                     t          t          t
          t          | || 	                     t          t          t
          t          | ||	                     t          t          t
          t          | || 
                     t          t          t
          t          | ||
                     d S )Nr   r$           r4   r4   r   r$   r3   r4   )r4   r4   r4   r+   r,   )r   randomdefault_rngr-   r/   r
   r   )cbrngAbad2Dbad3Ds        r    test_too_many_dimensionsr>   V   s    	B
)


%
%C

6AVaVEJJy!!E*mZ%ab-Q-Q-QRRR*mZ"5r-R-R-RSSS*mZ"15-Q-Q-QRRR*mZ"5r-R-R-RSSS*mZ"15-Q-Q-QRRRRRr"   c            	      h   t           j                            d          } |                     d                                          }|                     d          }t	          t
          t          t          |||                     t	          t
          t          t          |||                     d S )Nr5   r6   r4   r+   r,   )r   r7   r8   ravelr-   r/   r
   r   )r:   badr9   s      r    test_too_few_dimensionsrB   c   s    
)


%
%C
**V


"
"
$
$C	AB*mZ"3R-P-P-PQQQ*mZ"3R-P-P-PQQQQQr"   c                     d} d}g d}t           j                            d          }|                    | |f          }|                    | |dz   f          }|                    |           }|                    | dz             }dg|dz   z  }t          t          t
          t          |||                     t          t          t
          t          |||                     t          t          t
          t          |||                     t          t          t
          t          |||                     t          t          t
          t          ||	                     t          j                    5  t          j	        d
dt                     t          t          t
          t          |ddgddgddgg dg	                     d d d            d S # 1 swxY w Y   d S )Nr$   r4   r2   i r   r   r   r+   r,   )r   r   ignoreCreating an ndarray from raggedr3   )r4         )r   r7   r8   r-   r/   r
   r   warningscatch_warningsfilterwarningsr   )	mnr   r:   AgoodAbadbgoodbbad	boundsbads	            r    test_inconsistent_dimensionsrS   k   s   	A	AA
)


'
'CJJ1vE::q!a%j!!DJJqMME::a!eDAE"I*mZ!$U-S-S-STTT*mZ!%d-S-S-STTT*mZ!$U-S-S-STTT*mZ!%d-S-S-STTT*mZ!I-N-N-NOOO		 	"	" S S79R	T 	T 	Tj- 1q!fq!fq!fiii-PQQQ	S 	S 	SS S S S S S S S S S S S S S S S S Ss   8AGGGc                     t          ddgt          j        ddgddgg          t          j        ddg          t          j        ddgddgg          t          j        ddg          dg          } d}t          t          t
          |                     |                     t          t          t
          |                     |                     t          t          t
          |                     |                     t          t          t
          |                     |	                     t          t          t
          |                     |
                     t          t          t
          |                     |                     t          t          t
          |                     d                     t          t          t
          |                     dg                     t          t          t
          |                     dg                     t          t          t
          |                     dg                     t          t          t
          |                     ddg                     t          t          t
          |                     dt          ddd          fg                     t          t          t
          |                     ddggg                     d S )Nr   r$   rD   r   hellor*   r   r   r   r   r   hi)r    r   r$   i     )	r   r   r'   r-   r.   r
   _replacer/   r   )r   rA   s     r    test_type_errorsr`      sV   	a&X1v1v&''Xq!fX1v1v&''Xq!fx
 
 
B C)]BKK#K,>,>???)]BKKSK,A,ABBB)]BKKSK,A,ABBB)]BKKSK,A,ABBB)]BKKSK,A,ABBB*mR[[[-D-DEEE*mR[[[-E-EFFF*mR[[[-G-GHHH*mR[[$[-I-IJJJ*mR[[	[-J-JKKK*mR[[@Q[-R-RSSS)]++q$tQ*;*;&<%=+>>@ @ @*mR[[1a&
[-K-KLLLLLr"   c            
         t          ddgt          j        ddgddgg          t          j        ddg          t          j        ddgddgg          t          j        ddg          dg          } t          t          t
          |                     dd g                     t          t          t
          |                     t          j        dg                     t          t          t
          |                     dt          j         g                     t          t          t
          |                     t          j        dg                     t          t          t
          |                     ddgd dgg                     t          t          t
          |                     t          j        dg                     t          t          t
          |                     ddgdt          j         gg	                     t          t          t
          |                     dt          j        g
                     d S )Nr   r$   rD   r   r   r*   rV   rW   rX   rY   )	r   r   r'   r-   r/   r
   r_   r   nanr   s    r    test_non_finite_errorsrd      s   	a&X1v1v&''Xq!fX1v1v&''Xq!fx
 
 
B *mR[[At9[-E-EFFF*mR[[BFA;[-G-GHHH*mR[[Aw<[-H-HIII*mR[[BFA;[-G-GHHH*mR[[1vay>Q[-R-RSSS*mR[[rvqk[-J-JKKK*mR[[1vBF7|>T[-U-UVVV*mR[[q"&k[-J-JKKKKKr"   c                     t          ddgddgddggddgddgddggddgd           } t          |           }t          |j        t	          j        | j                             t          |j        t	          j        | j                             t          |j        t	          j        | j                             t          |j        t	          j        | j                             t          |j	        t	          j        | j	                             t          |j        dt          j        fgdz             t          |j        j        dk    d           t          |j        j        dk    d           t          |j        j        dk    d           t          |j        j        dk    d           t          |j	        j        dk    d           d S )Nr   r$   r   r   r$   r\   r$   r$   )r   r
   r   r   r   r'   r   r   r   r   r   r   r   r   shaper   
lp_cleaneds     r    test__clean_inputs1rk      s   	a&!fq!fV!fq!fV
 
 
B r""JJL"(24..111JORXbg%6%6777JORXbg%6%6777JORXbg%6%6777JORXbg%6%6777"a[MA$5666JL$&+++JO!V+R000JO!T)2...JO!V+R000JO!T)2.....r"   c                  f   t          ddggddggdd          } t          |           }t          |j        t	          j        | j                             t          |j        t	          j        | j                             t          |j        t	          j        | j                             t          |j        t	          j        | j                             t          |j	        t	          j        | j	                             t          |j        dg           t          |j        j        dk    d           t          |j        j        dk    d           t          |j        j        dk    d           t          |j        j        dk    d           t          |j	        j        dk    d           d S )Nr   rD   r   )r   r\   )r   r   )r   r
   r   r   r   r'   r   r   r   r   r   r   r   rh   ri   s     r    test__clean_inputs2rm      sp   	
cUcU
 
 
B r""JJL"(24..111JORXbg%6%6777JORXbg%6%6777JORXbg%6%6777JORXbg%6%6777"VH---JL$&+++JO!V+R000JO!T)2...JO!V+R000JO!T)2.....r"   c                     t           j                            d          } t          ddgg|                     d          dgdgg|                     d          dgdggdg          }t	          |          }t          |j        t          j        ddg                     t          |j        t          j        ddg                     t          |j	        t          j        ddg                     t          |j        dgdz             t          |j        j        dk    d           t          |j        j        dk    d           t          |j	        j        dk    d           d S )	Ni\ r   r$   rg   rD   r   rf   r\   )r   r7   r8   r   r
   r   r   r'   r   r   r   r   r   rh   )r:   r   rj   s      r    test__clean_inputs3ro      sI   
)


(
(C	q6(ZZcA3ZZZcA3Zx
 
 
B r""JJL"(Aq6"2"2333JORXq!f%5%5666JORXq!f%5%5666"VHqL111JL$&+++JO!T)2...JO!T)2.....r"   c            	         t          ddg          } t          t          t          |                     d                     t          t          t          |                     dg                     t          j                    5  t          j        ddt                     t          t          t          |                     ddg                     d d d            n# 1 swxY w Y   t          t          t          |                     g d	                     t          g d
          } t          t          t          |                     d
d
g                     d S )Nr   r$   r*   )r   r$   r$   rZ   rE   rF   r]   )r]   r]   r]   r2   )	r   r-   r/   r
   r_   rI   rJ   rK   r   rc   s    r    test_bad_boundsrq      s   	q!f			B*mR[[	[-J-JKKK*mR[[[-L-LMMM		 	"	" ? ?79R	T 	T 	Tj-kk&))<k==	? 	? 	?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 *m++%=%=%=+>>@ @ @ 
lll	#	#	#B*m++lL%A+BBD D D D Ds   ACC"%C"c            	      B   t          ddg          } t          |           }t          |j        dt          j        fgdz             t          |                     g                     }t          |j        dt          j        fgdz             t          |                     g g                    }t          |j        dt          j        fgdz             t          |                     d                    }t          |j        dgdz             t          |                     dg                    }t          |j        dgdz             t          |                     dg                    }t          |j        dt          j        fgdz             t          |                     dg                    }t          |j        t          j         dfgdz             t          |                     d	t          j         d fg                    }t          |j        t          j         t          j        fgdz             t          g d
          } t          |           }t          |j        dt          j        fgdz             t          |                     d                    }t          |j        dgdz             t          |                     dg                    }t          |j        dgdz             t          |                     dg                    }t          |j        dt          j        fgdz             t          |                     dg                    }t          |j        t          j         dfgdz             t          |                     d	t          j         d fd t          j        ft          j         t          j        fg                    }t          |j        t          j         t          j        fgdz             d S )Nr   r$   r*   r   rZ   r]   )r   Nr%   )NNr2   r4   )r   r
   r   r   r   r   r_   ri   s     r    test_good_boundsrs     s   	q!f			Br""J"a[MA$5666r{{"{5566J"a[MA$5666r{{2${7788J"a[MA$5666r{{&{99::J"VHqL111r{{6({;;<<J"VHqL111r{{9+{>>??J"a[MA$5666r{{9+{>>??J"rvgq\NQ$6777r{{<26'42Q{RRSSJ"rvgrv%6$7!$;<<<	lll	#	#	#Br""J"a[MA$5666r{{&{99::J"VHqL111r{{6({;;<<J"VHqL111r{{9+{>>??J"a[MA$5666r{{9+{>>??J"rvgq\NQ$6777r{{<57VGT?48"&>57VGRV3D3F{  G  G H HJ "rvgrv%6$7!$;<<<<<r"   )!__doc__rI   copyr   datetimer   numpyr   numpy.testingr   r   r   numpy.exceptionsr   pytestr	   r-   scipy.optimize._linprog_utilr
   r   r!   r(   r0   r>   rB   rS   r`   rd   rk   rm   ro   rq   rs    r"   r    <module>r}      s                     @ @ @ @ @ @ @ @ @ @ 6 6 6 6 6 6 * * * * * * B B B B B B B BM M M4M M M0T T T&
S 
S 
SR R RS S S.M M M8L L L(/ / /4/ / /4/ / /.D D D&0= 0= 0= 0= 0=r"   