§
    fŠtj{I  ã            	       óê  — d Z ddlZddlZddlZddlmZmZ ddlZddl	m
Z
 ddlmZmZmZ ddlmZ ej        dk     Zd	„ Zej                             d
d¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej        j        d„ ¦   «         Zd„ Z dZ!dZ"ej                             d¬¦  «        ej         #                     ej$        d¦  «        j%        dk     d¬¦  «        ej        j&        ej         '                    ddgdd ie!fd!die"fg¦  «        d"„ ¦   «         ¦   «         ¦   «         ¦   «         Z(d#„ Z)ej        j        d$„ ¦   «         Z*ej                             d%¬¦  «        d&„ ¦   «         Z+d'„ Z,d(„ Z-dS ))z0
Unit test for Mixed Integer Linear Programming
é    N)Úassert_allcloseÚassert_array_equalé   )Úmagic_square)ÚmilpÚBoundsÚLinearConstraint)Úsparsel        c            	      ó*  — d} t          j        t          | ¬¦  «        5  t          t	          j        ddg¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          t          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          g ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          d ¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          dd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d
} t          j        t          t          j	        | ¦  «        ¬¦  «        5  t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          t          j	        | ¦  «        ¬¦  «        5  t          t          j        d¦  «        g d¢gddgddgf¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          t          j	        | ¦  «        ¬¦  «        5  t          t          j        d¦  «        ddggdgt	          j        dg¦  «        f¬¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          t          j	        | ¦  «        ¬¦  «        5  t          t          j        d¦  «        ddggdgdgf¬¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          ddgt	          j        ddg¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          g d¢ddg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          g d¢g d¢¬¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          g d¢ddgt	          j        ddg¦  «        f¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          g d¢ddgg d¢f¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          g d¢g d¢ddgf¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          g d¢ddgddgf¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          g d¢g d¢g d¢f¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          g d¢g d¢t          ¦   «         ddgf¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz`c` must be a dense array©Úmatchr   z:`c` must be a one-dimensional array of finite numbers with)é   é   z3`bounds` must be convertible into an instance of...r   é
   ©Úboundsz<`constraints` (or each element within `constraints`) must be)Úconstraintsr   )r   é   r   r   z,The shape of `A` must be (len(b_l), len(c)).z#`integrality` must be a dense array)ÚintegralityzJ`integrality` must contain integers 0-3 and be broadcastable to `c.shape`.)r   é   r   z,Lower and upper bounds must be dense arrays.r   z6`lb`, `ub`, and `keep_feasible` must be broadcastable.)r   r   r   r   z5`bounds.lb` and `bounds.ub` must contain reals and...)z3+4r   r   )ÚpytestÚraisesÚ
ValueErrorr   r
   Ú	coo_arrayÚnpÚzerosÚreÚescapeÚset)Úmessages    ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_milp.pyÚtest_milp_ivr"      sr
  € à)€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 'ð 'Ý�VÔ˜q !˜fÑ%Ô%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð K€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ý�RŒX�fÑÔÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•z¨Ð	1Ñ	1Ô	1ð ð ÝˆR‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•z¨Ð	1Ñ	1Ô	1ð ð ÝˆT‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð D€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð ÝˆQ�rÐÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð M€GÝ	Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð  ð  ÝˆQ˜BÐÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  å	Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð Eð EÝ�RŒX�a‰[Œ[¨	¨	¨	 {°Q¸°F¸QÀ¸FÐ&CÐDÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eå	Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð Nð NÝ�RŒX�a‰[Œ[¨¨A¨ x°!°µfÔ6FÈÀsÑ6KÔ6KÐ&LÐMÑMÔMÐMðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð =€GÝ	Œ•z­¬°7Ñ);Ô);Ð	<Ñ	<Ô	<ð <ð <Ý�RŒX�a‰[Œ[¨¨A¨ x°!°°q°cÐ&:Ð;Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð 4€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ;ð ;Ýˆa�ˆV¥Ô!1°1°a°&Ñ!9Ô!9Ð:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð€Gå	Œ•z¨Ð	1Ñ	1Ô	1ð ,ð ,ÝˆYˆYˆY Q¨ FÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,å	Œ•z¨Ð	1Ñ	1Ô	1ð /ð /ÝˆYˆYˆY I I IÐ.Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð =€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Cð CÝˆYˆYˆY  A ­Ô(8¸!¸Q¸Ñ(@Ô(@ÐAÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð G€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 4ð 4ÝˆYˆYˆY  A ¨	¨	¨	Ð2Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å	Œ•z¨Ð	1Ñ	1Ô	1ð 4ð 4ÝˆYˆYˆY 	 	 	¨A¨q¨6Ð2Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð F€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 1ð 1ÝˆYˆYˆY  A ¨¨A¨Ð/Ð0Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1å	Œ•z¨Ð	1Ñ	1Ô	1ð ;ð ;ÝˆYˆYˆY 	 	 	¨=¨=¨=Ð9Ð:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å	Œ•z¨Ð	1Ñ	1Ô	1ð ;ð ;ÝˆYˆYˆY 	 	 	­C©E¬E°1°a¨=Ð9Ð:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;sC  ž$AÁAÁAÁ6"B$Â$B(Â+B(Ã
C&Ã&C*Ã-C*ÄD(Ä(D,Ä/D,ÅE.Å.E2Å5E2Æ(GÇG
ÇG
Ç>.H8È8H<È?H<É0>J:Ê:J>ËJ>Ë4,L,Ì,L0Ì3L0Í(NÎNÎNÎ0OÏOÏOÏ8PÐPÐ!PÑ,Q:Ñ:Q>ÒQ>Ò"SÓSÓSÓ.TÔTÔTÔ<U"Õ"U&Õ)U&ÖV.Ö.V2Ö5V2×'XØXØXFz%Needs to be fixed in `_highs_wrapper`)ÚrunÚreasonc                 ód  — d}ddi}t          j        t          |¬¦  «        5  t          d|¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          d¦  «        \  }}}}}ddd	d
œ}t          ||||fdd|¬¦  «        }|                      ¦   «         }	d|	j        v sJ ‚d|	j        v sJ ‚|j        rJ ‚d S )Nz*Unrecognized options detected: {'ekki'}...ÚekkiTr   r   )Úoptionsr   Fçš™™™™™©?)ÚdispÚpresolveÚ
time_limit©r   r   ©Úcr   r   r   r'   zPresolve is switched offzTime Limit Reached)r   ÚwarnsÚRuntimeWarningr   r   Ú
readouterrÚoutÚsuccess)
Úcapsysr    r'   ÚAÚbr.   ÚnumbersÚMÚresÚcaptureds
             r!   Útest_milp_optionsr;   N   s'  € ð ;€GØ�tˆn€GÝ	Œ•n¨GÐ	4Ñ	4Ô	4ð !ð !ÝˆQ˜Ð Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ ' q™/œ/Ñ€A€qˆ!ˆW�aØ¨¸dÐCÐC€GÝ
�  A q 	°&ÀaØð ñ  ô  €Cð × Ò Ñ"Ô"€HØ%¨¬Ð5Ð5Ð5Ð5Ø 8¤<Ð/Ð/Ð/Ð/ØŒ{ÐÐˆ?ÐÐs   ¢A Á AÁAc                  óø  — t          d¦  «        \  } }}}}t          || ||fdd¬¦  «        }|j        dk    sJ ‚|j        sJ ‚d}|j                             |¦  «        sJ ‚t          |j        t          j	        ¦  «        sJ ‚t          |j
        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          d¦  «        \  } }}}}t          |dz  | ||fdddd	i¬
¦  «        }|j        dk    sJ ‚|j        rJ ‚d}|j                             |¦  «        sJ ‚|j
        |j        cxu r!|j        cxu r|j        cxu r|j        cxu r	 �n J ‚t          dd¬¦  «        }|j        dk    sJ ‚|j        rJ ‚d}|j                             |¦  «        sJ ‚|j
        |j        cxu r!|j        cxu r|j        cxu r|j        cxu r	 �n J ‚t          d¦  «        }|j        dk    sJ ‚|j        rJ ‚d}|j                             |¦  «        sJ ‚|j
        |j        cxu r!|j        cxu r|j        cxu r|j        cxu r	 �n J ‚d S )Nr   r,   r   ©r.   r   r   r   r   z6Optimization terminated successfully. (HiGHS Status 7:é   r+   r(   r-   ú%Time limit reached. (HiGHS Status 13:)r   éÿÿÿÿr   r   z+The problem is infeasible. (HiGHS Status 8:r@   z+The problem is unbounded. (HiGHS Status 10:)r   r   Ústatusr3   r    Ú
startswithÚ
isinstanceÚxr   ÚndarrayÚfunÚfloatÚmip_node_countÚintÚmip_dual_boundÚmip_gap)r5   r6   r.   r7   r8   r9   Úmsgs          r!   Útest_resultrM   b   s¢  € Ý& q™/œ/Ñ€A€qˆ!ˆW�aÝ
�  A q 	°&ÀaÐ
HÑ
HÔ
H€CØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ;ÐÐˆ;Ø
B€CØŒ;×!Ò! #Ñ&Ô&Ð&Ð&Ð&Ý�c”e�RœZÑ(Ô(Ð(Ð(Ð(Ý�c”g�uÑ%Ô%Ð%Ð%Ð%Ý�cÔ(­#Ñ.Ô.Ð.Ð.Ð.Ý�cÔ(­%Ñ0Ô0Ð0Ð0Ð0Ý�c”k¥5Ñ)Ô)Ð)Ð)Ð)å& q™/œ/Ñ€A€qˆ!ˆW�aÝ
��1‘ 1 a¨ )°FÈØ$ dÐ+ð-ñ -ô -€CàŒ:˜Š?ˆ?ˆ?ˆ?ØŒ{ÐÐˆ?Ø
1€CØŒ;×!Ò! #Ñ&Ô&Ð&Ð&Ð&ØŒG�sÔ)ð 3ð 3ð 3ð 3¨S¬[ð 3ð 3ð 3ð 3ØÔ!ð3ð 3ð 3ð 3Ø%(¤Uð3ð 3ð 3ð 3Ø.2ð3ð 3ð 3ð 3ð 3õ ˆq˜Ð
!Ñ
!Ô
!€CØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ{ÐÐˆ?Ø
7€CØŒ;×!Ò! #Ñ&Ô&Ð&Ð&Ð&ØŒG�sÔ)ð 3ð 3ð 3ð 3¨S¬[ð 3ð 3ð 3ð 3ØÔ!ð3ð 3ð 3ð 3Ø%(¤Uð3ð 3ð 3ð 3Ø.2ð3ð 3ð 3ð 3ð 3õ ˆr‰(Œ(€CØŒ:˜Š?ˆ?ˆ?ˆ?ØŒ{ÐÐˆ?Ø
7€CØŒ;×!Ò! #Ñ&Ô&Ð&Ð&Ð&ØŒG�sÔ)ð 3ð 3ð 3ð 3¨S¬[ð 3ð 3ð 3ð 3ØÔ!ð3ð 3ð 3ð 3Ø%(¤Uð3ð 3ð 3ð 3Ø.2ð3ð 3ð 3ð 3ð 3ð 3ð 3ó    c                  ój   — t          d¦  «        } | j        dk    sJ ‚t          | j        dg¦  «         d S )Nr   r   )r   rF   r   rD   )r9   s    r!   Útest_milp_optional_argsrP   Š   s6   € å
ˆq‰'Œ'€CØŒ7�aŠ<ˆ<ˆ<ˆ<Ý�s”u˜q˜cÑ"Ô"Ð"Ð"Ð"rN   c            	      óD  — d} t          | ¦  «        \  }}}}}t          j        |¦  «        }t          |dz  |||fdd¬¦  «        }t	          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         ¦  «         	                    ¦   «         |¦  «         d S )	Nr   r   r,   r   r=   r   )Úaxisr@   )r   r
   Ú	csc_arrayr   r   ÚroundrD   ÚflattenÚreshapeÚsumÚtestingr   Údiag)
Únr5   r6   r.   r7   r8   r9   rD   ÚsÚsquares
             r!   Útest_milp_1r]   ‘   sZ  € à	€AÝ& q™/œ/Ñ€A€qˆ!ˆW�aÝÔ˜ÑÔ€AÝ
��1‘ 1 a¨ )°FÈÐ
JÑ
JÔ
J€Cõ 	Œ�”‰Œ€AØ	�ŠÑ	Ô	˜QÑ	×'Ò'¨¨1©¨a°Ñ3Ô3€AÝŒV�A˜AÐÑÔ€FÝ„J×Ò˜vŸzšz¨q˜zÑ1Ô1°1Ñ5Ô5Ð5Ý„J×Ò˜vŸzšz¨q˜zÑ1Ô1°1Ñ5Ô5Ð5Ý„J×Ò�rœw v™œ×2Ò2Ñ4Ô4°aÑ8Ô8Ð8Ý„J×Ò�rœw v¨a¨a¨a°°°2°¨g¤Ñ7Ô7×;Ò;Ñ=Ô=¸qÑAÔAÐAÐAÐArN   c                  ó¬  — t          j        d¦  «         } ddgddgg}dt           j         g}t           j        dg}t          |||¦  «        }t	          | |||fd¬¦  «        }t	          | |d¬¦  «        }t	          | |||fgd¬¦  «        }t	          | |gd¬¦  «        }t	          | d|d d…         |d d…         |d d…         f|dd …         |dd …         |dd …         fg¬	¦  «        }	t	          | dt          |d d…         |d d…         |d d…         ¦  «        t          |dd …         |dd …         |dd …         ¦  «        g¬	¦  «        }
t	          | d|d d…         |d d…         |d d…         ft          |dd …         |dd …         |dd …         ¦  «        g¬	¦  «        }t          j        |j        |j        |j        |j        |	j        |
j        |j        g¦  «        }t          j        |j        |j        |j        |j        |	j        |
j        |j        g¦  «        }t           j         	                    |t          j
        ddg|j        ¦  «        ¦  «         t           j         	                    |d
¦  «         t	          | |||f¬¦  «        }t           j         	                    |j        ddg¦  «         t           j         	                    |j        d¦  «         d S )Nr   éþÿÿÿiøÿÿÿr   r   é   T©r.   r   r   )r.   r   r   éýÿÿÿ©r.   r   r   g      @g      !À)r   ÚonesÚinfr	   r   ÚarrayrD   rF   rX   r   Úbroadcast_toÚshape)r.   r5   Úb_lÚb_uÚlinear_constraintÚres1Úres2Úres3Úres4Úres5Úres6Úres7ÚxsÚfunsr9   s                  r!   Útest_milp_2ru   ¢   sí  € õ
 
Œ�‰Œˆ€AØ
ˆaˆ�2�r�(Ð€AØ�rŒvˆgˆ,€CÝŒ6�2ˆ,€CÝ(¨¨C°Ñ5Ô5Ðõ �! ! S¨# ¸DÐAÑAÔA€DÝ�!Ð!2ÀÐEÑEÔE€DÝ�! 1 c¨3 - ¸dÐCÑCÔC€DÝ�!Ð"3Ð!4À$ÐGÑGÔG€DÝ�! Ø   œe S¨¨!¨¤W¨c°"°1°"¬gÐ6Ø   œe S¨¨¨¤W¨c°!°"°"¬gÐ6ð8ð9ñ 9ô 9€Dõ �! Ý-¨a°°°¬e°S¸¸!¸´W¸cÀ"À1À"¼gÑFÔFÝ-¨a°°°¬e°S¸¸¸´W¸cÀ!À"À"¼gÑFÔFðHðIñ Iô I€Dõ �! Ø   œe S¨¨!¨¤W¨c°"°1°"¬gÐ6Ý-¨a°°°¬e°S¸¸¸´W¸cÀ!À"À"¼gÑFÔFðHðIñ Iô I€Dõ 
Œ�4”6˜4œ6 4¤6¨4¬6°4´6¸4¼6À4Ä6ÐJÑ	KÔ	K€BÝŒ8�T”X˜tœx¨¬Ø”X˜tœx¨¬°4´8ð=ñ >ô >€Då„J×Ò˜r¥2¤?°A°q°6¸2¼8Ñ#DÔ#DÑEÔEÐEÝ„J×Ò˜t RÑ(Ô(Ð(õ �  C¨ Ð
.Ñ
.Ô
.€CÝ„J×Ò˜sœu q¨# hÑ/Ô/Ð/Ý„J×Ò˜sœw¨Ñ-Ô-Ð-Ð-Ð-rN   c                  ó
  — ddg} ddgddgddgg}g d¢}t          j        |t           j         t           j        ¬¦  «        }t	          |||¦  «        }t          j        | ¦  «        }t          | ||¬¦  «        }t          |j        d	¦  «         t          j	        |j
        ddg¦  «        st          j	        |j
        ddg¦  «        sJ ‚t          | |¬
¦  «        }t          |j        d¦  «         t          |j
        ddg¦  «         d S )Nr   r@   r   r   r   )r   é   rw   ©Údtypera   r_   rc   gffffffÀgÍÌÌÌÌÌü?gffffff@)r   Ú	full_likere   Úfloat64r	   Ú	ones_liker   r   rF   ÚallcloserD   )r.   r5   rj   ri   r   r   r9   s          r!   Útest_milp_3r~   Ç   s  € ð 
ˆBˆ€AØ
ˆaˆ�1�a�&˜1˜a˜&Ð!€AØ
ˆ+ˆ+€CÝ
Œ,�s�RœV˜G­2¬:Ð
6Ñ
6Ô
6€CÝ" 1 c¨3Ñ/Ô/€Kå”,˜q‘/”/€Kõ � ¸Ð
EÑ
EÔ
E€CÝ�C”G˜RÑ Ô Ð åŒ;�s”u˜q !˜fÑ%Ô%ÐC­¬°S´U¸QÀ¸FÑ)CÔ)CÐCÐCÐCõ � Ð
,Ñ
,Ô
,€CÝ�C”G˜TÑ"Ô"Ð"Ý�C”E˜C ˜:Ñ&Ô&Ð&Ð&Ð&rN   c                  ój  — ddg} ddg}ddgddgddgg}dt           j         t           j         g}t           j        dd	g}t          |||¦  «        }t          t           j         t           j        ¦  «        }t	          | |||¬
¦  «        }t          |j        d¦  «         t          |j        ddg¦  «         d S )Né   r   r   r   éüÿÿÿr@   iòÿÿÿißÿÿÿé   ©r   r   r   é;   g      @é   )r   re   r	   r   r   r   rF   rD   )r.   r   r5   ri   rj   r   r   r9   s           r!   Útest_milp_4r†   Þ   sÁ   € ð 
ˆAˆ€AØ�a�&€KØ
ˆQˆ�"�b�˜A˜q˜6Ð"€AØ•”��"œ&˜Ð
!€CÝŒ6�3˜Ð
€CÝ" 1 c¨3Ñ/Ô/€KÝ•R”V�G�RœVÑ$Ô$€Få
ˆq˜k°&Ø&ð(ñ (ô (€Cå�C”G˜RÑ Ô Ð Ý�C”E˜C ˜8Ñ$Ô$Ð$Ð$Ð$rN   c                  ó  — g d¢} g d¢}g d¢}t           j        t           j        dg}t          ||¦  «        }g d¢g d¢g}t           j         dg}ddg}t          |||¦  «        }t	          | |||¬	¦  «        }	t          |	j        d
¦  «         d S )N)rb   r_   r@   )r   r   r   )r   r   r   r   )r   r   r   )r   r   r   rw   r…   rƒ   iôÿÿÿ)r   re   r   r	   r   r   rF   )
r.   r   ÚlbÚubr   r5   ri   rj   r   r9   s
             r!   Útest_milp_5rŠ   ï   s¬   € ð 	ˆˆ€AØ�)�)€KØ	ˆˆ€BÝ
Œ&•"”&˜!Ð	€BÝ�B˜‰^Œ^€FØ	ˆˆ�I�I�IÐ€AÝŒFˆ7�Bˆ-€CØˆbˆ'€CÝ" 1 c¨3Ñ/Ô/€Kå
ˆq˜k°&Ø&ð(ñ (ô (€Cõ �C”G˜SÑ!Ô!Ð!Ð!Ð!rN   c                  ó  — d} t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||||f| ¬¦  «        }t           j                             |j        d	¦  «         d S )
Nr   ©é   r`   é   é!   é   r   é   rŽ   ©é'   é   r�   é   rŽ   é   é   é   ©é   r‘   é   é   r–   é&   rŽ   rŽ   ©é)   rŽ   r•   é$   rš   r�   r”   rŽ   ©iÀ  iâ(  i:,  i/  ©r   r   r`   é   r…   r   r…   r   ra   i>  )r   rf   r   rX   r   rF   )r   ÚA_eqÚb_eqr.   r9   s        r!   Útest_milp_6r¦     s¬   € ð €KÝŒ8Ð4Ð4Ð4Ø5Ð5Ð5Ø5Ð5Ð5Ø5Ð5Ð5ð7ñ 8ô 8€Dõ Œ8Ð/Ð/Ð/Ñ0Ô0€DÝ
ŒÐ,Ð,Ð,Ñ-Ô-€Aå
�  t¨TÐ 2ÀÐ
LÑ
LÔ
L€Cå„J×Ò˜sœw¨Ñ-Ô-Ð-Ð-Ð-rN   c                  ó&  — ddg} ddg}dt           j         g}t           j        t           j        g}t          ||¦  «        }ddgg}dg}t          |||¦  «        }t	          | |||¬¦  «        }t           j                             |j        d¦  «         d S )Nç      ð?ç        r   r   g      à?rƒ   r   )r   re   r   r	   r   rX   Úassert_equalrA   )	r.   r   rˆ   r‰   r   r¤   r¥   r   r9   s	            r!   Útest_infeasible_prob_16609r«     sž   € ð 
ˆcˆ
€AØ�a�&€Kà
�bŒfˆWˆ€BÝ
Œ&•"”&Ð	€BÝ�B˜‰^Œ^€Fà�#ˆJˆ<€DØˆ5€DÝ" 4¨¨tÑ4Ô4€Kå
ˆq˜k°&Ø&ð(ñ (ô (€Cå„J×Ò˜CœJ¨Ñ*Ô*Ð*Ð*Ð*rN   r?   z*Iteration limit reached. (HiGHS Status 14:z-Often buggy, revisit with callbacks, gh-19255)r$   r€   zUnhandled 32-bit GCC FP bugr'   rL   r+   gš™™™™™¹?Ú
node_limitc                 óŒ  — t           j                             d¦  «        }|                     ddd¬¦  «        }t          j        dt           j         ¬¦  «        }t          j        dd¬¦  «        }t          |||¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          ||¦  «        }	t          j        d¦  «        }
t          j        d¦  «         }t          ||
|	|| ¬	¦  «        }|j                             |¦  «        sJ ‚|d
         €J ‚|d
         }d}t          j        ||z
  ||z  k    ¦  «        rt          j        ||z  ||z   k    ¦  «        sJ ‚t          j        ||z
  |k    ¦  «        rt          j        |||z   k    ¦  «        sJ ‚t          j        |t          j        |¦  «        ¦  «        sJ ‚d S )Nì   $sƒ¥Ü8 r   r   )éd   r¯   ©Úsizer¯   ©Ú
fill_valueé   )r   r   r   r'   rD   g:Œ0âŽyE>)r   ÚrandomÚdefault_rngÚintegersÚfullre   r	   r   rd   r   r   r    rB   Úallr}   rT   )r'   rL   Úrngr5   Úb_lbÚb_ubr   Úvariable_lbÚvariable_ubÚvariable_boundsr   Úc_vectorr9   rD   Útols                  r!   Útest_milp_timeout_16545rÂ   *  s²  € õ Œ)×
Ò
Ð 3Ñ
4Ô
4€CØ�Š�Q˜ 
ˆÑ+Ô+€AÝŒ7�3¥B¤F 7Ð+Ñ+Ô+€DÝŒ7�3 2Ð&Ñ&Ô&€DÝ" 1 d¨DÑ1Ô1€KÝ”(˜3‘-”-€KÝ”'˜#‘,”,€KÝ˜[¨+Ñ6Ô6€OÝ”'˜#‘,”,€KÝ”˜‘”ˆ}€HÝ
ØØØØØðñ ô €Cð Œ;×!Ò! #Ñ&Ô&Ð&Ð&Ð&ØˆsŒ8ÐÐÐð 	ˆCŒ€AØ
€CÝŒ6�$˜‘*  A¡Ò%Ñ&Ô&ÐF­2¬6°!°a±%¸4À#¹:Ò2EÑ+FÔ+FÐFÐFÐFÝŒ6�+ Ñ# qÒ(Ñ)Ô)ÐL­b¬f°Q¸+ÈÑ:KÒ5KÑ.LÔ.LÐLÐLÐLÝŒ;�q�"œ( 1™+œ+Ñ&Ô&Ð&Ð&Ð&Ð&Ð&rN   c            	      ó  — t           j                             d¦  «        } |                      ddd¬¦  «        }t          j        dt           j         ¬¦  «        }t          j        dd¬¦  «        }t          |d d	…         |d d	…         |d d	…         ¦  «        t          |d	d
…         |d	d
…         |d	d
…         ¦  «        t          |d
d …         |d
d …         |d
d …         ¦  «        g}|d d	…         |d d	…         |d d	…         f|d	d
…         |d	d
…         |d	d
…         f|d
d …         |d
d …         |d
d …         fg}t          j        d¦  «        }t          j        d¦  «        }t          ||¦  «        }t          j        d¦  «         }	t          |	||¬¦  «        }
t          |	||¬¦  «        }t          |	||||f¬¦  «        }|
j        r|j        sJ ‚t          |
j        |j        ¦  «         t          |j        |j        ¦  «         d S )Nr®   r   r   )r>   r>   r°   r>   r²   r   r   r   )r   r   )r   rµ   r¶   r·   r¸   re   r	   r   rd   r   r   r3   r   rD   )rº   r5   ÚblÚbur   Úconstraints2rˆ   r‰   r¿   r.   rl   rm   Úrefs                r!   Útest_three_constraints_16878rÈ   P  s  € õ Œ)×
Ò
Ð 3Ñ
4Ô
4€CØ�Š�Q˜ ˆÑ'Ô'€AÝ	Œ�¥¤˜wÐ	'Ñ	'Ô	'€BÝ	Œ�˜rÐ	"Ñ	"Ô	"€BÝ# A b q b¤E¨2¨b¨q¨b¬6°2°b°q°b´6Ñ:Ô:Ý# A a¨ c¤F¨B¨q°¨s¬G°R¸¸!¸´WÑ=Ô=Ý# A a b b¤E¨2¨a¨b¨b¬6°2°a°b°b´6Ñ:Ô:ð<€Kð �r˜�r”U˜B˜r ˜rœF B r¨ r¤FÐ+Ø�q˜�s”V˜R  ! œW b¨¨1¨¤gÐ.Ø�q�r�r”U˜B˜q˜r˜rœF B q r r¤FÐ+ð-€Lõ 
Œ�!‰Œ€BÝ	Œ�‰Œ€BÝ˜R ‘n”n€OÝ	Œ�‰Œˆ€AÝ�˜/°{ÐCÑCÔC€DÝ�˜/°|ÐDÑDÔD€DÝ
ˆq˜°q¸"¸b°kÐ
BÑ
BÔ
B€CØŒ<Ð(˜DœLÐ(Ð(Ð(Ý�D”F˜CœEÑ"Ô"Ð"Ý�D”F˜CœEÑ"Ô"Ð"Ð"Ð"rN   c            	      óè  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }g d¢}g }|D ]p}t          |dt           j        f| ||fd	d
|i¬¦  «        }|j        |k    sJ ‚|j        |j        |j        z
  |j        z  k    sJ ‚|                     |j        ¦  «         Œqt          j        t          j	        |¦  «        dk     ¦  «        sJ ‚d S )NrŒ   r’   r™   rž   r¡   r¢   )g      Ð?g{®Gáz„?gü©ñÒMbP?r   TÚmip_rel_gap)r.   r   r   r   r'   )
r   rf   r   re   rK   rF   rJ   Úappendr¹   Údiff)r¤   r¥   r.   Úmip_rel_gapsÚsol_mip_gapsrÊ   r9   s          r!   Útest_mip_rel_gap_passdownrÏ   i  s>  € õ
 Œ8Ð4Ð4Ð4Ø5Ð5Ð5Ø5Ð5Ð5Ø5Ð5Ð5ð7ñ 8ô 8€Dõ Œ8Ð/Ð/Ð/Ñ0Ô0€DÝ
ŒÐ,Ð,Ð,Ñ-Ô-€Aà&Ð&Ð&€LØ€LØ#ð )ð )ˆÝ�Q ¥2¤6˜{¸¸tÀTÐ8JØ#¨m¸[Ð-IðKñ Kô Kˆð Œ{˜kÒ)Ð)Ð)Ð)àŒ{˜sœw¨Ô);Ñ;¸S¼WÑDÒDÐDÐDÐDØ×Ò˜CœKÑ(Ô(Ð(Ð(õ
 Œ6•"”'˜,Ñ'Ô'¨!Ò+Ñ,Ô,Ð,Ð,Ð,Ð,Ð,rN   z&Upstream / Wrapper issue, see gh-20116c                  óf  — d} t          j        d| gd|  gg¦  «        }t          j        | dg¦  «        }t          ||¬¦  «        }t          ddgddg¦  «        }t          j        ddg¦  «        }t	          |||d¬¦  «        }|j        dk    sJ ‚t          j        ||j        z  |k     ¦  «        sJ ‚d S )Nl    J)£gi o�Y@r   )r5   r‰   r   r=   )r   rf   r	   r   r   rA   r¹   rD   )Úhr5   r6   r   r   r.   r9   s          r!   Útest_large_numbers_gh20116rÒ   †  s¿   € à€AÝ
Œ�8˜Q�- (¨Q¨B Ð0Ñ1Ô1€AÝ
Œ�!�Q�ÑÔ€AÝ" Q¨1Ð-Ñ-Ô-€KÝ�Q˜�F˜Q ˜FÑ#Ô#€FÝ
Œ�!�Q�ÑÔ€AÝ
� °FÈÐ
JÑ
JÔ
J€CØŒ:˜Š?ˆ?ˆ?ˆ?ÝŒ6�!�c”e‘)˜a’-Ñ Ô Ð Ð Ð Ð Ð rN   c                  ó  — ddl m}  dd l}|j        } |j        g d¢¦  «        } |j        g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g	¦  «        } |j        | | | | | | | | | g	¦  «        } |j        g d¢¦  «        }t          |||¦  «        }d}d}	 | ||||	ddi¬¦  «        }
 | ||||	ddi¬¦  «        }|
j        |j        k    sJ ‚t          |
j        |j        ¦  «         t          dd¬¦  «        }	g d¢}g d¢}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}g d¢}t          ||¬¦  «        } | |||	|ddi¬ ¦  «        }
 | |||	|ddi¬ ¦  «        }|
j        |j        k    sJ ‚t          |
j
        |j
        ¦  «         d S )!Nr   )r   )g4üŸªßxë¿gñUŸi‘†ê¿gûYnaÄ›é¿g)Èt�;*ä¿g±¾&Qà¿gˆZÃÚRà¿gŠÕÕÓýRß¿g�]XíPCÞ¿g>]¼£ïƒÙ¿gLÊY¯T]Ø¿çž1V‚×¿rÔ   gÑ‰oîÐìÖ¿gz|RXo5Ô¿g[TrëÁfÊ¿g×LßçÏé¿¿gÈ2’wíV»¿çÖj´Á./»¿rÕ   rÕ   ç       €rÖ   rÖ   rÖ   r©   r©   r©   r©   )r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r¨   r©   r©   r©   r©   )r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r¨   r©   r©   r©   r©   r©   r¨   r©   r©   r©   ç      9ÀrÖ   rÖ   rÖ   )r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   ç      ð¿r©   r©   r©   r©   r©   rØ   r©   r©   r©   ç       @r©   r©   r©   )r©   r©   r©   r©   r¨   r¨   r¨   r¨   r©   r¨   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   rÖ   r×   rÖ   rÖ   )r©   r©   r©   r©   rØ   rØ   rØ   rØ   r©   rØ   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   rÙ   r©   r©   )r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r¨   r¨   r¨   r©   r©   r©   r©   rÖ   rÖ   r×   rÖ   )r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   rØ   rØ   rØ   r©   r©   r©   r©   r©   r©   rÙ   r©   )r¨   r¨   r¨   r¨   r©   r©   r©   r©   r¨   r©   r¨   r¨   r¨   r¨   r©   r¨   r¨   r©   r©   r©   r©   r¨   r¨   r¨   rÖ   rÖ   rÖ   r×   )rØ   rØ   rØ   rØ   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      Y@r©   r©   r©   r©   r©   r©   r©   r©   r   r,   r*   T)r.   r   r   r   r'   F)rˆ   r‰   )r   r   r   r   )r   gˆwëÂ0#@iüÿÿgxëÂ0Ã�À)r   r   r   r   )éÈ   r   r   r   )r   rÚ   r   r   )r   r   éÐ  r   )r   r   r   rÛ   )r@   r   r   r   )r@   r@   r   r   )r   r   rÚ   rÚ   éè  rÜ   r   r   )r‰   r-   )Úscipy.optimizer   Únumpyre   rf   r	   rA   r   rF   r   rD   )r   r   re   r.   r5   rÄ   rÅ   r   r   r   Úr1Úr2r‰   s                r!   Útest_presolve_gh18907rá   “  sê  € Ø#Ð#Ð#Ð#Ð#Ð#ØÐÐÐØ
Œ&€Cð 	ˆŒð 6ð 6ð 6ñ 	7ô 	7€Að 	ˆŒð Kð Kð KðPð Pð PðMð Mð MðLð Lð LðOð Oð OðLð Lð LðJð Jð JðLð Lð LðPð Pð Pð!Qñ 	Rô 	R€Að$ 
ˆŒ�C�4˜#˜ ˜t c T¨C¨4°#°¸°t¸c¸TÀCÀ4ÐHÑ	IÔ	I€BØ	ˆŒÐ8Ð8Ð8Ñ	9Ô	9€BÝ" 1 b¨"Ñ-Ô-€KØ€KØ€FØ	ˆ�˜{¸ÈFØ! 4Ð(ð
*ñ 
*ô 
*€Bà	ˆ�˜{¸ÈFØ! 5Ð)ð
+ñ 
+ô 
+€BàŒ9˜œ	Ò!Ð!Ð!Ð!Ý�B”F˜BœFÑ#Ô#Ð#õ �q˜QÐÑÔ€FØ�,�,€KØ.Ð.Ð.€AØ	ˆˆ�|�|�| ^ ^ ^°^°^°^Ø	ˆˆ˜/˜/˜/¨=¨=¨=¸.¸.¸.ð	J€Aà	+Ð	+Ð	+€BÝ" 1¨Ð,Ñ,Ô,€KØ	ˆ�˜{°FØ%°
¸EÐ/Bð
Dñ 
Dô 
D€Bà	ˆ�˜{°FØ%°
¸EÐ/Bð
Dñ 
Dô 
D€BàŒ9˜œ	Ò!Ð!Ð!Ð!Ý�B”D˜"œ$ÑÔÐÐÐrN   c            	      ó‚  — t          j        dt           j        ¬¦  «        } |                      ¦   «         }t          j        g d¢t           j        ¬¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d	¢gt           j        ¬¦  «        }t          | ||||f¬
¦  «        }|j        sJ ‚t          ||j        z  |¦  «         d S )Nr€   rx   )é*   éü   i  rŸ   éÞ   é0   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   )	r   rd   Úint64ÚcopyÚasarrayr   r3   r   rD   )r.   r   r6   Úar9   s        r!   Útest_regression_gh24141rë   Ì  sß   € Ý
Œ��œÐ"Ñ"Ô"€AØ—&’&‘(”(€Kå
Œ
Ð.Ð.Ð.µb´hÐ?Ñ?Ô?€AÝ
Œ
Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ðõ ŒXð	ñ 	ô 	€Aõ ˆq˜k¸¸1¸a°yÐ
AÑ
AÔ
A€CàŒ;ÐÐˆ;Ý�A˜œ‘I˜qÑ!Ô!Ð!Ð!Ð!rN   ).Ú__doc__r   ÚsysrÞ   r   Únumpy.testingr   r   r   Útest_linprogr   rÝ   r   r   r	   Úscipyr
   ÚmaxsizeÚ	_IS_32BITr"   ÚmarkÚxfailr;   rM   rP   r]   ru   r~   r†   rŠ   Úxslowr¦   r«   Ú	_msg_timeÚ	_msg_iterÚskipifÚintpÚitemsizeÚslowÚparametrizerÂ   rÈ   rÏ   rÒ   rá   rë   © rN   r!   ú<module>rþ      sè  ððð ð 
€	€	€	Ø 
€
€
€
à Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø €€€à &Ð &Ð &Ð &Ð &Ð &Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð ð Œ[˜5Ò €	ð9;ð 9;ð 9;ðx „×Ò�uØAð ñ Cô Cðð ñCô Cðð$%4ð %4ð %4ðP#ð #ð #ðBð Bð Bð"".ð ".ð ".ðJ'ð 'ð 'ð.%ð %ð %ð""ð "ð "ð& „Ôð.ð .ñ Ôð.ð +ð +ð +ð& 4€	Ø8€	ð „×ÒÐIÐÑJÔJØ„×Ò�G�B”G˜A‘J”JÔ'¨!Ò+Ø8ð ñ :ô :à„ÔØ„×Ò˜) UÐ+°¸cÐ/BÀIÐ.NØ0<¸aÐ/@À)Ð.Lð.Nñ Oô Oð'ð 'ñOô Oñ Ôñ:ô :ñ KÔJð'ð@#ð #ð #ð2 „Ôð-ð -ñ Ôð-ð8 „×ÒÐBÐÑCÔCð	!ð 	!ñ DÔCð	!ð7 ð 7 ð 7 ðr"ð "ð "ð "ð "rN   