§
    µ³Ùg‘ ã                   ó:  — d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZ ddlmZ ddl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ZddlZd
Z	 ddlmZ n# e$ r dZY nw xY wd
Z 	 ddl!Z!ddl"m#Z$ n# e$ r dZ Y nw xY wd„ Z%d„ Z&d„ Z'd„ Z(	 	 dYd„Z)d„ Z*d„ Z+dZd„Z,d„ Z-d[d„Z.d„ Z/ej0        j1        d„ ¦   «         Z2d„ Z3ej0        j1        d„ ¦   «         Z4d „ Z5d!„ Z6dZ7dZ8dZ9dZ:dZ; G d"„ d#¦  «        Z<ej0         =                    d$¦  «         G d%„ d&e<¦  «        ¦   «         Z>ej0         =                    d$¦  «         G d'„ d(e<¦  «        ¦   «         Z?ej0         =                    d$¦  «         G d)„ d*e<¦  «        ¦   «         Z@ G d+„ d,e<¦  «        ZA G d-„ d.e>¦  «        ZB G d/„ d0e>¦  «        ZC G d1„ d2e>¦  «        ZD G d3„ d4e?¦  «        ZEe r G d5„ d6e?¦  «        ZFer G d7„ d8e?¦  «        ZG G d9„ d:e?¦  «        ZH G d;„ d<e?¦  «        ZIej0         =                    d$¦  «         G d=„ d>¦  «        ¦   «         ZJ G d?„ d@e@¦  «        ZK G dA„ dBe@¦  «        ZL G dC„ dDeA¦  «        ZM G dE„ dFeA¦  «        ZN G dG„ dH¦  «        ZOej0         =                    d$¦  «         G dI„ dJ¦  «        ¦   «         ZP G dK„ dLeP¦  «        ZQ G dM„ dNeP¦  «        ZR G dO„ dPeP¦  «        ZSej0         =                    d$¦  «         G dQ„ dR¦  «        ¦   «         ZT G dS„ dTeT¦  «        ZU G dU„ dVeT¦  «        ZV G dW„ dXeT¦  «        ZWdS )\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)ÚLinAlgWarning)ÚVisibleDeprecationWarningT)ÚUmfpackWarningF)Úcholeskyc                 ó�   — t          | j         d¦  «         t          | j        |k     d¦  «         t          | j        dd¦  «         d S )NúIncorrectly reported successz)Incorrectly reported number of iterationsé   z(Failed to report iteration limit reached©r   Úsuccessr   Ústatus)ÚresÚmaxiters     úW/granary/edev/quantum/lib/python3.11/site-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          | j        dd¦  «         d S )Núincorrectly reported successé   z"failed to report infeasible statusr   ©r   s    r   Ú_assert_infeasibler!   '   s2   € å�”ˆOÐ;Ñ<Ô<Ð<Ý�”˜QÐ DÑEÔEÐEÐEÐEr   c                 ó^   — t          | j         d¦  «         t          | j        dd¦  «         d S )Nr   é   z!failed to report unbounded statusr   r    s    r   Ú_assert_unboundedr$   -   s2   € å�”ˆOÐ;Ñ<Ô<Ð<Ý�”˜QÐ CÑDÔDÐDÐDÐDr   c                 ó`   — t          | j         d¦  «         t          | j        dv d¦  «         d S )Nr   ©r   é   z%failed to report optimization failure)r   r   r   r    s    r   Ú)_assert_unable_to_find_basic_feasible_solr(   3   s7   € õ �”ˆOÐ;Ñ<Ô<Ð<ÝˆCŒJ˜&Ð Ð"IÑJÔJÐJÐJÐJr   ç:Œ0âŽyE>c                 óð   — | j         s!d| j        › d| j        › �}t          |¦  «        ‚t	          | j        d¦  «         |�t          | j        |d||¬¦  «         |�t          | j        |d||¬¦  «         d S d S )Nzlinprog status z, message: r   z*converged to an unexpected objective value©Úerr_msgÚrtolÚatolz#converged to an unexpected solution)r   r   ÚmessageÚAssertionErrorr   r   ÚfunÚx)r   Údesired_funÚ	desired_xr-   r.   Úmsgs         r   Ú_assert_successr6   =   s±   € ð
 Œ;ð "ØD ¤
ÐDÐD°s´{ÐDÐDˆÝ˜SÑ!Ô!Ð!å�”˜QÑÔÐØÐÝ˜œ Ø LØ!¨ð	.ñ 	.ô 	.ð 	.ð ÐÝ˜œ˜yØ EØ!¨ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð Ðr   c           	      ó0  — t           j                             d¦  «        }| | dz  dz   z  dz  }t          j        | dz  ¦  «        | dz  z  dz   }|                     | dz  | | ¦  «        }t          j        | dz  | | f¦  «        }g }g }t          | dz  ¦  «        D ]^}|                     ¦   «         }d||dd…dd…f<   |                     | 	                    ¦   «         ¦  «         |                     d¦  «         Œ_t          | ¦  «        D ]n}t          | ¦  «        D ]\}	|                     ¦   «         }d|dd…||	f<   |                     | 	                    ¦   «         ¦  «         |                     d¦  «         Œ]Œot          | ¦  «        D ]k}|                     ¦   «         }|dd…|dd…f         |dd…|dd…f<   |                     | 	                    ¦   «         ¦  «         |                     |¦  «         Œlt          | ¦  «        D ]k}|                     ¦   «         }|dd…dd…|f         |dd…dd…|f<   |                     | 	                    ¦   «         ¦  «         |                     |¦  «         Œl|                     ¦   «         }|dd…t          | ¦  «        t          | ¦  «        f         |dd…t          | ¦  «        t          | ¦  «        f<   |                     | 	                    ¦   «         ¦  «         |                     |¦  «         |                     ¦   «         }|dd…t          | ¦  «        t          d|  dz
  d¦  «        f         |dd…t          | ¦  «        t          d|  dz
  d¦  «        f<   |                     | 	                    ¦   «         ¦  «         |                     |¦  «         t          j
        t          j        |¦  «        t          ¬¦  «        }
t          j
        |t          ¬¦  «        }|                     |
j        d         ¦  «        }|
||||fS )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.
    r   r   r   r'   Néÿÿÿÿ©Údtype)ÚnpÚrandomÚRandomStateÚarangeÚreshapeÚzerosÚrangeÚcopyÚappendÚflattenÚarrayÚvstackÚfloatÚrandÚshape)ÚnÚrngÚMÚnumbersr@   ÚA_listÚb_listÚiÚA_rowÚjÚAÚbÚcs                r   Úmagic_squarerV   Q   sÕ  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ	ˆ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Ø�Š�”˜”ÑÔ€Aàˆa��G˜QÐÐr   c                 óT  — t           j                             d¦  «        }|                     | |f¬¦  «         }t          j        | | |z  f¦  «        }t          j        | ¦  «        }t          | ¦  «        D ]}|dz   }d||||z  ||z  …f<   || z  ||<   Œt          j        || |z  f¦  «        }t          j        |¦  «        }	t          |¦  «        D ]}|dz   }d|||d|…f<   d|	|<   Œt          j        ||f¦  «        }
t          j        ||	f¦  «        }|
||                     ¦   «         fS )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   ©Úsizer   N)	r;   r<   r=   Úexponentialr@   rA   rF   ÚhstackÚravel)ÚmrJ   rK   rU   ÚArowÚbrowrR   Új1ÚAcolÚbcolrS   rT   s               r   Úlpgen_2drc   “   s8  € õ
 Œ)×
Ò
 Ñ
"Ô
"€CØ
�/Š/  1˜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�—’‘”ˆ?Ðr   c                 ót  — t           j                             | ¦  «        }d\  }}}|                     |¦  «        dz
  }|                     ||¦  «        dz
  }|                     |¦  «        dz
  }|                     ||¦  «        dz
  }|                     |¦  «        dz
  }	|                     |¦  «         }
|                     |¦  «        }t           j         |
|
|                     ¦   «          k     <   t           j        |||                     ¦   «         k    <   t          j        |
|f¦  «        j        }|||||	|fS )N)é
   é   é2   ç      à?)r;   r<   r=   rH   ÚinfrF   ÚT)ÚseedrK   Úm_eqÚm_ubrJ   rU   ÚA_ubÚb_ubÚA_eqÚb_eqÚlbÚubÚboundss                r   Úvery_random_genru   ®   s  € Ý
Œ)×
Ò
 Ñ
%Ô
%€CØ�M€Dˆ$�Ø�Š�‰Œ�C‰€AØ�8Š8�D˜!ÑÔ˜SÑ €DØ�8Š8�D‰>Œ>˜#Ñ€DØ�8Š8�D˜!ÑÔ˜SÑ €DØ�8Š8�D‰>Œ>˜#Ñ€DØ
�(Š(�1‰+Œ+ˆ€BØ	�Š�!‰Œ€BÝœF˜7€B€rˆS�XŠX‰ZŒZˆKÒÑÝœ&€B€rˆC�HŠH‰JŒJ‚ÑÝŒY˜˜B�xÑ Ô Ô"€FØˆd�D˜$  fÐ,Ð,r   c                  ó\   — g d¢} g d¢g d¢g d¢g d¢g}g d¢}g d¢g}dg}g d	¢}d
}| ||||||fS )N)r8   é   r'   éúÿÿÿ)éùÿÿÿry   é   é	   )r   r8   éýÿÿÿr   )re   éöÿÿÿry   é   )rz   r8   r#   r'   )r|   rz   rx   rz   )r}   r   r   éøÿÿÿéüÿÿÿ)gkæ¤€‹–²?gòsÚÑð?r   güØkª¾Lá?gŽqY†:^@© )rU   rn   ro   rp   rq   Ú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Ð4r   rw   r{   éd   c                 ó   — t           j                             | ¦  «        }|                     dd||f¬¦  «        }|                     |¦  «        }|                     dd||f¬¦  «        }|||z  z  |                     dd|¬¦  «        z   }t          j        ||z   ¦  «        }	d|	d|…<   t          j                             d|z  ||z   f¦  «        }
d}t          |¦  «        D ]P}||dd…|f         z  |
|d|…f<   d|
|||z   f<   d|z  |dd…|f         z  |
|dz   d|…f<   d|
|dz   ||z   f<   |dz  }ŒQ|
 
                    ¦   «         }
t          j        d|z  ¦  «        }||ddd…<   | |ddd…<   dg|z  d	g|z  z   }|	|
||fS )
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
    r   r   rX   çñhãˆµøä>Nr   r8   ©NN©r   N)r;   r<   r=   ÚnormalÚrandnÚonesÚscipyÚsparseÚ
lil_matrixrA   Útocscr@   )rk   r]   ÚdrJ   rK   ÚphiÚw_truer2   ÚyrU   rn   ÚidxÚiiro   Úbndss                  r   Úl1_regression_probr˜   Ì   s¿  € õ Œ)×
Ò
 Ñ
%Ô
%€CØ
�*Š*�Q˜  A ˆ*Ñ
'Ô
'€CØ�YŠY�q‰\Œ\€FØ�
Š
�1�a˜q !˜fˆ
Ñ%Ô%€AØ�#˜‘'Ñ˜SŸZšZ¨¨4°a˜ZÑ8Ô8Ñ8€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˜$ÐÐr   c                 óš  ‡— i Šˆfd„}t          j        ddg¦  «        }ddgddgddgg}g d¢}t          ||||| j        ¬¦  «        }t	          |d	dd
g¬¦  «         t          ‰d         |d         ¦  «         t          ‰d         |d         ¦  «         t          ‰d         |d         ¦  «         t          ‰d         |d         ¦  «         d S )Nc                 óP  •— |                       d¦  «        }|                       d¦  «        }t          |                       d¦  «        dv ¦  «         t          |                       d¦  «        t          d¦  «        v ¦  «         t          t          |                       d¦  «        t          ¦  «        ¦  «         t          t          |t
          ¦  «        ¦  «         t          t          |t          ¦  «        ¦  «         | d         ‰d<   | d	         ‰d	<   | d
         ‰d
<   | d         ‰d<   d S )Nr/   ÚcompleteÚphase©r   r   r   r'   Únitr2   r1   ÚslackÚcon)Úpopr   rA   Ú
isinstanceÚintÚboolÚstr)r   r/   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œˆ�‰ˆˆr   r|   éþÿÿÿr   r   r   ©re   rw   r'   ©rn   ro   ÚcallbackÚmethodç      2Àrz   ©r3   r4   r1   r2   r    rŸ   )r;   rE   r
   r¬   r6   r   )Úselfr§   rU   rn   ro   r   r¦   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Ð3r   c                  ób  — t          j        ddg¦  «        } ddgddgddgg}g d¢}t          t          t          | ||d¬¦  «         t          t          t          | ||d	¬¦  «         d
}t          j        t          |¬¦  «        5  t	          | ||ddi¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr|   r¨   r   r   r   r©   úekki-ekki-ekki©rn   ro   r¬   z
highs-ekkiz>Unrecognized options detected: {'rr_method': 'ekki-ekki-ekki'}©ÚmatchÚ	rr_method©rn   ro   Úoptions)r;   rE   Úassert_raisesÚ
ValueErrorr
   ÚpytestÚwarnsr   )rU   rn   ro   r/   s       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°,ð@ñ @ô @ð @àN€GÝ	Œ•o¨WÐ	5Ñ	5Ô	5ð 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                  óž   — t          j        ddg¦  «        } ddgddgddgg}g d¢}t          | ||d¬¦  «        }t          |d	dd
g¬¦  «         d S )Nr|   r¨   r   r   r   r©   Úhighs©r¬   r­   rz   r®   )r;   rE   r
   r6   )rU   rn   ro   r   s       r   Útest_choose_solverrÁ     sk   € å
Œ�"�b�ÑÔ€AØ�ˆF�Q˜�F˜Q ˜FÐ#€DØˆ:ˆ:€Då
�!�T˜4¨Ð
0Ñ
0Ô
0€CÝ�C U°q¸!°fÐ=Ñ=Ô=Ð=Ð=Ð=r   c                  ó”  — t          j        t          ¦  «        5  t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   úinterior-pointrÀ   úrevised simplexÚsimplex)r»   r¼   ÚDeprecationWarningr
   r�   r   r   Útest_deprecationrÇ   (  s~  € å	ŒÕ(Ñ	)Ô	)ð ,ð ,Ý�Ð*Ð+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,å	ŒÕ(Ñ	)Ô	)ð -ð -Ý�Ð+Ð,Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -å	ŒÕ(Ñ	)Ô	)ð %ð %Ý�˜)Ð$Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s0   š8¸<¿<ÁA:Á:A>ÂA>ÂB=Â=CÃCc            	      óÄ  — t          dd¬¦  «        } d}| j        dk    sJ ‚| j                             |¦  «        sJ ‚t	          d¦  «        \  }}}}}dgt          |¦  «        z  }dgt          |¦  «        z  }dd	i}	t          ||||d|	|¬
¦  «        } d}| j        dk    sJ ‚| j                             |¦  «        sJ ‚ddi}	t          ||||d|	¬¦  «        } d}| j        dk    sJ ‚| j                             |¦  «        sJ ‚t          ddd¬¦  «        } d}| j        dk    sJ ‚| j                             |¦  «        sJ ‚t          dd¬¦  «        } d}| j        dk    sJ ‚| j                             |¦  «        sJ ‚ddlm}
  |
dd¦  «        \  }}d}|dk    sJ ‚|                     |¦  «        sJ ‚ |
d d ¦  «        \  }}d}|dk    sJ ‚|                     |¦  «        sJ ‚d S )Nr   r¿   rÀ   z6Optimization terminated successfully. (HiGHS Status 7:r   rz   ©r   r   Ú
time_limitçš™™™™™¹?)rU   rp   rq   rt   r¬   r¸   Úintegralityz%Time limit reached. (HiGHS Status 13:r   re   úhighs-ds©rU   rp   rq   rt   r¬   r¸   z*Iteration limit reached. (HiGHS Status 14:)r   r8   )rt   r¬   z+The problem is infeasible. (HiGHS Status 8:r   r8   z+The problem is unbounded. (HiGHS Status 10:r#   )Ú_highs_to_scipy_status_messageé:   zHello!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
   r   r/   Ú
startswithrV   ÚlenÚscipy.optimize._linprog_highsrÏ   )r   r5   rS   rT   rU   rM   rL   rt   rÌ   r¸   rÏ   r   r/   s                r   Útest_highs_status_messagerÔ   2  sV  € Ý
�!˜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Ñ"Ô"Ð"Ð"Ð"Ð"Ð"r   c                  ó<   — t          ddgddggdgddg¬¦  «         d S )Nr   r8   r   ç      À©rn   ro   rÌ   )r
   r�   r   r   Útest_bug_17380rØ   _  s/   € ÝˆQ�ˆF˜2˜q˜'˜¨$¨¸aÀ¸VÐDÑDÔDÐDÐDÐDr   c                   ó¢  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej        j        d	„ ¦   «         Zej        j        d
„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zej        j        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#„ 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„ ZRej         S                    eTjU        dNk    dO¬P¦  «        dQ„ ¦   «         ZVdRS )SÚ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          | ¦  «         d S ©N)r°   ©r¯   s    r   Útest_callbackz LinprogCommonTests.test_callback{  s   € Ý˜dÑ#Ô#Ð#Ð#Ð#r   c                 ó†   — t          dd¦  «        \  }}}t          |||| j        ddi¬¦  «        }t          |d¬¦  «         d S )Nrf   ÚdispT©rn   ro   r¬   r¸   çT¹×é*PÀ©r3   ©rc   r
   r¬   r6   ©r¯   rS   rT   rU   r   s        r   Ú	test_dispzLinprogCommonTests.test_disp~  sU   € å˜2˜rÑ"Ô"‰ˆˆ1ˆaÝ�a˜a a°´Ø% t˜nð.ñ .ô .ˆå˜¨Ð7Ñ7Ô7Ð7Ð7Ð7r   c                 ó’   — ddg}ddgddgg}ddg}d}d}t          |||||f| j        | j        ¬	¦  «        }t          |d
¬¦  «         d S )Nr8   r'   r|   r   r   rz   rˆ   ©r|   N)rn   ro   rt   r¸   r¬   éêÿÿÿrã   )r
   r¸   r¬   r6   )r¯   rU   rS   rT   Ú	x0_boundsÚ	x1_boundsr   s          r   Útest_docstring_examplez)LinprogCommonTests.test_docstring_example…  sv   € à�ˆGˆØ�!ˆW�q˜!�fÐˆØ�ˆFˆØ ˆ	Øˆ	Ý�a˜a a°¸IÐ0FØ"œl°4´;ð@ñ @ô @ˆå˜¨Ð-Ñ-Ô-Ð-Ð-Ð-r   c           	      ól   — dg}dgg}d}t          t          t          |||| j        | j        ¬¦  «         d S )Nr   Úhello©rp   rq   r¬   r¸   )r¹   Ú	TypeErrorr
   r¬   r¸   )r¯   rU   rp   rq   s       r   Útest_type_errorz"LinprogCommonTests.test_type_error�  sT   € ð ˆCˆØ�ˆuˆØˆÝ•i¥Ø˜d¨Ø!œ[°$´,ð	@ñ 	@ô 	@ð 	@ð 	@ð 	@r   c           
      óf  — t          j        dg¦  «        }t          j        dgg¦  «        }t          j        dg¦  «        }|                     ¦   «         }dt           j        f}t	          |||t
          t          || j        | j        ¬¦  «        }t          |ddg¬¦  «         t          ||¦  «         d S )Nç      ð?ç      @ç      À©r¬   r¸   r€   r®   )r;   rE   rB   ri   r
   rp   rq   r¬   r¸   r6   r   )r¯   rU   rn   Ú	b_ub_origro   rt   r   s          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Ñ(Ô(Ð(Ð(Ð(r   c           
      óf  — t          j        dg¦  «        }t          j        dgg¦  «        }t          j        dg¦  «        }|                     ¦   «         }dt           j        f}t	          |t
          t          |||| j        | j        ¬¦  «        }t          |ddg¬¦  «         t          ||¦  «         d S )Nró   rô   rõ   rö   r#   r®   )r;   rE   rB   ri   r
   rn   ro   r¬   r¸   r6   r   )r¯   rU   rp   Ú	b_eq_origrq   rt   r   s          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Ñ(Ô(Ð(Ð(Ð(r   c           
      ó”   — dg}dgg}dg}dgg}dg}d}t          ||||||| j        | j        ¬¦  «        }t          |ddg¬¦  «         d S )Nró   rô   g       @)ç      ð¿ç      $@rö   r   r®   )r
   r¬   r¸   r6   ©r¯   rU   rn   ro   rp   rq   rt   r   s           r   Útest_non_ndarray_argsz(LinprogCommonTests.test_non_ndarray_args´  sy   € ð ˆEˆØ�ˆwˆØˆuˆØ�ˆwˆØˆuˆØˆÝ�a˜˜t T¨4°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨°q°cÐ:Ñ:Ô:Ð:Ð:Ð:r   c                 óÆ   ‡ — t          j        ddg¦  «        }ddgddgddgg}g d¢}	 	 dˆ fd„	}ˆ fd„‰ j        D ¦   «         }d	|d
<   t          t          |||||¬¦  «         d S )Nr|   r¨   r   r   r   r©   c           
      ó@   •— t          | |||||‰j        |¬¦  «         d S ©Nrö   ©r
   r¬   )rU   rn   ro   rp   rq   rt   r¸   r¯   s          €r   Úfz2LinprogCommonTests.test_unknown_options.<locals>.fÇ  s7   ø€ å�A�t˜T 4¨¨vØœ;°ð9ñ 9ô 9ð 9ð 9ð 9r   c                 ó,   •— i | ]}|‰j         |         “ŒS r�   ©r¸   ©Ú.0Úkeyr¯   s     €r   ú
<dictcomp>z;LinprogCommonTests.test_unknown_options.<locals>.<dictcomp>Ì  ó"   ø€ Ð<Ð<Ð<¨ˆS�$”,˜sÔ#Ð<Ð<Ð<r   é*   Úspamr·   )NNNNNN)r;   rE   r¸   r   r   )r¯   rU   rn   ro   r  Úos   `     r   Útest_unknown_optionsz'LinprogCommonTests.test_unknown_optionsÁ  s¯   ø€ åŒH�b˜"�XÑÔˆØ�A�˜˜A˜  A Ð'ˆØˆzˆzˆà,0Ø.2ð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð
 =Ð<Ð<Ð<¨t¬|Ð<Ñ<Ô<ˆØˆˆ&‰	å•_ aØ˜T¨°að	9ñ 	9ô 	9ð 	9ð 	9ð 	9r   c           	      óB  — t          j        ddgddgddgg¦  «        }t          j        g d¢¦  «        }t          j        ddg¦  «         }dt           j        fgt          |¦  «        z  }dgt          |¦  «        z  }t           j                             t          ¦  «        5  t          ||||| j        |¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t           j         	                    |j
        dd	g¦  «         t           j         	                    |j        d
¦  «         d S )Nr8   r   r#   r   ©r   é   r  r   ©rU   rn   ro   rt   r¬   rÌ   çÍÌÌÌÌÌü?çffffff@çffffffÀ)r;   rE   ri   rÒ   Útestingr   r   r
   r¬   r   r2   r1   ©r¯   rn   ro   rU   rt   rÌ   r   s          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                 ó  ‡ — dˆ fd„	}t          t          |g d¢ddg¬¦  «         t          j                             ¦   «         5 }|                     t          d¦  «         t          t          |g d¢g d¢¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          |g d¢ddg¬¦  «         t          t          |d	d
gd	d
ggd	d
g¬¦  «         t          t          |d	d
gd	ggd	g¬¦  «         t          t          |d	d
gd	d
ggd	d
g¬¦  «         t          t          |d	d
gd	ggd	g¬¦  «         t          t          |d	d
gd	gd	¬¦  «         d‰ j        v r‰ j        d         rd S t          t          |d	d
gt          j        d¦  «        d	¬¦  «         d S )Nc           
      óJ   •— t          | |||||‰j        ‰j        ¬¦  «         d S r  ©r
   r¬   r¸   ©rU   rn   ro   rp   rq   rt   r¯   s         €r   r  z1LinprogCommonTests.test_invalid_inputs.<locals>.fç  ó9   ø€ Ý�A�t˜T 4¨¨vØœ;°´ð>ñ >ô >ð >ð >ð >r   ©r   r   r#   r�   ©r#   r'   ©rt   zCreating an ndarray from ragged)r�   r!  )r#   r'   é   ©r   r¨   r   r   )rn   ro   )rp   rq   Ú_sparse_presolve)r   r   r#   )rn   rq   ©NNNNN)	r¹   rº   r;   r  r   Úfilterr   r¸   r@   )r¯   r  Úsups   `  r   Útest_invalid_inputsz&LinprogCommonTests.test_invalid_inputså  s  ø€ ð	>ð 	>ð 	>ð 	>ð 	>ð 	>õ
 	•j ! Y Y Y¸ÀÐ7GÐHÑHÔHÐHÝŒZ×)Ò)Ñ+Ô+ð 	X¨sØ�JŠJÕ0Ð2SÑTÔTÐTÝ�* a¨¨¨Ð;VÐ;VÐ;VÐWÑWÔWÐWð	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xõ 	•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ÐNs   Á8BÂB
ÂB
c           	      ó¾  ‡ — dˆ fd„	}t           j                             d¦  «        }d}d}t          j                             ||d¦  «        }|                     |¦  «        }|                     |¦  «        }||                     |¦  «        z   }||                     |¦  «        z
  }	t          j        |	|f¦  «        }
||z  }‰ j        dv rYt          t          d‰ j        › d�¬	¦  «        5  t          ||||
‰ j        ‰ j        ¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S i ‰ j        ¥}‰ j        dv rd|d<   t          ||||
‰ j        |¬
¦  «        }|j        sJ ‚d S )Nc           
      óJ   •— t          | |||||‰j        ‰j        ¬¦  «         d S r  r  r  s         €r   r  z5LinprogCommonTests.test_sparse_constraints.<locals>.f  r  r   r   r…   é–   rh   >   rÅ   rÄ   zMethod 'z.' does not support sparse constraint matrices.r´   rÎ   >   rÃ   TrŽ   r&  )r;   r<   r=   r�   rŽ   rH   r‹   Úcolumn_stackr¬   r¹   rº   r
   r¸   r   )r¯   r  rK   r]   rJ   rp   Úx_validrU   rs   rr   rt   rq   r¸   r   s   `             r   Útest_sparse_constraintsz*LinprogCommonTests.test_sparse_constraints  s  ø€ ð	>ð 	>ð 	>ð 	>ð 	>ð 	>õ Œi×#Ò# AÑ&Ô&ˆØˆØˆÝŒ|× Ò   A sÑ+Ô+ˆØ—)’)˜A‘,”,ˆØ�IŠI�a‰LŒLˆØ�s—x’x ‘{”{Ñ"ˆØ�s—x’x ‘{”{Ñ"ˆÝ” " 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ÄDÄDc                 óî   — g d¢}g d¢g d¢g d¢g}g d¢}t           j                             d¦  «         d}t          |||| j        d|i¬	¦  «        }t          ||¦  «         t          |j        |¦  «         d S )
N©r'   rw   r#   r   r   r   ©r   r#  r#   r8   r   r   ©r#   ç      @rw   r   r8   r   ©rw   re   r'   r   r   r8   ©é¹   é›   iX  r   r#   r   rï   )r;   r<   rk   r
   r¬   r   r   rž   )r¯   rU   rS   rT   r   r   s         r   Útest_maxiterzLinprogCommonTests.test_maxiter"  s¡   € àÐÐˆàÐÐØ!Ð!Ð!Ø Ð Ð ð"ˆð ˆOˆOˆÝ
Œ	�Š�qÑÔÐØˆÝ�a˜a a°´Ø(¨'Ð2ð4ñ 4ô 4ˆå'¨¨WÑ5Ô5Ð5Ý�S”W˜gÑ&Ô&Ð&Ð&Ð&r   c                 ó¢  — | j                              dd¦  «        }t          dgd| j        | j         ¬¦  «        }t	          |dd¦  «         |rt          |j        d¦  «         t          g d¢g d¢| j        | j         ¬¦  «        }t	          |d	g d
¢¦  «         |rt          |j        d¦  «         t          ddgddg| j        | j         ¬¦  «        }t	          |dddg¦  «         |rt          |j        d¦  «         t          g d¢g d¢g d¢gddgg d¢| j        | j         ¬¦  «        }t	          |dg d¢¦  «         |rt          |j        d¦  «         d S d S )NÚpresolveTr   )r   r   ©rt   r¬   r¸   r   r   ))r#  r#  )r8   r8   )r#   r#   r  )r#  r8   r#   )r   r#   r   )r   r   r   ©r   r   r   ©r   r   r   r~   ))éûÿÿÿr#  )r   re   )ç      @r@  ©rp   rq   rt   r¬   r¸   é   )r   r~   r@  )r¸   Úgetr
   r¬   r6   r   rž   ©r¯   Údo_presolver   s      r   Útest_bounds_fixedz$LinprogCommonTests.test_bounds_fixed1  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   Ñ-Ô-Ð-Øð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c                 óà  — | j                              dd¦  «        }t          dgd| j        | j         ¬¦  «        }t	          |¦  «         |rt          |j        d¦  «         t          dgdg| j        | j         ¬¦  «        }t	          |¦  «         |rt          |j        d¦  «         t          g d¢g d¢| j        | j         ¬¦  «        }t	          |¦  «         |rt          |j        d¦  «         d S d S )	Nr;  Tr   r$  r<  r   r   ))r#  r   r�   r!  )r¸   rC  r
   r¬   r!   r   rž   rD  s      r   Útest_bounds_infeasiblez)LinprogCommonTests.test_bounds_infeasibleQ  s  € ð
 ”l×&Ò& z°4Ñ8Ô8ˆå�q�c '°$´+ÀtÄ|ÐTÑTÔTˆÝ˜3ÑÔÐØð 	%Ý˜œ !Ñ$Ô$Ð$å�q�c 7 )°D´KÈÌÐVÑVÔVˆÝ˜3ÑÔÐØð 	%Ý˜œ !Ñ$Ô$Ð$å�i�i�iÐ(@Ð(@Ð(@Ø!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐØð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c                 ó²  ‡ — ‰ j                              dd¦  «        }| o
‰ j        dk    }g d¢}dt          j        t          j        fdg}dt          j         t          j         fdg}|ræˆ fd„}t          j        t          ¦  «        5  t          j        t          ¦  «        5   |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        t          ¦  «        5   |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S t          ||‰ j        ‰ j         ¬	¦  «        }t          |¦  «         |rt          |j        d
¦  «         t          ||‰ j        ‰ j         ¬	¦  «        }t          |¦  «         |rt          |j        d
¦  «         d S d S )Nr;  TrÅ   r   r�   r!  c                 óB   •— t          | |‰j        ‰j        ¬¦  «        }|S )Nr<  r  )rU   rt   r   r¯   s      €r   Úgz6LinprogCommonTests.test_bounds_infeasible_2.<locals>.gz  s,   ø€ Ý˜a¨Ø%)¤[¸$¼,ðHñ Hô H�à�
r   r"  ©rU   rt   r¬   r¸   r   )r¸   rC  r¬   r;   ri   r»   r¼   ÚRuntimeWarningr	   Ú
IndexErrorr
   r!   r   rž   )r¯   rE  Úsimplex_without_presolverU   Úbounds_1Úbounds_2rK  r   s   `       r   Útest_bounds_infeasible_2z+LinprogCommonTests.test_bounds_infeasible_2h  s  ø€ ð ”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Ø!%¤°d´lðDñ Dô DˆCå˜sÑ#Ô#Ð#Øð )Ý˜SœW aÑ(Ô(Ð(Ý˜A hØ!%¤°d´lðDñ Dô DˆCå˜sÑ#Ô#Ð#Øð )Ý˜SœW aÑ(Ô(Ð(Ð(Ð(ð)ð )sl   ÂCÂ!B;Â/CÂ;B?	Â?CÃB?	ÃCÃCÃCÃ6EÄD*ÄEÄ*D.	Ä.EÄ1D.	Ä2EÅEÅ	Ec                 ód   — ddg}t          || j        | j        ¬¦  «        }t          |¦  «         d S )Nr8   r¨   rö   )r
   r¬   r¸   r$   )r¯   rU   r   s      r   Útest_empty_constraint_1z*LinprogCommonTests.test_empty_constraint_1’  s7   € Ø�ˆHˆÝ�a ¤°T´\ÐBÑBÔBˆÝ˜#ÑÔÐÐÐr   c                 ó  — g d¢}dt           j        ft           j         dfddg}t          ||| j        | j        ¬¦  «        }t          |¦  «         | j                             dd¦  «        rt          |j        d¦  «         d S d S )N)r8   r   r8   r   r   ©r8   r   r<  r;  T)	r;   ri   r
   r¬   r¸   r$   rC  r   rž   ©r¯   rU   rt   r   s       r   Útest_empty_constraint_2z*LinprogCommonTests.test_empty_constraint_2—  s•   € ØˆNˆNˆØ•b”f�+¥¤ ¨˜|¨W°gÐ>ˆÝ�a Ø!œ[°$´,ð@ñ @ô @ˆå˜#ÑÔÐàŒ<×Ò˜J¨Ñ-Ô-ð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c                 ó®   — g d¢}dt           j        ft           j         dfddg}t          ||| j        | j        ¬¦  «        }t          |g d¢d¬¦  «         d S )N)r   r8   r   r8   r   rV  r<  )r   r   r8   r   r¨   ©r4   r3   )r;   ri   r
   r¬   r¸   r6   rW  s       r   Útest_empty_constraint_3z*LinprogCommonTests.test_empty_constraint_3¡  sj   € ØˆNˆNˆØ•b”f�+¥¤ ¨˜|¨W°gÐ>ˆÝ�a Ø!œ[°$´,ð@ñ @ô @ˆå˜ } } }À"ÐEÑEÔEÐEÐEÐEr   c           
      óÞ   — t          j        ddg¦  «        dz  }ddgddgddgg}g d¢}t          |||t          t          t
          | j        | j        ¬¦  «        }t          |ddd	g¬
¦  «         d S )Nr#   r   r8   r   r   r©   rö   iîÿÿÿrz   r®   ©	r;   rE   r
   rp   rq   rt   r¬   r¸   r6   ©r¯   rU   rn   ro   r   s        r   Útest_inequality_constraintsz.LinprogCommonTests.test_inequality_constraints¨  sŽ   € õ ŒH�a˜�VÑÔ˜rÑ!ˆØ�A�Ø�A�Ø�A�ðˆð ˆzˆzˆÝ�a˜˜t¥T­4µØ!œ[°$´,ð@ñ @ô @ˆå˜¨¸¸A¸Ð?Ñ?Ô?Ð?Ð?Ð?r   c           
      ó´   — ddg}ddgddgddgg}g d¢}t          |||t          t          t          | j        | j        ¬¦  «        }t          |d	d
dg¬¦  «         d S )Nrz   r#   r   r8   r¨   r   )r   r8   r8   rö   r#  gUUUUUUå?gUUUUUUÕ?r®   ©r
   rp   rq   rt   r¬   r¸   r6   r^  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ÐEr   c           
      ó:  — ddg}d}t          |t          t          t          t          || j        | j        ¬¦  «        }t          |ddg¬¦  «         ddg}t          |t          t          t          t          || j        | j        ¬¦  «        }t          |ddg¬¦  «         d S )Nr   r   r�   rö   ©r4   )r
   rn   ro   rp   rq   r¬   r¸   r6   rW  s       r   Útest_bounds_simplez%LinprogCommonTests.test_bounds_simpleÁ  s¦   € Ø�ˆFˆØˆÝ�a��t¥T­4°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨¨1 vÐ.Ñ.Ô.Ð.à˜&Ð!ˆÝ�a��t¥T­4°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨¨1 vÐ.Ñ.Ô.Ð.Ð.Ð.r   c           
      ó  — t          j        dg¦  «        }t          j        dgg¦  «        }t          j        dg¦  «        }d}t          |t          t          |||| j        | j        ¬¦  «        }t          |ddg¬¦  «         d S )Nró   rô   )ró   Nrö   r#   r®   ©r;   rE   r
   rn   ro   r¬   r¸   r6   ©r¯   rU   rp   rq   rt   r   s         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Ð:Ñ:Ô:Ð:Ð:Ð:r   c           
      ó<  — t          j        d¦  «        }t          j        d¦  «        }t          j        g d¢¦  «        }dt           j        f}t          |t          t          |||| j        | j	        ¬¦  «        }t          ||t          j        |¦  «        ¬¦  «         d S )Nr#   r   rh   rö   rZ  ©r;   rŒ   ÚeyerE   ri   r
   rn   ro   r¬   r¸   r6   Úsumrh  s         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ÐFr   c           
      ó  — t          j        dg¦  «        }t          j        dgg¦  «        }t          j        dg¦  «        }d}t          |t          t          |||| j        | j        ¬¦  «        }t          |ddg¬¦  «         d S )Nró   rô   )Nrþ   rö   r#   r®   rg  rh  s         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Ð:Ñ:Ô:Ð:Ð:Ð:r   c           
      ó>  — t          j        d¦  «        }t          j        d¦  «        }t          j        g d¢¦  «        }t           j         df}t          |t          t          |||| j        | j	        ¬¦  «        }t          ||t          j        |¦  «        ¬¦  «         d S )Nr#   r   r'   rö   rZ  rk  rh  s         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ÐFr   c           
      óR  — t          j        d¦  «        }t          j        d¦  «        }t          j        g d¢¦  «        }t           j         t           j        f}t          |t          t          |||| j        | j	        ¬¦  «        }t          ||t          j        |¦  «        ¬¦  «         d S )Nr#   r   rö   rZ  rk  rh  s         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ÐFr   c           
      ó`  — t          j        ddg¦  «        dz  }t          j        ddgddggt           j        ¬¦  «        }ddg}t           j         t           j        f}dt           j        f}||f}t	          |||t
          t          || j        | j        ¬¦  «        }t          |d	d
dg¬¦  «         d S )Nr8   r'   r|   r   r   r9   rz   rö   g·mÛ¶mÛ&Àg’$I’$Iò¿g%I’$I’@r®   )
r;   rE   Úfloat64ri   r
   rp   rq   r¬   r¸   r6   )r¯   rU   rn   ro   rê   rë   rt   r   s           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ÐMr   c           
      ó¨   — ddg}ddgddgddgg}g d¢}dd	g}t          |||t          t          || j        | j        ¬
¦  «        }t          |¦  «         d S ©Nr€   r   r~   r¨   r   r   )é   r   r#   ©r   r   r‰   rö   )r
   rp   rq   r¬   r¸   r!   ©r¯   rU   rn   ro   rt   r   s         r   Ú test_bounds_equal_but_infeasiblez3LinprogCommonTests.test_bounds_equal_but_infeasible  sv   € Ø�ˆGˆØ�B�˜!˜Q˜ ! R Ð)ˆØˆzˆzˆØ˜)Ð$ˆÝ�a˜˜t¥T­4°Ø!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐÐÐr   c           
      ó¨   — ddg}ddgddgddgg}g d¢}dd	g}t          |t          t          |||| j        | j        ¬
¦  «        }t          |¦  «         d S ry  )r
   rn   ro   r¬   r¸   r!   rh  s         r   Ú!test_bounds_equal_but_infeasible2z4LinprogCommonTests.test_bounds_equal_but_infeasible2  sv   € Ø�ˆGˆØ�B�˜!˜Q˜ ! R Ð)ˆØˆzˆzˆØ˜)Ð$ˆÝ�a��t T¨4°Ø!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐÐÐr   c           
      óÊ   ‡ — ddg}ddgddgg}ddg}ddg}ˆ fd	„‰ j         D ¦   «         }d
|d<   t          |||t          t          |‰ j        |¬¦  «        }t          |¦  «         d S )Nr   r   gš™™™™™ñ?gš™™™™™@r'   rw   r�   r{  c                 ó,   •— i | ]}|‰j         |         “ŒS r�   r  r  s     €r   r  zDLinprogCommonTests.test_bounds_equal_no_presolve.<locals>.<dictcomp>$  r  r   Fr;  rö   )r¸   r
   rp   rq   r¬   r!   ©r¯   rU   rn   ro   rt   r  r   s   `      r   Útest_bounds_equal_no_presolvez0LinprogCommonTests.test_bounds_equal_no_presolve  s’   ø€ ð
 �ˆFˆØ�A�˜˜c˜
Ð#ˆØ�1ˆvˆØ˜&Ð!ˆà<Ð<Ð<Ð<¨t¬|Ð<Ñ<Ô<ˆØˆˆ*‰å�a˜˜t¥T­4°Ø!œ[°!ð5ñ 5ô 5ˆå˜3ÑÔÐÐÐr   c           
      ód  — d\  }}t           j                             d¦  «        }|                     |¦  «        }d|d<   |                     ||¦  «        }d|d d …df<   |                     |¦  «        }g d¢g}d}g d¢}	t	          ||||||	| j        | j        ¬¦  «        }
t          |
d¬	¦  «         d S )
Nr!  r   r   )r   r   r   r   r#   )©r}   re   r…  )r}   Nrˆ   rö   gyM�±åj#Àrã   )r;   r<   r=   rH   r
   r¬   r¸   r6   )r¯   r]   rJ   rK   rU   rp   rq   rn   ro   rt   r   s              r   Útest_zero_column_1z%LinprogCommonTests.test_zero_column_1+  sÊ   € Ø‰ˆˆ1ÝŒi×#Ò# AÑ&Ô&ˆØ�HŠH�Q‰KŒKˆØˆˆ!‰Ø�xŠx˜˜1‰~Œ~ˆØˆˆQˆQˆQ�ˆT‰
Ø�xŠx˜‰{Œ{ˆØ��ˆ~ˆØˆØBÐBÐBˆÝ�a˜˜t T¨4°Ø!œ[°$´,ð@ñ @ô @ˆå˜Ð)<Ð=Ñ=Ô=Ð=Ð=Ð=r   c           
      óh  — | j         dv rt          j        ¦   «          t          j                             d¦  «        }d\  }}|                     |¦  «        }d|d<   |                     ||¦  «        }d|d d …df<   |                     |¦  «        }|                     ||¦  «        }d|d d …df<   |                     |¦  «        }d}	t          ||||||	| j         | j        ¬¦  «        }
t          |
¦  «         | j         
                    dd	¦  «        r d
| j         vrt          |
j        d¦  «         d S d S d S )N>   rÍ   ú	highs-ipmr   r&   r8   r   rˆ   rö   r;  Tr¿   )r¬   r»   Úxfailr;   r<   r=   rH   r
   r¸   r$   rC  r   rž   )r¯   rK   r]   rJ   rU   rp   rq   rn   ro   rt   r   s              r   Útest_zero_column_2z%LinprogCommonTests.test_zero_column_2:  sB  € ØŒ;Ð3Ð3Ð3åŒL‰NŒNˆNåŒi×#Ò# AÑ&Ô&ˆØ‰ˆˆ1Ø�HŠH�Q‰KŒKˆØˆˆ!‰Ø�xŠx˜˜1‰~Œ~ˆØˆˆQˆQˆQ�ˆT‰
Ø�xŠx˜‰{Œ{ˆà�xŠx˜˜1‰~Œ~ˆØˆˆQˆQˆQ�ˆT‰
Ø�xŠx˜‰{Œ{ˆØˆÝ�a˜˜t T¨4°Ø!œ[°$´,ð@ñ @ô @ˆå˜#ÑÔÐàŒ<×Ò˜J¨Ñ-Ô-ð 	%°'ÀÄÐ2LÐ2Lõ ˜œ !Ñ$Ô$Ð$Ð$Ð$ð		%ð 	%Ð2LÐ2Lr   c           
      ó®   — g d¢}g d¢g d¢g d¢g}g d¢}t          |t          t          ||t          | j        | j        ¬¦  «        }t          |d¬¦  «         d S )Nr   ©r   r   r   ©r   r   r   ©r   r#   r   rö   r#   rã   ©r
   rn   ro   rt   r¬   r¸   r6   ©r¯   rU   rp   rq   r   s        r   Útest_zero_row_1z"LinprogCommonTests.test_zero_row_1U  sq   € ØˆIˆIˆØ�	�	˜9˜9˜9 i i iÐ0ˆØˆyˆyˆÝ�a��t T¨4µØ!œ[°$´,ð@ñ @ô @ˆå˜¨Ð+Ñ+Ô+Ð+Ð+Ð+r   c           
      ó®   — g d¢g d¢g d¢g}g d¢}g d¢}t          |||t          t          t          | j        | j        ¬¦  «        }t          |d¬¦  «         d S )NrŒ  r�  rŽ  r   rö   r   rã   ra  )r¯   rn   ro   rU   r   s        r   Útest_zero_row_2z"LinprogCommonTests.test_zero_row_2]  sq   € Ø�	�	˜9˜9˜9 i i iÐ0ˆØˆyˆyˆØˆIˆIˆÝ�a˜˜t¥T­4µØ!œ[°$´,ð@ñ @ô @ˆå˜¨Ð+Ñ+Ô+Ð+Ð+Ð+r   c           
      óÂ  — d\  }}t           j                             d¦  «        }|                     |¦  «        }|                     ||¦  «        }d|dd d …f<   |                     |¦  «        }t	          |t
          t          ||t          | j        | j	        ¬¦  «        }t          |¦  «         | j	                             dd¦  «        rt          |j        d¦  «         d S d S ©Nr&   iÒ  r   rö   r;  T)r;   r<   r=   rH   r
   rn   ro   rt   r¬   r¸   r!   rC  r   rž   )r¯   r]   rJ   rK   rU   rp   rq   r   s           r   Útest_zero_row_3z"LinprogCommonTests.test_zero_row_3e  sØ   € Ø‰ˆˆ1ÝŒi×#Ò# DÑ)Ô)ˆØ�HŠH�Q‰KŒKˆØ�xŠx˜˜1‰~Œ~ˆØˆˆQ���ˆT‰
Ø�xŠx˜‰{Œ{ˆÝ�a��t T¨4µØ!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐð Œ<×Ò˜J¨Ñ-Ô-ð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c           
      óÄ  — d\  }}t           j                             d¦  «        }|                     |¦  «        }|                     ||¦  «        }d|dd d …f<   |                     |¦  «         }t	          |||t
          t          t          | j        | j	        ¬¦  «        }t          |¦  «         | j	                             dd¦  «        rt          |j        d¦  «         d S d S r•  )r;   r<   r=   rH   r
   rp   rq   rt   r¬   r¸   r!   rC  r   rž   )r¯   r]   rJ   rK   rU   rn   ro   r   s           r   Útest_zero_row_4z"LinprogCommonTests.test_zero_row_4t  sÚ   € Ø‰ˆˆ1ÝŒi×#Ò# DÑ)Ô)ˆØ�HŠH�Q‰KŒKˆØ�xŠx˜˜1‰~Œ~ˆØˆˆQ���ˆT‰
Ø—’˜‘”ˆ|ˆÝ�a˜˜t¥T­4µØ!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐð Œ<×Ò˜J¨Ñ-Ô-ð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c           
      ó  — g d¢}g d¢g d¢g d¢g d¢g}g d¢}t          |t          t          ||t          | j        | j        ¬¦  «        }t          |¦  «         | j                             dd¦  «        rt          |j	        d	¦  «         d S d S )
N©r   r   r   r   ©r   r   r   r   ©r   r   r   r   ©r   r   r   r   )r   r   r   r'   rö   r;  Tr   )
r
   rn   ro   rt   r¬   r¸   r!   rC  r   rž   r�  s        r   Útest_singleton_row_eq_1z*LinprogCommonTests.test_singleton_row_eq_1ƒ  sª   € ØˆLˆLˆØ��˜l˜l˜l¨L¨L¨L¸,¸,¸,ÐGˆØˆ|ˆ|ˆÝ�a��t T¨4µØ!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐð Œ<×Ò˜J¨Ñ-Ô-ð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c           
      ó´   — g d¢}g d¢g d¢g d¢g d¢g}g d¢}t          |t          t          ||t          | j        | j        ¬¦  «        }t          |d¬¦  «         d S )	Nrš  r›  rœ  r�  )r   r   r   r'   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µØ!œ[°$´,ð@ñ @ô @ˆå˜¨Ð+Ñ+Ô+Ð+Ð+Ð+r   c           
      ó  — g d¢}g d¢g d¢g d¢g d¢g}g d¢}g d¢}t          |||t          t          || j        | j        ¬¦  «        }t          |¦  «         | j                             d	d
¦  «        rt          |j        d¦  «         d S d S )Nrš  r›  rœ  ©r8   r   r   r   r�  )r   r   r¨   r'   ©rˆ   r‰   r‰   r‰   rö   r;  Tr   ©	r
   rp   rq   r¬   r¸   r!   rC  r   rž   r|  s         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¨Ñ-Ô-ð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c           
      ó²   — g d¢}g d¢g d¢g d¢g d¢g}g d¢}g d¢}t          |||t          t          || j        | j        ¬¦  «        }t          |d	¬
¦  «         d S )Nrš  r›  rœ  r¢  r�  )r   r   ç      à¿r'   r£  rö   rh   rã   )r
   rp   rq   r¬   r¸   r6   r|  s         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°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨Ð-Ñ-Ô-Ð-Ð-Ð-r   c           
      óª   — ddg}ddgddgddgg}g d¢}t          |||t          t          t          | j        | j        ¬¦  «        }t          |¦  «         d S )Nr8   r   r   )r   r   r?  rö   )r
   rp   rq   rt   r¬   r¸   r!   r^  s        r   Útest_infeasiblez"LinprogCommonTests.test_infeasible­  sr   € à�ˆHˆØ�A�Ø�A�Ø�R�ðˆð ˆzˆzˆÝ�a˜˜t¥T­4µØ!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐÐÐr   c           
      óô   — dg}dgg}d}d}t          |||t          t          || j        | j        ¬¦  «        }t          |¦  «         | j                             dd¦  «        rt          |j        d¦  «         d S d S )	Nr   r   r'   )r#  rz   rö   r;  Tr   r¤  r|  s         r   Ú!test_infeasible_inequality_boundsz4LinprogCommonTests.test_infeasible_inequality_bounds¸  s”   € ØˆCˆØ�ˆuˆØˆØˆÝ�a˜˜t¥T­4°Ø!œ[°$´,ð@ñ @ô @ˆå˜3ÑÔÐð Œ<×Ò˜J¨Ñ-Ô-ð 	%Ý˜œ !Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r   c           
      óÎ   — t          j        ddg¦  «        dz  }ddgddgg}ddg}t          |||t          t          t
          | j        | j        ¬¦  «        }t          |¦  «         d S )Nr   r8   r¨   rö   )	r;   rE   r
   rp   rq   rt   r¬   r¸   r$   r^  s        r   Útest_unboundedz!LinprogCommonTests.test_unboundedÅ  sx   € åŒH�a˜�VÑÔ˜rÑ!ˆØ�Q�Ø�R�ðˆà�BˆxˆÝ�a˜˜t¥T­4µØ!œ[°$´,ð@ñ @ô @ˆå˜#ÑÔÐÐÐr   c                 óÖ   ‡ — dg}dg}ˆ fd„‰ j         D ¦   «         }d|d<   t          ||‰ j        |¬¦  «        }‰ j        dk    rt          |j        d¦  «         d S t          |¦  «         d S )	Nr   ©Nr   c                 ó,   •— i | ]}|‰j         |         “ŒS r�   r  r  s     €r   r  zQLinprogCommonTests.test_unbounded_below_no_presolve_corrected.<locals>.<dictcomp>Ó  r  r   Fr;  rL  rÄ   r#  )r¸   r
   r¬   r   r   r$   )r¯   rU   rt   r  r   s   `    r   Ú*test_unbounded_below_no_presolve_correctedz=LinprogCommonTests.test_unbounded_below_no_presolve_correctedÏ  s‘   ø€ ØˆCˆØ�ˆà<Ð<Ð<Ð<¨t¬|Ð<Ñ<Ô<ˆØˆˆ*‰å˜ &Ø!œ[Øð!ñ !ô !ˆð Œ;Ð+Ò+Ð+å˜œ QÑ'Ô'Ð'Ð'Ð'å˜cÑ"Ô"Ð"Ð"Ð"r   c           
      óô  — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }g d¢}t          |||t          t          || j        | j        ¬¦  «        }t          |¦  «         | j                             ¦   «          	                    d¦  «        sDt          |j        d	         t           j        ¦  «         t          |j        d
d…         d¦  «         d
S d
S )ú|
        Test whether presolve pathway for detecting unboundedness after
        constraint elimination is working.
        )r   r   r   r   r8   r8   ©r   r   r   r   r   r   ©r   r   r   r   r   r   )r   r   r   r   r   r8   ©r   r¨   r   )rˆ   rˆ   rˆ   rV  rV  r‰   rö   r¿   r8   Né$   ú$The problem is (trivially) unbounded©r;   rE   r
   rp   rq   r¬   r¸   r$   ÚlowerrÑ   r   r2   ri   r/   r|  s         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ð 	Ar   c           
      óö  — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }g d¢}t          |||t          t          || j        | j        ¬¦  «        }t          |¦  «         | j                             ¦   «          	                    d¦  «        sEt          |j        d	         t           j         ¦  «         t          |j        d
d…         d¦  «         d
S d
S )r´  )r   r   r   r   r8   r   rµ  r¶  )r   r   r   r   r   r   r·  )rˆ   rˆ   rˆ   rV  rV  )Nr   rö   r¿   r8   Nr¸  r¹  rº  r|  s         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ð 	Ar   c           
      óà   — t          j        g d¢¦  «        dz  }g d¢g d¢g d¢g}g d¢}t          |||t          t          t
          | j        | j        ¬¦  «        }t          |g d¢d	d
¬¦  «         d S )N)r…   re   r   r8   r=  )rf   r   r   )éÈ   rf   r   )r   r…   é'  rö   )r   r   rÁ  gñhãˆµøÔ>çH¯¼šò×z>)r4   r.   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ÐKr   c           
      ó¾  — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g¦  «        }g d¢}d}d„ | j                             ¦   «         D ¦   «         }||d<   t	          |||t
          t          t          | j        |¬	¦  «        }| j        d
k    r2| j         	                    d¦  «        st          ||d         ¦  «         d S t          |g d¢¬¦  «         d S )N)r}   é9   r{   g      8@)rh   g      ÀrÖ   r{   )rh   g      ø¿r§  r   r›  )r   r   r   r…   c                 ó   — i | ]\  }}||“Œ	S r�   r�   )r	  r
  Úvals      r   r  z8LinprogCommonTests.test_cyclic_bland.<locals>.<dictcomp>  s   € Ð;Ð;Ð;™(˜#˜sˆS�#Ð;Ð;Ð;r   r   rö   rÅ   Úbland)r   r   r   r   rd  )r;   rE   r¸   Úitemsr
   rp   rq   rt   r¬   rC  r   r6   )r¯   rU   rn   ro   r   r  r   s          r   Útest_cyclic_blandz$LinprogCommonTests.test_cyclic_bland  s  € åŒ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Ð8r   c                 ó  — d\  }}t           j                             d¦  «        }|                     |¦  «        }|                     ||¦  «        }|                     |¦  «        }d|dd d …f         z  |dd d …f<   |dxx         dz  cc<   t	          ¦   «         5 }|                     t          d¦  «         t          |t          t          ||t          | j        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «         d S )N)re   re   r   r   r¨   r8   úA_eq does not appear...rö   )r;   r<   r=   rH   r   r'  r   r
   rn   ro   rt   r¬   r¸   r!   )	r¯   r]   rJ   rK   rU   rp   rq   r(  r   s	            r   Ú$test_remove_redundancy_infeasibilityz7LinprogCommonTests.test_remove_redundancy_infeasibility,  sL  € ð ‰ˆˆ1ÝŒi×#Ò# AÑ&Ô&ˆØ�HŠH�Q‰KŒKˆØ�xŠx˜˜1‰~Œ~ˆØ�xŠx˜‰{Œ{ˆØ˜$˜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C1Ã1C5Ã8C5c           
      ó¢   — t          ¦   «         \  }}}}}}}t          |||||t          | j        | j        ¬¦  «        }t          |||¬¦  «         d S )Nrö   r®   )r„   r
   rt   r¬   r¸   r6   ©	r¯   rU   rn   ro   rp   rq   r‚   rƒ   r   s	            r   Útest_nontrivial_problemz*LinprogCommonTests.test_nontrivial_problem@  sf   € õ 5GÑ4HÔ4HÑ1ˆˆ4��t˜T 6¨6Ý�a˜˜t T¨4µØ!œ[°$´,ð@ñ @ô @ˆå˜¨¸6ÐBÑBÔBÐBÐBÐBr   c                 óœ  — t          dd¦  «        \  }}}t          ¦   «         5 }|                     t          d¦  «         |                     t          d¦  «         |                     t
          ¦  «         t          |||t          t          t          | j
        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         d S )Nrf   ú$Solving system with option 'sym_pos'úinvalid value encounteredrö   râ   rã   )rc   r   r'  r   rM  r   r
   rp   rq   rt   r¬   r¸   r6   )r¯   rn   ro   rU   r(  r   s         r   Útest_lpgen_problemz%LinprogCommonTests.test_lpgen_problemH  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   £BB0Â0B4Â7B4c                 óà  — g d¢}d\  }}|||d|dddd|ddg|dd|d|ddddddgdd||ddddddddgdddddd||dd|dgdddd|||d|dddgddddddd||dd|gddddddddd|||gg}g d¢}t          ¦   «         5 }|                     t          ¦  «         t          |t          t
          ||t          | j        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |ddd¬	¦  «         d S )
N)r   r'   r{   é   r'   r#   rw   r~   r   rB  é   é   rV  r   )r   é   iðÿÿÿé!   r   r   iÜÿÿÿrö   ió  ç�íµ ÷Æ°>rÂ  )r3   r.   r-   )
r   r'  r   r
   rn   ro   rt   r¬   r¸   r6   )r¯   rU   rJ   Úprp   rq   r(  r   s           r   Útest_network_flowz$LinprogCommonTests.test_network_flowU  s»  € ð 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   Á9ACÃCÃCc                 óR  — g d¢}ddgddgddgddgddgg}d\  }}||dddg|d||dgd||d|gddd||gg}g d¢}t          ¦   «         5 }t          r|                     t          ¦  «         |                     t          d	¦  «         |                     t
          d
¦  «         |                     t
          d¦  «         |                     t          ¦  «         t          |t          t          |||| j
        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         d S )N)r   r   r   r#   r   r   r'   r   r#   r#  rV  )r€   r   r   r'   úscipy.linalg.solve
Ill...rÌ  úSolving system with option...rö   rz  rã   )r   Úhas_umfpackr'  r   rM  r   r   r
   rn   ro   r¬   r¸   r6   )	r¯   rU   rt   rJ   rÜ  rp   rq   r(  r   s	            r   Ú"test_network_flow_limited_capacityz5LinprogCommonTests.test_network_flow_limited_capacityj  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ÄDc           
      ó¨   — g d¢}g d¢g d¢g}ddg}t          |||t          t          t          | j        | j        ¬¦  «        }t          |d¬¦  «         d S )	N)r¨   r|   r€   )r#   r   r   )r   r#  r#   re   rB  rö   iìÿÿÿrã   ra  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µØ!œ[°$´,ð@ñ @ô @ˆå˜¨Ð-Ñ-Ô-Ð-Ð-Ð-r   c           
      ó¸   — g d¢}g d¢g d¢g d¢g}g d¢}t          |t          t          ||t          | j        | j        ¬¦  «        }t          |dg d¢d	d
¬¦  «         d S )Nr1  r2  r3  r5  r6  rö   g     Øs@)g     �P@r   g     €1@r   g     øf@r   gTäqs*Ù>rÂ  )r3   r4   r.   r-   r�  r�  s        r   Útest_enzo_examplez$LinprogCommonTests.test_enzo_example”  s›   € ð ÐÐˆàÐÐØ!Ð!Ð!Ø Ð Ð ð"ˆð ˆˆˆÝ�a��t T¨4µØ!œ[°$´,ð@ñ @ô @ˆå˜¨Ø"@Ð"@Ð"@Ø!¨ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.r   c                 óB  — g d¢}g d¢g d¢g d¢g d¢g d¢g}g d¢}t          ¦   «         5 }|                     t          d¦  «         t          |t          t
          ||t          | j        | j        ¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d
g d¢¬¦  «         d S )N)r  g333333@gš™™™™™%@r  g333333Àgš™™™™™%À)r8   r8   r8   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r§  çš™™™™™Ù?ç333333Ó?ré  ré  rÌ  rö   gR¸…ëQü¿)ré  gš™™™™™É?ç        rê  rË   ré  r®   )
r   r'  r   r
   rn   ro   rt   r¬   r¸   r6   )r¯   rU   rp   rq   r(  r   s         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ð 	Bs   ¨AB Â BÂBc           
      óº  — d}t          j        |¦  «         }dt           j        z  t          j        d|dz   ¦  «        z  |dz   z  }t          j        t          j        |¦  «        dz
  t          j        |¦  «        f¦  «        }ddg}t          |t          t          ||t          | j        | j        ¬¦  «        }t          |dt          j        |¦  «        ¬¦  «         d S )Nrf   r   r   r   rö   r®   )r;   rŒ   Úpir>   rF   ÚcosÚsinr
   rn   ro   rt   r¬   r¸   r6   r@   )r¯   r]   rU   Útmprp   rq   r   s          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ÐBr   c           
      ó¤  — d}t          j        |¦  «         }dt           j        z  t          j        |¦  «        z  |dz   z  }t          j        |¦  «        dz
  }d|d<   t          j        |¦  «        }d|d<   t          j        ||f¦  «        }ddg}t          |t          t          ||t          | j        | j        ¬¦  «        }t          |¦  «         d S )Nrg   r   r   rê  r   rö   )r;   rŒ   rí  r>   rî  rï  rF   r
   rn   ro   rt   r¬   r¸   r$   )	r¯   r]   rU   rð  Úrow0Úrow1rp   rq   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ˆõ Œv�c‰{Œ{˜Q‰ˆØˆˆQ‰ÝŒv�c‰{Œ{ˆØˆˆQ‰ÝŒy˜$ ˜Ñ&Ô&ˆØ�1ˆvˆÝ�a��t T¨4µØ!œ[°$´,ð@ñ @ô @ˆå˜#ÑÔÐÐÐr   c           
      ó°  ‡ — d}t          j        |¦  «         }dt           j        z  t          j        |¦  «        z  |dz   z  }t          j        t          j        |¦  «        dz
  t          j        |¦  «        f¦  «        }ddg}ˆ fd„‰ j        D ¦   «         }d|d<   t          |t          t          ||t          ‰ j        |¬¦  «        }t          |¦  «         d S )Nrg   r   r   c                 ó,   •— i | ]}|‰j         |         “ŒS r�   r  r  s     €r   r  zMLinprogCommonTests.test_enzo_example_c_with_infeasibility.<locals>.<dictcomp>Ý  r  r   Fr;  rö   )r;   rŒ   rí  r>   rF   rî  rï  r¸   r
   rn   ro   rt   r¬   r!   )r¯   r]   rU   rð  rp   rq   r  r   s   `       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ÑÔÐÐÐr   c           
      óš  — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢g d	¢g¦  «        }t          j        d
d
g¦  «        }t          |||||t          | j        | j        ¬¦  «        }t          |d
t          j        |¦  «        d¬¦  «         d S )N)gš™™™™™¹¿gìQ¸…ë±¿çü©ñÒMbp?rú  rú  rú  )ró   r   r   r   r   r   )rý   r   r   r   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      4@)ró   r   r8   r   r8   r   )r   rý   r8   r   r8   r   r   rö   g�íµ ÷ÆÀ>)r3   r4   r.   )r;   rE   r
   rt   r¬   r¸   r6   Ú
zeros_like)r¯   rU   rn   ro   rp   rq   r   s          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Ø!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r   c           
      óÈ  — t          d¦  «        \  }}}}}}t          ||||||| j        | j        ¬¦  «        }t	          |j        ¦  «         t	          |j        ¦  «         t	          |j         ¦  «         d| j        vrt	          |j        dk    ¦  «         t          ||j
        z  |j        ¦  «         t          |||j
        z  z
  |j        d¬¦  «         t          |||j
        z  z
  |j        d¬¦  «         dD ]h}||                     ¦   «         v rPt          ||         d         t           j        ¦  «        sJ ‚t          ||         d	         t           j        ¦  «        sJ ‚Œid S )
Nr   ©rn   ro   rp   rq   rt   r¬   r¸   r¿   z%Optimization terminated successfully.g•dyáý¥=©r.   )ÚeqlinÚineqlinr»  ÚupperÚ	marginalsÚresidual)ru   r
   r¬   r¸   r   r   rž   r   r/   r   r2   r1   r    rŸ   Úkeysr¢   r;   Úndarray)	r¯   rU   rn   ro   rp   rq   rt   r   r
  s	            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ð 	Dr   c           /      ó°  — g d¢}d}d}d}t          j        g d¢ddd|dd	dd
ddd
dd
ddddddgddd|ddd	d
d
dd
d
dddddddgg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢ddd
d
dddd
||ddd|dddddgdddddd
d
dddd
||d|ddddgdd
dd ddd|d
d
ddddd|dddgddddd
dd
ddd|d
|ddd|ddgdd
d
d ddd||d
ddddddd|dgddddd
d
dddd||d
ddddd|gg¦  «        }t          j        g d!¢¦  «        }t          j        g d"¢¦  «        }t          ¦   «         5 }|                     t          d#¦  «         |                     t
          d$¦  «         |                     t          ¦  «         t          |||t          t          || j
        | j        ¬%¦  «        }	d d d ¦  «         n# 1 swxY w Y   t          |	d&¬'¦  «         d S )(N)r‰   ©r   r…   r	  r	  r	  r	  r	  ©r   é„  r
  r
  r
  r
  r
  r‰   r‰   r‰   r‰   r‰   r‰   gÇqÇq¼?ç     ˆÃÀgÍÌÌÌÌÌÀ)r   gìQ¸…ëÀr   r   r|   r   r   r   r8   r8   r   r8   r8   r   r   r   r   r   r   r   r   g333333Àr|   r8   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   g×£p=
×ÿ?r   gffffffþ?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ö   g¯^¥¨ZÀrã   )r;   rE   r   r'  r   rM  r   r
   rp   rq   r¬   r¸   r6   )
r¯   rt   r  rK  Úhrn   ro   rU   r(  r   s
             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ð7Jñ 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           
      ó€  — t          j        g d¢¦  «        }t          j        g d¢g d¢g¦  «        }t          j        ddg¦  «        }t          j        g d¢g¦  «         }t          j        dg¦  «         }d}t          ||||||| j        | j        ¬	¦  «        }t          |d
t          j        g d¢¦  «        ¬¦  «         d S )Nr�  )ró   rê  rê  )ç     @�Àrê  r  g      @r  )rê  g    €„.Ag     Ò.Ag    ÐcArˆ   rö   gfffffæ-@)r#  gÍÌÌÌÌÌ@r#  r®   ©r;   rE   r
   r¬   r¸   r6   )r¯   rU   rp   rq   rn   ro   rt   r   s           r   Útest_bug_6139z LinprogCommonTests.test_bug_6139C  sã   € õ ŒH�Y�Y�YÑÔˆÝŒx˜˜˜Ð'<Ð'<Ð'<Ð=Ñ>Ô>ˆÝŒx˜¨Ð9Ñ:Ô:ˆÝ”Ð2Ð2Ð2Ð3Ñ4Ô4Ð4ˆÝ”˜)˜Ñ%Ô%Ð%ˆØˆå�a˜˜t T¨4°Ø!œ[°$´,ð@ñ @ô @ˆõ 	˜¨Ý"$¤(¨<¨<¨<Ñ"8Ô"8ð	:ñ 	:ô 	:ð 	:ð 	:ð 	:r   c                 óÀ  — t          j        g d¢g¦  «        }t          j        dg¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d	¢g d
¢g¦  «        j        }t          j        g d¢¦  «        }t          ¦   «         5 }t          r|                     t          ¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          ¦  «         t          ||||||| j        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d}	t          j        g d¢¦  «        }
t          ||	|
¬¦  «         d}t          |d d …df         |z
  |j        ¦  «         t          |j        |d d …df         |z   ¦  «         d S )N)
r   r   r   gÃõ(\�Âí?r   çÍÌÌÌÌÌä?r   r   g�Âõ(\�ê?r   g¯%äƒžÍî?)
r   r   r   çáz®Gáò?r   r   r   gš™™™™™É¿r   g)\�Âõ(Ì¿)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   g…ëQ¸…Û?r   r   r   r   r   r   )
r   g…ëQ¸…ó¿ç      Ð¿r   r   r   g{®Gáz Àr   r   gìQ¸…ëõ?)
r   r   r   r   r   r   r   r  r   r   )g®Gáz®ã?r   gj¼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¸…ë?r  rh   g)\�Âõ(ü?gÃõ(\�ÂÅ?ç{®GázÔ?g333333Ã¿)
g=
×£p=ú¿gffffffæ?r  gö(\�Âõð¿g�Âõ(\�ò¿g¤p=
×£Ð?g
×£p=
@g{®Gázø?g…ëQ¸å?gìQ¸…ëÑ?z%Solving system with option 'cholesky'rÒ  rÓ  rö   g‰ãVó¿)
r  r  r  rè  r  rh   r  r  r  r  r®   rÛ  r   r   )r;   rE   rj   r   rá  r'  r   r   rM  r   r
   r¬   r¸   r6   r   r2   )r¯   rp   rq   rn   ro   rt   rU   r(  r   r3   r4   r.   s               r   Útest_bug_6690z LinprogCommonTests.test_bug_6690Y  s  € õ
 Œ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  — t          d¦  «        \  }}}}}t          ¦   «         5 }|                     t          d¦  «         |                     t          d¦  «         |                     t
          ¦  «         t          |t          t          ||t          | j
        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d}t          ||¬¦  «         t          |                     |j        ¦  «        |¦  «         t!          t#          j        |j        j        ¦  «        dz
  |j        ¦  «         d S )Nr#   rÌ  rÓ  rö   ç-£ÒU°û?rã   r‡   )rV   r   r'  r   rM  r   r
   rn   ro   rt   r¬   r¸   r6   r   Údotr2   r   r;   r@   rY   )r¯   rp   rq   rU   Ú_r(  r   r3   s           r   Útest_bug_7044z LinprogCommonTests.test_bug_7044…  sQ  € õ
 +¨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   ¤BB1Â1B5Â8B5c                 óÖ  — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢g¦  «        }t          j        dgg¦  «        }dgdz  }t          ||||||| j        | j        ¬¦  «        }t          |dd¬ ¦  «         d S )!N)	r8   r   r   r   r   r   r   r   r   )	ró   g      †Àg     xŒ@g     8�Àg     X�Àg      ŒÀg     à}@g      TÀg     PrÀ)	ró   g     °�@g      E@g     H�@g      m@g     ˜‹@g     €x@g     hŒÀg     €L@)	ró   g      jÀg     ð‹Àg     Ø€@g     t@g      €@g     àŒÀg     p�@g     €K@)	ró   g     ÈŠ@g     ØŠÀg     ÀT@g     à|@g     �pÀg     XŽÀg     Ð‰@g      ~@)	ró   g      s@ç     €zÀg      n@r%  g     @h@g     °{Àg      ZÀg     ÐzÀ)	ró   g     à€@g     8…@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ˆ   r{   rö   ghèŸàb$[@rÛ  ©r3   r.   r  rÿ   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°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨¸$Ð?Ñ?Ô?Ð?Ð?Ð?r   c                 óŒ  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        |j        d         ¦  «        }t          j        |j        d         ¦  «         }dg|j        d         z  }t          ¦   «         5 }|                     t          d¦  «         |                     t          ¦  «         t          |||t          t          || j        | j        ¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   | j                             d
d¦  «        dk     r| j        dk    rt          |¦  «         d S t!          |dd¬¦  «         d S )N)éºX  ið  iD4  ç     3¥Ài¤ûÿÿ)é†ìÿÿi¼ûÿÿi†ÿÿç     úÐ@i¬  )r,  r   r   r+  r   )r*  r   r   r-  r   r   r   rÉ   rÓ  rö   Útolg•Ö&è.>ç»½×Ùß|Û=rÅ   gê¦Ëë‡ ÀrÛ  r'  )r;   rE   r@   rI   rŒ   r   r'  rM  r   r
   rp   rq   r¬   r¸   rC  r(   r6   )r¯   rn   ro   rU   rt   r(  r   s          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Ã3C0c                 óT  — t          j        g d¢¦  «        }t          j        d¦  «         }t          j        dgdgdgdgdgdgdgg¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }t          j        d	gd
gd
gd
gd
gg¦  «        }t          ¦   «         5 }t          r|                     t          ¦  «         |                     t          d¦  «         t          |||||t          | j
        | j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         d S )N)r   r   r   r   r   r   r   r~   r¨   )r   r   r   r   r   r   r   )ré  gÍÌÌÌÌÌô?gÍÌÌÌÌÌì?r   r   r   r8   )ré  r   r   r   r   r   gUUUUUUå¿)r   r  r   r   r   r   ç±¿)r   r   ré  r   r   r   r2  r…   r   rÌ  rö   gŽ?ªªªªE@rã   )r;   rE   Úidentityr   rá  r'  r   r   r
   rt   r¬   r¸   r6   ©r¯   rU   rn   ro   rp   rq   r(  r   s           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ÄDc                 ó  — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          |||| j        | j        ¬¦  «        }t          |g d	¢¬
¦  «         d S )N)r~   r   r€   ç      ø?r7  )r'   ç      @r7  ró   ç      À)r   rÖ   r¨   r4  rh   )r#   r§  r'   g      )Àry   )r8   g      @r   r9  r¨   )r8  r   g      Àr8   g      #@)r   r   r   r   r   )rn   ro   r¸   r¬   )r   r   rÙ  gUUUUUU@gUUUUUU#@rd  )r;   rE   r
   r¸   r¬   r6   r^  s        r   Útest_bug_8561z LinprogCommonTests.test_bug_8561ï  sµ   € õ
 ŒHÐ)Ð)Ð)Ñ*Ô*ˆÝŒxØ$Ð$Ð$Ø#Ð#Ð#Ø#Ð#Ð#Ø"Ð"Ð"Ø#Ð#Ð#ð%ñ &ô &ˆõ Œx˜˜˜Ñ(Ô(ˆÝ�a˜d¨°t´|Ø!œ[ð*ñ *ô *ˆå˜Ð'=Ð'=Ð'=Ð>Ñ>Ô>Ð>Ð>Ð>r   c                 óˆ  — g d¢}g d¢g d¢g d¢g d¢g}g d¢}g d¢}d}t          ¦   «         5 }t          r|                     t          ¦  «         |                     t          d	¦  «         |                     t
          ¦  «         t          |||t          t          || j	        | j
        ¬
¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     g d¢¦  «         |                     d¦  «         d|d<   t          ¦   «         5 }t          r|                     t          ¦  «         |                     t          d	¦  «         |                     t
          ¦  «         t          |||t          t          || j	        | j
        ¬
¦  «        }d d d ¦  «         n# 1 swxY w Y   d}	t          |||	¬¦  «         t          |||	¬¦  «         d S )N)r}   re   rz   r#   )rw   r   r€   rz   )r   rw   r'   rx   )r€   r'   rw   r€   )r#   r|   r|   r}   )r{   é÷ÿÿÿr<  r€   )r‰   r‰   r‰   r‰   g      B@rÓ  rö   )r   r   r8   r   r   rˆ   r   r‡   )r3   r-   )r   rá  r'  r   rM  r   r
   rp   rq   r¬   r¸   rC   r6   )
r¯   rU   rn   ro   rt   r3   r(  Ú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%   «BB9Â9B=Ã B=ÄBFÆFÆFc           
      ó¤   — ddg}ddgg}dg}ddg}t          |t          t          |||| j        | j        ¬¦  «        }t          |dd	gd
¬¦  «         d S )Nr   r#  r   ry   rx   r‰   rˆ   rö   gÛ¶mÛ¶më?gI’$I’$@rZ  )r
   rn   ro   r¬   r¸   r6   rh  s         r   Útest_bug_8663z LinprogCommonTests.test_bug_8663$  st   € ð �ˆFˆØ�B�ˆyˆØˆtˆØ˜\Ð*ˆÝ�a��t T¨4°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨¨4 y¸fÐEÑEÔEÐEÐEÐEr   c                 óX  — dg}dgdgg}ddg}dgdgdgg}g d¢}t          ¦   «         5 }|                     t          ¦  «         |                     t          d¦  «         t	          |||||t
          | j        | j        ¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «         d S )
Nr'   r   r#  r   r   r{   ©r#   r   re   rà  rö   )	r   r'  rM  r   r
   rt   r¬   r¸   r!   r4  s           r   Útest_bug_8664z LinprogCommonTests.test_bug_8664/  s  € ð ˆ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   ¨ABÂBÂBc           
      óL  — t          j        g d¢¦  «        }t          j        g d¢g d¢g¦  «        }t          j        ddg¦  «        }g d¢}t          |||t          t          || 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.
        )r   r   r   r   r8   )r   r   r   r   r   )r   r   r   r   r   r   r¨   )rˆ   rˆ   rˆ   rV  rV  rö   rã   N)r;   rE   r
   rp   rq   r¬   r¸   r6   r   r2   r1   r|  s         r   Útest_bug_8973z LinprogCommonTests.test_bug_8973?  s³   € õ ŒHÐ%Ð%Ð%Ñ&Ô&ˆÝŒx˜˜˜¨/¨/¨/Ð:Ñ;Ô;ˆÝŒx˜˜B˜Ñ Ô ˆØMÐMÐMˆÝ�a˜˜t¥T­4°Ø!œ[°$´,ð@ñ @ô @ˆõ 	˜¨Ð,Ñ,Ô,Ð,å�Q˜œ‘Y ¤Ñ(Ô(Ð(Ð(Ð(r   c           
      ó  — t          j        d¦  «        }t          j        dgg¦  «        }t          j        dg¦  «        }d}t          |||t          t
          || j        | j        ¬¦  «        }t          |dgd¬¦  «         dS )z½
        Additional test for:
        https://github.com/scipy/scipy/issues/8973
        suggested in
        https://github.com/scipy/scipy/pull/8985
        review by @antonior92
        r   r¨   rˆ   rö   r   rZ  N)	r;   r@   rE   r
   rp   rq   r¬   r¸   r6   r|  s         r   Útest_bug_8973_2z"LinprogCommonTests.test_bug_8973_2P  s   € õ ŒH�Q‰KŒKˆÝŒx˜!˜˜‰ŒˆÝŒx˜˜‰~Œ~ˆØˆÝ�a˜˜t¥T­4°Ø!œ[°$´,ð@ñ @ô @ˆå˜¨ t¸Ð;Ñ;Ô;Ð;Ð;Ð;r   c           
      ó`  — t          j        d¦  «        }t          j        dgg¦  «        }t          j        dg¦  «        }d}ddg}ddgddgg}ddg}dd	g}d
di}|                     | j        ¦  «         t          |||t          t          || j        |¬¦  «        }t          |ddgd¬¦  «         dS )zg
        Test for linprog docstring problem
        'disp'=True caused revised simplex failure
        r   r¨   rˆ   r8   r'   r|   r   rz   rè   rà   Trö   re   ré   rZ  N)
r;   r@   rE   Úupdater¸   r
   rp   rq   r¬   r6   r‚  s          r   Útest_bug_10124z!LinprogCommonTests.test_bug_10124`  sÇ   € õ
 Œ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ÐAr   c                 óÞ  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        dd	t          j        d
¦  «        fd¬¦  «        }t	          ¦   «         5 }|                     t          d¦  «         t          |t          t          ||t          | j        | j        ¬¦  «        }ddd¦  «         n# 1 swxY w Y   t          |g d¢d¬¦  «         dS )zq
        Test for redundancy removal tolerance issue
        https://github.com/scipy/scipy/issues/10349
        )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )éÝ   éÒ   re   é�   éÆ   éf   r   r   r'   N©ÚaxisrÌ  rö   )é�   é\   r  rP  r   re   rU  rZ  )r;   rE   Úconcatenater@   r   r'  r   r
   rn   ro   rt   r¬   r¸   r6   )r¯   rp   rq   rU   r(  r   s         r   Útest_bug_10349z!LinprogCommonTests.test_bug_10349s  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-13846©Úreasonc                 ó  — g d¢}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g
}g d¢}i }| j                              d¦  «        sddi}|                     | j        ¦  «         t	          ¦   «         5 }|                     t          d¦  «         t          r|                     t          ¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         t          |t          t          ||t          | j         |¬¦  «        }ddd¦  «         n# 1 swxY w Y   t          |j        d¦  «         dS )zA
        Test that autoscale fixes poorly-scaled problem
        )ç       Àr&  r\  r&  r\  r&  r&  r&  r&  r&  r&  r&  r&  )ró   ró   rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  )rê  rê  ró   ró   rê  rê  rê  rê  rê  rê  rê  rê  rê  )rê  rê  rê  rê  ró   ró   rê  rê  rê  rê  rê  rê  rê  )ró   rê  ró   rê  ró   rê  rý   rê  rê  rê  rê  rê  rê  )ró   rê  ró   rê  ró   rê  rê  ró   rê  rê  rê  rê  rê  )ró   rê  rê  rê  rê  rê  rê  rê  ró   rê  rê  rê  rê  )ró   rê  rê  rê  rê  rê  rê  rê  rê  ró   rê  rê  rê  )ró   rê  ró   rê  ró   rê  rê  rê  rê  rê  ró   rê  rê  )rê  rê  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ß  zdivide by zero encountered...zoverflow encountered...zinvalid value encountered...úIll-conditioned matrix...rö   Nlýÿÿÿàÿ )r¬   rÑ   rJ  r¸   r   r'  r   rá  r   rM  r   r
   rn   ro   rt   r   r1   )r¯   rU   rp   rq   r  r(  r   s          r   Útest_bug_10466z!LinprogCommonTests.test_bug_10466†  s÷  € ð 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Å3E0N)WÚ__name__Ú
__module__Ú__qualname__Ú__doc__rÞ   ræ   rì   rñ   rø   rû   r   r»   ÚmarkÚthread_unsafer  r  r)  r/  r9  rF  rH  rR  rT  rX  r[  r_  rb  re  ri  rn  rp  rr  rt  rw  r}  r  rƒ  r†  rŠ  r‘  r“  r–  r˜  rž  r   r¥  r¨  rª  r¬  r®  r²  r¼  r¾  rÃ  rÊ  rÍ  rÐ  rÔ  rÝ  râ  rä  ræ  rë  rñ  rõ  rø  rü  r  r  r  r  r#  r(  r0  r5  r:  r?  rA  rD  rF  rH  rK  rW  ÚskipifÚsysÚplatformr`  r�   r   r   rÚ   rÚ   n  sW  € € € € € ðð ð$ð $ð $ð8ð 8ð 8ð	.ð 	.ð 	.ð@ð @ð @ð)ð )ð )ð)ð )ð )ð;ð ;ð ;ð „[Ôð9ð 9ñ Ôð9ð  „[Ôð2ð 2ñ Ôð2ð$Oð Oð Oð8ð ð ðB'ð 'ð 'ð%ð %ð %ð@%ð %ð %ð. „[Ôð')ð ')ñ Ôð')ðRð ð ð
%ð %ð %ð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>ð >ð >ð$'@ð '@ð '@ðRMð Mð Mð.;ð ;ð ;ð0?ð ?ð ?ð""Bð "Bð "BðH	Fð 	Fð 	Fð ð  ð  ð )ð )ð )ð"<ð <ð <ð Bð Bð Bð&Rð Rð Rð& „[×Ò˜œ¨Ò0ð!/ð ñ 1ô 1ð&.ð &.ñ1ô 1ð&.ð &.ð &.r   rÚ   zignore::DeprecationWarningc                   ó   — e Zd ZdZdS )ÚLinprogSimplexTestsrÅ   N©ra  rb  rc  r¬   r�   r   r   rk  rk  ·  s   € € € € € à€F€F€Fr   rk  c                   ó   — e Zd ZdZd„ ZdS )ÚLinprogIPTestsrÃ   c                 ó.   — t          j        d¦  «         d S )Nz*Test is failing, but solver is deprecated.©r»   ÚskiprÝ   s    r   r`  zLinprogIPTests.test_bug_10466À  s   € ÝŒÐ@ÑAÔAÐAÐAÐAr   N)ra  rb  rc  r¬   r`  r�   r   r   rn  rn  ¼  s-   € € € € € à€FðBð Bð Bð Bð Br   rn  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚLinprogRSTestsrÄ   c                 ó.   — t          j        d¦  «         d S ©Nz Intermittent failure acceptable.rp  rÝ   s    r   r  zLinprogRSTests.test_bug_5400Ø  ó   € ÝŒÐ6Ñ7Ô7Ð7Ð7Ð7r   c                 ó.   — t          j        d¦  «         d S ru  rp  rÝ   s    r   r?  zLinprogRSTests.test_bug_8662Û  rv  r   c                 ó.   — t          j        d¦  «         d S ru  rp  rÝ   s    r   rÝ  z LinprogRSTests.test_network_flowÞ  rv  r   N)ra  rb  rc  r¬   r  r?  rÝ  r�   r   r   rs  rs  Ä  sF   € € € € € à€Fð$8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð 8ð 8r   rs  c                   óP  — e Zd Zd„ Zej        j        ej                             dddiddiddiddiddid	did
diddig¦  «        d„ ¦   «         ¦   «         Zd„ Z	ej         
                    d¦  «        d„ ¦   «         Zd„ Zd„ Zej                             d¬¦  «        d„ ¦   «         ZdS )ÚLinprogHiGHSTestsc           	      óø   — d„ }t          j        ddg¦  «        }ddgddgddgg}g d¢}t          t          t          ||||| j        ¬¦  «         t	          |||| j        ¬	¦  «        }t          |d
ddg¬¦  «         d S )Nc                 ó   — d S rÜ   r�   r    s    r   r§   z+LinprogHiGHSTests.test_callback.<locals>.cbå  s   € Ø�4r   r|   r¨   r   r   r   r©   rª   r³   r­   rz   r®   )r;   rE   r¹   ÚNotImplementedErrorr
   r¬   r6   )r¯   r§   rU   rn   ro   r   s         r   rÞ   zLinprogHiGHSTests.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ÐAr   r¸   r   r8   rà   r;  rÊ   Údual_feasibility_toleranceÚprimal_feasibility_toleranceÚipm_optimality_toleranceÚ!simplex_dual_edge_weight_strategyÚekkic                 ót   ‡ — ˆ fd„}|                      ‰ j        ¦  «         t          t          ||¬¦  «         d S )Nc                 ó6   •— t          d‰j        | ¬¦  «         d S )Nr   rö   r  )r¸   r¯   s    €r   r  z7LinprogHiGHSTests.test_invalid_option_values.<locals>.fû  s    ø€ Ý�A˜dœk°7Ð;Ñ;Ô;Ð;Ð;Ð;r   r  )rJ  r¸   r   r   )r¯   r¸   r  s   `  r   Útest_invalid_option_valuesz,LinprogHiGHSTests.test_invalid_option_valuesï  sK   ø€ ð	<ð 	<ð 	<ð 	<ð 	<à�Š�t”|Ñ$Ô$Ð$Ý•_ a°Ð9Ñ9Ô9Ð9Ð9Ð9r   c                 ó¶   — t          d¦  «        \  }}}}}d}t          ||||| j        | j        ¬¦  «        }t	          |j        dk    | j        dk    ¦  «         d S )Nr'   rÉ   rA  r   rˆ  )rV   r
   r¬   r¸   r   Úcrossover_nit)r¯   rp   rq   rU   r"  rt   r   s          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ÐHr   re   c           
      ó”  ‡ ‡
‡‡‡‡‡‡‡— t          d¬¦  «        \  ŠŠŠŠ
ŠŠt          ‰‰‰‰
‰‰‰ j        ‰ j        ¬¦  «        }‰j        \  ŠŠˆ
ˆˆˆˆˆ fd„}t          |‰d|j        ¬¦  «        }t          |j        j	        |¦  «         ˆ
ˆˆˆˆˆ fd„}t          |‰d|j        ¬¦  «        }t          |j
        j	        |¦  «         ˆ
ˆˆˆˆˆ ˆfd„}t          j        d	¬
¦  «        5  t          |‰d|j        ¬¦  «        }d|t          j        ‰¦  «         <   d d d ¦  «         n# 1 swxY w Y   t          |j        j	        |¦  «         ˆ
ˆˆˆˆˆˆ fd„}t          j        d	¬
¦  «        5  t          |‰d|j        ¬¦  «        }	d|	t          j        ‰¦  «         <   d d d ¦  «         n# 1 swxY w Y   t          |j        j	        |	¦  «         d S )Nr   ©rk   rþ  c           	      óD   •— t          ‰‰| ‰‰‰‰j        ¬¦  «        j        S ©NrÀ   ©r
   r¬   r1   )r2   rp   rn   rq   rt   rU   r¯   s    €€€€€€r   Úf_bubz/LinprogHiGHSTests.test_marginals.<locals>.f_bub  s.   ø€ Ý˜1˜d A t¨T°6Ø"&¤+ð/ñ /ô /Ü/2ð3r   z3-point)r¬   Úf0c           	      óD   •— t          ‰‰‰‰| ‰‰j        ¬¦  «        j        S rŒ  r�  )r2   rp   rn   ro   rt   rU   r¯   s    €€€€€€r   Úf_beqz/LinprogHiGHSTests.test_marginals.<locals>.f_beq  s.   ø€ Ý˜1˜d D¨$°°6Ø"&¤+ð/ñ /ô /Ü/2ð3r   c           	      óz   •— t          j        | ‰g¦  «        j        }t          ‰‰‰‰‰|‰j        ¬¦  «        j        S rŒ  ©r;   rE   rj   r
   r¬   r1   )	r2   rt   rp   rn   rq   ro   rU   r¯   rs   s	     €€€€€€€r   Úf_lbz.LinprogHiGHSTests.test_marginals.<locals>.f_lb"  sD   ø€ Ý”X˜q "˜gÑ&Ô&Ô(ˆFÝ˜1˜d D¨$°°fØ"&¤+ð/ñ /ô /Ü/2ð3r   Úignore)Úinvalidc           	      óz   •— t          j        ‰| g¦  «        j        }t          ‰‰‰‰‰|‰j        ¬¦  «        j        S rŒ  r“  )	r2   rt   rp   rn   rq   ro   rU   rr   r¯   s	     €€€€€€€r   Úf_ubz.LinprogHiGHSTests.test_marginals.<locals>.f_ub/  sD   ø€ Ý”X˜r 1˜gÑ&Ô&Ô(ˆFÝ˜1˜d D¨$°°fØ"&¤+ð/ñ /ô /Ü/2ð3r   )ru   r
   r¬   r¸   rj   r   r1   r   r  r  r   r;   ÚerrstateÚisfiniter»  r  )r¯   r   rŽ  Údfdbubr‘  Údfdbeqr”  Údfdlbr˜  Údfdubrp   rn   rq   ro   rt   rU   rr   rs   s   `         @@@@@@@@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           
      ó(  — t          d¬¦  «        \  }}}}}}t          ||||||| j        | j        ¬¦  «        }| |j        |j        j        z  z   |j        |j        j        z  z   |j        j        z   |j	        j        z   }t          |dd¬¦  «         d S )Nr  rŠ  rþ  r   çê-�™—q=rÿ  )ru   r
   r¬   r¸   rj   r  r  r   r  r»  r   )	r¯   rU   rn   ro   rp   rq   rt   r   Ú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Ð-Ñ-Ô-Ð-Ð-Ð-r   c           
      óÔ   — t          d¬¦  «        \  }}}}}}t          ||||||| j        | j        ¬¦  «        }t	          j        |j        j        |||j        z  z
  z  d¦  «        sJ ‚d S )Nr  rŠ  rþ  r   )	ru   r
   r¬   r¸   r;   Úallcloser  r  r2   rÿ   s           r   Útest_complementary_slacknessz.LinprogHiGHSTests.test_complementary_slacknessH  s€   € å,;ÀÐ,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ÐLr   z&Upstream / Wrapper issue, see gh-20589rY  c                 óî  — g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }	t          j                             |||	ffd¬	¦  «        }
t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          j                             |d
d
|
||¬¦  «        }|j	        dk    sJ ‚|j
        }t           j                             |
|z  |z
  ¦  «        }t           j                             |j        j        ¦  «        }t          ||¦  «         d
S )zH
        Test that `linprog` now solves a poorly-scaled problem
        )!)ç     ˆÃ@g    j/aA)rê  N©r¨  N)rê  gÈÄS8(U@r©  r©  r©  r©  r©  r©  r©  r©  r©  rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   rˆ   )Srý   ró   rý   ró   rý   ró   rý   ró   rý   ró   rý   ró   rý   ró   rý   ró   rý   ró   rý   ró   ró   ró   rý   çü©ñÒMbP?çü©ñÒMbP¿ç<ó:ˆ¨ù=r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   rª  r«  r¬  r¬  ró   rý   )Sr   r   r   r   r   r   r#   r#   r'   r'   r#  r#  rz   rz   r~   r~   rw   rw   r{   r{   re   rÖ  rÖ  r  r  r  r  é   r­  rz  rz  rz  rz  rB  rB  r×  r×  r×  r×  é   r®  rØ  rØ  rØ  rØ  rÙ  rÙ  rf   rf   rf   rf   é   r¯  é   r°  r°  r°  é   r±  é   r²  r²  r²  é   r³  é   r´  r´  r´  é   rµ  é   r¶  r¶  r¶  é   r·  é   r¸  r¸  r¸  é   r¹  )SrB  rz  r®  r×  rÙ  rØ  r¯  rf   r±  r°  r³  r²  rµ  r´  r·  r¶  r¹  r¸  r­  r   r   é    r#   rz  r­  r'   r   r'   r   rº  r¹  r   r  r   r  r×  rB  r#  r'   r#  r'   rØ  r®  rz   r#  rz   r#  rf   rÙ  r~   rz   r~   rz   r°  r¯  rw   r~   rw   r~   r²  r±  r{   rw   r{   rw   r´  r³  re   r{   re   r{   r¶  rµ  rÖ  re   rÖ  re   r¸  r·  r  rÖ  r  rÖ  ) rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  g    ˆ*aArê  gºel›aûz?g—?‰2¨³ÀgZßÁPd%q?gúò‰4ïî¾ÀgéÌšãy?gµŽC1 |´ÀgÖ›üÓËx?gÀK†ÇcµÀgEŽ3-´w?g-.f—?`¶ÀgsFË]Fœv?g@ÎÊ¥u·Àg¢þbŽ„u?gNø³¦¸ÀgÐ¶ú¾¸lt?g=Ð‚Ã÷¹Àgþn’ïñTs?g”ÂQ3”o»Àg,'* +=r?g)[Šn½À)!rê  rê  rê  g¯l'V3ˆ¿rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  rê  r9   )rº  rÚ  )rI   N)rn   ro   rp   rq   rt   r   )r;   Úasarrayrv  Úint32r�   rŽ   Ú	csr_arrayÚoptimizer
   r   r2   ÚlinalgÚnormr   r  r   )r¯   Ú
boundariesÚ
eq_entriesÚ
eq_indizesÚeq_varsÚ	eq_valuesÚcoefficientsÚnp_eq_entriesÚnp_eq_indizesÚ
np_eq_varsÚa_eqrq   rU   Úresultr2   Ún_r_xÚn_rs                    r   Útest_bug_20336z LinprogHiGHSTests.test_bug_20336S  s–  € ð
	#ð 	#ð 	#ˆ
ð9ð 9ð 9ˆ
ðNð Nð Nˆ
ð
3ð 3ð 3ˆð
?ð ?ð ?ˆ	ðTð Tð Tˆõ œ
 :µR´ZÐ@Ñ@Ô@ˆÝœ
 :µR´XÐ>Ñ>Ô>ˆÝ”Z ­r¬xÐ8Ñ8Ô8ˆ
åŒ|×%Ò% }°mÀZÐ5PÐ&QØ,4ð &ñ 6ô 6ˆåŒz˜)­2¬:Ð6Ñ6Ô6ˆÝŒJ�|­2¬:Ð6Ñ6Ô6ˆå”×'Ò'¨°¸4ÀdÐQUØ/9ð (ñ ;ô ;ˆàŒ}˜aÒÐÐÐØŒHˆÝ”	—’˜t a™x¨$™Ñ/Ô/ˆÝŒi�nŠn˜Vœ\Ô2Ñ3Ô3ˆÝ˜˜UÑ#Ô#Ð#Ð#Ð#r   N)ra  rb  rc  rÞ   r»   re  rf  Úparametrizer…  rˆ  Ú	fail_slowrŸ  r£  r¦  r‰  rÎ  r�   r   r   rz  rz  â  sA  € € € € € ð
Bð 
Bð 
Bð „[ÔØ„[×Ò˜YØ(¨"˜oØ% r˜lØ)¨2Ð.Ø+¨RÐ0Ø;¸RÐ@Ø=¸rÐBØ9¸2Ð>ØBÀFÐKð ñ	!ô 	!ð:ð :ñ	!ô 	!ñ Ôð:ðIð Ið Ið „[×Ò˜2ÑÔð/4ð /4ñ Ôð/4ðb.ð .ð .ð	Mð 	Mð 	Mð „[×ÒÐFÐÑGÔGðA$ð A$ñ HÔGðA$ð A$ð A$r   rz  c                   óT   ‡ — e Zd Zd„ Zd„ Zd„ Zej        j        ˆ fd„¦   «         Z	ˆ xZ
S )ÚTestLinprogSimplexDefaultc                 ó   — i | _         d S rÜ   r  rÝ   s    r   Úsetup_methodz&TestLinprogSimplexDefault.setup_methodŸ  s   € ØˆŒˆˆr   c                 ó.   — t          j        d¦  «         d S ©NzSimplex fails on this problem.rp  rÝ   s    r   r  z'TestLinprogSimplexDefault.test_bug_5400¢  ó   € ÝŒÐ4Ñ5Ô5Ð5Ð5Ð5r   c                 ó.   — t          j        d¦  «         d S rÖ  rp  rÝ   s    r   Útest_bug_7237_low_tolz/TestLinprogSimplexDefault.test_bug_7237_low_tol¥  s   € õ 	ŒÐ4Ñ5Ô5Ð5Ð5Ð5r   c                 óä   •— | j                              ddi¦  «         t          j        t          ¦  «        5  t          ¦   «                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S ©Nr.  r¡  ©r¸   rJ  r»   r¼   r   Úsuperr0  ©r¯   Ú	__class__s    €r   Útest_bug_8174_low_tolz/TestLinprogSimplexDefault.test_bug_8174_low_tolª  ó©   ø€ ð 	Œ×Ò˜U E˜NÑ+Ô+Ð+ÝŒ\�/Ñ*Ô*ð 	$ð 	$Ý‰GŒG×!Ò!Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ó   ·!A%Á%A)Á,A))ra  rb  rc  rÔ  r  rÙ  r»   re  rf  rà  Ú__classcell__©rß  s   @r   rÒ  rÒ  �  sw   ø€ € € € € ðð ð ð6ð 6ð 6ð6ð 6ð 6ð
 „[Ôð$ð $ð $ð $ñ Ôð$ð $ð $ð $ð $r   rÒ  c                   óN   ‡ — e Zd Zd„ Zd„ Zej        j        ˆ fd„¦   «         Zˆ xZ	S )ÚTestLinprogSimplexBlandc                 ó   — ddi| _         d S )NrÈ  Tr  rÝ   s    r   rÔ  z$TestLinprogSimplexBland.setup_methodµ  s   € Ø �ˆŒˆˆr   c                 ó.   — t          j        d¦  «         d S rÖ  rp  rÝ   s    r   r  z%TestLinprogSimplexBland.test_bug_5400¸  r×  r   c                 óF  •— | j                              ddi¦  «         t          j        t          ¦  «        5  t          j        t          ¦  «        5  t          ¦   «                              ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S rÛ  )	r¸   rJ  r»   r	   r0   r¼   r   rÝ  r0  rÞ  s    €r   rà  z-TestLinprogSimplexBland.test_bug_8174_low_tol»  s  ø€ ð 	Œ×Ò˜U E˜NÑ+Ô+Ð+ÝŒ]�>Ñ*Ô*ð 	(ð 	(Ý”�oÑ.Ô.ð (ð (Ý‘”×%Ò%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s5   ·BÁ!A>Á2BÁ>B	ÂBÂB	ÂBÂBÂB)
ra  rb  rc  rÔ  r  r»   re  rf  rà  rã  rä  s   @r   ræ  ræ  ³  sh   ø€ € € € € ð'ð 'ð 'ð6ð 6ð 6ð „[Ôð(ð (ð (ð (ñ Ôð(ð (ð (ð (ð (r   ræ  c                   ó  ‡ — e Zd Zd„ Z ej        d¦  «        j        dk     Zej	         
                    d¦  «        Zej                             eoed¬¦  «        ˆ fd„¦   «         Zˆ fd„Zd	„ Zej        j        ˆ fd
„¦   «         Zd„ Zd„ Zˆ xZS )ÚTestLinprogSimplexNoPresolvec                 ó   — ddi| _         d S )Nr;  Fr  rÝ   s    r   rÔ  z)TestLinprogSimplexNoPresolve.setup_methodÇ  s   € Ø" EÐ*ˆŒˆˆr   r   rw   Úlinuxz"Fails with warning on 32-bit linux)Ú	conditionrZ  c                 óH   •— t          ¦   «                              ¦   «          d S rÜ   )rÝ  r  rÞ  s    €r   r  z*TestLinprogSimplexNoPresolve.test_bug_5400Í  s!   ø€ õ 	‰Œ×ÒÑÔÐÐÐr   c                 óæ   •— | j                              ddi¦  «         t          j        t          d¬¦  «        5  t          ¦   «                              ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )Nr.  r¡  zlinprog status 4r´   )r¸   rJ  r»   r	   r0   rÝ  r  rÞ  s    €r   Útest_bug_6139_low_tolz2TestLinprogSimplexNoPresolve.test_bug_6139_low_tolÓ  s¬   ø€ ð
 	Œ×Ò˜U E˜NÑ+Ô+Ð+ÝŒ]�>Ð1CÐDÑDÔDð 	+ð 	+Ý‘7”7×(Ò(Ñ*Ô*ð	+ð 	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   ¹ A&Á&A*Á-A*c                 ó.   — t          j        d¦  «         d S rÖ  rp  rÝ   s    r   rÙ  z2TestLinprogSimplexNoPresolve.test_bug_7237_low_tolÜ  r×  r   c                 óä   •— | j                              ddi¦  «         t          j        t          ¦  «        5  t          ¦   «                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S rÛ  rÜ  rÞ  s    €r   rà  z2TestLinprogSimplexNoPresolve.test_bug_8174_low_tolß  rá  râ  c                 ó.   — t          j        d¦  «         d S ©Nz#Tests behavior specific to presolverp  rÝ   s    r   r¼  zGTestLinprogSimplexNoPresolve.test_unbounded_no_nontrivial_constraints_1ç  ó   € ÝŒÐ9Ñ:Ô:Ð:Ð:Ð:r   c                 ó.   — t          j        d¦  «         d S rõ  rp  rÝ   s    r   r¾  zGTestLinprogSimplexNoPresolve.test_unbounded_no_nontrivial_constraints_2ê  rö  r   )ra  rb  rc  rÔ  r;   ÚintpÚitemsizeÚ	is_32_bitrh  ri  rÑ   Úis_linuxr»   re  r‰  r  rñ  rÙ  rf  rà  r¼  r¾  rã  rä  s   @r   rë  rë  Å  s  ø€ € € € € ð+ð +ð +ð �”˜‘
”
Ô# aÒ'€IØŒ|×&Ò& wÑ/Ô/€Hà„[×ÒØÐ( Ø3ð ñ 5ô 5ð ð  ð  ð  ñ5ô 5ð ð+ð +ð +ð +ð +ð6ð 6ð 6ð „[Ôð$ð $ð $ð $ñ Ôð$ð;ð ;ð ;ð;ð ;ð ;ð ;ð ;ð ;ð ;r   rë  c                   ó|   ‡ — e Zd ZddiZej                             ej        dk    d¬¦  «        ˆ fd„¦   «         Z	ˆ xZ
S )ÚTestLinprogIPDenserŽ   FrX  z:Fails on some macOS builds for reason not relevant to testrY  c                 óH   •— t          ¦   «                              ¦   «          d S rÜ   ©rÝ  r  rÞ  s    €r   r  z TestLinprogIPDense.test_bug_6139÷  s!   ø€ õ
 	‰Œ×ÒÑÔÐÐÐr   )ra  rb  rc  r¸   r»   re  rg  rh  ri  r  rã  rä  s   @r   rý  rý  ó  su   ø€ € € € € Ø˜Ð€Gð „[×ÒØŒ˜Ò ØKð ñ ô ð ð  ð  ð  ñ	ô ð ð  ð  ð  ð  r   rý  c                   ó   — e Zd ZdddœZdS )ÚTestLinprogIPSparseCholmodT©rŽ   r   N©ra  rb  rc  r¸   r�   r   r   r  r  ÿ  s   € € € € € Ø!¨tÐ4Ð4ˆˆˆr   r  c                   ó   — e Zd ZdddœZd„ ZdS )ÚTestLinprogIPSparseUmfpackTFr  c                 ó.   — t          j        d¦  «         d S )Nz2Failing due to numerical issues on some platforms.rp  rÝ   s    r   râ  z=TestLinprogIPSparseUmfpack.test_network_flow_limited_capacity  s   € ÝŒKÐLÑMÔMÐMÐMÐMr   N)ra  rb  rc  r¸   râ  r�   r   r   r  r    s5   € € € € € Ø!¨uÐ5Ð5ˆð	Nð 	Nð 	Nð 	Nð 	Nr   r  c                   ó  ‡ — e Zd ZddddœZej                             ej        dk    d¬¦  «        ej         	                    d¦  «        ˆ fd„¦   «         ¦   «         Z
ej                             d	¬¦  «        ˆ fd
„¦   «         Zd„ Zd„ Zˆ xZS )ÚTestLinprogIPSparseTF©rŽ   r   Úsym_posrX  ú/Fails on macOS x86 Accelerate builds (gh-20510)rY  úrThis test is sensitive to machine epsilon level perturbations in linear system solution in _linprog_ip._sym_solve.c                 óH   •— t          ¦   «                              ¦   «          d S rÜ   rÿ  rÞ  s    €r   r  z!TestLinprogIPSparse.test_bug_6139  ó!   ø€ õ 	‰Œ×ÒÑÔÐÐÐr   úFails with ATLAS, see gh-7877c                 óH   •— t          ¦   «                              ¦   «          d S rÜ   ©rÝ  r  rÞ  s    €r   r  z!TestLinprogIPSparse.test_bug_6690  ó!   ø€ õ 	‰Œ×ÒÑÔÐÐÐr   c                 óÎ  ‡ — t          d¦  «        \  }}}}}d}t          ¦   «         5 }t          r|                     t          ¦  «         |                     t
          d¦  «         |                     t          d¦  «         ˆ fd„‰ j        D ¦   «         }d|d<   t          |t          t          |||‰ j        |¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d	¬
¦  «         d S )Nr#   rÉ   zMatrix is exactly singularrà  c                 ó,   •— i | ]}|‰j         |         “ŒS r�   r  r  s     €r   r  zLTestLinprogIPSparse.test_magic_square_sparse_no_presolve.<locals>.<dictcomp>(  ó"   ø€ Ð@Ð@Ð@¨C��d”l 3Ô'Ð@Ð@Ð@r   Fr;  rö   r   rã   )rV   r   rá  r'  r   r   r   r¸   r
   rn   ro   r¬   r6   )	r¯   rp   rq   rU   r"  rt   r(  r  r   s	   `        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   §BC	Ã	CÃCc                 ó¤  ‡ — t          d¦  «        \  }}}}}t          ¦   «         5 }|                     t          d¦  «         |                     t          d¦  «         ˆ fd„‰ j        D ¦   «         }d}|D ]C}||d<   t          |t          t          ||t          ‰ j	        |¬¦  «        }	t          |	d¬	¦  «         ŒD	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nr#   rÌ  zInvalid permc_spec optionc                 ó,   •— i | ]}|‰j         |         “ŒS r�   r  r  s     €r   r  zATestLinprogIPSparse.test_sparse_solve_options.<locals>.<dictcomp>5  r  r   )ÚNATURALÚMMD_ATAÚMMD_AT_PLUS_AÚCOLAMDr²   Ú
permc_specrö   r   rã   )rV   r   r'  r   r¸   r
   rn   ro   rt   r¬   r6   )
r¯   rp   rq   rU   r"  r(  r  Úpermc_specsr  r   s
   `         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   ¥BCÃC	ÃC	)ra  rb  rc  r¸   r»   re  rg  rh  ri  Úxfail_on_32bitr  r‰  r  r  r  rã  rä  s   @r   r  r    sö   ø€ € € € € Ø¨5¸UÐCÐC€Gà„[×ÒØŒ˜Ò Ø@ð ñ ô ð „[×Òð !:ñ ;ô ;ð ð  ð  ð  ñ;ô ;ñ	ô ð ð „[×ÒÐ=ÐÑ>Ô>ð ð  ð  ð  ñ ?Ô>ð ð6ð 6ð 6ð$>ð >ð >ð >ð >ð >ð >r   r  c                   ó  ‡ — e Zd ZdddœZej                             ej        dk    d¬¦  «        ej         	                    d¦  «        ˆ fd„¦   «         ¦   «         Z
d„ Zej                             d	¬¦  «        ˆ fd
„¦   «         Zˆ xZS )ÚTestLinprogIPSparsePresolveT)rŽ   r%  rX  r  rY  r  c                 óH   •— t          ¦   «                              ¦   «          d S rÜ   rÿ  rÞ  s    €r   r  z)TestLinprogIPSparsePresolve.test_bug_6139D  r  r   c                 ó.   — t          j        d¦  «         d S )Nz6_sparse_presolve=True incompatible with presolve=Falserp  rÝ   s    r   rø  zBTestLinprogIPSparsePresolve.test_enzo_example_c_with_infeasibilityN  s   € ÝŒÐLÑMÔMÐMÐMÐMr   r  c                 óH   •— t          ¦   «                              ¦   «          d S rÜ   r  rÞ  s    €r   r  z)TestLinprogIPSparsePresolve.test_bug_6690Q  r  r   )ra  rb  rc  r¸   r»   re  rg  rh  ri  r   r  rø  r‰  r  rã  rä  s   @r   r"  r"  A  sè   ø€ € € € € Ø°4Ð8Ð8€Gà„[×ÒØŒ˜Ò Ø@ð ñ ô ð „[×Òð !:ñ ;ô ;ð ð  ð  ð  ñ;ô ;ñ	ô ð ðNð Nð Nð „[×ÒÐ=ÐÑ>Ô>ð ð  ð  ð  ñ ?Ô>ð ð  ð  ð  ð  r   r"  c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLinprogIPSpecificrÃ   c                 ó  — t           rdddœ}nt          rdddœ}nddddœ}t          dd¦  «        \  }}}t          |||| j        |¬¦  «        }t          |||| j        ¬¦  «        }t          |j        |j        dd	d
¬¦  «         d S )NTr  Fr	  rf   rá   r³   z(linprog default solver unexpected resultgVçž¯â<gVçž¯Ò<r+   )Úhas_cholmodrá  rc   r
   r¬   r   r1   )r¯   r¸   rS   rT   rU   r=  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ð 	0r   c                 ój   — dg}dg}t          ||| j        dddœ¬¦  «        }t          |d¬¦  «         d S )Nr8   r°  FT)r;  r   rL  rã   )r
   r¬   r6   rW  s       r   Ú)test_unbounded_below_no_presolve_originalz?TestLinprogIPSpecific.test_unbounded_below_no_presolve_originall  sV   € àˆDˆØ�ˆÝ˜ &Ø!œ[Ø+0¸dÐCÐCðEñ Eô Eˆõ 	˜¨Ð,Ñ,Ô,Ð,Ð,Ð,r   c                 ó†   — t          dd¦  «        \  }}}t          |||| j        ddi¬¦  «        }t          |d¬¦  «         d S )Nrf   r   Trá   râ   rã   rä   rå   s        r   Útest_choleskyz#TestLinprogIPSpecific.test_choleskyu  sV   € å˜2˜rÑ"Ô"‰ˆˆ1ˆaÝ�a˜a a°´Ø)¨4Ð0ð2ñ 2ô 2ˆå˜¨Ð7Ñ7Ô7Ð7Ð7Ð7r   c           
      óv  — t          dd¦  «        \  }}}t          ¦   «         5 }|                     t          d¦  «         |                     t          d¦  «         |                     t
          d¦  «         t          |||| j        dddœ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d¬	¦  «         d S )
Nrf   rß  rà  r_  T)Úiprà   rá   râ   rã   )	rc   r   r'  rM  r   r   r
   r¬   r6   )r¯   rS   rT   rU   r(  r   s         r   Útest_alternate_initial_pointz2TestLinprogIPSpecific.test_alternate_initial_point|  sø   € å˜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                 ó`  — dg}dgdgg}ddg}dgdgdgg}g d¢}t          ¦   «         5 }|                     t          ¦  «         |                     t          d¦  «         t	          |||||t
          | j        d	d
i¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j         d¦  «         d S )Nr'   r   r#  r   r   r{   rC  rà  r;  Frö   r   )	r   r'  rM  r   r
   rt   r¬   r   r   r4  s           r   rD  z#TestLinprogIPSpecific.test_bug_8664ˆ  s  € àˆ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   ¨ABÂBÂBN)	ra  rb  rc  r¬   r*  r,  r.  r1  rD  r�   r   r   r'  r'  W  si   € € € € € à€Fð0ð 0ð 0ð-ð -ð -ð8ð 8ð 8ð
8ð 
8ð 
8ðAð Að Að Að Ar   r'  c                   ó<   — e Zd Zi Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚTestLinprogRSCommonc                 ó.   — t          j        d¦  «         d S ru  rp  rÝ   s    r   rÊ  z%TestLinprogRSCommon.test_cyclic_blandŸ  rv  r   c                 óÎ   — t          ¦   «         \  }}}}}}}t          |||||t          | j        | j        |¬¦	  «	        }t          |||¬¦  «         t          |j        d¦  «         d S ©N©r¬   r¸   Úx0r®   r   ©r„   r
   rt   r¬   r¸   r6   r   rž   rÏ  s	            r   Ú"test_nontrivial_problem_with_guessz6TestLinprogRSCommon.test_nontrivial_problem_with_guess¢  ó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Ñ Ô Ð Ð Ð r   c                 óÌ   — t          ¦   «         \  }}}}}}}g d¢}t          ||||||| j        | j        |¬¦	  «	        }	t	          |	||¬¦  «         t          |	j        d¦  «         d S )N)rˆ   rˆ   r‰   rˆ   r8  r®   r   ©r„   r
   r¬   r¸   r6   r   rž   ©
r¯   rU   rn   ro   rp   rq   r‚   rƒ   rt   r   s
             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Ñ Ô Ð Ð Ð r   c                 óÌ   — t          ¦   «         \  }}}}}}}g d¢}t          ||||||| j        | j        |¬¦	  «	        }	t	          |	||¬¦  «         t          |	j        d¦  «         d S )N)r°  ©r   Nr‰   ©rè  g333333ã?r8  r®   r   r>  r?  s
             r   Ú.test_nontrivial_problem_with_bounded_variableszBTestLinprogRSCommon.test_nontrivial_problem_with_bounded_variables±  s‚   € Ý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Ñ Ô Ð Ð Ð r   c                 ó  — t          ¦   «         \  }}}}}}}dg}t          j        g d¢¦  «        }d}g d¢}t          ||||||| j        | j        |¬¦	  «	        }	t          |	||¬¦  «         t          |	j        d¦  «         d S )Nr'   )giblÝ3â¿gç%Gà/ø?r   rè  g«@Q†$@)rˆ   rB  r‰   rC  r8  r®   r   )	r„   r;   rE   r
   r¬   r¸   r6   r   rž   r?  s
             r   Ú8test_nontrivial_problem_with_negative_unbounded_variablezLTestLinprogRSCommon.test_nontrivial_problem_with_negative_unbounded_variable¹  s¤   € Ý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Ñ Ô Ð Ð Ð r   c                 ó²   — t          ¦   «         \  }}}}}}}g d¢}t          |||||t          | j        | j        |¬¦	  «	        }	t          |	j        d¦  «         d S ©N)r   r   r#   rh   r8  rz   ©r„   r
   rt   r¬   r¸   r   r   ©
r¯   rU   rn   ro   rp   rq   r‚   rƒ   Ú	bad_guessr   s
             r   Ú&test_nontrivial_problem_with_bad_guessz:TestLinprogRSCommon.test_nontrivial_problem_with_bad_guessÄ  ók   € Ý4FÑ4HÔ4HÑ1ˆˆ4��t˜T 6¨6Ø!�M�Mˆ	Ý�a˜˜t T¨4µØ!œ[°$´,À9ðNñ Nô Nˆå�S”Z Ñ#Ô#Ð#Ð#Ð#r   c                 óž  — t          d¦  «        \  }}}}}t          j        j        |j        Ž }t          ¦   «         5 }|                     t          d¦  «         |                     t          d¦  «         |                     t          ¦  «         t          |||| j        ¬¦  «        }t          |||| j        |j        ¬¦  «        }t          ||z   ||| j        |j        ¬¦  «        }	d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         t          |j        d¦  «         t          |	¦  «         t!          |	j        |j        k     ¦  «         d S )	Nr#   rÌ  rÓ  )rp   rq   r¬   )rp   rq   r¬   r9  r   rã   r   )rV   r;   r<   rH   rI   r   r'  r   rM  r   r
   r¬   r2   r6   r   rž   r   )
r¯   rS   rT   rU   r"  rÜ  r(  r   r>  Ú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Ã0C4Ã7C4N)ra  rb  rc  r¸   rÊ  r;  r@  rD  rF  rL  rP  r�   r   r   r4  r4  œ  s‚   € € € € € Ø€Gð8ð 8ð 8ð!ð !ð !ð!ð !ð !ð!ð !ð !ð	!ð 	!ð 	!ð$ð $ð $ð$ð $ð $ð $ð $r   r4  c                   ó   — e Zd ZddiZdS )ÚTestLinprogRSBlandÚpivotrÈ  Nr  r�   r   r   rR  rR  Û  s   € € € € € Ø˜Ð €G€G€Gr   rR  c                   ó   — e Zd ZdZi Zd„ ZdS )ÚTestLinprogHiGHSSimplexDualrÍ   c                 óä  — t          ¦   «         \  }}}}t          ||||| j        | j        ¬¦  «        }t	          |j        d¦  «         t          |j        du¦  «         t          t          j	        |j
        dk    ¦  «        ¦  «         t          t          j	        |j        d„ |D ¦   «         k    ¦  «        ¦  «         t          t          j	        |j        d„ |D ¦   «         k    ¦  «        ¦  «         dS )z�
        The scaled model should be optimal, i.e. not produce unscaled model
        infeasible.  See https://github.com/ERGO-Code/HiGHS/issues/494.
        )rn   ro   rt   r¬   r¸   r   Ng�íµ ÷Æ°¾c                 ó4   — g | ]\  }}|€t           j        n|‘ŒS rÜ   ©r;   ri   ©r	  rr   rs   s      r   ú
<listcomp>zCTestLinprogHiGHSSimplexDual.test_lad_regression.<locals>.<listcomp>õ  s6   € ð !5ð !5ð !5Ù%+ R¨ð ,.¨:¥¤ ¸2ð !5ð !5ð !5r   c                 ó<   — g | ]\  }}|€t           j         n|dz
  ‘ŒS )NrÂ  rX  rY  s      r   rZ  zCTestLinprogHiGHSSimplexDual.test_lad_regression.<locals>.<listcomp>÷  s<   € ð !5ð !5ð !5Ù%+ R¨ð -/¨J¥"¤&  ¸BÀ¹Ið !5ð !5ð !5r   )r˜   r
   r¬   r¸   r   r   r   r2   r;   ÚallrŸ   )r¯   rU   rn   ro   r—   r   s         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ð 	7r   N)ra  rb  rc  r¬   r¸   r]  r�   r   r   rU  rU  ä  s-   € € € € € Ø€FØ€Gð7ð 7ð 7ð 7ð 7r   rU  c                   ó   — e Zd ZdZi ZdS )ÚTestLinprogHiGHSIPMrˆ  N)ra  rb  rc  r¬   r¸   r�   r   r   r_  r_   	  s   € € € € € Ø€FØ€G€G€Gr   r_  c                   óR  — e Zd ZdZi Zej                             d¦  «        ej                             e	j
        dk     o ej        ¦   «         dk    dd¬¦  «        d„ ¦   «         ¦   «         Zd	„ Zd
„ Zd„ Zd„ Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestLinprogHiGHSMIPr¿   re   l        ÚLinuxFzgh-16347)rî  ÚrunrZ  c           	      óÄ  — d}t          |¦  «        \  }}}}}dgt          |¦  «        z  }dgt          |¦  «        z  }t          |dz  |||| j        |¬¦  «        }	|                     ¦   «         |	j        z                       |dz  ||¦  «        }
t          j        |
d¬¦  «        }t          j	         
                    |                     d¬¦  «        |¦  «         t          j	         
                    |                     d¬¦  «        |¦  «         t          j	         
                    t          j        |¦  «                             ¦   «         |¦  «         t          j	         
                    t          j        |d d …d d d…f         ¦  «                             ¦   «         |¦  «         t          j	         
                    |	j        t          j        |	j        ¦  «        d	¬
¦  «         d S )Nr'   rÉ   r   r   ©rU   rp   rq   rt   r¬   rÌ   r   rR  r8   r¡  rÿ  )rV   rÒ   r
   r¬   rD   r2   r?   r;   rm  r  r   ÚdiagÚround)r¯   rJ   rS   rT   rU   rM   rL   rt   rÌ   r   ÚsÚsquares               r   Ú	test_mip1zTestLinprogHiGHSMIP.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ÐFr   c                 óê  — t          j        ddgddgg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «         }t          j        dt           j        fgt          |¦  «        z  ¦  «        }t          j        |¦  «        }t          ||||| j        |¬	¦  «        }t           j                             |j	        ddg¦  «         t           j                             |j
        d
¦  «         d S )Nr   r¨   r   re   r8   r­  r   r   r  r|   )r;   rE   ri   rÒ   Ú	ones_liker
   r¬   r  r   r2   r1   r  s          r   Ú	test_mip2zTestLinprogHiGHSMIP.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Ñ/Ô/Ð/Ð/Ð/r   c                 óô  — t          j        ddgddgddgg¦  «        }t          j        g d¢¦  «        }t          j        ddg¦  «         }dt           j        fgt          |¦  «        z  }dgt          |¦  «        z  }t	          ||||| j        |¬¦  «        }t           j                             |j        d¦  «         t          j	        |j
        ddg¦  «        st          j	        |j
        ddg¦  «        sJ ‚d S d S )	Nr8   r   r#   r   r  r   r  r¨   )r;   rE   ri   rÒ   r
   r¬   r  r   r1   r¥  r2   r  s          r   Ú	test_mip3zTestLinprogHiGHSMIP.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ÐGr   c                 óª  — t          j        ddgddgddgg¦  «        }t          j        g d¢¦  «        }t          j        ddg¦  «        }dt           j        fgt          |¦  «        z  }ddg}t	          ||||| j        |¬	¦  «        }t           j                             |j        d
dg¦  «         t           j                             |j	        d¦  «         d S )Nr8   r¨   r€   r   r   )rz  ißÿÿÿrf   rw   r   r  g      @r~   é;   )
r;   rE   ri   rÒ   r
   r¬   r  r   r2   r1   r  s          r   Ú	test_mip4zTestLinprogHiGHSMIP.test_mip4L	  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Ñ/Ô/Ð/Ð/Ð/r   c           
      ó„  — t          j        g d¢g¦  «        }t          j        dg¦  «        }t          j        g d¢g¦  «        }t          j        dg¦  «        }t          j        g d¢¦  «        }dt           j        fdt           j        fdg}g d¢}t          ||||||| j        |¬	¦  «        }t           j                             |j        g d
¢¦  «         t           j                             |j        d¦  «         | 	                    dd ¦  «        €J ‚| 	                    dd ¦  «        €J ‚| 	                    dd ¦  «        €J ‚d S )Nr�  r~   )r'   r   r   r  )r|   r¨   r8   r   rÉ   r>  )rU   rn   ro   rp   rq   rt   r¬   rÌ   )r   rz   r   iôÿÿÿÚmip_node_countÚmip_dual_boundÚmip_gap)
r;   rE   ri   r
   r¬   r  r   r2   r1   rC  )	r¯   rn   ro   rp   rq   rU   rt   rÌ   r   s	            r   Ú	test_mip5zTestLinprogHiGHSMIP.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   c                 óL  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }dt           j        fgdz  }d	gdz  }t          ||||| j        |¬
¦  «        }t           j                             |j        d¦  «         d S )N©r°  r­  r´  rÚ  r¯  r#   rz  r´  ©é'   r×  r°  r¶  r´  r¸  r±  r²  ©rØ  rz  r·  rµ  r¸  é&   r´  r´  ©é)   r´  r¶  r¸  rØ  r}  r×  r´  ©iÀ  iâ(  i:,  i/  ©r   re   r­  r®  r~   r#  r~   r#   r   rw   r   re  i>  )r;   rE   ri   r
   r¬   r  r   r1   )r¯   rp   rq   rU   rt   rÌ   r   s          r   Ú	test_mip6zTestLinprogHiGHSMIP.test_mip6t	  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Ð1r   c                 ó4  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }dt           j        fgdz  }d	gdz  }g d
¢}g }|D ]P}t          |t          t
          |||| j        |d|i¬¦	  «	        }	|	d         }
|
|k    sJ ‚|                     |
¦  «         ŒQt          j        t          j	        |¦  «        ¦  «        }t          j
        |dk    ¦  «        sJ ‚t          j
        |dk    ¦  «        rJ ‚d S )Nry  rz  r|  r~  r€  r�  r   rw   r   )rh   g      Ð?g{®Gáz„?rª  Úmip_rel_gap)	rU   rn   ro   rp   rq   rt   r¬   rÌ   r¸   rv  )r;   rE   ri   r
   rn   ro   r¬   rC   ÚdiffÚflipr\  )r¯   rp   rq   rU   rt   rÌ   Úmip_rel_gapsÚsol_mip_gapsr„  r   Ú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š.Ñ)Ô)Ð)Ð)Ð)Ð)Ð)r   c                 ó,  — t          j        g d¢¦  «        }t          j        ddgddgddgddgg¦  «        }t          j        g d¢¦  «        }t          |||d¬¦  «        }t           j                             |j        g d¢¦  «         |j        dk    sJ ‚d S )	N)ró   ró   r8   r8   rh   r7  )r   r#   r   r#   r¿   )rt   rÌ   r¬   )r   r   r7  r   r   )r;   rE   r
   r  r   r2   r   )r¯   rU   rt   rÌ   r   s        r   Útest_semi_continuousz(TestLinprogHiGHSMIP.test_semi_continuous­	  s¥   € õ
 ŒHÐ%Ð%Ð%Ñ&Ô&ˆÝ”˜C ˜:¨¨S z°C¸°:ÀÀS¸zÐJÑKÔKˆÝ”h˜|˜|˜|Ñ,Ô,ˆå�a Ø"-°gð?ñ ?ô ?ˆõ 	Œ
×"Ò" 3¤5¨.¨.¨.Ñ9Ô9Ð9ØŒz˜QŠˆˆˆˆˆr   c           	      ó$  — ddg}ddgg}dg}t          |||ddg¬¦  «        }t          |||t          j        ddg¦  «        ¬¦  «        }t          |||d¬¦  «        }t          |j        |j        ¦  «         t          |j        |j        ¦  «         dS )z¡
        Test that when integrality is a list of all zeros, linprog gives the
        same result as when it is an array of all zeros / integrality=None
        r   r8   r   rÖ   r×   N)r
   r;   r»  r   r2   )r¯   rU   rn   ro   r=  r>  rO  s          r   Útest_bug_20584z"TestLinprogHiGHSMIP.test_bug_20584¼	  s¡   € ð
 �ˆFˆØ�Q�ˆyˆØˆvˆÝ�q˜t¨$¸QÀ¸FÐCÑCÔCˆÝ�q˜t¨$½B¼JÈÈ1ÀvÑ<NÔ<NÐOÑOÔOˆÝ�q˜t¨$¸DÐAÑAÔAˆÝ�T”V˜TœVÑ$Ô$Ð$Ý�T”V˜TœVÑ$Ô$Ð$Ð$Ð$r   N)ra  rb  rc  r¬   r¸   r»   re  rÐ  r‰  rh  Úmaxsizeri  Úsystemrj  rm  ro  rr  rw  Úxslowr‚  r‹  r�  r�  r�   r   r   ra  ra  
	  s5  € € € € € Ø€FØ€Gà„[×Ò˜2ÑÔØ„[×Ò #¤+°Ò"7ð #4Ø&�x”Ñ(Ô(¨GÒ3Ø Ø(ð ñ *ô *ðGð Gñ	*ô *ñ Ôð
Gð*0ð 0ð 0ð&Hð Hð Hð"0ð 0ð 0ð 4ð 4ð 4ð0 „[Ôð2ð 2ñ Ôð2ð$ „[Ôð#*ð #*ñ Ôð#*ðJð ð ð%ð %ð %ð %ð %r   ra  c                   ó@   — e Zd ZddiZej        Zej        Zej        ZdS )ÚAutoscaleTestsr^  TN)ra  rb  rc  r¸   rÚ   r  r  r(  r�   r   r   r”  r”  Ð	  s0   € € € € € à˜DÐ!€Gà&Ô4€MØ&Ô4€MØ&Ô4€M€M€Mr   r”  c                   ó   — e Zd ZdZd„ ZdS )ÚTestAutoscaleIPrÃ   c                 óJ   — d| j         d<   t                               | ¦  «        S )Nr/  r.  )r¸   r”  r  rÝ   s    r   r  zTestAutoscaleIP.test_bug_6139Ü	  s"   € Ø#ˆŒ�UÑÝ×+Ò+¨DÑ1Ô1Ð1r   N)ra  rb  rc  r¬   r  r�   r   r   r–  r–  Ù	  s(   € € € € € Ø€Fð2ð 2ð 2ð 2ð 2r   r–  c                   ó   — e Zd ZdZdS )ÚTestAutoscaleSimplexrÅ   Nrl  r�   r   r   r™  r™  á	  s   € € € € € Ø€F€F€Fr   r™  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestAutoscaleRSrÄ   c                 óÎ   — t          ¦   «         \  }}}}}}}t          |||||t          | j        | j        |¬¦	  «	        }t          |||¬¦  «         t          |j        d¦  «         d S r7  r:  rÏ  s	            r   r;  z2TestAutoscaleRS.test_nontrivial_problem_with_guessè	  r<  r   c                 ó²   — t          ¦   «         \  }}}}}}}g d¢}t          |||||t          | j        | j        |¬¦	  «	        }	t          |	j        d¦  «         d S rH  rI  rJ  s
             r   rL  z6TestAutoscaleRS.test_nontrivial_problem_with_bad_guessï	  rM  r   N)ra  rb  rc  r¬   r;  rL  r�   r   r   r›  r›  å	  s7   € € € € € Ø€Fð!ð !ð !ð$ð $ð $ð $ð $r   r›  c                   ó\   — e Zd ZdZeZej        Zej        Zej	        Z	ej
        Zej        ZdS )ÚRRTestsrÃ   N)ra  rb  rc  r¬   rÚ   ÚLCTrÍ  Útest_RR_infeasibilityrW  r#  râ  Ú	test_NFLCrë  r�   r   r   rŸ  rŸ  ü	  sD   € € € € € à€FØ
€CàÔDÐØÔ'€NØÔ%€MØÔ6€IØÔ1ÐÐÐr   rŸ  c                   ó   — e Zd ZddiZdS )Ú	TestRRSVDr¶   ÚSVDNr  r�   r   r   r¤  r¤  
  s   € € € € € Ø˜EÐ"€G€G€Gr   r¤  c                   ó   — e Zd ZddiZdS )ÚTestRRPivotr¶   rS  Nr  r�   r   r   r§  r§  
  s   € € € € € Ø˜GÐ$€G€G€Gr   r§  c                   ó   — e Zd ZddiZdS )ÚTestRRIDr¶   ÚIDNr  r�   r   r   r©  r©  
  s   € € € € € Ø˜DÐ!€G€G€Gr   r©  )NNr)   r)   )r   )r   rw   r{   r…   )Xrd  rh  ri  Únumpyr;   Únumpy.testingr   r   r   r   r   r   r»   r	   r¹   Úscipy.optimizer
   r   Úscipy.optimize._numdiffr   Úscipy.sparse.linalgr   Úscipy.linalgr   Úscipy._lib._utilr   Úscipy.sparser�   rá  Úscikits.umfpackr   ÚImportErrorr)  ÚsksparseÚsksparse.cholmodr   Úcholmodr   r!   r$   r(   r6   rV   rc   ru   r„   r˜   r°   re  rf  r½   rÁ   rÇ   rÔ   rØ   rn   ro   rp   rq   rt   rÚ   Úfilterwarningsrk  rn  rs  rz  rÒ  ræ  rë  rý  r  r  r  r"  r'  r4  rR  rU  r_  ra  r”  r–  r™  r›  rŸ  r¤  r§  r©  r�   r   r   ú<module>r¹     sv  ððð ð €
€
€
Ø €€€à Ð Ð Ð ð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Ø &Ð &Ð &Ð &Ð &Ð &Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ø €€€à€ðØ.Ð.Ð.Ð.Ð.Ð.Ð.øØð ð ð Ø€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ð ð  ð  ð  ðF4ð 4ð 4ð> „Ôð9ð 9ñ Ôð9ð>ð >ð >ð „Ôð%ð %ñ Ôð%ð*#ð *#ð *#ðZEð Eð Eð €Ø€Ø€Ø€Ø	€ðA.ð A.ð A.ð A.ð A.ñ A.ô A.ð A.ðR* „×ÒÐ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ð:s$ð s$ð s$ð s$ð s$Ð*ñ s$ô s$ð s$ðv$ð $ð $ð $ð $Ð 3ñ $ô $ð $ð,(ð (ð (ð (ð (Ð1ñ (ô (ð (ð$&;ð &;ð &;ð &;ð &;Ð#6ñ &;ô &;ð &;ð\	 ð 	 ð 	 ð 	 ð 	 ˜ñ 	 ô 	 ð 	 ð ð 5ð5ð 5ð 5ð 5ð 5 ^ñ 5ô 5ð 5ð ð NðNð Nð Nð Nð N ^ñ Nô Nð Nð3>ð 3>ð 3>ð 3>ð 3>˜.ñ 3>ô 3>ð 3>ðl ð  ð  ð  ð   .ñ  ô  ð  ð, „×ÒÐ8Ñ9Ô9ð<Að <Að <Að <Að <Añ <Aô <Añ :Ô9ð<AðH<$ð <$ð <$ð <$ð <$˜.ñ <$ô <$ð <$ð~!ð !ð !ð !ð !˜ñ !ô !ð !ð7ð 7ð 7ð 7ð 7Ð"3ñ 7ô 7ð 7ð8ð ð ð ð Ð+ñ ô ð ð~%ð ~%ð ~%ð ~%ð ~%ñ ~%ô ~%ð ~%ðL „×ÒÐ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!Á'
A2 Á2A<Á;A<