
    > jd.                         S r SSK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.
    N)deepcopy)date)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     ڀ/root/GenerationalWealth/GenerationalWealth/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   C   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5      nUR                  S5      nSS/SS//nUR                  S5      n[        [        [
        [        X2U 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   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%b-QR*mZ"r-RS*mZ"5-QR*mZ"r-RS*mZ"5-QRr"   c            
         [         R                  R                  S5      n U R                  S5      R                  5       nU R                  S5      n[	        [
        [        [        X!US95        [	        [
        [        [        X!US95        g )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"R-PQ*mZ"R-PQr"   c                     Sn Sn/ SQn[         R                  R                  S5      nUR                  X45      nUR                  XS-   45      nUR                  U 5      nU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                  " 5          [        R                  " S
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   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   s1   	A	AA
))


'CJJvE::qa%j!DJJqME::a!eDAE"I*mZ!U-ST*mZ!d-ST*mZ!U-ST*mZ!d-ST*mZ!-NO		 	 	"79R	Tj- 1q!fq!fq!fi-PQ	S 
#	"	"s   "AE11
E?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$   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`      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$   rD   r   r   r*   rV   rW   rX   rY   )	r   r   r'   r-   r/   r
   r_   r   nanr   s    r    test_non_finite_errorsrd      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$   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      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   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      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            	         [         R                  R                  S5      n [        SS//U R                  S5      S/S//U R                  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 )	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      s   
))


(C	q6(ZZcA3ZZZ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                  " 5          [
        R                  " S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$   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K*mR[[[-LM		 	 	"79R	Tj-kk&))<k=	? 
#
 *m++%=+>@ 
l	#B*m++lL%A+BD 
#	"s   &A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   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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__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}      sq        @ @ 6 * BM4M0T&
SRS.M8L(/4/4/.D&0=r"   