
    Pi                         d 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 ddl	mZ dd	l	mZ dd
lmZ d Z G d d          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z9
Unit test for Linear Programming via Simplex Algorithm.
    N)assert_assert_allcloseassert_equal   )magic_square_remove_redundancy_svd_remove_redundancy_pivot_dense)_remove_redundancy_pivot_sparse_remove_redundancy_id)	csc_arrayc                     | D ]$}|D ]}t          j        ||k              r n dS %| j        d         t           j                            |           cxk    o"t           j                            |          k    nc S )zAChecks whether a matrix contains only independent rows of anotherFr   )npallshapelinalgmatrix_rank)ABrowArowBs       /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/optimize/tests/test__remove_redundancy.pyredundancy_removedr      s       	 	Dvddl##  55  71:..q11MMMMRY5J5J15M5MMMMMM    c                   z    e 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 Zd Zd Zd Zd Zd ZdS )RRCommonTestsc                 N    t           j                            d          | _        d S )N  )r   randomdefault_rngrng)selfs    r   setup_methodzRRCommonTests.setup_method%   s    9((..r   c                    d\  }}| j                             ||f          }| j                             |          }|                     ||          \  }}}}t          ||           t          ||           t	          |d           d S )N
   r(   r   )r#   r!   rrr   r   	r$   mnA0b0A1b1statusmessages	            r   test_no_redundancyz RRCommonTests.test_no_redundancy(   s    1X__aV$$X__Q"&''"b//BBBVQr   c                     t          j        d          }d|dd d f<   | j                            d          }|                     ||          \  }}}}t          |d           d S N   r   r      )r   eyer#   r!   r)   r   r$   r   br/   r0   r1   r2   s          r   test_infeasible_zero_rowz&RRCommonTests.test_infeasible_zero_row1   sc    F1II!QQQ$HOOA"&''!Q--BVQr   c                 <   t          j        d          }d|dd d f<   | j                            d          }d|d<   |                     ||          \  }}}}t          |d           t          ||ddgd d f                    t          ||ddg                    d S r5   )r   r8   r#   r!   r)   r   r   r9   s          r   test_remove_zero_rowz"RRCommonTests.test_remove_zero_row8   s    F1II!QQQ$HOOA!"&''!Q--BVQAq!faaaiL)))Aq!fI&&&&&r   c                     d\  }}| j                             ||f          }| j                             |          }|                     ||          \  }}}}t          |d           d S )N   r(   r7   r#   r!   r)   r   r*   s	            r   test_infeasible_m_gt_nz$RRCommonTests.test_infeasible_m_gt_nB   se    1X__aV$$X__Q"&''"b//BVQr   c                     d\  }}| j                             ||f          }| j                             |          }d|dd d f         z  |dd d f<   |                     ||          \  }}}}t          |d           d S )Nr'   r7   rA   r*   s	            r   test_infeasible_m_eq_nz$RRCommonTests.test_infeasible_m_eq_nI   s    1X__aV$$X__Q2qqq5	M2qqq5	"&''"b//BVQr   c                 D   d\  }}| j                             ||f          }| j                             |          }t          j        |dz
                                |d d                   |dd d f<   |                     ||          \  }}}}t          |d           d S )N	   r(   r   rE   r7   )r#   r!   r   arangedotr)   r   r*   s	            r   test_infeasible_m_lt_nz$RRCommonTests.test_infeasible_m_lt_nQ   s    1X__aV$$X__QIa!e$$((CRC112qqq5	"&''"b//BVQr   c                 @   t           j                            d          }d\  }}|                    ||f          }|                    |          }t           j                            |d |d d f         |d |                   }||d d d f                             |          ||d <   |                     ||          \  }}}	}
t          |	d           t          |j        d         |           t          t           j        	                    |          |           d S )Ni  r?   r   )
r   r!   r"   r   solverK   r)   r   r   r   )r$   r#   r+   r,   r-   r.   xr/   r0   r1   r2   s              r   test_m_gt_nzRRCommonTests.test_m_gt_nY   s    i##D))1ZZAZZ]]IOOBrr111uIr"1"v..ABBEq!!122"&''"b//BVQRXa[!$$$RY**2..22222r   c                 0   d\  }}t          j        ||f          }d|d d df<   t          j        |          }|                     ||          \  }}}}t	          |d           t          ||ddd d f                    t          ||d                    d S )Nr?   r   r   )r   zerosonesr)   r   r   r*   s	            r   test_m_gt_n_rank_deficientz(RRCommonTests.test_m_gt_n_rank_deficiente   s    1Xq!f111a4WQZZ"&''"b//BVQBqsAAAvJ'''BqE"""""r   c                 >   d\  }}| j                             ||f          }| j                             |          }t          j        |dz
                                |d d                   |dd d f<   t          j        |dz
                                |d d                   |d<   |                     ||          \  }}}}t          |d           t          |j        d         d           t          t          j        	                    |          d           d S )NrH   r   rE   r      )
r#   r!   r   rJ   rK   r)   r   r   r   r   r*   s	            r   test_m_lt_n_rank_deficientz(RRCommonTests.test_m_lt_n_rank_deficiento   s    1X__aV$$X__QIa!e$$((CRC112qqq5	1q5!!%%b"g..2"&''"b//BVQRXa[!$$$RY**2..22222r   c                 \   t          j        d          }d|dd df<   d|ddd f<   d|dd d d df<   d|dd df<   d|ddd f<   t          j        |j        d                   }|                     ||          \  }}}}t          t          ||                     t          |d           d S )N)   rY   r   r6   r   rE   r7      )r   rS   rR   r   r)   r   r   r   r9   s          r   test_dense1zRRCommonTests.test_dense1z   s    GFOO!RaR%!QRR%!""ccc'
!RaR%!QRR%HQWQZ  "&''!Q--B"2q))***VQr   c                    t          j        d          }d|d<   d|dd d f<   t          j        |j        d                   }|                     ||          \  }}}}t          t          ||                     t          |d           d S NrY   r   )rD   rE   rE   r   )r   r8   rR   r   r)   r   r   r   r9   s          r   test_dense2zRRCommonTests.test_dense2   s    F1II&	"aaa%HQWQZ  "&''!Q--B"2q))***VQr   c                 b   t          j        d          }d|d<   d|dd d f<   | j                            |j        d                   }t          j        |d d                   |d<   |                     ||          \  }}}}t          t          ||                     t          |d           d S r]   )
r   r8   r#   r!   r   sumr)   r   r   r   r9   s          r   test_dense3zRRCommonTests.test_dense3   s    F1II&	"aaa%HOOAGAJ''q"v""&''!Q--B"2q))***VQr   c                    t           j                            d          }d\  }}d}|                    ||f          }d||                    ||f          |k    <   t           j                            |          }t          j        |j        d                   }|                     ||          \  }}	}
}t          |
d           t          |j        d         |           t          t           j                            |          |           d S )Ni  )r@      g?r   	r   r!   r"   r   r   rR   r   r)   r   r$   r#   r+   r,   pr   rankr:   r/   r0   r1   r2   s               r   test_m_gt_n_sparsez RRCommonTests.test_m_gt_n_sparse   s    i##D))1JJ1v$%#**aV

q
 !y$$Q''HQWQZ  "&''!Q--BVQRXa[$'''RY**2..55555r   c                    t           j                            d          }d\  }}d}|                    ||f          }d||                    ||f          |k    <   t           j                            |          }t          j        |j        d                   }|                     ||          \  }}	}
}t          |
d           t          |j        d         |           t          t           j                            |          |           d S )Nr    )r@   2   g?r   rd   re   s               r   test_m_lt_n_sparsez RRCommonTests.test_m_lt_n_sparse   s    i##D))1JJ1v$%#**aV

q
 !y$$Q''HQWQZ  "&''!Q--BVQRXa[$'''RY**2..55555r   c                    t           j                            d          }d\  }}d}|                    ||f          }d||                    ||f          |k    <   t           j                            |          }t          j        |j        d                   }|                     ||          \  }}	}
}t          |
d           t          |j        d         |           t          t           j                            |          |           d S )Nr    )d   rm   g{Gz?r   rd   re   s               r   test_m_eq_n_sparsez RRCommonTests.test_m_eq_n_sparse   s    i##D))1JJ1v$%#**aV

q
 !y$$Q''HQWQZ  "&''!Q--BVQRXa[$'''RY**2..55555r   c                    t          d          \  }}}}}|                     ||          \  }}}}	t          |d           t          |j        d         d           t          t          j                            |          d           d S )Nr6   r      r   r)   r   r   r   r   r   
r$   r   r:   cnumbers_r/   r0   r1   r2   s
             r   test_magic_squarezRRCommonTests.test_magic_square   ~    *1oo1a!"&''!Q--BVQRXa["%%%RY**2..33333r   c                    t          d          \  }}}}}|                     ||          \  }}}}	t          |d           t          |j        d         d           t          t          j                            |          d           d S )NrZ   r   '   rq   rr   s
             r   test_magic_square2z RRCommonTests.test_magic_square2   rw   r   N)__name__
__module____qualname__r%   r3   r;   r=   rB   rF   rL   rP   rT   rW   r[   r^   ra   rh   rk   rn   rv   rz    r   r   r   r   $   s"       / / /          ' ' '               
3 
3 
3# # #	3 	3 	3               6 6 66 6 66 6 64 4 44 4 4 4 4r   r   c                       e Zd Zd ZdS )	TestRRSVDc                 "    t          ||          S Nr   r$   r   r:   s      r   r)   zTestRRSVD.rr   s    %a+++r   Nr{   r|   r}   r)   r~   r   r   r   r      s#        , , , , ,r   r   c                       e Zd Zd ZdS )TestRRPivotDensec                 "    t          ||          S r   r
   r   s      r   r)   zTestRRPivotDense.rr   s    -a333r   Nr   r~   r   r   r   r      s#        4 4 4 4 4r   r   c                       e Zd Zd ZdS )TestRRIDc                 "    t          ||          S r   r   r   s      r   r)   zTestRRID.rr   s    $Q***r   Nr   r~   r   r   r   r      s#        + + + + +r   r   c                       e Zd Zd ZdS )TestRRPivotSparsec                 z    t          t          |          |          }|\  }}}}|                                |||fS r   )r   r   toarray)r$   r   r:   rr_resr/   r0   r1   r2   s           r   r)   zTestRRPivotSparse.rr   s<    01qAA"(Bzz||R00r   Nr   r~   r   r   r   r      s#        1 1 1 1 1r   r   )__doc__numpyr   numpy.testingr   r   r   test_linprogr   !scipy.optimize._remove_redundancyr	   r   r   r   scipy.sparser   r   r   r   r   r   r   r~   r   r   <module>r      s                
 ' & & & & & D D D D D D L L L L L L M M M M M M C C C C C C " " " " " "	N 	N 	Ni4 i4 i4 i4 i4 i4 i4 i4X, , , , , , , ,
4 4 4 4 4} 4 4 4
+ + + + +} + + +
1 1 1 1 1 1 1 1 1 1r   