
    Ui-                         d 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.
    )deepcopy)dateN)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     /var/www/development/aibuddy-work/election-extract/venv/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   A   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            	      N   g d} t           j                            dd          }ddgddgg}t           j                            dd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   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INN1a##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            	      T   t           j                            dd                                          } t           j                            d          }t	          t
          t          t          || |                     t	          t
          t          t          || |                     d S )Nr4   r+   r,   )r   r5   r6   ravelr-   r/   r
   r   )badr7   s     r    test_too_few_dimensionsr?   `   s~    
)..A


$
$
&
&C			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                            | |          }t           j                            | |dz             }t           j                            |           }t           j                            | 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          d	           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   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INN1a  E9>>!QU##DINN1E9>>!a%  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3

,.OPPP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   
AG))G-0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$   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]   |   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$   rA   r   r   r*   rS   rT   rU   rV   )	r   r   r'   r-   r/   r
   r\   r   nan)r   s    r    test_non_finite_errorsr`      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$   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      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   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      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          ddggt          j                            dd          dgdggt          j                            d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 )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(Y^^Aq!!cA3ZY^^Aq!!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          d           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$   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-JKKK*mR[[[-L-LMMM		%	%	'	' ?3

,.OPPPj-kk&))<k==	? 	? 	?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *m++%=%=%=+>>@ @ @ 
lll	#	#	#B*m++lL%A+BBD D D D Ds   AC))C-0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   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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__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      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"   