§
    fŠtjã  ã                   óþ   — 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       új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test__remove_redundancy.pyÚredundancy_removedr      s˜   € àð ð ˆàð 	ð 	ˆDÝŒv�d˜d’lÑ#Ô#ð Ø�ðð �5�5ð ð Œ7�1Œ:�œ×.Ò.¨qÑ1Ô1ÐMÐMÒMÐMµR´Y×5JÒ5JÈ1Ñ5MÔ5MÒ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ÑÔÐÝ�V˜QÑÔÐÐÐ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   € ÝŒF�1‰IŒIˆØˆˆ!ˆQˆQˆQˆ$‰ØŒH�OŠO˜AÑÔˆØ"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜Ý�V˜QÑÔÐÐÐ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¤   € ÝŒF�1‰IŒIˆØˆˆ!ˆQˆQˆQˆ$‰ØŒH�OŠO˜AÑÔˆØˆˆ!‰Ø"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜Ý�V˜QÑÔÐÝ˜˜A˜q !˜f a a a˜iœLÑ)Ô)Ð)Ý˜˜A˜q !˜fœIÑ&Ô&Ð&Ð&Ð&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�˜Ý�V˜QÑÔÐÐÐ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ÑÔˆØ˜˜2˜q˜q˜q˜5œ	‘Mˆˆ2ˆqˆqˆqˆ5‰	Ø"&§'¢'¨"¨b¡/¤/ÑˆˆB�˜Ý�V˜QÑÔÐÐÐ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ÑÔˆÝ”I˜a !™eÑ$Ô$×(Ò(¨¨C¨R¨C¬Ñ1Ô1ˆˆ2ˆqˆqˆqˆ5‰	Ø"&§'¢'¨"¨b¡/¤/ÑˆˆB�˜Ý�V˜QÑÔÐÐÐ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Ø�ZŠZ˜˜A˜ÑÔˆØ�ZŠZ˜‰]Œ]ˆÝŒI�OŠO˜B˜r ˜r 1 1 1˜uœI r¨"¨1¨"¤vÑ.Ô.ˆØ�A�B�B˜˜˜�E”—’˜qÑ!Ô!ˆˆ1ˆ2ˆ2‰Ø"&§'¢'¨"¨b¡/¤/ÑˆˆB�˜Ý�V˜QÑÔÐÝ�R”X˜a”[ !Ñ$Ô$Ð$Ý•R”Y×*Ò*¨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ÝŒX�q˜!�fÑÔˆØˆˆ1ˆ1ˆ1ˆaˆ4‰ÝŒW�Q‰ZŒZˆØ"&§'¢'¨"¨b¡/¤/ÑˆˆB�˜Ý�V˜QÑÔÐÝ˜˜B˜q ˜s A A A˜vœJÑ'Ô'Ð'Ý˜˜B˜qœEÑ"Ô"Ð"Ð"Ð"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ÑÔˆÝ”I˜a !™eÑ$Ô$×(Ò(¨¨C¨R¨C¬Ñ1Ô1ˆˆ2ˆqˆqˆqˆ5‰	Ý”˜1˜q™5Ñ!Ô!×%Ò% b¨¨"¨¤gÑ.Ô.ˆˆ2‰Ø"&§'¢'¨"¨b¡/¤/ÑˆˆB�˜Ý�V˜QÑÔÐÝ�R”X˜a”[ !Ñ$Ô$Ð$Ý•R”Y×*Ò*¨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È   € ÝŒG�F‰OŒOˆØˆˆ!ˆRˆaˆRˆ%‰Øˆˆ!ˆQˆRˆRˆ%‰Øˆˆ!ˆ"ˆ"ˆcˆc�ˆcˆ'‰
Øˆˆ!ˆRˆaˆRˆ%‰Øˆˆ!ˆQˆRˆRˆ%‰ÝŒH�Q”W˜Q”ZÑ Ô ˆà"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜ÝÕ" 2 qÑ)Ô)Ñ*Ô*Ð*Ý�V˜QÑÔÐÐÐ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‡   € ÝŒF�1‰IŒIˆØˆˆ&‰	Øˆˆ"ˆaˆaˆaˆ%‰ÝŒH�Q”W˜Q”ZÑ Ô ˆØ"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜ÝÕ" 2 qÑ)Ô)Ñ*Ô*Ð*Ý�V˜QÑÔÐÐÐ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¤   € ÝŒF�1‰IŒIˆØˆˆ&‰	Øˆˆ"ˆaˆaˆaˆ%‰ØŒH�OŠO˜AœG AœJÑ'Ô'ˆÝ”�q˜˜"˜”v‘”ˆˆ"‰Ø"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜ÝÕ" 2 qÑ)Ô)Ñ*Ô*Ð*Ý�V˜QÑÔÐÐÐ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ØˆØ�JŠJ˜˜1�vÑÔˆØ$%ˆˆ#�*Š*�a˜�VÑ
Ô
˜qÒ
 Ñ!ÝŒy×$Ò$ QÑ'Ô'ˆÝŒH�Q”W˜Q”ZÑ Ô ˆØ"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜Ý�V˜QÑÔÐÝ�R”X˜a”[ $Ñ'Ô'Ð'Ý•R”Y×*Ò*¨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ØˆØ�JŠJ˜˜1�vÑÔˆØ$%ˆˆ#�*Š*�a˜�VÑ
Ô
˜qÒ
 Ñ!ÝŒy×$Ò$ QÑ'Ô'ˆÝŒH�Q”W˜Q”ZÑ Ô ˆØ"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜Ý�V˜QÑÔÐÝ�R”X˜a”[ $Ñ'Ô'Ð'Ý•R”Y×*Ò*¨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{®Gáz„?r   rd   re   s               r   Útest_m_eq_n_sparsez RRCommonTests.test_m_eq_n_sparse´   sé   € ÝŒi×#Ò# DÑ)Ô)ˆØ‰ˆˆ1ØˆØ�JŠJ˜˜1�vÑÔˆØ$%ˆˆ#�*Š*�a˜�VÑ
Ô
˜qÒ
 Ñ!ÝŒy×$Ò$ QÑ'Ô'ˆÝŒH�Q”W˜Q”ZÑ Ô ˆØ"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜Ý�V˜QÑÔÐÝ�R”X˜a”[ $Ñ'Ô'Ð'Ý•R”Y×*Ò*¨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Á   ó~   € Ý*¨1™oœoÑˆˆ1ˆa�˜!Ø"&§'¢'¨!¨Q¡-¤-ÑˆˆB�˜Ý�V˜QÑÔÐÝ�R”X˜a”[ "Ñ%Ô%Ð%Ý•R”Y×*Ò*¨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�˜Ø�zŠz‰|Œ|˜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4ðX,ð ,ð ,ð ,ð ,�ñ ,ô ,ð ,ð
4ð 4ð 4ð 4ð 4�}ñ 4ô 4ð 4ð
+ð +ð +ð +ð +ˆ}ñ +ô +ð +ð
1ð 1ð 1ð 1ð 1˜ñ 1ô 1ð 1ð 1ð 1r   