Ë
    âQ(h~G  ã            
       ó>  — 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(                  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(                  jF                  ej(                  j+                  d¬«      ej(                  jI                   ejJ                  d«      jL                  dk  d¬«      ej(                  jN                  ej(                  jQ                  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(                  j+                  d%¬«      d&„ «       Z,d'„ Z-y)(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 «       d} t        j                  t        | ¬«      5  t        t        j                  d«      «       d d d «       t        j                  t        | ¬«      5  t        g «       d d d «       t        j                  t        | ¬«      5  t        d «       d d d «       d} t        j                  t        | ¬«      5  t        dd¬	«       d d d «       d
} t        j                  t        t        j                  | «      ¬«      5  t        dd¬«       d d d «       t        j                  t        t        j                  | «      ¬«      5  t        t        j                  d«      g d¢gddgddgf¬«       d d d «       t        j                  t        t        j                  | «      ¬«      5  t        t        j                  d«      ddggdgt	        j
                  dg«      f¬«       d d d «       d} t        j                  t        t        j                  | «      ¬«      5  t        t        j                  d«      ddggdgdgf¬«       d d d «       d} t        j                  t        | ¬«      5  t        ddgt	        j
                  ddg«      ¬«       d d d «       d} t        j                  t        | ¬«      5  t        g d¢ddg¬«       d d d «       t        j                  t        | ¬«      5  t        g d¢g d¢¬«       d d d «       d} t        j                  t        | ¬«      5  t        g d¢ddgt	        j
                  ddg«      f¬	«       d d d «       d} t        j                  t        | ¬«      5  t        g d¢ddgg d¢f¬	«       d d d «       t        j                  t        | ¬«      5  t        g d¢g d¢ddgf¬	«       d d d «       d} t        j                  t        | ¬«      5  t        g d¢ddgddgf¬	«       d d d «       t        j                  t        | ¬«      5  t        g d¢g d¢g d¢f¬	«       d d d «       t        j                  t        | ¬«      5  t        g d¢g d¢t        «       ddgf¬	«       d d d «       y # 1 sw Y   �ŒˆxY w# 1 sw Y   �ŒQxY w# 1 sw Y   �Œ/xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒçxY w# 1 sw Y   �Œ®xY w# 1 sw Y   �ŒZxY w# 1 sw Y   �ŒõxY w# 1 sw Y   �Œ¡xY w# 1 sw Y   �ŒdxY w# 1 sw Y   �Œ:xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒÑxY w# 1 sw Y   �Œ£xY w# 1 sw Y   �ŒwxY w# 1 sw Y   �ŒIxY w# 1 sw Y   �ŒxY w# 1 sw Y   y xY w)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/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_milp.pyÚtest_milp_ivr"      so  € à)€GÜ	�‰”z¨Ô	1ñ 'ÜŒV×Ñ˜q !˜fÓ%Ô&÷'ð K€GÜ	�‰”z¨Ô	1ñ ÜŒR�X‰X�fÓÔ÷ä	�‰”z¨Ô	1ñ ÜˆRŒ÷ä	�‰”z¨Ô	1ñ ÜˆTŒ
÷ð D€GÜ	�‰”z¨Ô	1ñ ÜˆQ�rÕ÷ð M€GÜ	�‰”z¬¯©°7Ó);Ô	<ñ  ÜˆQ˜BÕ÷ ä	�‰”z¬¯©°7Ó);Ô	<ñ EÜŒR�X‰X�a‹[ª	 {°Q¸°F¸QÀ¸FÐ&CÕD÷Eä	�‰”z¬¯©°7Ó);Ô	<ñ NÜŒR�X‰X�a‹[¨¨A¨ x°!°´f×6FÑ6FÈÀsÓ6KÐ&LÕM÷Nð =€GÜ	�‰”z¬¯©°7Ó);Ô	<ñ <ÜŒR�X‰X�a‹[¨¨A¨ x°!°°q°cÐ&:Õ;÷<ð 4€GÜ	�‰”z¨Ô	1ñ ;Üˆa�ˆV¤×!1Ñ!1°1°a°&Ó!9Õ:÷;ð€Gä	�‰”z¨Ô	1ñ ,ÜŠY Q¨ FÕ+÷,ä	�‰”z¨Ô	1ñ /ÜŠY¢IÕ.÷/ð =€GÜ	�‰”z¨Ô	1ñ CÜŠY  A ¬×(8Ñ(8¸!¸Q¸Ó(@ÐAÕB÷Cð G€GÜ	�‰”z¨Ô	1ñ 4ÜŠY  A ª	Ð2Õ3÷4ä	�‰”z¨Ô	1ñ 4ÜŠY¢	¨A¨q¨6Ð2Õ3÷4ð F€GÜ	�‰”z¨Ô	1ñ 1ÜŠY  A ¨¨A¨Ð/Õ0÷1ä	�‰”z¨Ô	1ñ ;ÜŠY¢	ª=Ð9Õ:÷;ä	�‰”z¨Ô	1ñ ;ÜŠY¢	¬C«E°1°a¨=Ð9Õ:÷;ð ;÷k'ñ 'ú÷ñ ú÷ñ ú÷ñ ú÷ñ ú÷ ñ  ú÷Eñ Eú÷Nñ Nú÷<ñ <ú÷;ñ ;ú÷
,ñ ,ú÷/ñ /ú÷Cñ Cú÷4ñ 4ú÷4ñ 4ú÷1ñ 1ú÷;ñ ;ú÷;ð ;ús×   ž!SÁ$SÂ&SÃS,ÄS9ÅTÆ+TÇ1<T É%)T-Ê3%T:Ë=UÌ2UÍ))U!Î7U.Ï0U;Ð+VÑ$VÒV"ÓSÓSÓS)Ó,S6Ó9TÔTÔTÔ T*Ô-T7Ô:UÕUÕUÕ!U+Õ.U8Õ;VÖVÖVÖ"V+Fz%Needs to be fixed in `_highs_wrapper`)ÚrunÚreasonc                 óZ  — d}ddi}t        j                  t        |¬«      5  t        d|¬«       d d d «       t	        d«      \  }}}}}ddd	d
œ}t        ||||fdd|¬«      }| j                  «       }	d|	j                  v sJ ‚d|	j                  v sJ ‚|j                  rJ ‚y # 1 sw Y   ŒrxY w)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ñ !ÜˆQ˜Õ ÷!ô ' q›/Ñ€A€qˆ!ˆW�aØ¨¸dÑC€GÜ
�  A q 	°&ÀaØô €Cð × Ñ Ó"€HØ%¨¯©Ñ5Ð5Ð5Ø 8§<¡<Ñ/Ð/Ð/Ø�{Š{Ðˆ?ˆ{÷!ð !ús   ¢B!Â!B*c                  ó¼  — t        d«      \  } }}}}t        || ||fdd¬«      }|j                  dk(  sJ ‚|j                  sJ ‚d}|j                  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                  j                  |«      sJ ‚|j                  |j                  cxu r1|j                  cxu r"|j                  cxu r|j                  cxu r	 �J ‚ J ‚t        dd¬«      }|j                  dk(  sJ ‚|j                  rJ ‚d}|j                  j                  |«      sJ ‚|j                  |j                  cxu r1|j                  cxu r"|j                  cxu r|j                  cxu r	 �J ‚ J ‚t        d«      }|j                  dk(  sJ ‚|j                  rJ ‚d}|j                  j                  |«      sJ ‚|j                  |j                  cxu r1|j                  cxu r"|j                  cxu r|j                  cxu r	 �J ‚ J ‚y )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€CØ�:‰:˜Š?Ðˆ?Ø�;Š;Ðˆ;Ø
B€CØ�;‰;×!Ñ! #Ô&Ð&Ð&Ü�c—e‘eœRŸZ™ZÔ(Ð(Ð(Ü�c—g‘gœuÔ%Ð%Ð%Ü�c×(Ñ(¬#Ô.Ð.Ð.Ü�c×(Ñ(¬%Ô0Ð0Ð0Ü�c—k‘k¤5Ô)Ð)Ð)ä& q›/Ñ€A€qˆ!ˆW�aÜ
��1‘ 1 a¨ )°FÈØ$ dÐ+ô-€Cà�:‰:˜Š?Ðˆ?Ø�{Š{Ðˆ?Ø
1€CØ�;‰;×!Ñ! #Ô&Ð&Ð&Ø�G‰G�s×)Ñ)ó 3¨S¯[©[ó 3Ø×!Ñ!ó3Ø%(§U¡Uó3Ø.2ð3ð 4ñ 3ð 4ð 3ô ˆq˜Ô
!€CØ�:‰:˜Š?Ðˆ?Ø�{Š{Ðˆ?Ø
7€CØ�;‰;×!Ñ! #Ô&Ð&Ð&Ø�G‰G�s×)Ñ)ó 3¨S¯[©[ó 3Ø×!Ñ!ó3Ø%(§U¡Uó3Ø.2ð3ð 4ñ 3ð 4ð 3ô ˆr‹(€CØ�:‰:˜Š?Ðˆ?Ø�{Š{Ðˆ?Ø
7€CØ�;‰;×!Ñ! #Ô&Ð&Ð&Ø�G‰G�s×)Ñ)ó 3¨S¯[©[ó 3Ø×!Ñ!ó3Ø%(§U¡Uó3Ø.2ð3ð 4ñ 3ð 4ñ 3ó    c                  ój   — t        d«      } | j                  dk(  sJ ‚t        | j                  dg«       y )Nr   r   )r   rF   r   rD   )r9   s    r!   Útest_milp_optional_argsrP   Š   s+   € ä
ˆq‹'€CØ�7‰7�aŠ<Ðˆ<Ü�s—u‘u˜q˜cÕ"rN   c            	      ó  — d} t        | «      \  }}}}}t        j                  |«      }t        |dz  |||fdd¬«      }t	        j
                  |j                  «      }|j                  «       |z  j                  | dz  | | «      }t	        j                  |d¬«      }	t        j                  j                  |	j                  d¬«      |«       t        j                  j                  |	j                  d¬«      |«       t        j                  j                  t	        j                  |	«      j                  «       |«       t        j                  j                  t	        j                  |	d d …d d d…f   «      j                  «       |«       y )	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]   ‘   s!  € à	€AÜ& q›/Ñ€A€qˆ!ˆW�aÜ×Ñ˜Ó€AÜ
��1‘ 1 a¨ )°FÈÔ
J€Cô 	�‰�—‘‹€AØ	�‰Ó	˜QÑ	×'Ñ'¨¨1©¨a°Ó3€AÜ�V‰V�A˜AÔ€FÜ‡J�J×Ñ˜vŸz™z¨q˜zÓ1°1Ô5Ü‡J�J×Ñ˜vŸz™z¨q˜zÓ1°1Ô5Ü‡J�J×ÑœrŸw™w v›×2Ñ2Ó4°aÔ8Ü‡J�J×ÑœrŸw™w vªa±°2°¨g¡Ó7×;Ñ;Ó=¸qÕArN   c                  óX  — 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                  j                  |t        j                  ddg|j                  «      «       t         j                  j                  |d
«       t	        | |||f¬«      }t         j                  j                  |j                  ddg«       t         j                  j                  |j                  d«       y )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‰vˆgˆ,€CÜ�6‰6�2ˆ,€CÜ(¨¨C°Ó5Ðô �! ! S¨# ¸DÔA€DÜ�!Ð!2ÀÔE€DÜ�! 1 c¨3 - ¸dÔC€DÜ�!Ð"3Ð!4À$ÔG€DÜ�! Ø  ˜e S¨¨! W¨c°"°1¨gÐ6Ø  ˜e S¨¨ W¨c°!°"¨gÐ6ð8ô9€Dô �! Ü-¨a°°¨e°S¸¸!°W¸cÀ"À1¸gÓFÜ-¨a°°¨e°S¸¸°W¸cÀ!À"¸gÓFðHôI€Dô �! Ø  ˜e S¨¨! W¨c°"°1¨gÐ6Ü-¨a°°¨e°S¸¸°W¸cÀ!À"¸gÓFðHôI€Dô 
�‰�4—6‘6˜4Ÿ6™6 4§6¡6¨4¯6©6°4·6±6¸4¿6¹6À4Ç6Á6ÐJÓ	K€BÜ�8‰8�T—X‘X˜tŸx™x¨¯©Ø—X‘X˜tŸx™x¨¯©°4·8±8ð=ó >€Dä‡J�J×Ñ˜r¤2§?¡?°A°q°6¸2¿8¹8Ó#DÔEÜ‡J�J×Ñ˜t RÔ(ô �  C¨ Ô
.€CÜ‡J�J×Ñ˜sŸu™u q¨# hÔ/Ü‡J�J×Ñ˜sŸw™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«       y )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™V˜G¬2¯:©:Ô
6€CÜ" 1 c¨3Ó/€Kä—,‘,˜q“/€Kô � ¸Ô
E€CÜ�C—G‘G˜RÔ ä�;‰;�s—u‘u˜q !˜fÔ%¬¯©°S·U±U¸QÀ¸FÔ)CÐCÐCô � Ô
,€CÜ�C—G‘G˜TÔ"Ü�C—E‘E˜C ˜:Õ&rN   c                  ó|  — 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«       y )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‰6�3˜Ð
€CÜ" 1 c¨3Ó/€KÜ”R—V‘V�GœRŸV™VÓ$€Fä
ˆq˜k°&Ø&ô(€Cä�C—G‘G˜RÔ Ü�C—E‘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
«       y )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Ð€AÜ�F‰Fˆ7�Bˆ-€CØˆbˆ'€CÜ" 1 c¨3Ó/€Kä
ˆq˜k°&Ø&ô(€Cô �C—G‘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	                  |j
                  d	«       y )
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¥     su   € ð €KÜ�8‰8Ò4Ú5Ú5Ú5ð7ó 8€Dô �8‰8Ò/Ó0€DÜ
�‰Ò,Ó-€Aä
�  t¨TÐ 2ÀÔ
L€Cä‡J�J×Ñ˜sŸw™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                  |j                  d«       y )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‰fˆWˆ€BÜ
�&‰&”"—&‘&Ð	€BÜ�B˜‹^€Fà�#ˆJˆ<€DØˆ5€DÜ" 4¨¨tÓ4€Kä
ˆq˜k°&Ø&ô(€Cä‡J�J×Ñ˜CŸJ™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                 óx  — t         j                  j                  d«      }|j                  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                  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 ‚y )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Á   )  sz  € ô �)‰)×
Ñ
Ð 3Ó
4€CØ�‰�Q˜ 
ˆÓ+€AÜ�7‰7�3¤B§F¡F 7Ô+€DÜ�7‰7�3 2Ô&€DÜ" 1 d¨DÓ1€KÜ—(‘(˜3“-€KÜ—'‘'˜#“,€KÜ˜[¨+Ó6€OÜ—'‘'˜#“,€KÜ—‘˜“ˆ}€HÜ
ØØØØØô€Cð �;‰;×!Ñ! #Ô&Ð&Ð&Øˆs‰8ÐÐÐð 	ˆC‰€AØ
€CÜ�6‰6�$˜‘*  A¡Ñ%Ô&¬2¯6©6°!°a±%¸4À#¹:Ñ2EÔ+FÐFÐFÜ�6‰6�+ Ñ# qÑ(Ô)¬b¯f©f°Q¸+ÈÑ:KÑ5KÔ.LÐLÐLÜ�;‰;�qœ"Ÿ(™( 1›+Ô&Ð&Ñ&rN   c            	      ó^  — t         j                  j                  d«      } | j                  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                  «       y )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Ç   Q  s®  € ô �)‰)×
Ñ
Ð 3Ó
4€CØ�‰�Q˜ ˆÓ'€AÜ	�‰�¤§¡˜wÔ	'€BÜ	�‰�˜rÔ	"€BÜ# A b q E¨2¨b¨q¨6°2°b°q°6Ó:Ü# A a¨ F¨B¨q°¨G°R¸¸!°WÓ=Ü# A a b E¨2¨a¨b¨6°2°a°b°6Ó:ð<€Kð �r˜�U˜B˜r ˜F B r¨ FÐ+Ø�q˜�V˜R  !˜W b¨¨1 gÐ.Ø�q�r�U˜B˜q˜r˜F B q r FÐ+ð-€Lô 
�‰�!‹€BÜ	�‰�‹€BÜ˜R “n€OÜ	�‰�‹ˆ€AÜ�˜/°{ÔC€DÜ�˜/°|ÔD€DÜ
ˆq˜°q¸"¸b°kÔ
B€CØ�<Š<˜DŸLšLÐ(Ð(Ü�D—F‘F˜CŸE™EÔ"Ü�D—F‘F˜CŸE™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 ]ˆ  }t        |dt         j                  f| ||fd	d
|i¬«      }|j                  |k  sJ ‚|j                  |j
                  |j                  z
  |j
                  z  k(  sJ ‚|j                  |j                  «       ŒŠ t        j                  t        j                  |«      dk  «      sJ ‚y )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Î   j  sø   € ô
 �8‰8Ò4Ú5Ú5Ú5ð7ó 8€Dô �8‰8Ò/Ó0€DÜ
�‰Ò,Ó-€Aâ&€LØ€LØ#ò )ˆÜ�Q ¤2§6¡6˜{¸¸tÀTÐ8JØ#¨m¸[Ð-IôKˆð �{‰{˜kÒ)Ð)Ð)à�{‰{˜sŸw™w¨×);Ñ);Ñ;¸S¿W¹WÑDÒDÐDÐDØ×Ñ˜CŸK™KÕ(ð)ô �6‰6”"—'‘'˜,Ó'¨!Ñ+Ô,Ð,Ñ,rN   z&Upstream / Wrapper issue, see gh-20116c                  ód  — 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 ‚y )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€AÜ
�‰�!�Q�Ó€AÜ" Q¨1Ô-€KÜ�Q˜�F˜Q ˜FÓ#€FÜ
�‰�!�Q�Ó€AÜ
� °FÈÔ
J€CØ�:‰:˜Š?Ðˆ?Ü�6‰6�!�c—e‘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                  «       y )!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   rD   r   )r   r   re   r.   r5   rÃ   rÄ   r   r   r   Úr1Úr2rˆ   s                r!   Útest_presolve_gh18907rà   ”  sÔ  € Ý#ÛØ
�&‰&€Cð 	ˆ�‰ò 6ó 	7€Að 	ˆ�‰ò KòPòMòLòOòLòJòLòPð!Qó 	R€Að$ 
ˆ�‰�C�4˜#˜ ˜t c T¨C¨4°#°¸°t¸c¸TÀCÀ4ÐHÓ	I€BØ	ˆ�‰Ò8Ó	9€BÜ" 1 b¨"Ó-€KØ€KØ€FÙ	�˜{¸ÈFØ! 4Ð(ô
*€Bá	�˜{¸ÈFØ! 5Ð)ô
+€Bà�9‰9˜Ÿ	™	Ò!Ð!Ð!Ü�B—D‘D˜"Ÿ$™$Ôô �q˜QÔ€FÚ€KÚ.€AÚ	’|¢^²^Ú	š/ª=º.ð	J€Aâ	+€BÜ" 1¨Ô,€KÙ	�˜{°FØ%°
¸EÐ/Bô
D€Bá	�˜{°FØ%°
¸EÐ/Bô
D€Bà�9‰9˜Ÿ	™	Ò!Ð!Ð!Ü�B—D‘D˜"Ÿ$™$Õ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Úthread_unsafeÚskipifÚintpÚitemsizeÚslowÚparametrizerÁ   rÇ   rÎ   rÑ   rà   © rN   r!   ú<module>rô      sÑ  ðñó 
Û 
ã ß =Û å &ß 9Ñ 9Ý ð �[‰[˜5Ñ €	ò9;ðx ‡�×Ñ�uØAð ó CñóCðò$%4òP#òBò"".òJ'ò.%ò""ð& ‡�×Ññ.ó ð.ò +ð& 4€	Ø8€	à‡�×Ñà‡�×ÑÐIÐÓJØ‡�×Ñ�G�B—G‘G˜A“J×'Ñ'¨!Ñ+Ø8ð ó :à‡�×ÑØ‡�×Ñ˜) UÐ+°¸cÐ/BÀIÐ.NØ0<¸aÐ/@À)Ð.Lð.Nó Oñ'óOó ó:ó Kó ð'ò@#ð2 ‡�×Ññ-ó ð-ð8 ‡�×ÑÐBÐÓCñ	!ó Dð	!ó7 rN   