Ë
    âQ(h�  ã                   óä   — 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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y)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_matrixc                  óB   — t         j                  j                  d«       y )Néá  )ÚnpÚrandomÚseed© ó    új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test__remove_redundancy.pyÚsetup_moduler      s   € Ü‡I�I‡N�N�4Õr   c                 ó  — | D ]$  }|D ]  }t        j                  ||k(  «      sŒ Œ#  y | j                  d   t         j                  j	                  | «      cxk(  xr" t         j                  j	                  |«      k(  S c S )zAChecks whether a matrix contains only independent rows of anotherFr   )r   ÚallÚshapeÚlinalgÚmatrix_rank)ÚAÚBÚrowAÚrowBs       r   Úredundancy_removedr"      sv   € àò ˆàò 	ˆDÜ�v‰v�d˜d‘lÕ#Ùð	ñ ðð �7‰7�1‰:œŸ™×.Ñ.¨qÓ1ÖM´R·Y±Y×5JÑ5JÈ1Ó5MÑMÐMÑMÐMr   c                   ór   — 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y)ÚRRCommonTestsc                 ó  — d\  }}t         j                  j                  ||«      }t         j                  j                  |«      }| j                  ||«      \  }}}}t	        ||«       t	        ||«       t        |d«       y )N©é
   r'   r   )r   r   ÚrandÚrrr   r   ©	ÚselfÚmÚnÚA0Úb0ÚA1Úb1ÚstatusÚmessages	            r   Útest_no_redundancyz RRCommonTests.test_no_redundancy)   sg   € Ø‰ˆˆ1Ü�Y‰Y�^‰^˜A˜qÓ!ˆÜ�Y‰Y�^‰^˜AÓˆØ"&§'¡'¨"¨b£/ÑˆˆB�˜Ü˜˜BÔÜ˜˜BÔÜ�V˜QÕr   c                 óÄ   — t        j                  d«      }d|dd d …f<   t         j                  j                  d«      }| j	                  ||«      \  }}}}t        |d«       y ©Né   r   r   é   )r   Úeyer   r(   r)   r   ©r+   r   Úbr0   r1   r2   r3   s          r   Útest_infeasible_zero_rowz&RRCommonTests.test_infeasible_zero_row2   sP   € Ü�F‰F�1‹IˆØˆˆ!ŠQˆ$‰Ü�I‰I�N‰N˜1ÓˆØ"&§'¡'¨!¨Q£-ÑˆˆB�˜Ü�V˜QÕr   c                 ó  — t        j                  d«      }d|dd d …f<   t         j                  j                  d«      }d|d<   | j	                  ||«      \  }}}}t        |d«       t        ||ddgd d …f   «       t        ||ddg   «       y r6   )r   r9   r   r(   r)   r   r   r:   s          r   Útest_remove_zero_rowz"RRCommonTests.test_remove_zero_row9   s�   € Ü�F‰F�1‹IˆØˆˆ!ŠQˆ$‰Ü�I‰I�N‰N˜1ÓˆØˆˆ!‰Ø"&§'¡'¨!¨Q£-ÑˆˆB�˜Ü�V˜QÔÜ˜˜A˜q !˜f¢a˜i™LÔ)Ü˜˜A˜q !˜f™IÕ&r   c                 óÒ   — d\  }}t         j                  j                  ||«      }t         j                  j                  |«      }| j                  ||«      \  }}}}t	        |d«       y )N©é   r'   r8   ©r   r   r(   r)   r   r*   s	            r   Útest_infeasible_m_gt_nz$RRCommonTests.test_infeasible_m_gt_nC   sS   € Ø‰ˆˆ1Ü�Y‰Y�^‰^˜A˜qÓ!ˆÜ�Y‰Y�^‰^˜AÓˆØ"&§'¡'¨"¨b£/ÑˆˆB�˜Ü�V˜QÕr   c                 óø   — d\  }}t         j                  j                  ||«      }t         j                  j                  |«      }d|dd d …f   z  |dd d …f<   | j                  ||«      \  }}}}t	        |d«       y )Nr&   r8   éþÿÿÿéÿÿÿÿrB   r*   s	            r   Útest_infeasible_m_eq_nz$RRCommonTests.test_infeasible_m_eq_nJ   sl   € Ø‰ˆˆ1Ü�Y‰Y�^‰^˜A˜qÓ!ˆÜ�Y‰Y�^‰^˜AÓˆØ˜˜2šq˜5™	‘Mˆˆ2Šqˆ5‰	Ø"&§'¡'¨"¨b£/ÑˆˆB�˜Ü�V˜QÕr   c                 ó4  — d\  }}t         j                  j                  ||«      }t         j                  j                  |«      }t        j                  |dz
  «      j	                  |d d «      |dd d …f<   | j                  ||«      \  }}}}t        |d«       y )N©é	   r'   r   rF   r8   )r   r   r(   ÚarangeÚdotr)   r   r*   s	            r   Útest_infeasible_m_lt_nz$RRCommonTests.test_infeasible_m_lt_nR   s~   € Ø‰ˆˆ1Ü�Y‰Y�^‰^˜A˜qÓ!ˆÜ�Y‰Y�^‰^˜AÓˆÜ—I‘I˜a !™eÓ$×(Ñ(¨¨C¨R¨Ó1ˆˆ2Šqˆ5‰	Ø"&§'¡'¨"¨b£/ÑˆˆB�˜Ü�V˜QÕr   c                 ó&  — t         j                  j                  d«       d\  }}t         j                  j                  ||«      }t         j                  j                  |«      }t         j                  j                  |d |…d d …f   |d | «      }||d …d d …f   j                  |«      ||d  | j                  ||«      \  }}}}	t        |d«       t        |j                  d   |«       t        t         j                  j                  |«      |«       y )Nið  r@   r   )r   r   r   r(   r   ÚsolverL   r)   r   r   r   )
r+   r,   r-   r.   r/   Úxr0   r1   r2   r3   s
             r   Útest_m_gt_nzRRCommonTests.test_m_gt_nZ   sÒ   € Ü
�	‰	�‰�tÔØ‰ˆˆ1Ü�Y‰Y�^‰^˜A˜qÓ!ˆÜ�Y‰Y�^‰^˜AÓˆÜ�I‰I�O‰O˜B˜r ˜r¢1˜u™I r¨"¨1 vÓ.ˆØ�A‘Bš�E‘—‘˜qÓ!ˆˆ1ˆ2ˆØ"&§'¡'¨"¨b£/ÑˆˆB�˜Ü�V˜QÔÜ�R—X‘X˜a‘[ !Ô$Ü”R—Y‘Y×*Ñ*¨2Ó.°Õ2r   c                 ó  — d\  }}t        j                  ||f«      }d|d d …df<   t        j                  |«      }| j                  ||«      \  }}}}t	        |d«       t        ||dd…d d …f   «       t        ||d   «       y )Nr@   r   r   )r   ÚzerosÚonesr)   r   r   r*   s	            r   Útest_m_gt_n_rank_deficientz(RRCommonTests.test_m_gt_n_rank_deficientf   s}   € Ø‰ˆˆ1Ü�X‰X�q˜!�fÓˆØˆŠ1ˆaˆ4‰Ü�W‰W�Q‹ZˆØ"&§'¡'¨"¨b£/ÑˆˆB�˜Ü�V˜QÔÜ˜˜B˜q ˜s¢A˜v™JÔ'Ü˜˜B˜q™EÕ"r   c                 ó  — d\  }}t         j                  j                  ||«      }t         j                  j                  |«      }t        j                  |dz
  «      j	                  |d d «      |dd d …f<   t        j                  |dz
  «      j	                  |d d «      |d<   | j                  ||«      \  }}}}t        |d«       t        |j                  d   d«       t        t         j                  j                  |«      d«       y )NrI   r   rF   r   é   )
r   r   r(   rK   rL   r)   r   r   r   r   r*   s	            r   Útest_m_lt_n_rank_deficientz(RRCommonTests.test_m_lt_n_rank_deficientp   sÐ   € Ø‰ˆˆ1Ü�Y‰Y�^‰^˜A˜qÓ!ˆÜ�Y‰Y�^‰^˜AÓˆÜ—I‘I˜a !™eÓ$×(Ñ(¨¨C¨R¨Ó1ˆˆ2Šqˆ5‰	Ü—‘˜1˜q™5Ó!×%Ñ% b¨¨" gÓ.ˆˆ2‰Ø"&§'¡'¨"¨b£/ÑˆˆB�˜Ü�V˜QÔÜ�R—X‘X˜a‘[ !Ô$Ü”R—Y‘Y×*Ñ*¨2Ó.°Õ2r   c                 óB  — 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   «      }| j	                  ||«      \  }}}}t        t        ||«      «       t        |d«       y )N)é   rZ   r   r7   r   rF   r8   é   )r   rT   rS   r   r)   r   r"   r   r:   s          r   Útest_dense1zRRCommonTests.test_dense1{   sª   € Ü�G‰G�F‹OˆØˆˆ!ˆRˆaˆRˆ%‰Øˆˆ!ˆQ‰Rˆ%‰Øˆˆ!‰"‰c�ˆcˆ'‰
Øˆˆ!ˆRˆaˆRˆ%‰Øˆˆ!ˆQ‰Rˆ%‰Ü�H‰H�Q—W‘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   «      }| j	                  ||«      \  }}}}t        t        ||«      «       t        |d«       y ©NrZ   r   )rE   rF   rF   r   )r   r9   rS   r   r)   r   r"   r   r:   s          r   Útest_dense2zRRCommonTests.test_dense2ˆ   sm   € Ü�F‰F�1‹IˆØˆˆ&‰	Øˆˆ"Šaˆ%‰Ü�H‰H�Q—W‘W˜Q‘ZÓ ˆØ"&§'¡'¨!¨Q£-ÑˆˆB�˜ÜÔ" 2 qÓ)Ô*Ü�V˜QÕr   c                 óH  — t        j                  d«      }d|d<   d|dd d …f<   t         j                  j                  |j                  d   «      }t        j
                  |d d «      |d<   | j                  ||«      \  }}}}t        t        ||«      «       t        |d«       y r^   )
r   r9   r   r(   r   Úsumr)   r   r"   r   r:   s          r   Útest_dense3zRRCommonTests.test_dense3‘   sˆ   € Ü�F‰F�1‹IˆØˆˆ&‰	Øˆˆ"Šaˆ%‰Ü�I‰I�N‰N˜1Ÿ7™7 1™:Ó&ˆÜ—‘�q˜˜"�v“ˆˆ"‰Ø"&§'¡'¨!¨Q£-ÑˆˆB�˜ÜÔ" 2 qÓ)Ô*Ü�V˜QÕr   c                 ó(  — t         j                  j                  d«       d\  }}d}t         j                  j                  ||«      }d|t         j                  j                  ||«      |kD  <   t         j                  j                  |«      }t        j                  |j                  d   «      }| j                  ||«      \  }}}	}
t        |	d«       t        |j                  d   |«       t        t         j                  j                  |«      |«       y )NiÝ  )rA   é   gš™™™™™¹?r   ©
r   r   r   r(   r   r   rS   r   r)   r   ©r+   r,   r-   Úpr   Úrankr;   r0   r1   r2   r3   s              r   Útest_m_gt_n_sparsez RRCommonTests.test_m_gt_n_sparse›   sÉ   € Ü
�	‰	�‰�tÔØ‰ˆˆ1ØˆÜ�I‰I�N‰N˜1˜aÓ ˆØ&'ˆŒ"�)‰)�.‰.˜˜AÓ
 Ñ
"Ñ#Ü�y‰y×$Ñ$ QÓ'ˆÜ�H‰H�Q—W‘W˜Q‘ZÓ ˆØ"&§'¡'¨!¨Q£-ÑˆˆB�˜Ü�V˜QÔÜ�R—X‘X˜a‘[ $Ô'Ü”R—Y‘Y×*Ñ*¨2Ó.°Õ5r   c                 ó(  — t         j                  j                  d«       d\  }}d}t         j                  j                  ||«      }d|t         j                  j                  ||«      |kD  <   t         j                  j                  |«      }t        j                  |j                  d   «      }| j                  ||«      \  }}}	}
t        |	d«       t        |j                  d   |«       t        t         j                  j                  |«      |«       y )Nr   )rA   é2   gš™™™™™©?r   re   rf   s              r   Útest_m_lt_n_sparsez RRCommonTests.test_m_lt_n_sparse¨   sÉ   € Ü
�	‰	�‰�tÔØ‰ˆˆ1ØˆÜ�I‰I�N‰N˜1˜aÓ ˆØ&'ˆŒ"�)‰)�.‰.˜˜AÓ
 Ñ
"Ñ#Ü�y‰y×$Ñ$ QÓ'ˆÜ�H‰H�Q—W‘W˜Q‘ZÓ ˆØ"&§'¡'¨!¨Q£-ÑˆˆB�˜Ü�V˜QÔÜ�R—X‘X˜a‘[ $Ô'Ü”R—Y‘Y×*Ñ*¨2Ó.°Õ5r   c                 ó(  — t         j                  j                  d«       d\  }}d}t         j                  j                  ||«      }d|t         j                  j                  ||«      |kD  <   t         j                  j                  |«      }t        j                  |j                  d   «      }| j                  ||«      \  }}}	}
t        |	d«       t        |j                  d   |«       t        t         j                  j                  |«      |«       y )Nr   )éd   rn   g{®Gáz„?r   re   rf   s              r   Útest_m_eq_n_sparsez RRCommonTests.test_m_eq_n_sparseµ   sÉ   € Ü
�	‰	�‰�tÔØ‰ˆˆ1ØˆÜ�I‰I�N‰N˜1˜aÓ ˆØ&'ˆŒ"�)‰)�.‰.˜˜AÓ
 Ñ
"Ñ#Ü�y‰y×$Ñ$ QÓ'ˆÜ�H‰H�Q—W‘W˜Q‘ZÓ ˆØ"&§'¡'¨!¨Q£-ÑˆˆB�˜Ü�V˜QÔÜ�R—X‘X˜a‘[ $Ô'Ü”R—Y‘Y×*Ñ*¨2Ó.°Õ5r   c                 óð   — t        d«      \  }}}}}| j                  ||«      \  }}}}	t        |d«       t        |j                  d   d«       t        t        j
                  j                  |«      d«       y )Nr7   r   é   ©r   r)   r   r   r   r   r   ©
r+   r   r;   ÚcÚnumbersÚ_r0   r1   r2   r3   s
             r   Útest_magic_squarezRRCommonTests.test_magic_squareÂ   óc   € Ü*¨1›oÑˆˆ1ˆa�˜!Ø"&§'¡'¨!¨Q£-ÑˆˆB�˜Ü�V˜QÔÜ�R—X‘X˜a‘[ "Ô%Ü”R—Y‘Y×*Ñ*¨2Ó.°Õ3r   c                 óð   — t        d«      \  }}}}}| j                  ||«      \  }}}}	t        |d«       t        |j                  d   d«       t        t        j
                  j                  |«      d«       y )Nr[   r   é'   rr   rs   s
             r   Útest_magic_square2z RRCommonTests.test_magic_square2É   rx   r   N)Ú__name__Ú
__module__Ú__qualname__r4   r<   r>   rC   rG   rM   rQ   rU   rX   r\   r_   rb   ri   rl   ro   rw   r{   r   r   r   r$   r$   (   sW   „ ò ò ò'ò ò ò ò
3ò#ò	3ò ò ò ò6ò6ò6ò4ó4r   r$   c                   ó   — e Zd Zd„ Zy)Ú	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y)ÚTestRRPivotDensec                 ó   — t        ||«      S r‚   r
   rƒ   s      r   r)   zTestRRPivotDense.rr×   s   € Ü-¨a°Ó3Ð3r   Nr„   r   r   r   r†   r†   Ö   s   „ ó4r   r†   c                   ó   — e Zd Zd„ Zy)Ú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y)ÚTestRRPivotSparsec                 ób   — t        t        |«      |«      }|\  }}}}|j                  «       |||fS r‚   )r   r   Útoarray)r+   r   r;   Úrr_resr0   r1   r2   r3   s           r   r)   zTestRRPivotSparse.rrá   s5   € Ü0´¸A³ÀÓBˆØ"(ÑˆˆB�˜Ø�z‰z‹|˜R ¨Ð0Ð0r   Nr„   r   r   r   rŒ   rŒ   à   s   „ ó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   r   ú<module>r–      su   ðñó ÷ñ õ
 'Ý DÝ LÝ MÝ Cå #òò	N÷f4ñ f4ôR,�ô ,ô
4�}ô 4ô
+ˆ}ô +ô
1˜õ 1r   