Ë
    ÷Q(h;W  ã                   óš  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZmZmZ d dlm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#„ Z3ejh                  jk                  d$ejl                  ejn                  ejp                  ejr                  g«      d%„ «       Z:ejh                  jk                  d&ejl                  ejn                  ejp                  ejr                  g«      d'„ «       Z;d(„ Z<ejh                  jk                  d$ejr                  ejp                  g«      d)„ «       Z=d*„ Z>d+„ Z?ejh                  jk                  d,d-d.g«      d/„ «       Z@d0„ ZAd1„ ZBd2„ ZCejh                  jk                  d3d4d5g«      d6„ «       ZDd7„ ZEy)8é    N)Úexpit)Úmake_regression)ÚIsotonicRegressionÚ_make_uniqueÚcheck_increasingÚisotonic_regression)Úshuffle)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)Úcheck_arrayc                  óÜ   — t        «       } g d¢}g d¢}g d¢}t        |||d¬«      \  }}}| j                  |||¬«      }| j                  |||¬«      j	                  |«      }t        ||«       y )N©é   é   é   é   é   é   é   ©r   é)   é3   r   r   r   é   r   )Úrandom_state©Úsample_weight)r   r	   Úfit_transformÚfitÚ	transformr   )	ÚirÚxÚyr   Úx_sÚy_sÚsample_weight_sÚy_transformedÚy_transformed_ss	            úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_isotonic.pyÚtest_permutation_invariancer*      ss   € ô 
Ó	€BÚ€AÚ €AÚ)€MÜ '¨¨1¨mÈ!Ô LÑ€CˆˆoØ×$Ñ$ Q¨¸Ð$ÓG€MØ—f‘f˜S #°_�fÓE×OÑOÐPQÓR€Oä�} oÕ6ó    c                  óº   — g d¢} g d¢}t        j                  «       5  t        j                  dt        «       t	        | |«      }d d d «       sJ ‚y # 1 sw Y   ŒxY w)N©r   r   r   )r   gš™™™™™ñ?gÍÌÌÌÌÌð?Úerror©ÚwarningsÚcatch_warningsÚsimplefilterÚUserWarningr   ©r"   r#   Úis_increasings      r)   Ú-test_check_increasing_small_number_of_samplesr6   (   sS   € Ú€AÚ€Aä	×	 Ñ	 Ó	"ñ /Ü×Ñ˜g¤{Ô3Ü(¨¨AÓ.ˆ÷/ñ Ð‰=÷	/ð /úó   �'AÁAc                  óº   — g d¢} g d¢}t        j                  «       5  t        j                  dt        «       t	        | |«      }d d d «       sJ ‚y # 1 sw Y   ŒxY w)N©r   r   r   r   r   r   )r   ç      ø?g)\�Âõ(@ç{®Gáú!@r;   é2   r.   r/   r4   s      r)   Útest_check_increasing_upr=   3   sU   € Ú€AÚ&€Aô 
×	 Ñ	 Ó	"ñ /Ü×Ñ˜g¤{Ô3Ü(¨¨AÓ.ˆ÷/ñ Ð‰=÷	/ð /úr7   c                  óº   — g d¢} g d¢}t        j                  «       5  t        j                  dt        «       t	        | |«      }d d d «       sJ ‚y # 1 sw Y   ŒxY w)Nr9   r.   r/   r4   s      r)   Ú test_check_increasing_up_extremer?   ?   sU   € Ú€AÚ€Aô 
×	 Ñ	 Ó	"ñ /Ü×Ñ˜g¤{Ô3Ü(¨¨AÓ.ˆ÷/ñ Ð‰=÷	/ð /úr7   c                  óº   — g d¢} g d¢}t        j                  «       5  t        j                  dt        «       t	        | |«      }d d d «       rJ ‚y # 1 sw Y   ŒxY w)Nr9   )r   g      ø¿g)\�Âõ(Àç{®Gáú!ÀrA   éÎÿÿÿr.   r/   r4   s      r)   Útest_check_increasing_downrC   K   sX   € Ú€AÚ+€Aô 
×	 Ñ	 Ó	"ñ /Ü×Ñ˜g¤{Ô3Ü(¨¨AÓ.ˆ÷/ñ ÐÐˆ}÷	/ð /úr7   c                  óº   — g d¢} g d¢}t        j                  «       5  t        j                  dt        «       t	        | |«      }d d d «       rJ ‚y # 1 sw Y   ŒxY w)Nr9   )r   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿéûÿÿÿr.   r/   r4   s      r)   Ú"test_check_increasing_down_extremerJ   W   sX   € Ú€AÚ€Aô 
×	 Ñ	 Ó	"ñ /Ü×Ñ˜g¤{Ô3Ü(¨¨AÓ.ˆ÷/ñ ÐÐˆ}÷	/ð /úr7   c                  ó˜   — g d¢} g d¢}d}t        j                  t        |¬«      5  t        | |«      }d d d «       rJ ‚y # 1 sw Y   ŒxY w)Nr9   )r   rE   r   rG   r   rI   Úinterval©Úmatch)ÚpytestÚwarnsr3   r   )r"   r#   Úmsgr5   s       r)   Útest_check_ci_warnrR   c   sO   € Ú€AÚ€Að €CÜ	�‰”k¨Ô	-ñ /Ü(¨¨AÓ.ˆ÷/ñ ÐÐˆ}÷/ð /ús   ¦A Á A	c            	      ó2  — t        j                  g d¢«      } t        j                  g d¢«      }t        |t        | «      «       t        j                  g d¢«      } t        j                  g d¢«      }t        |t        | «      «       t        j                  t        | «      «      }t        dd¬«      }|j                  || «       t        |j                  || «      j                  |«      |j                  || «      «       t        |j                  |«      |j                  |«      «       t         j                  j                  t        | «      «      }t        dd¬«      }t        |j                  ||   | |   «      |j                  || «      |   «       t        |j                  ||   «      |j                  |«      |   «       t        «       }t        |j                  t        j                  t        |«      «      | «      t        j                  | «      «       y )N©r   r   r   é	   é   r   é
   )r   r   r   rV   rV   rV   rW   )rW   r   r   )r   r   r   ç        ç      ð?©Úy_minÚy_max)ÚnpÚarrayr   r   ÚarangeÚlenr   r   r    r   ÚpredictÚrandomÚpermutationÚonesÚmean)r#   Úy_r"   r!   Úperms        r)   Útest_isotonic_regressionrh   o   s~  € Ü
�‰Ò'Ó(€AÜ	�‰Ò(Ó	)€BÜ�rÔ.¨qÓ1Ô2ä
�‰’Ó€AÜ	�‰’)Ó	€BÜ�rÔ.¨qÓ1Ô2ä
�	‰	”#�a“&Ó€AÜ	 #¨SÔ	1€BØ‡F�Fˆ1ˆa„LÜ�r—v‘v˜a “|×-Ñ-¨aÓ0°"×2BÑ2BÀ1ÀaÓ2HÔIÜ�r—|‘| A“¨¯
©
°1«Ô6ô �9‰9× Ñ ¤ Q£Ó(€DÜ	 #¨SÔ	1€BÜ�r×'Ñ'¨¨$©°°4±Ó9¸2×;KÑ;KÈAÈqÓ;QÐRVÑ;WÔXÜ�r—|‘| A d¡GÓ,¨b¯l©l¸1«o¸dÑ.CÔDô 
Ó	€BÜ�r×'Ñ'¬¯©´°A³«¸Ó;¼R¿W¹WÀQ»ZÕHr+   c                  ó  — g d¢} g d¢}g d¢}t        «       }|j                  | |«       t        |j                  | |«      j                  | «      |j	                  | |«      «       t        ||j	                  | |«      «       y )N)r   r   r   r   r   r   ©r   r   r   r   r   r   )r:   r:   r   r   r   r   ©r   r   r   r    r   ©r"   r#   Úy_truer!   s       r)   Ú!test_isotonic_regression_ties_minrn   ‰   ók   € â€AÚ€AÚ#€Fô 
Ó	€BØ‡F�Fˆ1ˆa„LÜ�r—v‘v˜a “|×-Ñ-¨aÓ0°"×2BÑ2BÀ1ÀaÓ2HÔIÜ�v˜r×/Ñ/°°1Ó5Õ6r+   c                  ó  — g d¢} g d¢}g d¢}t        «       }|j                  | |«       t        |j                  | |«      j                  | «      |j	                  | |«      «       t        ||j	                  | |«      «       y )N)r   r   r   r   r   r   rj   )r   r   r   r   ç      @rq   rk   rl   s       r)   Ú!test_isotonic_regression_ties_maxrr   –   ro   r+   c                  óÆ   — g d¢} g d¢}g d¢}t        «       }|j                  | |«       t        |j                  | «      |d«       t        |j	                  | |«      |d«       y)aw  
    Test isotonic regression fit, transform  and fit_transform
    against the "secondary" ties method and "pituitary" data from R
     "isotone" package, as detailed in: J. d. Leeuw, K. Hornik, P. Mair,
     Isotone Optimization in R: Pool-Adjacent-Violators Algorithm
    (PAVA) and Active Set Methods

    Set values based on pituitary example and
     the following R command detailed in the paper above:
    > library("isotone")
    > data("pituitary")
    > res1 <- gpava(pituitary$age, pituitary$size, ties="secondary")
    > res1$x

    `isotone` version: 1.0-2, 2014-09-07
    R version: R version 3.1.1 (2014-07-10)
    )rV   rV   rV   rW   rW   rW   é   rt   rt   é   ru   )é   ç     €7@é   r   rv   é   g     €5@é   é   rw   ry   )çb„ðhã86@r|   r|   r|   r|   r|   r|   r|   r|   ç     @8@r}   r   N)r   r   r   r    r   rl   s       r)   Ú(test_isotonic_regression_ties_secondary_r~   £   sY   € ò$ 	2€AÚ:€Aò€Fô 
Ó	€BØ‡F�Fˆ1ˆa„LÜ˜bŸl™l¨1›o¨v°qÔ9Ü˜b×.Ñ.¨q°!Ó4°f¸aÕ@r+   c                  ó4  — t        j                  g d¢«      } t        j                  g d¢«      }t        j                  g d¢«      }t        «       }|j                  | |«       t	        |j                  | «      |«       t	        |j                  | |«      |«       y)ax  
    Non-regression test to handle issue 9432:
    https://github.com/scikit-learn/scikit-learn/issues/9432

    Compare against output in R:
    > library("isotone")
    > x <- c(0, 1, 1, 2, 3, 4)
    > y <- c(0, 0, 1, 0, 0, 1)
    > res1 <- gpava(x, y, ties="secondary")
    > res1$x

    `isotone` version: 1.1-0, 2015-07-24
    R version: R version 3.3.2 (2016-10-31)
    )r   r   r   r   r   r   )r   r   r   r   r   r   )rX   ç      Ð?r€   r€   r€   rY   N)r]   r^   r   r   r   r    r   rl   s       r)   Ú>test_isotonic_regression_with_ties_in_differently_sized_groupsr�   Ì   so   € ô 	�‰Ò#Ó$€AÜ
�‰Ò#Ó$€AÜ�X‰XÒ8Ó9€FÜ	Ó	€BØ‡F�Fˆ1ˆa„LÜ˜bŸl™l¨1›o¨vÔ6Ü˜b×.Ñ.¨q°!Ó4°fÕ=r+   c                  óŠ  — t        j                  g d¢«      } t        j                  g d¢«      }t        | d¬«      }t        ||«       t	        d¬«      j                  t        j                  t        | «      «      | «      }t        ||«       t        t        j                  |d d j                  «      |d d |dd  z
  dk\  «       y )N©rW   rU   rW   r   r   çffffff@r   )rW   ç      #@r…   r   ç333333@r†   r   F©Ú
increasingrE   r   r   )r]   r^   r   r
   r   r   r_   r`   r   rd   Úshape)r#   Úy_resultÚy_isorf   s       r)   Ú!test_isotonic_regression_reversedrŒ   ä   s—   € Ü
�‰Ò*Ó+€AÜ�x‰xÒ8Ó9€Hä ¨eÔ4€EÜ�E˜8Ô$ä	 uÔ	-×	;Ñ	;¼B¿I¹IÄcÈ!ÃfÓ<MÈqÓ	Q€BÜ�B˜Ô!Ü”r—w‘w˜r # 2˜wŸ}™}Ó-°°C°R°¸2¸a¸b¸6Ñ1AÀaÑ0GÕIr+   c            
      ó´  — t        j                  g d¢«      } t        j                  t        | «      «      }t	        d¬«      }t        j                  d¬«      5 }t        j                  d«       |j                  || «      }t        |D �cg c]  }dt        |j                  «      v ‘Œ c}«      sJ ‚	 d d d «       d   |d	   k  }|rJ ‚y c c}w # 1 sw Y   ŒxY w)
Nrƒ   Úautor‡   T©ÚrecordÚalwaysúinvalid value encountered in r   rE   ©r]   r^   r_   r`   r   r0   r1   r2   r   ÚallÚstrÚmessage©r#   r"   r!   Úwrf   Úwarnr5   s          r)   Ú(test_isotonic_regression_auto_decreasingrš   ð   sÅ   € ä
�‰Ò*Ó+€AÜ
�	‰	”#�a“&Ó€Aô 
 vÔ	.€BÜ	×	 Ñ	 ¨Ô	-ð Y°Ü×Ñ˜hÔ'Ø×Ñ˜a Ó#ˆäÐUVÖWÈTÐ3´s¸4¿<¹<Ó7HÒHÒWÔXÐXÑX÷	Yð �q‘E˜B˜r™F‘N€MÙÐÐˆ}ùò	 X÷	Yð Yúó   Á1CÂ	C	
Â'	CÃ	CÃCc            
      ó´  — t        j                  g d¢«      } t        j                  t        | «      «      }t	        d¬«      }t        j                  d¬«      5 }t        j                  d«       |j                  || «      }t        |D �cg c]  }dt        |j                  «      v ‘Œ c}«      sJ ‚	 d d d «       d   |d	   k  }|sJ ‚y c c}w # 1 sw Y   ŒxY w)
N)r   r„   r   r   rW   rU   rW   rŽ   r‡   Tr�   r‘   r’   r   rE   r“   r—   s          r)   Ú(test_isotonic_regression_auto_increasingr�     sÂ   € ä
�‰Ò*Ó+€AÜ
�	‰	”#�a“&Ó€Aô 
 vÔ	.€BÜ	×	 Ñ	 ¨Ô	-ð Y°Ü×Ñ˜hÔ'Ø×Ñ˜a Ó#ˆäÐUVÖWÈTÐ3´s¸4¿<¹<Ó7HÒHÒWÔXÐXÑX÷	Yð �q‘E˜B˜r™F‘N€MÙÐ‰=ùò	 X÷	Yð Yúr›   c                  óÊ  — t        «       } t        j                  j                  d«      }d}t	        j
                  t        |¬«      5  | j                  g d¢g d¢ddg«       d d d «       t	        j
                  t        |¬«      5  | j                  g d¢dd	g«       d d d «       d
}t	        j
                  t        |¬«      5  | j                  |j                  dd«      g d¢«       d d d «       d}t	        j
                  t        |¬«      5  | j                  |j                  dd«      «       d d d «       y # 1 sw Y   ŒÕxY w# 1 sw Y   Œ§xY w# 1 sw Y   ŒixY w# 1 sw Y   y xY w)Né*   z:Found input variables with inconsistent numbers of samplesrM   r-   )r   r   r   çš™™™™™¹?g333333ã?r   r   zX should be a 1d arrayr   rW   z0Isotonic regression input X should be a 1d array)
r   r]   rb   ÚRandomStaterO   ÚraisesÚ
ValueErrorr   Úrandnr    )r!   ÚrngrQ   s      r)   Útest_assert_raises_exceptionsr¦     s  € Ü	Ó	€BÜ
�)‰)×
Ñ
 Ó
#€Cà
F€CÜ	�‰”z¨Ô	-ñ 1Ø
�‰Šyš) c¨3 ZÔ0÷1ô 
�‰”z¨Ô	-ñ "Ø
�‰Šy˜1˜a˜&Ô!÷"ð #€CÜ	�‰”z¨Ô	-ñ ,Ø
�‰ˆs�y‰y˜˜BÓ¢Ô+÷,ð =€CÜ	�‰”z¨Ô	-ñ 'Ø
�‰�S—Y‘Y˜q "Ó%Ô&÷'ð '÷1ð 1ú÷"ð "ú÷,ð ,ú÷'ð 'ús0   ÁD5ÂEÃ %EÄ
"EÄ5D>ÅE
ÅEÅE"c                  óš  — t        «       } t        j                  j                  d«      }d}t        j                  |«      }|j                  dd|f¬«      dt        j                  dt        j                  |«      z   «      z  z   }t        j                  |«      }| j                  |||¬«      }| j                  ||«      }t        ||«       y )	NrŸ   éd   rB   r<   ©Úsizeg      I@r   r   )
r   r]   rb   r¡   r_   ÚrandintÚlogrd   r   r   )r!   r¥   Únr"   r#   ÚweightsÚy_set_valueÚy_default_values           r)   Ú3test_isotonic_sample_weight_parameter_default_valuer±   (  s¦   € ä	Ó	€Bä
�)‰)×
Ñ
 Ó
#€CØ€AÜ
�	‰	�!‹€AØ�‰�C˜ 1 $ˆÓ'¨$´·±¸¼B¿I¹IÀa»LÑ8HÓ1IÑ*IÑI€Aä�g‰g�a‹j€GØ×"Ñ" 1 a°wÐ"Ó?€KØ×&Ñ& q¨!Ó,€Oä�{ OÕ4r+   c                  óà   — t        dd¬«      } d}t        j                  |«      }t        j                  |«      }g d¢}t        j                  | j	                  ||«      «      }t        ||«       y )Nr   r   rZ   r   )r   r   r   r   r   r   )r   r]   r_   Úroundr   r   )r!   r­   r"   r#   Úy_testrŠ   s         r)   Ú test_isotonic_min_max_boundariesrµ   8  sW   € ä	 !¨1Ô	-€BØ	€AÜ
�	‰	�!‹€AÜ
�	‰	�!‹€AÚ€FÜ�x‰x˜×(Ñ(¨¨AÓ.Ó/€HÜ�x Õ(r+   c                  óx   — t        «       } g d¢}g d¢}g d¢}g d¢}| j                  |||¬«      }t        ||«       y )Nr   r   )r   çfffffæ+@r·   r·   r·   r·   r   r   )r   r   r   )r!   r"   r#   r   Ú
expected_yÚ
received_ys         r)   Útest_isotonic_sample_weightrº   C  s?   € Ü	Ó	€BÚ€AÚ €AÚ)€MÚ;€JØ×!Ñ! ! Q°mÐ!ÓD€Jä�z :Õ.r+   c                  óf  — t        j                  g d¢«      } t        j                  t        | «      «      }t	        dd¬«      }|j                  || «       d}t        j                  t        |¬«      5  |j                  t        |«      dz
  t        |«      dz   g«       d d d «       y # 1 sw Y   y xY w)NrT   rŽ   Úraise©rˆ   Úout_of_boundsz)in x_new is below the interpolation rangerM   rW   )r]   r^   r_   r`   r   r   rO   r¢   r£   ra   ÚminÚmax)r#   r"   r!   rQ   s       r)   Ú"test_isotonic_regression_oob_raiserÁ   N  s‰   € ä
�‰Ò'Ó(€AÜ
�	‰	”#�a“&Ó€Aô 
 v¸WÔ	E€BØ‡F�Fˆ1ˆa„Lð 6€CÜ	�‰”z¨Ô	-ñ /Ø
�
‰
”C˜“F˜R‘K¤ Q£¨"¡Ð-Ô.÷/÷ /ñ /ús   Á2,B'Â'B0c                  óˆ  — t        j                  g d¢«      } t        j                  t        | «      «      }t	        dd¬«      }|j                  || «       |j                  t        |«      dz
  t        |«      dz   g«      }|j                  |«      }t        |«      t        |«      k(  sJ ‚t        |«      t        |«      k(  sJ ‚y )NrT   rŽ   Úclipr½   rW   )	r]   r^   r_   r`   r   r   ra   r¿   rÀ   )r#   r"   r!   Úy1Úy2s        r)   Ú!test_isotonic_regression_oob_cliprÆ   ]  sœ   € ä
�‰Ò'Ó(€AÜ
�	‰	”#�a“&Ó€Aô 
 v¸VÔ	D€BØ‡F�Fˆ1ˆa„Lð 
�‰”S˜“V˜b‘[¤# a£&¨2¡+Ð.Ó	/€BØ	�‰�A‹€BÜˆr‹7”c˜"“gÒÐÐÜˆr‹7”c˜"“gÒÐÑr+   c                  óH  — t        j                  g d¢«      } t        j                  t        | «      «      }t	        dd¬«      }|j                  || «       |j                  t        |«      dz
  t        |«      dz   g«      }t        t        j                  |«      «      dk(  sJ ‚y )NrT   rŽ   Únanr½   rW   r   )r]   r^   r_   r`   r   r   ra   r¿   rÀ   ÚsumÚisnan)r#   r"   r!   rÄ   s       r)   Ú test_isotonic_regression_oob_nanrË   m  s~   € ä
�‰Ò'Ó(€AÜ
�	‰	”#�a“&Ó€Aô 
 v¸UÔ	C€BØ‡F�Fˆ1ˆa„Lð 
�‰”S˜“V˜b‘[¤# a£&¨2¡+Ð.Ó	/€BÜŒr�x‰x˜‹|Ó Ò!Ð!Ñ!r+   c                  óš  — t        j                  g d¢«      } t        j                  t        | «      «      }t	        dd¬«      }|j                  || «       t        j                  |t        j                  «      }t        j                  |«      }t         j                  j                  |j                  |«      |j                  |«      «       y )NrT   rŽ   rÃ   r½   )r]   r^   r_   r`   r   r   ÚpickleÚdumpsÚHIGHEST_PROTOCOLÚloadsÚtestingr   ra   )r#   r"   r!   Úir_serÚir2s        r)   Útest_isotonic_regression_picklerÔ   {  s†   € Ü
�‰Ò'Ó(€AÜ
�	‰	”#�a“&Ó€Aô 
 v¸VÔ	D€BØ‡F�Fˆ1ˆa„Lä�\‰\˜"œf×5Ñ5Ó6€FÜ
�,‰,�vÓ
€CÜ‡J�J×!Ñ! "§*¡*¨Q£-°·±¸Q³Õ@r+   c                  óÈ   — g d¢} g d¢}t        dd¬«      }|j                  | |«       t        j                  t        j                  |j                  | «      «      «      }|sJ ‚y )N)r   r   r   TrÃ   r½   )r   r   r]   r”   Úisfinitera   )r"   r#   r!   Úall_predictions_finites       r)   Ú!test_isotonic_duplicate_min_entryrØ   ˆ  sN   € Ú€AÚ€Aä	 t¸6Ô	B€BØ‡F�Fˆ1ˆa„LÜŸV™V¤B§K¡K°·
±
¸1³Ó$>Ó?ÐÙ!Ð!Ñ!r+   c                  óŒ  — t        j                  g d¢«      } t        | dd¬«      }t        j                  |dk\  «      sJ ‚t        j                  |dk  «      sJ ‚t        | ddd¬«      }t        j                  |dk\  «      sJ ‚t        j                  |dk  «      sJ ‚t        | dd¬«      }t        j                  |dk\  «      sJ ‚y )	N)gh‘í|?5ô?gJ+‡õ?gçû©ñÒMâ¿gÙÎ÷Sã¥Ó?g9´Èv¾Ÿæ¿gºI+‡Æ¿g/Ý$�•ù¿g‹lçû©ñð?g¼t“Vö?gåÐ"Ûù~þ?gáz®GáÊ?gyé&1¬œ?g#Ûù~j¼´¿gÑ"Ûù~jÜ?g;ßO�—n’?çTã¥›Ä Ø¿gyé&1¬ì¿rÚ   g¬Zd;õ¿g
×£p=
Ç?rX   r    rZ   r   F)r[   r\   rˆ   )r[   rˆ   )r]   r^   r   r”   )r"   r#   s     r)   Útest_isotonic_ymin_ymaxrÛ   ’  s±   € ô 	�‰ò	
ó	€Aô0 	˜A S°Ô4€Aä�6‰6�!�q‘&Œ>Ðˆ>Ü�6‰6�!�s‘(ÔÐÐô 	˜A S°ÀÔF€Aä�6‰6�!�q‘&Œ>Ðˆ>Ü�6‰6�!�s‘(ÔÐÐô 	˜A S°UÔ;€Aä�6‰6�!�q‘&Œ>Ð‰>r+   c                  ó0  — t         j                  j                  d«      } t        «       }d}t        j                  dd|«      }|| j                  |¬«      z   }| j                  |¬«      }d|dd |j                  |||¬	«       |j                  |||¬	«       y )
NrŸ   r<   rG   r   r©   r   r   rV   r   )r]   rb   r¡   r   ÚlinspaceÚuniformr   )r¥   Ú
regressionÚ	n_samplesr"   r#   r˜   s         r)   Útest_isotonic_zero_weight_looprá   ¾  s‘   € ô
 �)‰)×
Ñ
 Ó
#€Cô $Ó%€JØ€IÜ
�‰�B˜˜9Ó%€AØ	ˆC�K‰K˜YˆKÓ'Ñ'€Að 	�‰˜ˆÓ#€AØ€A€aˆ€FØ‡N�N�1�a q€NÔ)ð ‡N�N�1�a q€NÕ)r+   c                  óš  — t         j                  j                  d«      } d}d| j                  |«      z  dz
  }t        j                  | j                  |«      t        |«      «      j                  d«      j                  d«      }| j                  |«      }d|| j                  |«      dk  <   t        dd	d
¬«      }t        dd	d
¬«      }|j                  |||d¬«      \  }}|j                  ||«       |j                  |||¬«       d| j                  |«      z  dz
  }	|j                  |	«      }
|j                  |	«      }t        |
|«       y )Né{   iè  g      4@rW   Úint64Úfloat64r   r    r   rÃ   )r[   r\   r¾   F)r   Útrim_duplicatesr   )r]   rb   r¡   ÚrandÚlessr   Úastyper   Ú_build_yÚ_build_fr   ra   r   )r¥   rà   ÚX_trainÚy_trainr®   Ú
slow_modelÚ
fast_modelÚX_train_fitÚy_train_fitÚX_testÚy_pred_slowÚy_pred_fasts               r)   Útest_fast_predictrõ   Ô  s<  € ô �)‰)×
Ñ
 Ó
$€CØ€Ià�S—X‘X˜iÓ(Ñ(¨2Ñ-€Gä
�‰�—‘˜Ó#¤U¨7£^Ó4×;Ñ;¸GÓD×KÑKÈIÓVð ð �h‰h�yÓ!€Gà)*€GˆC�H‰H�YÓ #Ñ%Ñ&ä#¨!°1ÀFÔK€JÜ#¨!°1ÀFÔK€Jð
  *×2Ñ2Ø�¨Àð  3ó  Ñ€K�ð ×Ñ˜ [Ô1ð ‡N�N�7˜G°7€NÔ;à�C—H‘H˜YÓ'Ñ'¨"Ñ,€FØ×$Ñ$ VÓ,€KØ×$Ñ$ VÓ,€Kä�{ KÕ0r+   c                  óB   — t        «       } t        j                  | «       y )N)r   Úcopy)r!   s    r)   Útest_isotonic_copy_before_fitrø   ù  s   € ä	Ó	€BÜ‡I�Iˆb…Mr+   Údtypec                 óX  — g d¢}t        j                  g d¢t         j                  ¬«      }t        «       }d |j	                  t         j
                  «      |fD ]Ð  }t        j                  || ¬«      }t        |t         j                  t         j
                  gd¬«      j                  }t        ||¬«      }|j                  |k(  sJ ‚t        j                  t        |«      «      j	                  | «      }|j                  |||¬«       |j                  |«      }|j                  |k(  rŒÐJ ‚ y )N©r   r   r   r   r   )çÍÌÌÌÌÌì?rü   rü   rü   rü   ©rù   F)rù   Ú	ensure_2dr   )r]   r^   rå   r   ré   Úfloat32r   rù   r   r_   r`   r   ra   )	rù   r#   r®   Úregr   Úy_npÚexpected_dtypeÚresÚXs	            r)   Útest_isotonic_dtyper  ÿ  së   € â€AÜ�h‰hÒ0¼¿
¹
ÔC€GÜ
Ó
€Cà §¡¬r¯z©zÓ :¸GÐDò +ˆÜ�x‰x˜ Ô'ˆÜ$ØœŸ™¤R§Z¡ZÐ0¸Eô
ç
‰%ð 	ô " $°mÔDˆØ�y‰y˜NÒ*Ð*Ð*ä�I‰I”c˜!“fÓ×$Ñ$ UÓ+ˆØ�‰��4 }ˆÔ5Ø�k‰k˜!‹nˆØ�y‰y˜NÓ*Ð*Ð*ñ+r+   Úy_dtypec                 ó  — t        «       }t        j                  g d¢| ¬«      }t        j                  t	        |«      t        j
                  ¬«      }|j                  ||«       |j                  |«      j                  |j                  k(  sJ ‚y )Nrû   rý   )	r   r]   r^   r_   r`   rÿ   r   ra   rù   )r  r   r#   r  s       r)   Útest_isotonic_mismatched_dtyper    sa   € ô Ó
€CÜ
�‰’¨Ô0€AÜ
�	‰	”#�a“&¤§
¡
Ô+€AØ‡G�GˆAˆq„MØ�;‰;�q‹>×Ñ 1§7¡7Ò*Ð*Ñ*r+   c                  ó  — g d¢} t         j                  t         j                  fD ]]  }t        j                  | |¬«      }|j	                  «       }t        j
                  |«      }t        |||«      \  }}}t        |g d¢«       Œ_ y )N)r   r   r   r   r   rý   )r   r   r   )r]   rÿ   rå   r^   r÷   Ú	ones_liker   r   )Úx_listrù   r"   r#   r˜   s        r)   Útest_make_unique_dtyper    si   € Ú€FÜ—*‘*œbŸj™jÐ)ò )ˆÜ�H‰H�V 5Ô)ˆØ�F‰F‹HˆÜ�L‰L˜‹OˆÜ˜q ! QÓ'‰ˆˆ1ˆaÜ˜1šiÕ(ñ)r+   c                 ó>  — t        j                  g d¢| ¬«      }|j                  «       }t        j                  |«      }t	        |||«      \  }}}| t         j
                  k(  rt        j                  g d¢«      }nt        j                  ddg«      }t        ||«       y )N)r   g¼‰Ø—²Òœ<r   ç-     ð?rý   )r   r   r  r   r   )r]   r^   r÷   r
  r   rå   r   )rù   r"   r#   r˜   Úx_outs        r)   Útest_make_unique_tolerancer  )  sx   € ô 	�‰Ò)°Ô7€AØ	�‰‹€AÜ
�‰�Q‹€AÜ˜1˜a Ó#�G€A€qˆ!Ø”—
‘
ÒÜ—‘Ò*Ó+‰ä—‘˜!˜Q˜Ó ˆÜ�q˜%Õ r+   c                  óè  — t        j                  g d¢t         j                  ¬«      } t        j                  g d¢t         j                  ¬«      }t        «       j	                  | |«      }|j                  g d¢«      }t        |t        j                  g d¢«      «       t        |j                  t        j                  g d¢«      «       t        |j                  t        j                  g d¢«      «       y )N)r   r   rY   r   rý   )r   r   r   r   )r   g      à?r   r:   r   )r   g      è?r:   g      @r   )rX   rY   g       @)rX   r:   g      @)	r]   r^   rå   r   r   ra   r   ÚX_thresholds_Úy_thresholds_©r  r#   ÚiregÚy_preds       r)   Ú#test_isotonic_make_unique_tolerancer  7  s—   € ô 	�‰Ò%¬R¯Z©ZÔ8€AÜ
�‰’¤R§Z¡ZÔ0€AÜÓ×#Ñ# A qÓ)€DØ�\‰\Ò-Ó.€Fä�vœrŸx™xÒ(?Ó@ÔAÜ�t×)Ñ)¬2¯8©8²OÓ+DÔEÜ�t×)Ñ)¬2¯8©8²OÓ+DÕEr+   c                  ó4  — t        j                  g d¢«      } t        j                  g d¢«      }t        «       j                  | |«      }|j	                  t        j                  g d¢«      «      }t        j
                  t        j                  |«      «      sJ ‚y )N)rX   gj       gJ/Ò   rY   )çáz®GáÚ?r  ç)\�Âõ(Ü?r  )r   g¦      gA¾ƒ    g»½×Ùß|Û=)r]   r^   r   r   ra   r”   rÖ   r  s       r)   Ú&test_isotonic_non_regression_inf_sloper  D  sj   € ô 	�‰Ò/Ó0€AÜ
�‰Ò)Ó*€AÜÓ×#Ñ# A qÓ)€DØ�\‰\œ"Ÿ(™(Ò#AÓBÓC€FÜ�6‰6”"—+‘+˜fÓ%Ô&Ð&Ñ&r+   rˆ   TFc                 ó  — t         j                  j                  d«      }d}|j                  |¬«      }|j                  |¬«      }t	        | ¬«      j                  ||«      }|j                  |j                  }}|j                  |j                  k(  sJ ‚|j                  d   |j                  d   k  sJ ‚t        j                  ||«      j                  «       sJ ‚|j                  «       |j                  «       k  sJ ‚|j                  «       |j                  «       k\  sJ ‚t        t        j                  |«      dkD  «      sJ ‚| r$t        t        j                  |«      dk\  «      sJ ‚y t        t        j                  |«      dk  «      sJ ‚y )NrŸ   é   r©   r‡   r   )r]   rb   r¡   Únormalr   r   r  r  r‰   Úisinr”   rÀ   r¿   Údiff)rˆ   r¥   rà   r  r#   r  ÚX_thresholdsÚy_thresholdss           r)   Útest_isotonic_thresholdsr#  N  sT  € ä
�)‰)×
Ñ
 Ó
#€CØ€IØ�
‰
˜	ˆ
Ó"€AØ�
‰
˜	ˆ
Ó"€AÜ¨Ô4×8Ñ8¸¸AÓ>€DØ!%×!3Ñ!3°T×5GÑ5G�,€LØ×Ñ ×!3Ñ!3Ò3Ð3Ð3ð
 ×Ñ˜aÑ  1§7¡7¨1¡:Ò-Ð-Ð-Ü�7‰7�< Ó#×'Ñ'Ô)Ð)Ð)ð ×ÑÓ §¡£Ò(Ð(Ð(Ø×ÑÓ §¡£Ò(Ð(Ð(äŒr�w‰w�|Ó$ qÑ(Ô)Ð)Ð)ÙÜ”2—7‘7˜<Ó(¨AÑ-Ô.Ð.Ñ.ä”2—7‘7˜<Ó(¨AÑ-Ô.Ð.Ñ.r+   c                  ó˜  — t        j                  d«      } | j                  dd«      }t        j                  d«      }t        «       j	                  | |«      }t        «       j	                  ||«      }|j
                  |j
                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚t        |j                  |j                  «       t        |j                  |j                  «       |j                  | «      }|j                  |«      }t        ||«       y )NrW   rE   r   )r]   r_   Úreshaper   r   ÚX_max_ÚX_min_r\   r[   r   r  r  ra   r
   )r  ÚX_2dr#   Úiso_regÚ
iso_reg_2dÚy_pred1Úy_pred2s          r)   Útest_input_shape_validationr-  i  s  € ô 	�	‰	�"‹€AØ�9‰9�R˜Ó€DÜ
�	‰	�"‹€Aä Ó"×&Ñ& q¨!Ó,€GÜ#Ó%×)Ñ)¨$°Ó2€Jà�>‰>˜Z×.Ñ.Ò.Ð.Ð.Ø�>‰>˜Z×.Ñ.Ò.Ð.Ð.Ø�=‰=˜J×,Ñ,Ò,Ð,Ð,Ø�=‰=˜J×,Ñ,Ò,Ð,Ð,Ü�w×,Ñ,¨j×.FÑ.FÔGÜ�w×,Ñ,¨j×.FÑ.FÔGà�o‰o˜aÓ €GØ× Ñ  Ó&€GÜ�G˜WÕ%r+   c                  óR  — t        j                  d«      } t         j                  | | f   }t        j                  d«      }d}t        j                  t
        |¬«      5  t        «       j                  ||«       d d d «       t        «       j                  | |«      }t        j                  t
        |¬«      5  |j                  |«       d d d «       t        j                  t
        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   ŒŽxY w# 1 sw Y   ŒKxY w# 1 sw Y   y xY w)NrW   z/should be a 1d array or 2d array with 1 featurerM   )
r]   r_   Úc_rO   r¢   r£   r   r   ra   r    )r  r(  r#   rQ   r)  s        r)   Ú)test_isotonic_2darray_more_than_1_featurer0    sæ   € ä
�	‰	�"‹€AÜ�5‰5��A�‰;€DÜ
�	‰	�"‹€Aà
;€CÜ	�‰”z¨Ô	-ñ *ÜÓ× Ñ   qÔ)÷*ô !Ó"×&Ñ& q¨!Ó,€GÜ	�‰”z¨Ô	-ñ Ø�‰˜Ô÷ô 
�‰”z¨Ô	-ñ  Ø×Ñ˜$Ô÷ ð  ÷*ð *ú÷ð ú÷ ð  ús$   ÁDÂ5DÃ*DÄDÄDÄD&c                  óü   — t        ddd¬«      \  } }t        j                  |«      }d|d<   |j                  «       }t	        ||¬«       t        ||«       t        «       j                  | ||¬«       t        ||«       y)zÂCheck that calling fitting function of isotonic regression will not
    overwrite `sample_weight`.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20508
    rW   r   r   ©rà   Ú
n_featuresr   r   r   N)r   r]   r
  r÷   r   r
   r   r   )r  r#   Úsample_weight_originalÚsample_weight_fits       r)   Ú6test_isotonic_regression_sample_weight_not_overwrittenr6  ‘  sz   € ô  R°AÀBÔG�D€A€qÜŸ\™\¨!›_ÐØ "Ð˜1ÑØ.×3Ñ3Ó5Ðä˜Ð):Õ;ÜÐ%Ð'=Ô>äÓ×Ñ˜Q Ð1BÐÔCÜÐ%Ð'=Õ>r+   r‰   Ú1dÚ2dc                 óV  — t        j                  d«      }| dk(  r|j                  dd«      }t        j                  d«      }t        «       j	                  ||«      }|j                  «       }t        |t         j                  «      sJ ‚|j                  t        k(  sJ ‚t        dg|«       y)z7Check `get_feature_names_out` for `IsotonicRegression`.rW   r8  rE   r   Úisotonicregression0N)r]   r_   r%  r   r   Úget_feature_names_outÚ
isinstanceÚndarrayrù   Úobjectr   )r‰   r  r#   ÚisoÚnamess        r)   Útest_get_feature_names_outrA  £  sŒ   € ô 	�	‰	�"‹€AØ�‚}Ø�I‰I�b˜!ÓˆÜ
�	‰	�"‹€Aä
Ó
×
"Ñ
" 1 aÓ
(€CØ×%Ñ%Ó'€EÜ�eœRŸZ™ZÔ(Ð(Ð(Ø�;‰;œ&Ò Ð Ð ÜÐ-Ð.°Õ6r+   c                  óŠ  — t        j                  d«      } t        ddd¬«      \  }}t        «       }t	        j
                  d¬«      5  |j                  ||«       |j                  |«      }|j                  |«      }ddd«       t        | j                  «      sJ ‚t        t        j                  «      sJ ‚y# 1 sw Y   Œ>xY w)a  Check that `predict` does return the expected output type.

    We need to check that `transform` will output a DataFrame and a NumPy array
    when we set `transform_output` to `pandas`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/25499
    ÚpandasrW   r   rŸ   r2  )Útransform_outputN)rO   Úimportorskipr   r   ÚsklearnÚconfig_contextr   r    ra   r<  Ú	DataFramer]   r=  )Úpdr  r#   Ú	regressorÚX_transr  s         r)   Ú'test_isotonic_regression_output_predictrL  ²  s©   € ô 
×	Ñ	˜XÓ	&€BÜ R°AÀBÔG�D€A€qÜ"Ó$€IÜ	×	Ñ	°Ô	:ñ &Ø�‰�a˜ÔØ×%Ñ% aÓ(ˆØ×"Ñ" 1Ó%ˆ÷&ô
 �g˜rŸ|™|Ô,Ð,Ð,Ü�fœbŸj™jÔ)Ð)Ñ)÷&ð &ús   Á5B9Â9C)Fr÷   rÍ   r0   Únumpyr]   rO   Úscipy.specialr   rF  Úsklearn.datasetsr   Úsklearn.isotonicr   r   r   r   Úsklearn.utilsr	   Úsklearn.utils._testingr
   r   r   Úsklearn.utils.validationr   r*   r6   r=   r?   rC   rJ   rR   rh   rn   rr   r~   r�   rŒ   rš   r�   r¦   r±   rµ   rº   rÁ   rÆ   rË   rÔ   rØ   rÛ   rá   rõ   rø   ÚmarkÚparametrizeÚint32rä   rÿ   rå   r  r  r  r  r  r  r#  r-  r0  r6  rA  rL  © r+   r)   ú<module>rX     sô  ðÛ Û Û ã Û Ý ã Ý ,÷ó õ "÷ñ õ
 1ò7òò	ò	ò	ò	ò	òIò4
7ò
7ò&AòR>ò0	Jòò$ò$'ò(5ò )ò/ò/òò "ò
Aò"ò)òX*ò,"1òJð ‡�×Ñ˜ 2§8¡8¨R¯X©X°r·z±zÀ2Ç:Á:Ð"NÓOñ+ó Pð+ð( ‡�×Ñ˜ R§X¡X¨r¯x©x¸¿¹ÀRÇZÁZÐ$PÓQñ+ó Rð+ò)ð ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñ
!ó <ð
!ò
Fò'ð ‡�×Ñ˜¨¨e }Ó5ñ/ó 6ð/ò4&ò, ò$?ð$ ‡�×Ñ˜ 4¨ ,Ó/ñ7ó 0ð7ó*r+   