403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/scipy/optimize/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/scipy/optimize/tests/__pycache__/test_linprog.cpython-311.pyc
�

d�c�u����dZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZddlm
ZddlmZmZddlmZddlmZddlmZddlZddlZddlZd	Z	dd
lmZn
#e$rdZYnwxYwd	Z	ddlZddl m!Z"n
#e$rdZYnwxYwd
�Z#d�Z$d�Z%d�Z&		dXd�Z'd�Z(d�Z)dYd�Z*d�Z+dZd�Z,d�Z-d�Z.d�Z/d�Z0d�Z1d �Z2dZ3dZ4dZ5dZ6dZ7Gd!�d"��Z8ej9�:d#��Gd$�d%e8����Z;ej9�:d#��Gd&�d'e8����Z<ej9�:d#��Gd(�d)e8����Z=Gd*�d+e8��Z>Gd,�d-e;��Z?Gd.�d/e;��Z@Gd0�d1e;��ZAGd2�d3e<��ZBerGd4�d5e<��ZCerGd6�d7e<��ZDGd8�d9e<��ZEGd:�d;e<��ZFej9�:d#��Gd<�d=����ZGGd>�d?e=��ZHGd@�dAe=��ZIGdB�dCe>��ZJGdD�dEe>��ZKGdF�dG��ZLej9�:d#��GdH�dI����ZMGdJ�dKeM��ZNGdL�dMeM��ZOGdN�dOeM��ZPej9�:d#��GdP�dQ����ZQGdR�dSeQ��ZRGdT�dUeQ��ZSGdV�dWeQ��ZTdS)[z"
Unit test for Linear Programming
�N)�assert_�assert_allclose�assert_equal�assert_array_less�assert_warns�suppress_warnings)�raises)�linprog�OptimizeWarning)�approx_derivative)�MatrixRankWarning)�
LinAlgWarningT)�UmfpackWarningF)�choleskyc��t|jd��t|j|kd��t|jdd��dS)N�Incorrectly reported successz)Incorrectly reported number of iterations�z(Failed to report iteration limit reached�r�successr�status)�res�maxiters  �C/usr/lib/python3/dist-packages/scipy/optimize/tests/test_linprog.py�_assert_iteration_limit_reachedr!sJ�����O�;�<�<�<��C�K�'�!�#N�O�O�O����Q� J�K�K�K�K�K�c�^�t|jd��t|jdd��dS)N�incorrectly reported success�z"failed to report infeasible statusr�rs r�_assert_infeasibler 's2�����O�;�<�<�<����Q� D�E�E�E�E�Erc�^�t|jd��t|jdd��dS)Nr�z!failed to report unbounded statusrrs r�_assert_unboundedr#-s2�����O�;�<�<�<����Q� C�D�D�D�D�Drc�`�t|jd��t|jdvd��dS)Nr�r�z%failed to report optimization failure)rrrrs r�)_assert_unable_to_find_basic_feasible_solr'3s7�����O�;�<�<�<��C�J�&� �"I�J�J�J�J�Jr�:�0�yE>c��|js/d�|j|j��}t	|���t|jd��|�t
|j|d||���|�t
|j|d||���dSdS)Nz linprog status {0}, message: {1}rz*converged to an unexpected objective value��err_msg�rtol�atolz#converged to an unexpected solution)	r�formatr�message�AssertionErrorrr�fun�x)r�desired_fun�	desired_xr,r-�msgs      r�_assert_successr6=s���
�;�"�0�7�7��
�8;��E�E���S�!�!�!����Q���������� L�!��	.�	.�	.�	.������y� E�!��	.�	.�	.�	.�	.�	.��rc	�D�tj�d��||dzdzzdz}tj|dz��|dzzdz}|�|dz||��}tj|dz||f��}g}g}t
|dz��D]^}|���}d||dd�dd�f<|�|�	����|�d���_t
|��D]n}t
|��D]\}|���}d|dd�||f<|�|�	����|�d���]�ot
|��D]k}|���}|dd�|dd�f|dd�|dd�f<|�|�	����|�|���lt
|��D]k}|���}|dd�dd�|f|dd�dd�|f<|�|�	����|�|���l|���}|dd�t
|��t
|��f|dd�t
|��t
|��f<|�|�	����|�|��|���}|dd�t
|��t
d|dz
d��f|dd�t
|��t
d|dz
d��f<|�|�	����|�|��tj
tj|��t���}	tj
|t���}
tj�
|	jd��}|	|
|||fS)z�
    Generates a linear program for which integer solutions represent an
    n x n magic square; binary decision variables represent the presence
    (or absence) of an integer 1 to n^2 in each position of the square.
    rrrr&N�����dtype)�np�random�seed�arange�reshape�zeros�range�copy�append�flatten�array�vstack�float�rand�shape)�n�M�numbersr@�A_list�b_list�i�A_row�j�A�b�cs            r�magic_squarerURs����I�N�N�1����	�Q��T�A�X����A��i��1��o�o��A��%��)�G��o�o�a��d�A�q�)�)�G��H�a��d�A�q�\�"�"�E�
�F�
�F��1�a�4�[�[�����
�
������a����A�A�A�g���
�
�e�m�m�o�o�&�&�&��
�
�a������1�X�X�����q���	�	�A��J�J�L�L�E��E�!�!�!�Q��'�N��M�M�%�-�-�/�/�*�*�*��M�M�!�����		��1�X�X�����
�
���� ����A�q�q�q��)��a�a�a��A�A�A�g���
�
�e�m�m�o�o�&�&�&��
�
�a������1�X�X�����
�
���� ����A�A�A�q��)��a�a�a����A�g���
�
�e�m�m�o�o�&�&�&��
�
�a�����
�J�J�L�L�E�#*�1�1�1�e�A�h�h��a���+@�#A�E�!�!�!�U�1�X�X�u�Q�x�x�
� �
�M�M�%�-�-�/�/�"�"�"�
�M�M�!�����J�J�L�L�E�����5��8�8�U�2��r�A�v�r�2�2�2�3�
�!�!�!�U�1�X�X�u�R�!��a���,�,�
,�-�
�M�M�%�-�-�/�/�"�"�"�
�M�M�!����
����6�"�"�%�0�0�0�A�
���u�%�%�%�A�
�	���q�w�q�z�"�"�A��a��G�Q��rc�h�tj�d��tj�||f���}tj|||zf��}tj|��}t|��D]}|dz}d||||z||z�f<||z||<�tj|||zf��}tj|��}t|��D]}|dz}d|||d|�f<d||<�tj||f��}	tj||f��}
|	|
|���fS)z� -> A b c LP test: m*n vars, m+n constraints
        row sums == n/m, col sums == 1
        https://gist.github.com/denis-bz/8647461
    r��sizerN)	r;r<r=�exponentialr@rArF�hstack�ravel)�mrJrT�Arow�browrQ�j1�Acol�bcolrRrSs           r�lpgen_2drb�s<��
�I�N�N�1����
�)�
�
�a��V�
�
,�
,�,�A�
�8�Q��A��J���D�
�8�A�;�;�D�
�1�X�X����
��U�� !��Q��A��b�1�f��_���a�%��Q���
�8�Q��A��J���D�
�8�A�;�;�D�
�1�X�X����
��U����Q���1��W�
���Q���
�	�4��,���A�
�	�4��,���A��a������?�rc�(�tj�|��d\}}}tj�|��dz
}tj�||��dz
}tj�|��dz
}tj�||��dz
}tj�|��dz
}tj�|��}	tj�|��}
tj|	|	tj���k<tj|
|
tj���k<tj|	|
f��j}||||||fS)N)�
��2��?)r;r<r=rH�infrF�T)r=�m_eq�m_ubrJrT�A_ub�b_ub�A_eq�b_eq�lb�ub�boundss            r�very_random_genrs�s.���I�N�N�4�����M�D�$��
�	���q���#��A�
�9�>�>�$��"�"�3�&�D�
�9�>�>�$����#�D�
�9�>�>�$��"�"�3�&�D�
�9�>�>�$����#�D�
�)�.�.��
�
�	�B�	�����	�	�B�"$�&��B�r�R�Y�^�^�
�
���� "��B�r�B�I�N�N�����
�Y��B�x�
 �
 �
"�F��d�D�$��f�,�,rc�\�gd�}gd�gd�gd�gd�g}gd�}gd�g}dg}gd	�}d
}|||||||fS)N)r8�r&���)���rw��	)rr8���r)rd���rw�)rxr8r"r&)rzrxrvrx)r{rr������)gk椀���?g�s���?rg��k��L�?g�qY�:^@�)rTrlrmrnro�x_star�f_stars       r�nontrivial_problemr��ss�����A��N�N��N�N�����M�M��D��>�>�D��O�O��D��4�D�
5�
5�
5�F�
�F��d�D�$��f�f�4�4rrury�dc�P�tj�|��tj�dd||f���}tj�|��}tj�dd||f���}|||zztj�dd|���z}tj||z��}d|d|�<tj�d|z||zf��}	d}
t|��D]P}||dd�|fz|	|
d|�f<d|	|
||zf<d|z|dd�|fz|	|
dzd|�f<d|	|
dz||zf<|
dz
}
�Q|	�
��}	tjd|z��}||ddd�<||ddd�<dg|zd	g|zz}
||	||
fS)
z�
    Training data is {(x0, y0), (x1, y2), ..., (xn-1, yn-1)}
        x in R^d
        y in R
    n: number of training samples
    d: dimension of x, i.e. x in R^d
    phi: feature map R^d -> R^m
    m: dimension of feature space
    rrrW��h㈵��>Nrr8�NN�rN)r;r<r=�normal�randn�ones�scipy�sparse�
lil_matrixrA�tocscr@)r=r\�drJ�phi�w_truer2�yrTrl�idx�iirm�bndss              r�l1_regression_probr��s����I�N�N�4����
�)�
�
�1�a�q�!�f�
�
-�
-�C�
�Y�_�_�Q�
�
�F�
�	����A�Q��F��+�+�A��#��'��R�Y�-�-�a��A�-�>�>�>�A�	���!����A�
�A�b�q�b�E��<�"�"�A�a�C��1��:�.�.�D�
�C��A�h�h�����a����2��h���S�"�1�"�W�
���S�!�B�$�Y���S�&�1�Q�Q�Q��U�8�+��S��U�B�Q�B�Y����S��U�A�b�D�[���q�����:�:�<�<�D�
�8�A�a�C�=�=�D��D���A��J���D���A��J��>�!��y�k�!�m�+�D��d�D�$��rc���i��fd�}tjddg��}ddgddgddgg}gd�}t|||||j���}t	|d	dd
g���t�d|d��t�d
|d
��t�d|d��t�d|d��dS)Nc�P��|�d��}|�d��}t|�d��dv��t|�d��td��v��tt|�d��t����tt|t
����tt|t����|d�d<|d	�d	<|d
�d
<|d�d<dS)Nr/�complete�phase�rrrr&�nitr2r1�slack�con)�poprrA�
isinstance�int�bool�str)rr/r��last_cbs   �r�cbz!generic_callback_test.<locals>.cb�s�����'�'�)�$�$���7�7�:�&�&������� � �F�*�+�+�+������!�!�U�1�X�X�-�.�.�.��
�3�7�7�5�>�>�3�/�/�0�0�0��
�8�T�*�*�+�+�+��
�7�C�(�(�)�)�)��3�x�����U������w�<�����U������rrz���rrr�rdrur&�rlrm�callback�method�2�rx�r3r4r1r2r�r�)r;rEr
r�r6r)�selfr�rTrlrmrr�s      @r�generic_callback_testr��s�����G�
$�
$�
$�
$�
$�	��"�b����A�
��F�Q��F�Q��F�#�D��:�:�D�
�!�$�T�B�t�{�
K�
K�
K�C��C�U�q�!�f�=�=�=�=��G�E�N�C��J�/�/�/��G�C�L�#�c�(�+�+�+��G�E�N�C��J�/�/�/��G�G�$�c�'�l�3�3�3�3�3rc�^�tjddg��}ddgddgddgg}gd�}ttt|||d���ttt|||d	���tjtd
���5t	|||ddi�
��ddd��dS#1swxYwYdS)Nrzr�rrrr��ekki-ekki-ekki�rlrmr�z
highs-ekkizUnknown solver options:��match�	rr_method�rlrm�options)r;rE�
assert_raises�
ValueErrorr
�pytest�warnsr)rTrlrms   r� test_unknown_solvers_and_optionsr�s'��
��"�b����A�
��F�Q��F�Q��F�#�D��:�:�D��*�g��$�T�2B�D�D�D�D��*�g��$�T�,�@�@�@�@�	��o�-F�	G�	G�	G�9�9����4�$�&6�7�	9�	9�	9�	9�9�9�9�9�9�9�9�9�9�9�9�9����9�9�9�9�9�9s�?B"�"B&�)B&c��tjddg��}ddgddgddgg}gd�}t|||d���}t|d	dd
g���dS)Nrzr�rrrr��highs�r�r�rxr�)r;rEr
r6)rTrlrmrs    r�test_choose_solverr�sk��
��"�b����A�
��F�Q��F�Q��F�#�D��:�:�D�
�!�T�4��
0�
0�
0�C��C�U�q�!�f�=�=�=�=�=�=rc��tjt��5tdd���ddd��n#1swxYwYtjt��5tdd���ddd��n#1swxYwYtjt��5tdd���ddd��dS#1swxYwYdS)Nr�interior-pointr��revised simplex�simplex)r�r��DeprecationWarningr
rrr�test_deprecationr�'s~��	��(�	)�	)�,�,���*�+�+�+�+�,�,�,�,�,�,�,�,�,�,�,����,�,�,�,�	��(�	)�	)�-�-���+�,�,�,�,�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-�	��(�	)�	)�%�%���)�$�$�$�$�%�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�%�%s0�8�<�<�A:�:A>�A>�B=�=C�Cc	���tdd���}d}|jdksJ�|j�|��sJ�t	d��\}}}}}dgt|��z}dgt|��z}dd	i}	t||||d|	|�
��}d}|jdksJ�|j�|��sJ�dd
i}	t||||d|	���}d}|jdksJ�|j�|��sJ�tddd���}d}|jdksJ�|j�|��sJ�tdd���}d}|jdksJ�|j�|��sJ�ddlm}
|
dd��\}}d}|dksJ�|�|��sJ�|
dd��\}}d}|dksJ�|�|��sJ�dS)Nrr�r�z6Optimization terminated successfully. (HiGHS Status 7:rrx�rr�
time_limit皙�����?)rTrnrorrr�r��integralityz%Time limit reached. (HiGHS Status 13:rrd�highs-ds�rTrnrorrr�r�z*Iteration limit reached. (HiGHS Status 14:)rr8)rrr�z+The problem is infeasible. (HiGHS Status 8:rr8z+The problem is unbounded. (HiGHS Status 10:r")�_highs_to_scipy_status_message�:zHello!z;The HiGHS status code was not recognized. (HiGHS Status 58:r&z>HiGHS did not provide a status code. (HiGHS Status None: None))r
rr/�
startswithrU�len�scipy.optimize._linprog_highsr�)
rr5rRrSrTrLrKrrr�r�r�rr/s
             r�test_highs_status_messager�0sV��
�!�G�
$�
$�
$�C�
B�C��:��?�?�?�?��;�!�!�#�&�&�&�&�&�&�q�/�/��A�q�!�W�a��X��A���
�F��#��A���,�K��S�!�G�
�A�A�A�f�W�!�{�<�<�<�C�
1�C��:��?�?�?�?��;�!�!�#�&�&�&�&�&��"�o�G�
�A�A�A�f�Z�!�#�#�#�C�
6�C��:��?�?�?�?��;�!�!�#�&�&�&�&�&�
�!�G�G�
4�
4�
4�C�
7�C��:��?�?�?�?��;�!�!�#�&�&�&�&�&�
�"�W�
%�
%�
%�C�
7�C��:��?�?�?�?��;�!�!�#�&�&�&�&�&�L�L�L�L�L�L�4�4�R��B�B�O�F�G�
G�C��Q�;�;�;�;����c�"�"�"�"�"�4�4�T�4�@�@�O�F�G�
J�C��Q�;�;�;�;����c�"�"�"�"�"�"�"rc�<�tddgddggdgddg���dS)Nrr8r��)rlrmr�)r
rrr�test_bug_17380r�]s/���Q��F�2�q�'��$��a��V�D�D�D�D�D�Drc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zej�ej���d��d���d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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+�Z0d,�Z1d-�Z2d.�Z3d/�Z4d0�Z5d1�Z6d2�Z7d3�Z8d4�Z9d5�Z:d6�Z;d7�Z<d8�Z=d9�Z>d:�Z?d;�Z@d<�ZAd=�ZBd>�ZCd?�ZDd@�ZEdA�ZFdB�ZGdC�ZHdD�ZIdE�ZJdF�ZKdG�ZLdH�ZMdI�ZNdJ�ZOdK�ZPdL�ZQdM�ZRdN�ZSdO�ZTdP�ZUej�eVjdQkdR���dS���ZWdTS)U�LinprogCommonTestsa�
    Base class for `linprog` tests. Generally, each test will be performed
    once for every derived class of LinprogCommonTests, each of which will
    typically change self.options and/or self.method. Effectively, these tests
    are run for many combination of method (simplex, revised simplex, and
    interior point) and options (such as pivoting rule or sparse treatment).
    c�$�t|��dS�N)r��r�s r�
test_callbackz LinprogCommonTests.test_callbackys���d�#�#�#�#�#rc��tdd��\}}}t||||jddi���}t|d���dS)Nre�dispT�rlrmr�r��T���*P��r3�rbr
r�r6�r�rRrSrTrs     r�	test_dispzLinprogCommonTests.test_disp|sU���2�r�"�"���1�a��a�a�a���%�t�n�.�.�.�����7�7�7�7�7�7rc��ddg}ddgddgg}ddg}d}d}t|||||f|j|j�	��}t|d
���dS)Nr8r&rzrrrxr��rzN)rlrmrrr�r����r�)r
r�r�r6)r�rTrRrS�	x0_bounds�	x1_boundsrs       r�test_docstring_examplez)LinprogCommonTests.test_docstring_example�sv��
��G���!�W�q�!�f���
��F�� �	��	��a�a�a��I�0F�"�l�4�;�@�@�@�����-�-�-�-�-�-rc	�l�dg}dgg}d}ttt||||j|j���dS)Nr�hello�rnror�r�)r��	TypeErrorr
r�r�)r�rTrnros    r�test_type_errorz"LinprogCommonTests.test_type_error�sT���C����u�����i���d��!�[�$�,�	@�	@�	@�	@�	@�	@rc
�f�tjdg��}tjdgg��}tjdg��}|���}dtjf}t	|||t
t||j|j���}t|ddg���t||��dS)N��?�@���r�r�r~r�)r;rErBrhr
rnror�r�r6r)r�rTrl�	b_ub_origrmrrrs       r�test_aliasing_b_ubz%LinprogCommonTests.test_aliasing_b_ub�s���
�H�c�U�O�O���x�#��� � ���H�c�U�O�O�	��~�~����������a��t�T�4��!�[�$�,�@�@�@������t�<�<�<�<��	�4�(�(�(�(�(rc
�f�tjdg��}tjdgg��}tjdg��}|���}dtjf}t	|t
t||||j|j���}t|ddg���t||��dS)Nr�r�r�r�r"r�)r;rErBrhr
rlrmr�r�r6r)r�rTrn�	b_eq_origrorrrs       r�test_aliasing_b_eqz%LinprogCommonTests.test_aliasing_b_eq�s���
�H�c�U�O�O���x�#��� � ���H�c�U�O�O�	��~�~����������a��t�T�4��!�[�$�,�@�@�@�����q�c�:�:�:�:��	�4�(�(�(�(�(rc
��dg}dgg}dg}dgg}dg}d}t|||||||j|j���}t|ddg���dS)Nr�r�g@)���$@r�rr�)r
r�r�r6�r�rTrlrmrnrorrrs        r�test_non_ndarray_argsz(LinprogCommonTests.test_non_ndarray_args�sy���E����w���u����w���u�����a��t�T�4��!�[�$�,�@�@�@�����q�c�:�:�:�:�:�:rc����tjddg��}ddgddgddgg}gd�}dddddif�fd�	}�fd��jD��}d	|d
<tt|||||���dS)Nrzr�rrrr�c
�@��t||||||�j|���dS�Nr��r
r�)rTrlrmrnrorrr�r�s       �r�fz2LinprogCommonTests.test_unknown_options.<locals>.f�s7����A�t�T�4��v��;��
9�
9�
9�
9�
9�
9rc�,��i|]}|�j|��Sr�r���.0�keyr�s  �r�
<dictcomp>z;LinprogCommonTests.test_unknown_options.<locals>.<dictcomp>��"���<�<�<��S�$�,�s�#�<�<�<r�*�spamr�)r;rEr�rr)r�rTrlrmr�os`     r�test_unknown_optionsz'LinprogCommonTests.test_unknown_options�s�����H�b�"�X�����A���A���A��'���z�z����D���b�	9�	9�	9�	9�	9�	9�

=�<�<�<�t�|�<�<�<����&�	��_�a��T��a�	9�	9�	9�	9�	9�	9rc	�B�tjddgddgddgg��}tjgd���}tjddg��}dtjfgt|��z}dgt|��z}tj�t��5t|||||j|���}ddd��n#1swxYwYtj�	|j
dd	g��tj�	|jd
��dS)Nr8rr"r�r�rr�rTrlrmrrr�r��������?�ffffff@�ffffff�)r;rErhr��testingrrr
r�rr2r1�r�rlrmrTrrr�rs       r�test_integrality_without_highsz1LinprogCommonTests.test_integrality_without_highs�sZ���x�"�a��1�a�&�1�a�&�1�2�2���x����$�$��
�X�q�!�f�
�
����b�f�+���Q���'���c�C��F�F�l��
�Z�
$�
$�_�
5�
5�	G�	G��A�D�t�F�!%��+�G�G�G�C�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	�
�"�"�3�5�3��*�5�5�5�
�
�"�"�3�7�D�1�1�1�1�1s�!C�C�Cc�v��d�fd�	}tt|gd�ddg���tt|gd�gd����tt|gd�ddg���tt|dd	gdd	ggdd	g�
��tt|dd	gdggdg�
��tt|dd	gdd	ggdd	g���tt|dd	gdggdg���tt|dd	gdgd���d�jvr�jdrdStt|dd	gtjd
��d���dS)Nc
�J��t||||||�j�j���dSr�r
r�r��rTrlrmrnrorrr�s      �rrz1LinprogCommonTests.test_invalid_inputs.<locals>.f��9����A�t�T�4��v��;���
>�
>�
>�
>�
>�
>r�rrr"r��r"r&�rr)r�r)r"r&��rr�rr)rlrm)rnro�_sparse_presolve)rrr")rlro�NNNNN)r�r�r�r;r@)r�rs` r�test_invalid_inputsz&LinprogCommonTests.test_invalid_inputs�s����	>�	>�	>�	>�	>�	>�
	�j�!�Y�Y�Y���7G�H�H�H�H��j�!�Y�Y�Y�7R�7R�7R�S�S�S�S��j�!�Y�Y�Y���7H�I�I�I�I�	�j�!�a��V�A�q�6�(�!�Q��H�H�H�H��j�!�a��V�A�3�%�q�c�B�B�B�B��j�!�a��V�A�q�6�(�!�Q��H�H�H�H��j�!�a��V�A�3�%�q�c�B�B�B�B��j�!�a��V�1�#�A�>�>�>�>�
�$�,�.�.���/�0�
/��F�	�j�!�a��V�"�(�9�2E�2E�A�N�N�N�N�N�Nrc	���d�fd�	}tj�d��d}d}tj�||d��}tj�|��}tj�|��}|tj�|��z}|tj�|��z
}tj||f��}	||z}
�jdvrYttd�j�d��	��5t|||
|	�j�j�
��ddd��dS#1swxYwYdSi�j�}�jdvrd|d
<t|||
|	�j|�
��}|j
sJ�dS)Nc
�J��t||||||�j�j���dSrrrs      �rrz5LinprogCommonTests.test_sparse_constraints.<locals>.f�rrrr��rg>r�r�zMethod 'z.' does not support sparse constraint matrices.r�r�>r�Tr�r#)r;r<r=r�r�rHr��column_stackr�r�r�r
r�r)
r�rr\rJrn�x_validrTrqrprrror�rs
`            r�test_sparse_constraintsz*LinprogCommonTests.test_sparse_constraints�s���	>�	>�	>�	>�	>�	>�	�	���q���������|� � ��A�s�+�+���)�/�/�1�&�&���I�O�O�Q� � ��
�r�y�~�~�q�*�*�
*��
�r�y�~�~�q�*�*�
*����"�b��*�*���g�~���;�8�8�8��z�2N�D�K�2N�2N�2N�O�O�O�
B�
B��!�$�T�&�#�{�D�L�B�B�B�B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B�
B�
B�'���&�G��{�0�0�0�$(���!��A�D�t�F�!%��g�?�?�?�C��;�����s� D>�>E�Ec���gd�}gd�gd�gd�g}gd�}tj�d��d}t||||jd|i�	��}t||��t
|j|��dS)
N�r&rur"rrr�rr r"r8rr�r"�@rurr8r�rurdr&rrr8���iXrr"rr�)r;r<r=r
r�rrr�)r�rTrRrSrrs      r�test_maxiterzLinprogCommonTests.test_maxiters����������!�!�!� � � �
"��
�O�O��
�	���q�������a�a�a���(�'�2�4�4�4��'��W�5�5�5��S�W�g�&�&�&�&�&rc��|j�dd��}tdgd|j|j���}t	|dd��|rt|jd��tgd�gd�|j|j���}t	|d	gd
���|rt|jd��tddgddg|j|j���}t	|dddg��|rt|jd��tgd
�gd�gd�gddggd�|j|j���}t	|dgd���|rt|jd��dSdS)N�presolveTr)rr�rrr�r�rr))r r )r8r8)r"r"r)r r8r")rr"r)rrr�rrr�rrrr|))���r )rrd)�@r;�rnrorrr�r��)rr|r;)r��getr
r�r6rr��r��do_presolvers   r�test_bounds_fixedz$LinprogCommonTests.test_bounds_fixed+s���
�l�&�&�z�4�8�8���q�c�&�!�[�$�,�@�@�@����Q��"�"�"��	%����!�$�$�$��i�i�i�(B�(B�(B�!�[�$�,�@�@�@����R����,�,�,��	%����!�$�$�$��q�!�f�f�f�%5�!�[�$�,�@�@�@����Q��A��'�'�'��	%����!�$�$�$��i�i�i�y�y�y�)�)�)�&<�A�q�6�;�;�;�!�[�$�,�@�@�@��	��R����-�-�-��	%����!�$�$�$�$�$�	%�	%rc���|j�dd��}tdgd|j|j���}t	|��|rt|jd��tdgdg|j|j���}t	|��|rt|jd��tgd�gd�|j|j���}t	|��|rt|jd��dSdS)	Nr6Trr!r7rr))r rr�r)r�r>r
r�r rr�r?s   r�test_bounds_infeasiblez)LinprogCommonTests.test_bounds_infeasibleKs��
�l�&�&�z�4�8�8���q�c�'�$�+�t�|�T�T�T���3�����	%����!�$�$�$��q�c�7�)�D�K���V�V�V���3�����	%����!�$�$�$��i�i�i�(@�(@�(@���^b�^j�k�k�k���3�����	%����!�$�$�$�$�$�	%�	%r�armztest known to fail on armel��reasonc����j�dd��}|o
�jdk}gd�}dtjtjfdg}dtjtjfdg}|r�fd�}tjt��5tjt��5|||���ddd��n#1swxYwYddd��n#1swxYwYtjt��5tjt��5|||���ddd��n#1swxYwYddd��dS#1swxYwYdSt||�j�j�	��}t|��|rt|j
d
��t||�j�j�	��}t|��|rt|j
d
��dSdS)Nr6Tr�rr�rc�B��t||�j�j���}|S)Nr7r)rTrrrr�s   �r�gz6LinprogCommonTests.test_bounds_infeasible_2.<locals>.gss"����a��t�{�D�L�Y�Y�Y���
rr�rTrrr�r�r)r�r>r�r;rhr�r��RuntimeWarningr	�
IndexErrorr
r rr�)r�r@�simplex_without_presolverT�bounds_1�bounds_2rIrs`       r�test_bounds_infeasible_2z+LinprogCommonTests.test_bounds_infeasible_2as�����l�&�&�z�4�8�8��'2�?�#O�t�{�i�7O� ��I�I���R�V�R�V�,�f�5���b�f�W�r�v�g�.��7��#�	)�
�
�
�
�
���n�-�-�
*�
*��]�:�.�.�*�*��A�a��)�)�)�)�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*���n�-�-�
*�
*��]�:�.�.�*�*��A�a��)�)�)�)�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*�
*�
*��A�h�t�{�D�L�Y�Y�Y�C��s�#�#�#��
)��S�W�a�(�(�(��A�h�t�{�D�L�Y�Y�Y�C��s�#�#�#��
)��S�W�a�(�(�(�(�(�
)�
)sl�C�!B;�/C�;B?	�?C�B?	�C�C�C�6E�D*�E�*D.	�.E�1D.	�2E�E�	Ec�d�ddg}t||j|j���}t|��dS)Nr8r�r�)r
r�r�r#)r�rTrs   r�test_empty_constraint_1z*LinprogCommonTests.test_empty_constraint_1�s7��
��H���a���T�\�B�B�B���#�����rc��gd�}dtjftjdfddg}t|||j|j���}t|��|j�dd��rt|jd��dSdS)N)r8rr8rr�r8rr7r6T)	r;rhr
r�r�r#r>rr��r�rTrrrs    r�test_empty_constraint_2z*LinprogCommonTests.test_empty_constraint_2�s����N�N���b�f�+�����|�W�g�>���a��!�[�$�,�@�@�@���#�����<���J��-�-�	%����!�$�$�$�$�$�	%�	%rc��gd�}dtjftjdfddg}t|||j|j���}t|gd�d���dS)N)rr8rr8rrTr7)rrr8rr��r4r3)r;rhr
r�r�r6rUs    r�test_empty_constraint_3z*LinprogCommonTests.test_empty_constraint_3�sj���N�N���b�f�+�����|�W�g�>���a��!�[�$�,�@�@�@����}�}�}�"�E�E�E�E�E�Erc
���tjddg��dz}ddgddgddgg}gd�}t|||ttt
|j|j���}t|ddd	g�
��dS)Nr"rr8rrr�r�i��rxr��	r;rEr
rnrorrr�r�r6�r�rTrlrmrs     r�test_inequality_constraintsz.LinprogCommonTests.test_inequality_constraints�s���
�H�a��V���r�!���A���A���A�����z�z���a��t�T�4��!�[�$�,�@�@�@������A��?�?�?�?�?�?rc
��ddg}ddgddgddgg}gd�}t|||ttt|j|j���}t
|d	d
dg���dS)
Nrxr"rr8r�r)rr8r8r�r gUUUUUU�?gUUUUUU�?r��r
rnrorrr�r�r6r\s     r�test_inequality_constraints2z/LinprogCommonTests.test_inequality_constraints2�s����F���A���R���Q�����{�{���a��t�T�4��!�[�$�,�@�@�@�����u�e�n�E�E�E�E�E�Erc
�:�ddg}d}t|tttt||j|j���}t|ddg���ddg}t|tttt||j|j���}t|ddg���dS)Nrrr�r��r4)r
rlrmrnror�r�r6rUs    r�test_bounds_simplez%LinprogCommonTests.test_bounds_simple�s���
��F�����a��t�T�4��!�[�$�,�@�@�@�����1�v�.�.�.�.��&�!���a��t�T�4��!�[�$�,�@�@�@�����1�v�.�.�.�.�.�.rc
��tjdg��}tjdgg��}tjdg��}d}t|tt||||j|j���}t|ddg���dS)Nr�r�)r�Nr�r"r��r;rEr
rlrmr�r�r6�r�rTrnrorrrs      r�test_bounded_below_only_1z,LinprogCommonTests.test_bounded_below_only_1�s����H�c�U�O�O���x�#��� � ���x���������a��t�T�4��!�[�$�,�@�@�@�����q�c�:�:�:�:�:�:rc
�<�tjd��}tjd��}tjgd���}dtjf}t|tt||||j|j	���}t||tj|�����dS)Nr"rrgr�rX�r;r��eyerErhr
rlrmr�r�r6�sumrfs      r�test_bounded_below_only_2z,LinprogCommonTests.test_bounded_below_only_2�s����G�A�J�J���v�a�y�y���x�	�	�	�"�"���r�v����a��t�T�4��!�[�$�,�@�@�@����t������F�F�F�F�F�Frc
��tjdg��}tjdgg��}tjdg��}d}t|tt||||j|j���}t|ddg���dS)Nr�r�)Nr�r�r"r�rerfs      r�test_bounded_above_only_1z,LinprogCommonTests.test_bounded_above_only_1�s����H�c�U�O�O���x�#��� � ���x���������a��t�T�4��!�[�$�,�@�@�@�����q�c�:�:�:�:�:�:rc
�>�tjd��}tjd��}tjgd���}tjdf}t|tt||||j|j	���}t||tj|�����dS)Nr"rr&r�rXrirfs      r�test_bounded_above_only_2z,LinprogCommonTests.test_bounded_above_only_2�s����G�A�J�J���v�a�y�y���x�	�	�	�"�"���6�'�1����a��t�T�4��!�[�$�,�@�@�@����t������F�F�F�F�F�Frc
�R�tjd��}tjd��}tjgd���}tjtjf}t|tt||||j|j	���}t||tj|�����dS)Nr"rr�rXrirfs      r�test_bounds_infinityz'LinprogCommonTests.test_bounds_infinity�s����G�A�J�J���v�a�y�y���x�	�	�	�"�"���6�'�2�6�"���a��t�T�4��!�[�$�,�@�@�@����t������F�F�F�F�F�Frc
�`�tjddg��dz}tjddgddggtj���}ddg}tjtjf}dtjf}||f}t	|||t
t||j|j���}t|d	d
dg���dS)
Nr8r&rzrrr9rxr�g�m۶m�&�g�$I�$I�g%I�$I�@r�)
r;rE�float64rhr
rnror�r�r6)r�rTrlrmr�r�rrrs        r�test_bounds_mixedz$LinprogCommonTests.test_bounds_mixed�s���
�H�b�!�W����"���x�"�a���Q��!�(*�
�4�4�4���1�v���f�W�b�f�%�	����L�	��Y�'���a��t�T�4��!�[�$�,�@�@�@�����V�V�<L�M�M�M�M�M�Mrc
��ddg}ddgddgddgg}gd�}dd	g}t|||tt||j|j�
��}t|��dS�Nr~rr|r�rr)�rr"�rrr�r�)r
rnror�r�r �r�rTrlrmrrrs      r� test_bounds_equal_but_infeasiblez3LinprogCommonTests.test_bounds_equal_but_infeasible�sv��
��G���B��!�Q��!�R��)���z�z���)�$���a��t�T�4��!�[�$�,�@�@�@���3�����rc
��ddg}ddgddgddgg}gd�}dd	g}t|tt||||j|j�
��}t|��dSrw)r
rlrmr�r�r rfs      r�!test_bounds_equal_but_infeasible2z4LinprogCommonTests.test_bounds_equal_but_infeasible2sv��
��G���B��!�Q��!�R��)���z�z���)�$���a��t�T�4��!�[�$�,�@�@�@���3�����rc
����ddg}ddgddgg}ddg}ddg}�fd	��jD��}d
|d<t|||tt|�j|���}t|��dS)
Nrrg�������?g������@r&rur�ryc�,��i|]}|�j|��Srrrs  �rrzDLinprogCommonTests.test_bounds_equal_no_presolve.<locals>.<dictcomp>r	rFr6r�)r�r
rnror�r �r�rTrlrmrrrrs`      r�test_bounds_equal_no_presolvez0LinprogCommonTests.test_bounds_equal_no_presolves����
��F���A���c�
�#���1�v���&�!��<�<�<�<�t�|�<�<�<����*�
��a��t�T�4��!�[�!�5�5�5���3�����rc
��d\}}tj�d��tj�|��}d|d<tj�||��}d|dd�df<tj�|��}gd�g}d}gd�}t	|||||||j|j���}	t|	d�	��dS)
Nrrr)rrrrr")�r{rdr�)r{Nr�r�gyM���j#�r�)r;r<r=rHr
r�r�r6�
r�r\rJrTrnrorlrmrrrs
          r�test_zero_column_1z%LinprogCommonTests.test_zero_column_1!s������1�
�	���q�����I�N�N�1������!���y�~�~�a��#�#����Q�Q�Q��T�
��y�~�~�a� � �����~����B�B�B���a��t�T�4��!�[�$�,�@�@�@����)<�=�=�=�=�=�=rc
���|jdvrtj��tj�d��d\}}tj�|��}d|d<tj�||��}d|dd�df<tj�|��}tj�||��}d|dd�df<tj�|��}d}t|||||||j|j���}	t|	��|j�
dd	��r d
|jvrt|	jd��dSdSdS)N>r��	highs-ipmrr%r8rr�r�r6Tr�)
r�r��xfailr;r<r=rHr
r�r#r>rr�r�s
          r�test_zero_column_2z%LinprogCommonTests.test_zero_column_20sU���;�3�3�3��L�N�N�N�
�	���q�������1��I�N�N�1������!���y�~�~�a��#�#����Q�Q�Q��T�
��y�~�~�a� � ���y�~�~�a��#�#����Q�Q�Q��T�
��y�~�~�a� � �����a��t�T�4��!�[�$�,�@�@�@���#�����<���J��-�-�	%�'���2L�2L�
���!�$�$�$�$�$�		%�	%�2L�2Lrc
��gd�}gd�gd�gd�g}gd�}t|tt||t|j|j���}t
|d���dS)Nr�rrr�rrr�rr"rr�r"r��r
rlrmrrr�r�r6�r�rTrnrors     r�test_zero_row_1z"LinprogCommonTests.test_zero_row_1Ksq���I�I���	�	�9�9�9�i�i�i�0���y�y���a��t�T�4��!�[�$�,�@�@�@�����+�+�+�+�+�+rc
��gd�gd�gd�g}gd�}gd�}t|||ttt|j|j���}t
|d���dS)Nr�r�r�rr�rr�r_)r�rlrmrTrs     r�test_zero_row_2z"LinprogCommonTests.test_zero_row_2Ssq���	�	�9�9�9�i�i�i�0���y�y���I�I���a��t�T�4��!�[�$�,�@�@�@�����+�+�+�+�+�+rc
��d\}}tj�|��}tj�||��}d|ddd�f<tj�|��}t|tt
||t|j|j���}t|��|j�
dd��rt|jd��dSdS�Nr%rr�r6T)
r;r<rHr
rlrmrrr�r�r r>rr�)r�r\rJrTrnrors       r�test_zero_row_3z"LinprogCommonTests.test_zero_row_3[s������1��I�N�N�1�����y�~�~�a��#�#����Q����T�
��y�~�~�a� � ���a��t�T�4��!�[�$�,�@�@�@���3�����<���J��-�-�	%����!�$�$�$�$�$�	%�	%rc
���d\}}tj�|��}tj�||��}d|ddd�f<tj�|��}t|||tt
t|j|j���}t|��|j�
dd��rt|jd��dSdSr�)
r;r<rHr
rnrorrr�r�r r>rr�)r�r\rJrTrlrmrs       r�test_zero_row_4z"LinprogCommonTests.test_zero_row_4is������1��I�N�N�1�����y�~�~�a��#�#����Q����T�
��	���q�!�!�!���a��t�T�4��!�[�$�,�@�@�@���3�����<���J��-�-�	%����!�$�$�$�$�$�	%�	%rc
��gd�}gd�gd�gd�gd�g}gd�}t|tt||t|j|j���}t
|��|j�dd��rt|j	d	��dSdS)
N�rrrr�rrrr�rrrr�rrrr)rrrr&r�r6Tr)
r
rlrmrrr�r�r r>rr�r�s     r�test_singleton_row_eq_1z*LinprogCommonTests.test_singleton_row_eq_1ws����L�L�����l�l�l�L�L�L�,�,�,�G���|�|���a��t�T�4��!�[�$�,�@�@�@���3�����<���J��-�-�	%����!�$�$�$�$�$�	%�	%rc
��gd�}gd�gd�gd�gd�g}gd�}t|tt||t|j|j���}t
|d���dS)	Nr�r�r�r�)rrrr&r�r&r�r�r�s     r�test_singleton_row_eq_2z*LinprogCommonTests.test_singleton_row_eq_2�sw���L�L�����l�l�l�L�L�L�,�,�,�G���|�|���a��t�T�4��!�[�$�,�@�@�@�����+�+�+�+�+�+rc
��gd�}gd�gd�gd�gd�g}gd�}gd�}t|||tt||j|j���}t|��|j�d	d
��rt|jd��dSdS)Nr�r�r��r8rrrr�)rrr�r&�r�r�r�r�r�r6Tr�	r
rnror�r�r r>rr�rzs      r�test_singleton_row_ub_1z*LinprogCommonTests.test_singleton_row_ub_1�s����L�L�����l�l�l�M�M�M�<�<�<�H���}�}��@�@�@���a��t�T�4��!�[�$�,�@�@�@���3�����<���J��-�-�	%����!�$�$�$�$�$�	%�	%rc
��gd�}gd�gd�gd�gd�g}gd�}gd�}t|||tt||j|j���}t|d	�
��dS)Nr�r�r�r�r�)rr��r&r�r�rgr�)r
rnror�r�r6rzs      r�test_singleton_row_ub_2z*LinprogCommonTests.test_singleton_row_ub_2�s����L�L�����l�l�l�M�M�M�<�<�<�H������@�@�@���a��t�T�4��!�[�$�,�@�@�@�����-�-�-�-�-�-rc
��ddg}ddgddgddgg}gd�}t|||ttt|j|j���}t
|��dS)Nr8rr)rrr:r�)r
rnrorrr�r�r r\s     r�test_infeasiblez"LinprogCommonTests.test_infeasible�sr��
��H���A���A���R�����z�z���a��t�T�4��!�[�$�,�@�@�@���3�����rc
���dg}dgg}d}d}t|||tt||j|j���}t|��|j�dd��rt|jd��dSdS)	Nrrr&)r rxr�r6Trr�rzs      r�!test_infeasible_inequality_boundsz4LinprogCommonTests.test_infeasible_inequality_bounds�s���
�C����u�������a��t�T�4��!�[�$�,�@�@�@���3�����<���J��-�-�	%����!�$�$�$�$�$�	%�	%rc
���tjddg��dz}ddgddgg}ddg}t|||ttt
|j|j���}t|��dS)Nrr8r�r�)	r;rEr
rnrorrr�r�r#r\s     r�test_unboundedz!LinprogCommonTests.test_unbounded�sx���H�a��V���r�!���Q���R�����B�x���a��t�T�4��!�[�$�,�@�@�@���#�����rc����dg}dg}�fd��jD��}d|d<t||�j|���}�jdkrt|jd��dSt|��dS)	Nr�Nrc�,��i|]}|�j|��Srrrs  �rrzQLinprogCommonTests.test_unbounded_below_no_presolve_corrected.<locals>.<dictcomp>�r	rFr6rJr�r )r�r
r�rrr#)r�rTrrrrs`    r�*test_unbounded_below_no_presolve_correctedz=LinprogCommonTests.test_unbounded_below_no_presolve_corrected�s����
�C�����<�<�<�<�t�|�<�<�<����*�
���&�!�[��!�!�!���;�+�+�+����Q�'�'�'�'�'��c�"�"�"�"�"rc
���tjgd���}tjgd�gd�gd�g��}tjgd���}gd�}t|||tt||j|j���}t|��|j����	d��sDt|jd	tj��t|j
d
d�d��d
Sd
S)
�|
        Test whether presolve pathway for detecting unboundedness after
        constraint elimination is working.
        )rrrrr8r8�rrrrrr�rrrrrr)rrrrrr8�rr�r)r�r�r�rTrTr�r�r�r8N�$�$The problem is (trivially) unbounded�r;rEr
rnror�r�r#�lowerr�rr2rhr/rzs      r�*test_unbounded_no_nontrivial_constraints_1z=LinprogCommonTests.test_unbounded_no_nontrivial_constraints_1�s%��

�H�)�)�)�*�*���x�+�+�+�+�+�+�,�,�,�.�/�/���x�
�
�
�#�#��/�/�/���a��t�T�4��!�[�$�,�@�@�@���#�����{� � �"�"�-�-�g�6�6�	A����r��B�F�+�+�+����S�b�S�)�?�
A�
A�
A�
A�
A�	A�	Arc
��tjgd���}tjgd�gd�gd�g��}tjgd���}gd�}t|||tt||j|j���}t|��|j����	d��sEt|jd	tj��t|j
d
d�d��d
Sd
S)
r�)rrrrr8rr�r�)rrrrrrr�)r�r�r�rTrT)Nrr�r�r8Nr�r�r�rzs      r�*test_unbounded_no_nontrivial_constraints_2z=LinprogCommonTests.test_unbounded_no_nontrivial_constraints_2�s'��

�H�(�(�(�)�)���x�+�+�+�+�+�+�+�+�+�-�.�.���x�
�
�
�#�#��/�/�/���a��t�T�4��!�[�$�,�@�@�@���#�����{� � �"�"�-�-�g�6�6�	A����r��R�V�G�,�,�,����S�b�S�)�?�
A�
A�
A�
A�
A�	A�	Arc
���tjgd���dz}gd�gd�gd�g}gd�}t|||ttt
|j|j���}t|gd�d	d
���dS)N)r�rdrr8r8)rerr)��rer)rr��'r�)rrr�g�h㈵��>�H�����z>)r4r-r,r[r\s     r�test_cyclic_recoveryz'LinprogCommonTests.test_cyclic_recovery�s���
�H�\�\�\�"�"�R�'���	�	��
�
�����������a��t�T�4��!�[�$�,�@�@�@����}�}�}�4�d�K�K�K�K�K�Krc
��tjgd���}tjgd�gd�gd�g��}gd�}d}d�|j���D��}||d<t	|||t
tt|j|�	��}|jd
kr2|j�	d��st||d��dSt|gd��
��dS)N)r{�9ryg8@)rgg�r�ry)rgg��r�rr�)rrrr�c��i|]\}}||��	Srr)rr�vals   rrz8LinprogCommonTests.test_cyclic_bland.<locals>.<dictcomp>s��;�;�;�(�#�s�S�#�;�;�;rrr�r��bland)rrrrrb)r;rEr��itemsr
rnrorrr�r>rr6)r�rTrlrmrrrs       r�test_cyclic_blandz$LinprogCommonTests.test_cyclic_blands���H�&�&�&�'�'���x�-�-�-�-�-�-�%���'�(�(���y�y����;�;�d�l�&8�&8�&:�&:�;�;�;����)���a��t�T�4��!�[�!�5�5�5���;�)�#�#�D�L�,<�,<�W�,E�,E�#�+�C��9��>�>�>�>�>�
�C�<�<�<�8�8�8�8�8�8rc��d\}}tj�|��}tj�||��}tj�|��}d|ddd�fz|ddd�f<|dxxdzcc<t��5}|�t
d��t
|tt||t|j
|j���}ddd��n#1swxYwYt|��dS)N)rdrdrr�r8�A_eq does not appear...r�)
r;r<rHr�filterrr
rlrmrrr�r�r )r�r\rJrTrnro�suprs        r�$test_remove_redundancy_infeasibilityz7LinprogCommonTests.test_remove_redundancy_infeasibility sC�����1��I�N�N�1�����y�~�~�a��#�#���y�~�~�a� � ���$�r�1�1�1�u�+�o��R����U���R����B�����
�
 �
 �	D�C��J�J��(A�B�B�B��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	�3�����s�AC0�0C4�7C4c
��t��\}}}}}}}t|||||t|j|j���}t|||���dS)Nr�r�)r�r
rrr�r�r6�	r�rTrlrmrnror�r�rs	         r�test_nontrivial_problemz*LinprogCommonTests.test_nontrivial_problem3sf��5G�4H�4H�1��4��t�T�6�6��a��t�T�4��!�[�$�,�@�@�@�����6�B�B�B�B�B�Brc��tdd��\}}}t��5}|�td��|�td��|�t
��t
|||ttt|j
|j���}ddd��n#1swxYwYt|d���dS)Nre�$Solving system with option 'sym_pos'�invalid value encounteredr�r�r�)
rbrr�rrKrr
rnrorrr�r�r6)r�rlrmrTr�rs      r�test_lpgen_problemz%LinprogCommonTests.test_lpgen_problem;s
��!��R�(�(�
��d�A�
�
 �
 �	D�C��J�J��(N�O�O�O��J�J�~�'B�C�C�C��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�		D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	���7�7�7�7�7�7s�BB0�0B4�7B4c���gd�}d\}}|||d|dddd|ddg|dd|d|ddddddgdd||ddddddddgdddddd||dd|dgdddd|||d|dddgddddddd||dd|gddddddddd|||gg}gd�}t��5}|�t��t|tt
||t|j|j���}ddd��n#1swxYwYt|ddd�	��dS)
N)rr&ry�r&r"rur|rr=��rTr)r�i��!rri���r�i����ư>r�)r3r-r,)
rr�rr
rlrmrrr�r�r6)r�rTrJ�prnror�rs        r�test_network_flowz$LinprogCommonTests.test_network_flowHs���
5�4�4�����1�
��1�a��A�q�!�Q��1�a�0�
��1�a��A�q�!�Q��1�a�0�
��1�a��A�q�!�Q��1�a�0�
��1�a��A�q�!�Q��1�a�0�
��1�a��A�q�!�Q��1�a�0�
��1�a��A�q�!�Q��1�a�0�
��1�a��A�q�!�Q��1�a�0�2��+�*�*��
�
 �
 �	D�C��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	���4�d�C�C�C�C�C�Cs�9AC�C�Cc�R�gd�}ddgddgddgddgddgg}d\}}||dddg|d||dgd||d|gddd||gg}gd�}t��5}tr|�t��|�td	��|�t
d
��|�t
d��|�t��t|tt||||j
|j���}ddd��n#1swxYwYt|d
���dS)N)rrrr"rrr&rr"r rT)r~rrr&�scipy.linalg.solve
Ill...r��Solving system with option...r�rxr�)
r�has_umfpackr�rrKrrr
rlrmr�r�r6)	r�rTrrrJr�rnror�rs	         r�"test_network_flow_limited_capacityz5LinprogCommonTests.test_network_flow_limited_capacity]s���
�O�O��
��F�
��F�
��F�
��F�
��F������1�
��1�a��O�
��1�a��O�
��1�a��O�
��1�a��O�	��
�}�}��
�
 �
 �		D�C��
+��
�
�>�*�*�*��J�J�~�'C�D�D�D��J�J��(A�B�B�B��J�J��(G�H�H�H��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�		D�		D�		D�		D�		D�		D�		D�		D�		D�		D�		D����		D�		D�		D�		D�	���,�,�,�,�,�,s�B8D�D�Dc
��gd�}gd�gd�g}ddg}t|||ttt|j|j���}t
|d���dS)	N)r�rzr~)r"rr)rr r"rdr=r�i��r�r_r\s     r�(test_simplex_algorithm_wikipedia_examplez;LinprogCommonTests.test_simplex_algorithm_wikipedia_example|sp���L�L���I�I��I�I����B�x���a��t�T�4��!�[�$�,�@�@�@�����-�-�-�-�-�-rc
��gd�}gd�gd�gd�g}gd�}t|tt||t|j|j���}t
|dgd�d	d
���dS)Nr,r-r.r0r1r�g�s@)g�P@rg�1@rg�f@rgT�qs*�>r�)r3r4r-r,r�r�s     r�test_enzo_examplez$LinprogCommonTests.test_enzo_example�s���
�������!�!�!� � � �"�������a��t�T�4��!�[�$�,�@�@�@�����"@�"@�"@�!��	.�	.�	.�	.�	.�	.rc�B�gd�}gd�gd�gd�gd�gd�g}gd�}t��5}|�td��t|tt
||t|j|j�	��}ddd��n#1swxYwYt|d
gd����dS)
N)rg333333@g������%@rg333333�g������%�)r8r8r8rrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)r�皙�����?�333333�?r�r�r�r�gR���Q��)r�g�������?�r�r�r�r�)
rr�rr
rlrmrrr�r�r6)r�rTrnror�rs      r�test_enzo_example_bz&LinprogCommonTests.test_enzo_example_b�s3��/�/�/��%�%�%�"�"�"�"�"�"�"�"�"�"�"�"�	$��
*�)�)��
�
 �
 �	D�C��J�J��(A�B�B�B��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	���"@�"@�"@�	B�	B�	B�	B�	B�	Bs�AB�B�Bc
��d}tj|��}dtjztjd|dz��z|dzz}tjtj|��dz
tj|��f��}ddg}t|tt||t|j|j���}t|dtj|�����dS)Nrerrrr�r�)r;r��pir>rF�cos�sinr
rlrmrrr�r�r6r@�r�r\rT�tmprnrors       r�#test_enzo_example_c_with_degeneracyz6LinprogCommonTests.test_enzo_example_c_with_degeneracy�s�����
�W�Q�Z�Z�K���"�%�i�"�)�A�q�1�u�-�-�-��Q��7���y�"�&��+�+��/�2�6�#�;�;�7�8�8���1�v���a��t�T�4��!�[�$�,�@�@�@�����b�h�q�k�k�B�B�B�B�B�Brc
��d}tj|��}dtjztj|��z|dzz}tjtj|��dz
tj|��f��}ddg}t|tt||t|j|j���}t|��dS)Nrfrrrr�)r;r�r�r>rFr�r�r
rlrmrrr�r�r#r�s       r�&test_enzo_example_c_with_unboundednessz9LinprogCommonTests.test_enzo_example_c_with_unboundedness�s�����
�W�Q�Z�Z�K���"�%�i�"�)�A�,�,�&�!�a�%�0���y�"�&��+�+��/�2�6�#�;�;�7�8�8���1�v���a��t�T�4��!�[�$�,�@�@�@���#�����rc
���d}tj|��}dtjztj|��z|dzz}tjtj|��dz
tj|��f��}ddg}�fd��jD��}d|d<t|tt||t�j|���}t|��dS)Nrfrrc�,��i|]}|�j|��Srrrs  �rrzMLinprogCommonTests.test_enzo_example_c_with_infeasibility.<locals>.<dictcomp>�r	rFr6r�)r;r�r�r>rFr�r�r�r
rlrmrrr�r )r�r\rTr�rnrorrs`       r�&test_enzo_example_c_with_infeasibilityz9LinprogCommonTests.test_enzo_example_c_with_infeasibility�s������
�W�Q�Z�Z�K���"�%�i�"�)�A�,�,�&�!�a�%�0���y�"�&��+�+��/�2�6�#�;�;�7�8�8���1�v��<�<�<�<�t�|�<�<�<����*�
��a��t�T�4��!�[�!�5�5�5���3�����rc
��tjgd���}tjgd�gd�gd�gd�gd�g��}tjgd���}tjgd�gd	�g��}tjd
d
g��}t|||||t|j|j���}t
|d
tj|��d�
��dS)N)g��������g�Q��뱿���Mbp?r�r�r�)r�rrrrr)r�rrrrr)rr�rrrr)rr�rrrr)r�r�rrrr)r�r�r�r�g4@)r�rr8rr8r)rr�r8rr8rrr�g����>)r3r4r-)r;rEr
rrr�r�r6�
zeros_like)r�rTrlrmrnrors       r�test_basic_artificial_varsz-LinprogCommonTests.test_basic_artificial_vars�s
��

�H�>�>�>�?�?���x�-�-�-�/D�/D�/D�.�.�.�0D�0D�0D�/�/�/�1�2�2���x�2�2�2�3�3���x�/�/�/�1H�1H�1H�I�J�J���x��A������a��t�T�4��!�[�$�,�@�@�@�����b�m�A�6F�6F�!�	#�	#�	#�	#�	#�	#rc
���td��\}}}}}}t|||||||j|j���}t	|j��t	|j��t	|j��d|jvrt	|jdk��t||j
z|j��t|||j
zz
|jd���t|||j
zz
|j
d���dD]h}||���vrPt||dt j��sJ�t||d	t j��sJ��idS)
Nr�rlrmrnrorrr�r�r�z%Optimization terminated successfully.g�dy���=�r-)�eqlin�ineqlinr��upper�	marginals�residual)rsr
r�r�rrr�rr/rr2r1r�r��keysr�r;�ndarray)	r�rTrlrmrnrorrrrs	         r�test_optimize_resultz'LinprogCommonTests.test_optimize_result�sl��,;�A�,>�,>�)��4��t�T�6��a�d��D�t�#�D�K���O�O�O���������������C�J������$�+�%�%��C�K�#J�J�K�K�K���C�E�	�3�7�+�+�+���t�c�e�|�+�S�W�5�A�A�A�A���t�c�e�|�+�S�Y�U�C�C�C�C�9�	D�	D�C��c�h�h�j�j� � �!�#�c�(�;�"7���D�D�D�D�D�!�#�c�(�:�"6��
�C�C�C�C�C��	D�	Drc/��gd�}d}d}d}tjgd�ddd|dd	dd
ddd
dd
ddddddgddd|ddd	d
d
dd
d
dddddddggd�gd�gd
�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�ddd
d
dddd
||ddd|dddddgdddddd
d
dddd
||d|ddddgdd
dd ddd|d
d
ddddd|dddgddddd
dd
ddd|d
|ddd|ddgdd
d
d ddd||d
ddddddd|dgddddd
d
dddd||d
ddddd|gg��}tjgd!���}tjgd"���}t��5}|�td#��|�t
d$��|�t��t|||tt||j
|j�%��}	ddd��n#1swxYwYt|	d&�'��dS)(N)r��rr�r	r	r	r	r	�r�r
r
r
r
r
r�r�r�r�r�r�g�q�q�?���g�������)rg�Q����rrrzrrrr8r8rr8r8rrrrrrrrg333333�rzr8)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrr8rrrrr)rrrrrrrrrrrrrrr8rrrr)rrrrrrrrrrrrrrrr8rrr)rrrrrrrrrrrrrrrrr8rr)rrrrrrrrrrrrrrrrrr8r)rrrrrrrrrrrrrrrrrrr8gףp=
�?rgffffff�?g������@)r�rrr�r�r�r�r�r�rrrrrrrrrrrrrrrrrr)r�rrrrrrrrrrrrrrrrrrr�r�r�g�^��Z�r�)
r;rErr�rrKrr
rnror�r�r6)
r�rrrrI�hrlrmrTr�rs
          r�
test_bug_5400z LinprogCommonTests.test_bug_5400�sw��N�N�N��
�������x�N�N�N�
��4��A�r�1�b�!�Q��A�r�1�a��A�q�!�L�
��1�a��A�r�2�r�1�b�"�a��A�q�!�Q��J�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�
��b�"�a��A�r�1�a��A�q�!�Q��1�a��K�
��1�a��B��A�q�!�R��A�q�!�Q��1�a�H�
��C��a��A�q�"�b�!�Q��1�a��A�q�!�L�
��1�a��Q��A�q�!�Q��A�q�!�Q��1�a�H�
��B��Q��1�a��B��1�a��A�q�!�Q��J�
��1�a��R��A�q�!�Q��2�q�!�Q��1�a�H�7J�K�K��:�x�5�5�5�6�6��
�H�4�4�4�
5�
5��
�
 �
 �	D�C��J�J��=�
?�
?�
?��J�J�~�'B�C�C�C��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	��)<�=�=�=�=�=�=s�2A<F:�:F>�F>c
��tjgd���}tjgd�gd�g��}tjddg��}tjgd�g��}tjdg��}d}t|||||||j|j�	��}t|d
tjgd������dS)
Nr�)r�r�r�)�@��r�rg@r)r�g��.Ag��.Ag�cAr�r�gfffff�-@)r g������@r r��r;rEr
r�r�r6)r�rTrnrorlrmrrrs        r�
test_bug_6139z LinprogCommonTests.test_bug_61390s���
�H�Y�Y�Y�����x����'<�'<�'<�=�>�>���x���9�:�:����2�2�2�3�4�4�4����)��%�%�%�����a��t�T�4��!�[�$�,�@�@�@��	���"$�(�<�<�<�"8�"8�	:�	:�	:�	:�	:�	:rc��tjgd�g��}tjdg��}tjgd�gd�gd�gd�gd�g��}tjgd���}tjgd	�gd
�g��j}tjgd���}t��5}tr|�t��|�td��|�td
��|�td��|�t��t|||||||j|j���}ddd��n#1swxYwYd}	tjgd���}
t||	|
���d}t|dd�df|z
|j��t|j|dd�df|z��dS)N)
rrrg�(\���?r��������?rrg��(\��?rg�%䃞��?)
rrr��z�G��?rrrg������ɿrg)\��(̿)
rrrrrrrrrr)
rrrg��Q���?rrrrrr)
rg��Q����пrrrg{�G�z�rrg�Q���?)
rrrrrrrrrr)g�G�z��?rgj�t��?g+����g�I+���)
g�z�G���
ףp=
���(\���?r�g��Q�տg�G�z����G�z�?�
ףp=
�?g333333���\��(\�)
�G�z��?g{�G�z�?g�z�G�@g��Q���?rrgg)\��(�?g�(\���?�{�G�z�?g333333ÿ)
g=
ףp=��gffffff�?rg�(\���g��(\��g�p=
ף�?g
ףp=
@g{�G�z�?g��Q��?g�Q����?z%Solving system with option 'cholesky'r�r�r�g��V�)
rrrr�rrgrrrrr�r�rr)r;rErirr�r�rrrKrr
r�r�r6rr2)r�rnrorlrmrrrTr�rr3r4r-s            r�
test_bug_6690z LinprogCommonTests.test_bug_6690Fs��
�x�@�@�@�A�B�B���x���!�!���x�4�4�4�*�*�*�-�-�-�9�9�9�.�.�.�
�����x�9�9�9�:�:����M�M�M�H�H�H�
���
�	�
�H����
�
���
 �
 �		D�C��
+��
�
�>�*�*�*��J�J��>�
@�
@�
@��J�J��(N�O�O�O��J�J�~�'B�C�C�C��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�		D�		D�		D�		D�		D�		D�		D�		D�		D�		D�		D����		D�		D�		D�		D�%���H�G�G�G�H�H�	����	�J�J�J�J����&����A��,��-�s�u�5�5�5��#�%�����1����!4�5�5�5�5�5s�)B.E#�#E'�*E'c�Z�td��\}}}}}t��5}|�td��|�td��|�t
��t
|tt||t|j
|j���}ddd��n#1swxYwYd}t||���t|�|j��|��t!t#j|jj��dz
|j��dS)Nr"r�r�r��-��U��?r�r�)rUrr�rrKrr
rlrmrrr�r�r6r�dotr2rr;r@rX)r�rnrorT�_r�rr3s        r�
test_bug_7044z LinprogCommonTests.test_bug_7044rsQ��
+�1�o�o���d�A�q�!�
�
 �
 �	D�C��J�J��(A�B�B�B��J�J�~�'B�C�C�C��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�		D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�"�����5�5�5�5����������.�.�.��"�(�3�5�:�.�.��5�s�u�=�=�=�=�=s�BB1�1B5�8B5c���tjgd���}tjgd�gd�gd�gd�gd�gd�gd�gd	�gd
�gd�gd�gd
�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�g��}tjgd���}tjgd�g��}tjdgg��}dgdz}t|||||||j|j���}t|dd� ��dS)!N)	r8rrrrrrrr)	r�g���gx�@g8��gX��g��g�}@gT�gPr�)	r�g��@gE@gH�@g m@g��@g�x@gh��g�L@)	r�gj�g�g؀@gt@g��@g�gp�@g�K@)	r�gȊ@g؊�g�T@g�|@g�p�gX��gЉ@g ~@)	r�g�s@��z�g�n@r%g@h@g�{�gZ�g�z�)	r�g�@g8�@g�v@g�b@g؉�g`�@gȃ@g�r@)	r�r���r&r&r&r&r&r&)	r�r&r�r&r&r&r&r&r&)	r�r&r&r�r&r&r&r&r&)	r�r&r&r&r�r&r&r&r&)	r�r&r&r&r&r�r&r&r&)	r�r&r&r&r&r&r�r&r&)	r�r&r&r&r&r&r&r�r&)	r�r&r&r&r&r&r&r&r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)	r�r�r�r�r�r�r�r�r�r�r�ryr�gh��b$[@r��r3r-rr�s        r�
test_bug_7237z LinprogCommonTests.test_bug_7237�s���

�H�1�1�1�2�2���x�E�E�E�?�?�?�B�B�B�B�B�B�E�E�E�A�A�A�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�-����0�x�8�8�8�9�9���x�=�=�=�>�?�?���x�"��������!�#���a��t�T�4��!�[�$�,�@�@�@�����$�?�?�?�?�?�?rc��tjgd�gd�gd�gd�g��}tj|jd��}tj|jd��}dg|jdz}t��5}|�td��|�t��t|||tt||j|j
�	��}ddd��n#1swxYwY|j
�d
d��dkr|jd
krt|��dSt!|dd���dS)N)�Xi�iD4�3��i����)��i����i�������@i�)r,rrr+r)r*rrr-rrrr�r�r��tolg��&�.>绽���|�=r�g����r�r')r;rEr@rIr�rr�rKrr
rnror�r�r>r'r6)r�rlrmrTrrr�rs       r�
test_bug_8174z LinprogCommonTests.test_bug_8174�s����x�0�0�0�0�0�0�%�%�%�%�%�%�	'�(�(��
�x��
�1�
�&�&��
�W�T�Z��]�
#�
#�#����D�J�q�M�)��
�
 �
 �	D�C��J�J�~�'B�C�C�C��J�J�}�%�%�%��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D��<���E�4�(�(�5�0�0�T�[�I�5M�5M�5�c�:�:�:�:�:��C�-@�t�L�L�L�L�L�Ls�?A!C,�,C0�3C0c�T�tjgd���}tjd��}tjdgdgdgdgdgdgdgg��}tjgd�gd�gd�gd�gd�g��}tjd	gd
gd
gd
gd
gg��}t��5}tr|�t��|�td��t|||||t|j
|j���}ddd��n#1swxYwYt|d
���dS)N)rrrrrrrr|r�)rrrrrrr)r�g�������?g�������?rrrr8)r�rrrrrgUUUUUU�)rrrrrr���)rrr�rrrr2r�rr�r�g�?����E@r�)
r;rE�identityrr�r�rrr
rrr�r�r6�r�rTrlrmrnror�rs        r�test_bug_8174_2z"LinprogCommonTests.test_bug_8174_2�s���
�H�*�*�*�+�+����A������x�"���t�b�T�B�4�"���t�b�T�B�C�C���x�!�!�!�(�(�(�&�&�&�(�(�(�'�'�'�
�����x�#����a�S�1�#��s�3�4�4��
�
 �
 �	D�C��
+��
�
�>�*�*�*��J�J��(A�B�B�B��!�T�4��t�V�!%��d�l�D�D�D�C�		D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	��)9�:�:�:�:�:�:s�A#D�D�Dc��tjgd���}tjgd�gd�gd�gd�gd�g��}tjgd���}t||||j|j���}t|gd	��
��dS)N)r|rr~��?r7)r&�@r7r���)rr�r�r/rg)r"r�r&g)�rw)r8g@rr9r�)r8rg�r8g#@)rrrrr)rlrmr�r�)rrr�gUUUUUU@gUUUUUU#@rb)r;rEr
r�r�r6r\s     r�
test_bug_8561z LinprogCommonTests.test_bug_8561�s���

�H�)�)�)�*�*���x�$�$�$�#�#�#�#�#�#�"�"�"�#�#�#�%�&�&���x����(�(���a�d��t�|�!�[�*�*�*����'=�'=�'=�>�>�>�>�>�>rc��gd�}gd�gd�gd�gd�g}gd�}gd�}d}t��5}tr|�t��|�td	��|�t
��t
|||tt||j	|j
�
��}ddd��n#1swxYwY|�gd���|�d��d
|d<t��5}tr|�t��|�td	��|�t
��t
|||tt||j	|j
�
��}ddd��n#1swxYwYd}	t|||	���t|||	���dS)N)r{rdrxr")rur}r~rx)r}rur&rv)r~r&rur~)r"rzrzr{)ry���r<r~)r�r�r�r�gB@r�r�)rrr8rrr�rr�)r3r,)
rr�r�rrKrr
rnror�r�rCr6)
r�rTrlrmrrr3r��res1�res2r,s
          r�
test_bug_8662z LinprogCommonTests.test_bug_8662�sj��
�O�O����������� � � �"������=�=�=��#��
�
 �
 �	E�C��
+��
�
�>�*�*�*��J�J�~�'B�C�C�C��J�J�}�%�%�%��1�d�D�$��f�"&�+�t�|�E�E�E�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	
���M�M�M�"�"�"����A���� ��q�	�
�
 �
 �	E�C��
+��
�
�>�*�*�*��J�J�~�'B�C�C�C��J�J�}�%�%�%��1�d�D�$��f�"&�+�t�|�E�E�E�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�����+�D�A�A�A�A���+�D�A�A�A�A�A�As%�BB9�9B=�B=�BF�F�Fc
��ddg}ddgg}dg}ddg}t|tt||||j|j���}t|dd	gd
���dS)Nrr rrwrvr�r�r�g۶m۶m�?gI�$I�$@rX)r
rlrmr�r�r6rfs      r�
test_bug_8663z LinprogCommonTests.test_bug_8663st����F���B��y���t���\�*���a��t�T�4��!�[�$�,�@�@�@�����4�y�f�E�E�E�E�E�Erc�X�dg}dgdgg}ddg}dgdgdgg}gd�}t��5}|�t��|�td��t	|||||t
|j|j�	��}ddd��n#1swxYwYt|��dS)
Nr&rr rr}ry�r"rrdr�r�)	rr�rKrr
rrr�r�r r4s        r�
test_bug_8664z LinprogCommonTests.test_bug_8664s���C����a�S�z���1�v����b�T�A�3����z�z��
�
 �
 �	D�C��J�J�~�&�&�&��J�J��(G�H�H�H��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�
	�3�����s�AB�B�Bc
�L�tjgd���}tjgd�gd�g��}tjddg��}gd�}t|||tt||j|j���}t|d���t||j	z|j
��d	S)
zv
        Test whether bug described at:
        https://github.com/scipy/scipy/issues/8973
        was fixed.
        )rrrrr8)rrrrr)rrrrrrr�)r�r�r�rTrTr�r�N)r;rEr
rnror�r�r6rr2r1rzs      r�
test_bug_8973z LinprogCommonTests.test_bug_8973,s���
�H�%�%�%�&�&���x����/�/�/�:�;�;���x��B�� � ��M�M�M���a��t�T�4��!�[�$�,�@�@�@��	���,�,�,�,��Q���Y���(�(�(�(�(rc
��tjd��}tjdgg��}tjdg��}d}t|||tt
||j|j���}t|dgd���dS)z�
        Additional test for:
        https://github.com/scipy/scipy/issues/8973
        suggested in
        https://github.com/scipy/scipy/pull/8985
        review by @antonior92
        rr�r�r�rrXN)	r;r@rEr
rnror�r�r6rzs      r�test_bug_8973_2z"LinprogCommonTests.test_bug_8973_2=s��
�H�Q�K�K���x�!�������x���~�~�����a��t�T�4��!�[�$�,�@�@�@�����t��;�;�;�;�;�;rc
�`�tjd��}tjdgg��}tjdg��}d}ddg}ddgddgg}ddg}dd	g}d
di}|�|j��t|||tt||j|���}t|d
dgd���dS)zg
        Test for linprog docstring problem
        'disp'=True caused revised simplex failure
        rr�r�r8r&rzrrxr�r�Tr�rdr�rXN)
r;r@rE�updater�r
rnror�r6r�s       r�test_bug_10124z!LinprogCommonTests.test_bug_10124Ms���

�H�Q�K�K���x�!�������x���~�~����
��G���Q��!�Q�� ���1�v���
�+��
�T�N��	���������a��t�T�4��!�[�!�5�5�5�����B�x�S�A�A�A�A�A�Arc���tjgd�gd�gd�gd�gd�gd�g��}tjgd���}tjdd	tjd
��fd���}t	��5}|�td
��t|tt||t|j|j���}ddd��n#1swxYwYt|gd�d���dS)zq
        Test for redundancy removal tolerance issue
        https://github.com/scipy/scipy/issues/10349
        )rrrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)����rd����frrr&N��axisr�r�)��\rrPrrdrUrX)r;rE�concatenater@rr�rr
rlrmrrr�r�r6)r�rnrorTr�rs      r�test_bug_10349z!LinprogCommonTests.test_bug_10349`s^��
�x�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�-�.�.���x�5�5�5�6�6���N�A�q�"�(�1�+�+�.�T�:�:�:��
�
 �
 �	D�C��J�J��(A�B�B�B��!�T�4��t�V�!%��d�l�D�D�D�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	��'@�'@�'@�b�Q�Q�Q�Q�Q�Qs�6AC�C�C�darwinz0Failing on some local macOS builds, see gh-13846c��gd�}gd�gd�gd�gd�gd�gd�gd�gd	�gd
�gd�g
}gd�}i}|j�d
��sddi}|�|j��t	��5}|�td��tr|�t��|�td��|�td��|�td��|�td��|�td��t|tt||t|j|���}ddd��n#1swxYwYt|jd��dS)zA
        Test that autoscale fixes poorly-scaled problem
        )
� �r&rZr&rZr&r&r&r&r&r&r&r&)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�r�r�r�)
g��Ag�Ag@�Ag�A�����Ar[r[r[r[r[r��	autoscaleTr�r�zdivide by zero encountered...zoverflow encountered...zinvalid value encountered...�Ill-conditioned matrix...r�Nl������)r�r�rJr�rr�rr�rrKrr
rlrmrrrr1)r�rTrnrorr�rs       r�test_bug_10466z!LinprogCommonTests.test_bug_10466ss���
N�M�M��D�D�D�D�D�D�D�D�D�E�E�E�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�	F�� � � ��

���{�%�%�g�.�.�	$��d�#�A�	��������
�
 �
 �
	9�C��J�J��(G�H�H�H��
+��
�
�>�*�*�*��J�J�~�'C�D�D�D��J�J�~�'F�G�G�G��J�J�~�'@�A�A�A��J�J�~�'E�F�F�F��J�J�}�&A�B�B�B��!�T�4��t�V�!%��a�9�9�9�C�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9����
	9�
	9�
	9�
	9�	����-�-�-�-�-s�1C/E,�,E0�3E0N)X�__name__�
__module__�__qualname__�__doc__r�r�r�r�r�r�r�r
rr$r*r4rArCr��mark�skipif�platform�machiner�rPrRrVrYr]r`rcrgrlrnrprrrur{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr#r(r0r5r:r?rArDrFrHrKrW�sysr^rrrr�r�ls_��������$�$�$�8�8�8�	.�	.�	.�@�@�@�)�)�)�)�)�)�;�;�;�9�9�9� 2�2�2�$O�O�O�4���B
'�
'�
'�%�%�%�@%�%�%�,�[���(��(�*�*�5�5�e�<�<�Eb��c�c�$)�$)�d�c�$)�L���
%�%�%�F�F�F�
@�
@�
@�F�F�F�
/�
/�
/�;�;�;�G�G�G�;�;�;�G�G�G�G�G�G�N�N�N� � � � � � � � � �"
>�
>�
>�%�%�%�6,�,�,�,�,�,�%�%�%�%�%�%�
%�
%�
%�,�,�,�%�%�%�.�.�.�	 �	 �	 �%�%�%����#�#�#� A�A�A�(A�A�A�(
L�
L�
L�9�9�9�2
 �
 �
 �&C�C�C�8�8�8�D�D�D�*-�-�-�>	.�	.�	.�.�.�.�(B�B�B�"	C�	C�	C�	�	�	�
 �
 �
 �#�#�#�"D�D�D�.5>�5>�5>�n:�:�:�,*6�*6�*6�X>�>�>�$'@�'@�'@�RM�M�M�.;�;�;�0?�?�?�""B�"B�"B�H	F�	F�	F� � � � )�)�)�"<�<�<� B�B�B�&R�R�R�&�[������0�!/��1�1�&.�&.�1�1�&.�&.�&.rr�zignore::DeprecationWarningc��eZdZdZdS)�LinprogSimplexTestsr�N�r_r`rar�rrrriri�s������
�F�F�Frric��eZdZdZd�ZdS)�LinprogIPTestsr�c�.�tjd��dS)Nz*Test is failing, but solver is deprecated.�r��skipr�s rr^zLinprogIPTests.test_bug_10466�s����@�A�A�A�A�ArN)r_r`rar�r^rrrrlrl�s-������
�F�B�B�B�B�Brrlc�$�eZdZdZd�Zd�Zd�ZdS)�LinprogRSTestsr�c�.�tjd��dS�Nz Intermittent failure acceptable.rnr�s rrzLinprogRSTests.test_bug_5400������6�7�7�7�7�7rc�.�tjd��dSrsrnr�s rr?zLinprogRSTests.test_bug_8662�rtrc�.�tjd��dSrsrnr�s rr�z LinprogRSTests.test_network_flow�rtrN)r_r`rar�rr?r�rrrrqrq�sF������
�F�$8�8�8�8�8�8�8�8�8�8�8rrqc��eZdZd�Zej�dddiddiddiddiddid	did
diddig��d
���Zd�Zd�Z	d�Z
d�ZdS)�LinprogHiGHSTestsc	��d�}tjddg��}ddgddgddgg}gd�}ttt|||||j���t	||||j�	��}t
|d
ddg���dS)
Nc��dSr�rrs r�<lambda>z1LinprogHiGHSTests.test_callback.<locals>.<lambda>�s���rrzr�rrrr�r�r�r�rxr�)r;rEr��NotImplementedErrorr
r�r6)r�r�rTrlrmrs      rr�zLinprogHiGHSTests.test_callback�s���
�
���H�b�"�X�����A���A���A��'���z�z���)�7�A�D�t�!�$�+�	7�	7�	7�	7��a�d��d�k�B�B�B�����1�a�&�A�A�A�A�A�Arr�rr8r�r6r��dual_feasibility_tolerance�primal_feasibility_tolerance�ipm_optimality_tolerance�!simplex_dual_edge_weight_strategy�ekkic�t���fd�}|��j��tt||���dS)Nc�6��td�j|���dS)Nrr�r)r�r�s �rrz7LinprogHiGHSTests.test_invalid_option_values.<locals>.f�s ����A�d�k�7�;�;�;�;�;�;rr)rJr�rr)r�r�rs`  r�test_invalid_option_valuesz,LinprogHiGHSTests.test_invalid_option_values�sK���	<�	<�	<�	<�	<����t�|�$�$�$��_�a��9�9�9�9�9�9rc��td��\}}}}}d}t|||||j|j���}t	|jdk|jdk��dS)Nr&r�r<rr�)rUr
r�r�r�
crossover_nit)r�rnrorTr"rrrs       r�test_crossoverz LinprogHiGHSTests.test_crossover�sl��*�1�o�o���d�A�q�!����a�d��#�D�K���O�O�O��	�S�&�!�+�T�[�K�-G�H�H�H�H�Hrc
���
���
�����td���\���
�
��t���
�
���j�j���}�j\���
�����fd�}t|�
d|j���}t|jj	|���
��
���fd�}t|�d|j���}t|j
j	|���
���
���fd�}tjd	�
��5t|�d|j���}d|tj
���<ddd��n#1swxYwYt|jj	|���
���
���fd�}tjd	�
��5t|�d|j���}	d|	tj
���<ddd��n#1swxYwYt|jj	|	��dS)Nr�r=r�c	�D��t��|����j���jS�Nr��r
r�r1)r2rnrlrorrrTr�s ������r�f_bubz/LinprogHiGHSTests.test_marginals.<locals>.f_bub�s.����1�d�A�t�T�6�"&�+�/�/�/�/2�
3rz3-point)r��f0c	�D��t����|��j���jSr�r�)r2rnrlrmrrrTr�s ������r�f_beqz/LinprogHiGHSTests.test_marginals.<locals>.f_beqs.����1�d�D�$��6�"&�+�/�/�/�/2�
3rc	�z��tj|�g��j}t�����|�j���jSr��r;rErir
r�r1)	r2rrrnrlrormrTr�rqs	  �������r�f_lbz.LinprogHiGHSTests.test_marginals.<locals>.f_lbsD����X�q�"�g�&�&�(�F��1�d�D�$��f�"&�+�/�/�/�/2�
3r�ignore)�invalidc	�z��tj�|g��j}t�����|�j���jSr�r�)	r2rrrnrlrormrTrpr�s	  �������r�f_ubz.LinprogHiGHSTests.test_marginals.<locals>.f_ubsD����X�r�1�g�&�&�(�F��1�d�D�$��f�"&�+�/�/�/�/2�
3r)rsr
r�r�rirr1rrrrr;�errstate�isfiniter�r)r�rr��dfdbubr��dfdbeqr��dfdlbr��dfdubrnrlrormrrrTrprqs`         @@@@@@@@r�test_marginalsz LinprogHiGHSTests.test_marginals�s������������-<��,C�,C�,C�)��4��t�T�6��a�d��D�t�#�D�K���O�O�O������B�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�#�5�$�y�S�W�M�M�M�����-�v�6�6�6�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�#�5�$�y�S�W�M�M�M����	�+�V�4�4�4�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�
�[��
*�
*�
*�	(�	(�%�d�B�y�S�W�M�M�M�E�&'�E�2�;�r�?�?�"�#�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
	��	�+�U�3�3�3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�
�[��
*�
*�
*�	(�	(�%�d�B�y�S�W�M�M�M�E�&'�E�2�;�r�?�?�"�#�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	��	�+�U�3�3�3�3�3s$�$1D!�!D%�(D%�&1F#�#F'�*F'c
�(�td���\}}}}}}t|||||||j|j���}||j|jjzz|j|jjzz|jjz|j	jz}t|dd���dS)Nr
r�r�r��-���q=r�)rsr
r�r�rirrrrr�r)	r�rTrlrmrnrorrr�resids	         r�test_dual_feasibilityz'LinprogHiGHSTests.test_dual_feasibility#s���,;��,D�,D�,D�)��4��t�T�6��a�d��D�t�#�D�K���O�O�O��
��d�f�s�{�4�4�4���#�)�-�-�.���$�%���$�%��	��q�u�-�-�-�-�-�-rc
���td���\}}}}}}t|||||||j|j���}t	j|jj|||jzz
zd��sJ�dS)Nr
r�r�r)	rsr
r�r�r;�allcloserrr2r�s        r�test_complementary_slacknessz.LinprogHiGHSTests.test_complementary_slackness1s���,;��,D�,D�,D�)��4��t�T�6��a�d��D�t�#�D�K���O�O�O���{�3�;�0�D�4�#�%�<�4G�H�!�L�L�L�L�L�L�LrN)r_r`rar�r�rc�parametrizer�r�r�r�r�rrrrxrx�s�������	B�	B�	B��[���Y�(�"�o�%�r�l�)�2�.�+�R�0�;�R�@�=�r�B�9�2�>�B�F�K� �	!�	!�:�:�	!�	!�:�I�I�I�/4�/4�/4�b.�.�.�	M�	M�	M�	M�	Mrrxc�0��eZdZd�Zd�Zd�Z�fd�Z�xZS)�TestLinprogSimplexDefaultc��i|_dSr�rr�s r�setup_methodz&TestLinprogSimplexDefault.setup_methodDs
������rc�.�tjd��dS�NzSimplex fails on this problem.rnr�s rrz'TestLinprogSimplexDefault.test_bug_5400G�����4�5�5�5�5�5rc�.�tjd��dSr�rnr�s r�test_bug_7237_low_tolz/TestLinprogSimplexDefault.test_bug_7237_low_tolJs��	��4�5�5�5�5�5rc����|j�ddi��tjt��5t�����ddd��dS#1swxYwYdS�Nr.r��r�rJr�r�r�superr0�r��	__class__s �r�test_bug_8174_low_tolz/TestLinprogSimplexDefault.test_bug_8174_low_tolO����	
����U�E�N�+�+�+�
�\�/�
*�
*�	$�	$��G�G�!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$��!A%�%A)�,A))r_r`rar�rr�r��
__classcell__�r�s@rr�r�Bse����������6�6�6�6�6�6�
$�$�$�$�$�$�$�$�$rr�c�*��eZdZd�Zd�Z�fd�Z�xZS)�TestLinprogSimplexBlandc��ddi|_dS)Nr�Trr�s rr�z$TestLinprogSimplexBland.setup_methodYs��������rc�.�tjd��dSr�rnr�s rrz%TestLinprogSimplexBland.test_bug_5400\r�rc�F��|j�ddi��tjt��5tjt��5t�����ddd��n#1swxYwYddd��dS#1swxYwYdSr�)	r�rJr�r	r0r�rr�r0r�s �rr�z-TestLinprogSimplexBland.test_bug_8174_low_tol_s���	
����U�E�N�+�+�+�
�]�>�
*�
*�	(�	(���o�.�.�
(�
(����%�%�'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s5�B�!A>�2B�>B	�B�B	�B�B�B)r_r`rar�rr�r�r�s@rr�r�WsV�������'�'�'�6�6�6�(�(�(�(�(�(�(�(�(rr�c���eZdZd�Zejd��jdkZej	�
d��Zej
�eoed����fd���Z�fd�Zd	�Z�fd
�Zd�Zd�Z�xZS)
�TestLinprogSimplexNoPresolvec��ddi|_dS)Nr6Frr�s rr�z)TestLinprogSimplexNoPresolve.setup_methodjs��"�E�*����rrru�linuxz"Fails with warning on 32-bit linux)�	conditionrFc�H��t�����dSr�)r�rr�s �rrz*TestLinprogSimplexNoPresolve.test_bug_5400p�!���	���������rc����|j�ddi��tjtd���5t�����cddd��S#1swxYwYdS)Nr.r�zlinprog status 4r�)r�rJr�r	r0r�rr�s �r�test_bug_6139_low_tolz2TestLinprogSimplexNoPresolve.test_bug_6139_low_tolvs����
	
����U�E�N�+�+�+�
�]�>�1C�
D�
D�
D�	+�	+��7�7�(�(�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s� A&�&A*�-A*c�.�tjd��dSr�rnr�s rr�z2TestLinprogSimplexNoPresolve.test_bug_7237_low_tolr�rc����|j�ddi��tjt��5t�����ddd��dS#1swxYwYdSr�r�r�s �rr�z2TestLinprogSimplexNoPresolve.test_bug_8174_low_tol�r�r�c�.�tjd��dS�Nz#Tests behavior specific to presolvernr�s rr�zGTestLinprogSimplexNoPresolve.test_unbounded_no_nontrivial_constraints_1������9�:�:�:�:�:rc�.�tjd��dSr�rnr�s rr�zGTestLinprogSimplexNoPresolve.test_unbounded_no_nontrivial_constraints_2�r�r)r_r`rar�r;�intp�itemsize�	is_32_bitrgrer��is_linuxr�rcr�rr�r�r�r�r�r�r�s@rr�r�hs�������+�+�+�����
�
�#�a�'�I��|�&�&�w�/�/�H��[����(��3��5�5� � � � �5�5� �+�+�+�+�+�6�6�6�$�$�$�$�$�;�;�;�;�;�;�;�;�;�;rr�c��eZdZddiZdS)�TestLinprogIPDenser�FN�r_r`rar�rrrr�r��s���������G�G�Grr�c��eZdZddd�ZdS)�TestLinprogIPSparseCholmodT�r�rNr�rrrr�r��s������!�t�4�4���rr�c��eZdZddd�Zd�ZdS)�TestLinprogIPSparseUmfpackTFr�c�.�tjd��dS)Nz2Failing due to numerical issues on some platforms.rnr�s rr�z=TestLinprogIPSparseUmfpack.test_network_flow_limited_capacity�s���K�L�M�M�M�M�MrN)r_r`rar�r�rrrr�r��s5������!�u�5�5��	N�	N�	N�	N�	Nrr�c����eZdZdddd�Zej�d���fd���Zej�d����fd���Z	d	�Z
d
�Z�xZS)�TestLinprogIPSparseTF�r�r�sym_pos�rThis test is sensitive to machine epsilon level perturbations in linear system solution in _linprog_ip._sym_solve.c�H��t�����dSr��r�rr�s �rrz!TestLinprogIPSparse.test_bug_6139�r�r�Fails with ATLAS, see gh-7877rEc�H��t�����dSr��r�rr�s �rrz!TestLinprogIPSparse.test_bug_6690��!���	���������rc����td��\}}}}}d}t��5}tr|�t��|�t
d��|�td���fd��jD��}d|d<t|tt|||�j|���}ddd��n#1swxYwYt|d	�
��dS)Nr"r�zMatrix is exactly singularr�c�,��i|]}|�j|��Srrrs  �rrzLTestLinprogIPSparse.test_magic_square_sparse_no_presolve.<locals>.<dictcomp>��"���@�@�@�C��d�l�3�'�@�@�@rFr6r�r r�)
rUrr�r�rr
rr�r
rlrmr�r6)	r�rnrorTr"rrr�rrs	`        r�$test_magic_square_sparse_no_presolvez8TestLinprogIPSparse.test_magic_square_sparse_no_presolve�s'���*�1�o�o���d�A�q�!���
�
 �
 �
	9�C��
+��
�
�>�*�*�*��J�J�(�*F�G�G�G��J�J��(G�H�H�H�@�@�@�@�4�<�@�@�@�A�!�A�j�M��!�T�4��t�V�!%��a�9�9�9�C�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9�
	9����
	9�
	9�
	9�
	9�	���5�5�5�5�5�5s�BC	�	C
�C
c���td��\}}}}}t��5}|�td��|�td���fd��jD��}d}|D]C}||d<t|tt||t�j	|���}	t|	d�	���D	ddd��dS#1swxYwYdS)
Nr"r�zInvalid permc_spec optionc�,��i|]}|�j|��Srrrs  �rrzATestLinprogIPSparse.test_sparse_solve_options.<locals>.<dictcomp>�r�r)�NATURAL�MMD_ATA�
MMD_AT_PLUS_A�COLAMDr��
permc_specr�r r�)rUrr�rr�r
rlrmrrr�r6)
r�rnrorTr"r�r�permc_specsr�rs
`         r�test_sparse_solve_optionsz-TestLinprogIPSparse.test_sparse_solve_options�s.���*�1�o�o���d�A�q�!�
�
 �
 �	>�C��J�J��(A�B�B�B��J�J��(C�D�D�D�@�@�@�@�4�<�@�@�@�A�7�K�*�
>�
>�
�",��,���a��t�T�4��%)�[�!�=�=�=�����=�=�=�=�=�	
>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s�BC�C	�C	)
r_r`rar�r�rc�xfail_on_32bitrr�rr�r�r�r�s@rr�r��s���������5�U�C�C�G��[���!:�;�;� � � � �;�;� ��[���=��>�>� � � � �?�>� �6�6�6�$>�>�>�>�>�>�>rr�c���eZdZddd�Zej�d���fd���Zd�Zej�	d����fd���Z
�xZS)	�TestLinprogIPSparsePresolveT)r�r"r�c�H��t�����dSr�r�r�s �rrz)TestLinprogIPSparsePresolve.test_bug_6139�r�rc�.�tjd��dS)Nz6_sparse_presolve=True incompatible with presolve=Falsernr�s rr�zBTestLinprogIPSparsePresolve.test_enzo_example_c_with_infeasibility�s����L�M�M�M�M�Mrr�rEc�H��t�����dSr�r�r�s �rrz)TestLinprogIPSparsePresolve.test_bug_6690�r�r)r_r`rar�r�rcr�rr�r�rr�r�s@rr�r��s���������4�8�8�G��[���!:�;�;� � � � �;�;� �N�N�N��[���=��>�>� � � � �?�>� � � � � rr�c�0�eZdZdZd�Zd�Zd�Zd�Zd�ZdS)�TestLinprogIPSpecificr�c��trddd�}ntrddd�}ndddd�}tdd��\}}}t||||j|���}t||||j���}t|j|jdd	d
���dS)NTr�Fr�rer�r�z(linprog default solver unexpected resultgV瞯�<gV瞯�<r*)�has_cholmodr�rbr
r�rr1)r�r�rRrSrTr=r>s       r�test_solver_selectz(TestLinprogIPSpecific.test_solver_select�s����	L�!%�4�8�8�G�G�
�	L�!%�5�9�9�G�G�!%�5�U�K�K�G��2�r�"�"���1�a��q�q�q���g�N�N�N���q�q�q���=�=�=�����$�(� J�"��	0�	0�	0�	0�	0�	0rc�j�dg}dg}t|||jddd����}t|d���dS)Nr8r�FT)r6rrJr�)r
r�r6rUs    r�)test_unbounded_below_no_presolve_originalz?TestLinprogIPSpecific.test_unbounded_below_no_presolve_original�sV��
�D�������&�!�[�+0�d�C�C�E�E�E��	���,�,�,�,�,�,rc��tdd��\}}}t||||jddi���}t|d���dS)NrerTr�r�r�r�r�s     r�
test_choleskyz#TestLinprogIPSpecific.test_choleskysV���2�r�"�"���1�a��a�a�a���)�4�0�2�2�2�����7�7�7�7�7�7rc
�v�tdd��\}}}t��5}|�td��|�td��|�t
d��t
||||jddd����}ddd��n#1swxYwYt|d�	��dS)
Nrer�r�r]T)�ipr�r�r�r�)	rbrr�rKrrr
r�r6)r�rRrSrTr�rs      r�test_alternate_initial_pointz2TestLinprogIPSpecific.test_alternate_initial_points����2�r�"�"���1�a�
�
 �
 �	>�C��J�J�~�'C�D�D�D��J�J��(G�H�H�H��J�J�}�&A�B�B�B��!�!�!�D�K�)-�t�"<�"<�>�>�>�C�		>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	���7�7�7�7�7�7s�A.B�B!�$B!c�`�dg}dgdgg}ddg}dgdgdgg}gd�}t��5}|�t��|�td��t	|||||t
|jd	d
i���}ddd��n#1swxYwYt|jd��dS)
Nr&rr rr}ryrCr�r6Fr�r)	rr�rKrr
rrr�rrr4s        rrDz#TestLinprogIPSpecific.test_bug_8664s��
�C����a�S�z���1�v����b�T�A�3����z�z��
�
 �
 �	K�C��J�J�~�&�&�&��J�J��(G�H�H�H��!�T�4��t�V�!%��z�5�6I�K�K�K�C�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�
	�C�K��!?�@�@�@�@�@s�AB
�
B�BN)	r_r`rar�r�rrrrDrrrr�r��si������
�F�
0�
0�
0�-�-�-�8�8�8�
8�
8�
8�A�A�A�A�Arr�c�<�eZdZiZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
dS)	�TestLinprogRSCommonc�.�tjd��dSrsrnr�s rr�z%TestLinprogRSCommon.test_cyclic_bland2rtrc���t��\}}}}}}}t|||||t|j|j|��	�	}t|||���t
|jd��dS�N�r�r��x0r�r�r�r
rrr�r�r6rr�r�s	         r�"test_nontrivial_problem_with_guessz6TestLinprogRSCommon.test_nontrivial_problem_with_guess5�w��4F�4H�4H�1��4��t�T�6�6��a��t�T�4��!�[�$�,�6�K�K�K�����6�B�B�B�B��S�W�a� � � � � rc���t��\}}}}}}}gd�}t|||||||j|j|��	�	}	t	|	||���t|	jd��dS)N)r�r�r�r�rr�r�r�r
r�r�r6rr��
r�rTrlrmrnror�r�rrrs
          r�0test_nontrivial_problem_with_unbounded_variableszDTestLinprogRSCommon.test_nontrivial_problem_with_unbounded_variables<s���4F�4H�4H�1��4��t�T�6�6�F�F�F���a��t�T�4��!�[�$�,�6�K�K�K�����6�B�B�B�B��S�W�a� � � � � rc���t��\}}}}}}}gd�}t|||||||j|j|��	�	}	t	|	||���t|	jd��dS)N)r��rNr��r�g333333�?rr�rrrs
          r�.test_nontrivial_problem_with_bounded_variableszBTestLinprogRSCommon.test_nontrivial_problem_with_bounded_variablesDs���4F�4H�4H�1��4��t�T�6�6�<�<�<���a��t�T�4��!�[�$�,�6�K�K�K�����6�B�B�B�B��S�W�a� � � � � rc��t��\}}}}}}}dg}tjgd���}d}gd�}t|||||||j|j|��	�	}	t
|	||���t|	jd��dS)Nr&)gibl�3�g�%G�/�?rr�g�@Q�$@)r�rr�rrr�r)	r�r;rEr
r�r�r6rr�rs
          r�8test_nontrivial_problem_with_negative_unbounded_variablezLTestLinprogRSCommon.test_nontrivial_problem_with_negative_unbounded_variableLs���4F�4H�4H�1��4��t�T�6�6��s����6�6�6�7�7����?�?�?���a��t�T�4��!�[�$�,�6�K�K�K�����6�B�B�B�B��S�W�a� � � � � rc��t��\}}}}}}}gd�}t|||||t|j|j|��	�	}	t|	jd��dS�N)rrr"rgrrx�r�r
rrr�r�rr�
r�rTrlrmrnror�r��	bad_guessrs
          r�&test_nontrivial_problem_with_bad_guessz:TestLinprogRSCommon.test_nontrivial_problem_with_bad_guessW�k��4F�4H�4H�1��4��t�T�6�6�!�M�M�	��a��t�T�4��!�[�$�,�9�N�N�N���S�Z��#�#�#�#�#rc��td��\}}}}}tjj|j�}t��5}|�td��|�td��|�t��t||||j���}t||||j|j���}t||z|||j|j���}	ddd��n#1swxYwYt|d���t|jd��t|	��t!|	j|jk��dS)	Nr"r�r�)rnror�)rnror�r
r r�r)rUr;r<rHrIrr�rrKrr
r�r2r6rr�r)
r�rRrSrTr"r�r�rr>�res3s
          r�%test_redundant_constraints_with_guessz9TestLinprogRSCommon.test_redundant_constraints_with_guess^sw��$�Q���
��1�a��A��I�N�A�G�$��
�
 �
 �	P�C��J�J��(A�B�B�B��J�J�~�'B�C�C�C��J�J�}�%�%�%��!�!�!�D�K�@�@�@�C��1�1�1�T�[�S�U�K�K�K�D��1�q�5�q�q�����O�O�O�D�
	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P����	P�	P�	P�	P�	��+�6�6�6�6��T�X�q�!�!�!���������3�7�"�#�#�#�#�#s�B(C0�0C4�7C4N)r_r`rar�r�rrrrr r$rrrrr/s��������G�8�8�8�!�!�!�!�!�!�!�!�!�	!�	!�	!�$�$�$�
$�
$�
$�
$�
$rrc��eZdZddiZdS)�TestLinprogRSBland�pivotr�Nr�rrrr&r&ns�������� �G�G�Grr&c��eZdZdZiZd�ZdS)�TestLinprogHiGHSSimplexDualr�c���t��\}}}}t|||||j|j���}t	|jd��t
|jdu��t
tj	|j
dk����t
tj	|jd�|D��k����t
tj	|jd�|D��k����dS)z�
        The scaled model should be optimal, i.e. not produce unscaled model
        infeasible.  See https://github.com/ERGO-Code/HiGHS/issues/494.
        )rlrmrrr�r�rNg���ư�c�4�g|]\}}|�tjn|��Sr��r;rh�rrprqs   r�
<listcomp>zCTestLinprogHiGHSSimplexDual.test_lad_regression.<locals>.<listcomp>�s6��!5�!5�!5�%+�R��,.�:����2�!5�!5�!5rc�<�g|]\}}|�
tjn|dz
��S)Nr�r,r-s   rr.zCTestLinprogHiGHSSimplexDual.test_lad_regression.<locals>.<listcomp>�s<��!5�!5�!5�%+�R��-/�J�"�&���B��I�!5�!5�!5r)r�r
r�r�rrrr2r;�allr�)r�rTrlrmr�rs      r�test_lad_regressionz/TestLinprogHiGHSSimplexDual.test_lad_regression{s��1�2�2���4��t��a�d��d�!�[�$�,�@�@�@���S�Z��#�#�#����T�!�"�"�"����s�y�5�(�)�)�*�*�*����s�u�!5�!5�/3�!5�!5�!5�5�6�6�	7�	7�	7����s�u�!5�!5�/3�!5�!5�!5�5�6�6�	7�	7�	7�	7�	7rN)r_r`rar�r�r1rrrr)r)ws-������
�F��G�7�7�7�7�7rr)c��eZdZdZiZdS)�TestLinprogHiGHSIPMr�N)r_r`rar�r�rrrr3r3�s������
�F��G�G�Grr3c�F�eZdZdZiZej�ej	dkoe
j��dkdd���d���Zd�Z
d	�Zd
�Zd�Zejjej�d��d
�����Zejjd���ZdS)�TestLinprogHiGHSMIPr�l�LinuxFzgh-16347)r��runrFc	���d}t|��\}}}}}dgt|��z}dgt|��z}t|dz||||j|���}	|���|	jz�|dz||��}
tj|
d���}tj	�
|�d���|��tj	�
|�d���|��tj	�
tj|�����|��tj	�
tj|dd�ddd�f�����|��tj	�
|	jtj|	j��d	�
��dS)Nr&r�rr�rTrnrorrr�r�rrRr8r�r�)
rUr�r
r�rDr2r?r;rkrr�diag�round)r�rJrRrSrTrLrKrrr�r�s�squares            r�	test_mip1zTestLinprogHiGHSMIP.test_mip1�s���
��*�1�o�o���1�a��!���C��F�F�"���c�C��F�F�l����!��!�!�F�!�[�k�C�C�C���_�_�
�
���
&�/�/��1��a��;�;������"�"�"��
�
�"�"�6�:�:�1�:�#5�#5�q�9�9�9�
�
�"�"�6�:�:�1�:�#5�#5�q�9�9�9�
�
�"�"�2�7�6�?�?�#6�#6�#8�#8�!�<�<�<�
�
�"�"�2�7�6�!�!�!�T�T�r�T�'�?�#;�#;�#?�#?�#A�#A�1�E�E�E�
�
�"�"�3�5�"�(�3�5�/�/��"�F�F�F�F�Frc���tjddgddgg��}tjddg��}tjddg��}tjdtjfgt|��z��}tj|��}t|||||j|�	��}tj�|j	ddg��tj�|j
d
��dS)Nrr�r}rdr8�
rrrrz)r;rErhr��	ones_liker
r�rrr2r1rs       r�	test_mip2zTestLinprogHiGHSMIP.test_mip2�s����x�!�R��2�r�(�+�,�,���x��R��!�!��
�X�q�!�f�
�
�����A�r�v�;�-�#�a�&�&�0�1�1���l�1�o�o�����4��!�[�k�C�C�C��	�
�"�"�3�5�1�a�&�1�1�1�
�
�"�"�3�7�B�/�/�/�/�/rc���tjddgddgddgg��}tjgd���}tjddg��}dtjfgt|��z}dgt|��z}t	|||||j|���}tj�|jd��tj	|j
ddg��stj	|j
ddg��sJ�dSdS)	Nr8rr"rrrrr�)r;rErhr�r
r�rrr1r�r2rs       r�	test_mip3zTestLinprogHiGHSMIP.test_mip3�s����x�"�a��1�a�&�1�a�&�1�2�2���x����$�$��
�X�q�!�f�
�
����b�f�+���Q���'���c�C��F�F�l�����4��!�[�k�C�C�C��	�
�"�"�3�7�B�/�/�/��{�3�5�1�a�&�)�)�G�R�[����A��-G�-G�G�G�G�G�G�G�Grc��tjddgddgddgg��}tjgd���}tjddg��}dtjfgt|��z}ddg}t	|||||j|�	��}tj�|jd
dg��tj�|j	d��dS)
Nr8r�r~rr)rxi���rerurrg@r|�;)
r;rErhr�r
r�rrr2r1rs       r�	test_mip4zTestLinprogHiGHSMIP.test_mip4�s����x�"�b��B��8�a��V�4�5�5���x�
�
�
�&�&���H�a��V�����b�f�+���Q���'���!�f�����4��!�[�k�C�C�C��	�
�"�"�3�5�3��(�3�3�3�
�
�"�"�3�7�B�/�/�/�/�/rc
��tjgd�g��}tjdg��}tjgd�g��}tjdg��}tjgd���}dtjfdtjfdg}gd�}t|||||||j|�	��}tj�|jgd
���tj�|jd��|�	dd���J�|�	d
d���J�|�	dd���J�dS)Nr�r|)r&rrr)rzr�r8rr�r9)rTrlrmrnrorrr�r�)rrxri��mip_node_count�mip_dual_bound�mip_gap)
r;rErhr
r�rrr2r1r>)	r�rlrmrnrorTrrr�rs	         r�	test_mip5zTestLinprogHiGHSMIP.test_mip5�s:���x�����$�$���x���}�}���x�����$�$���x���~�~���H�\�\�\�"�"���b�f�+��2�6�{�F�3���i�i�����4�d��#�D�K�"-�/�/�/��	�
�"�"�3�5�)�)�)�4�4�4�
�
�"�"�3�7�C�0�0�0��w�w�'��.�.�:�:�:��w�w�'��.�.�:�:�:��w�w�y�$�'�'�3�3�3�3�3r�xc�L�tjgd�gd�gd�gd�g��}tjgd���}tjgd���}dtjfgdz}d	gdz}t|||||j|�
��}tj�|jd��dS)N��r@�r��r"rxrQ��'r�rP�rQ����r�rx��rV�&rQrQ��)rQrUr�r�r\r�rQ�i�i�(i:,i/�rrdr@�r|r r|r"rrurr9i>)r;rErhr
r�rrr1)r�rnrorTrrr�rs       r�	test_mip6zTestLinprogHiGHSMIP.test_mip6	s���
�x�8�8�8�9�9�9�9�9�9�9�9�9�;�<�<���x�3�3�3�4�4���H�0�0�0�1�1���b�f�+��q����c�!�e�����4��!�[�k�C�C�C��	�
�"�"�3�7�D�1�1�1�1�1rc
�4�tjgd�gd�gd�gd�g��}tjgd���}tjgd���}dtjfgdz}d	gdz}gd
�}g}|D]P}t|tt
||||j|d|i��	�	}	|	d
}
|
|ksJ�|�|
���Qtjtj	|����}tj
|dk��sJ�tj
|dk��rJ�dS)NrOrSrYr]r_r`rrur)rgg�?g{�G�z�?g����MbP?�mip_rel_gap)	rTrlrmrnrorrr�r�r�rK)r;rErhr
rlrmr�rC�diff�flipr0)r�rnrorTrrr��mip_rel_gaps�sol_mip_gapsrdr�
final_mip_gap�	gap_diffss            r�test_mip_rel_gap_passdownz-TestLinprogHiGHSMIP.test_mip_rel_gap_passdown	sd��
�x�8�8�8�9�9�9�9�9�9�9�9�9�;�<�<���x�3�3�3�4�4���H�0�0�0�1�1���b�f�+��q����c�!�e��/�/�/����'�		/�		/�K��A�D�t�$�T�!'���&1�#0�+�">�@�@�@�C� �	�N�M�!�K�/�/�/�/����
�.�.�.�.��G�B�G�L�1�1�2�2�	��v�i�1�n�%�%�%�%�%��6�)�q�.�)�)�)�)�)�)�)rN)r_r`rar�r�r�rcr�rg�maxsizere�systemr>rBrDrGrL�slow�timeoutrb�xslowrkrrrr5r5�s������
�F��G��[���#�+��"7�#4�&�x��(�(�G�3� �(��*�*�G�G�	*�*�G�*0�0�0�&H�H�H�"0�0�0� 4�4�4�0�[���[������2�2�����2�$�[��#*�#*���#*�#*�#*rr5c�@�eZdZddiZejZejZejZdS)�AutoscaleTestsr\TN)r_r`rar�r�rrr(rrrrrrrF	s0�������D�!�G�&�4�M�&�4�M�&�4�M�M�Mrrrc��eZdZdZd�ZdS)�TestAutoscaleIPr�c�J�d|jd<t�|��S)Nr/r.)r�rrrr�s rrzTestAutoscaleIP.test_bug_6139R	s"��#���U���+�+�D�1�1�1rN)r_r`rar�rrrrrtrtO	s(������
�F�2�2�2�2�2rrtc��eZdZdZdS)�TestAutoscaleSimplexr�NrjrrrrwrwW	s������
�F�F�Frrwc��eZdZdZd�Zd�ZdS)�TestAutoscaleRSr�c���t��\}}}}}}}t|||||t|j|j|��	�	}t|||���t
|jd��dSrrr�s	         rrz2TestAutoscaleRS.test_nontrivial_problem_with_guess^	rrc��t��\}}}}}}}gd�}t|||||t|j|j|��	�	}	t|	jd��dSrrrs
          rr z6TestAutoscaleRS.test_nontrivial_problem_with_bad_guesse	r!rN)r_r`rar�rr rrrryry[	s7������
�F�!�!�!�$�$�$�$�$rryc�\�eZdZdZeZejZejZej	Z	ej
ZejZdS)�RRTestsr�N)
r_r`rar�r��LCTr��test_RR_infeasibilityrWr#r��	test_NFLCr�rrrr}r}r	sD������
�F�
�C��D���'�N��%�M��6�I��1���rr}c��eZdZddiZdS)�	TestRRSVDr��SVDNr�rrrr�r�~	s�������E�"�G�G�Grr�c��eZdZddiZdS)�TestRRPivotr�r'Nr�rrrr�r��	s�������G�$�G�G�Grr�c��eZdZddiZdS)�TestRRIDr��IDNr�rrrr�r��	s�������D�!�G�G�Grr�)NNr(r()r)rruryr�)Urbrgre�numpyr;�
numpy.testingrrrrrrr�r	r��scipy.optimizer
r�scipy.optimize._numdiffr�scipy.sparse.linalgr
�scipy.linalgr�scipy.sparser�r��scikits.umfpackr�ImportErrorr��sksparse�sksparse.cholmodr�cholmodrr r#r'r6rUrbrsr�r�r�r�r�r�r�r�rlrmrnrorrr�rc�filterwarningsrirlrqrxr�r�r�r�r�r�r�r�r�rr&r)r3r5rrrtrwryr}r�r�r�rrr�<module>r�sQ�����
�
�
���������O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�*�*�*�*�*�*�3�3�3�3�3�3�3�3�5�5�5�5�5�5�1�1�1�1�1�1�&�&�&�&�&�&�����
�
�
�
��������.�.�.�.�.�.�.�������K�K�K���������O�O�O�4�4�4�4�4�4�4�������K�K�K�����L�L�L�F�F�F�E�E�E�K�K�K�6:�$(�.�.�.�.�*?�?�?�D���6
-�
-�
-�
-� 5�5�5� � � � �F4�4�4�>9�9�9�>�>�>�%�%�%�*#�*#�*#�ZE�E�E���������	
��p.�p.�p.�p.�p.�p.�p.�p.�n)����8�9�9������,���:�9������8�9�9�B�B�B�B�B�'�B�B�:�9�B�����8�9�9�8�8�8�8�8�'�8�8�:�9�8�:lM�lM�lM�lM�lM�*�lM�lM�lM�h$�$�$�$�$� 3�$�$�$�*(�(�(�(�(�1�(�(�(�"%;�%;�%;�%;�%;�#6�%;�%;�%;�Z � � � � �� � � ��5�5�5�5�5�5�^�5�5�5��N�N�N�N�N�N�^�N�N�N�/>�/>�/>�/>�/>�.�/>�/>�/>�d � � � � �.� � � �$����8�9�9�<A�<A�<A�<A�<A�<A�<A�:�9�<A�H<$�<$�<$�<$�<$�.�<$�<$�<$�~!�!�!�!�!��!�!�!�7�7�7�7�7�"3�7�7�7�8�����+����a*�a*�a*�a*�a*�a*�a*�a*�R����8�9�9�5�5�5�5�5�5�5�:�9�5�2�2�2�2�2�n�2�2�2������>����$�$�$�$�$�n�$�$�$�.����8�9�9�2�2�2�2�2�2�2�:�9�2�#�#�#�#�#��#�#�#�%�%�%�%�%�'�%�%�%�"�"�"�"�"�w�"�"�"�"�"s$�A�A�A�%
A0�0A:�9A:

Youez - 2016 - github.com/yon3zu
LinuXploit