ó
    ¦ñ:i™V  ã                   ó  • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKrS SK	J
r
  S SKJrJrJrJr  S SKJr  S SKJrJrJr  S SKJr  S rS	 rS
 rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S  r0S! r1S" r2S# r3S$ r4\Rj                  Rm                  S%\Rn                  \Rp                  \Rr                  \Rt                  /5      S& 5       r;S' r<\Rj                  Rm                  S(\Rt                  \Rr                  /5      S) 5       r=S* r>S+ r?\Rj                  Rm                  S,S-S./5      S/ 5       r@S0 rAS1 rBS2 rC\Rj                  Rm                  S3S4S5/5      S6 5       rDS7 rEg)8é    N)Úexpit)Úmake_regression)ÚIsotonicRegressionÚ_make_uniqueÚcheck_increasingÚisotonic_regression)Úshuffle)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)Úcheck_arrayc                  óÀ   • [        5       n / SQn/ SQn/ SQn[        XUSS9u  pEnU R                  XUS9nU R                  XEUS9R	                  U5      n[        Xx5        g )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	            Ú^/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/sklearn/tests/test_isotonic.pyÚtest_permutation_invariancer*      si   € ô 
Ó	€BÚ€AÚ €AÚ)€MÜ '¨¨mÈ!Ñ LÑ€CˆoØ×$Ñ$ Q¸Ð$ÐG€MØ—f‘f˜S°_�fÐE×OÑOÐPQÓR€Oä�}Õ6ó    c                  óÐ   • / SQn / SQn[         R                  " 5          [         R                  " S[        5        [	        X5      nS S S 5        W(       d   eg ! , (       d  f       N= f)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   (   sJ   € Ú€AÚ€Aä	×	 Ò	 Õ	"Ü×Ò˜g¤{Ô3Ü(¨Ó.ˆ÷ 
#ö Ð‰=÷	 
#Õ	"úó   ž'AÁ
A%c                  óÐ   • / SQn / SQn[         R                  " 5          [         R                  " S[        5        [	        X5      nS S S 5        W(       d   eg ! , (       d  f       N= f)N©r   r   r   r   r   r   )r   ç      ø?g)\�Âõ(@ç{®Gáú!@r;   é2   r.   r/   r4   s      r)   Útest_check_increasing_upr=   3   sL   € Ú€AÚ&€Aô 
×	 Ò	 Õ	"Ü×Ò˜g¤{Ô3Ü(¨Ó.ˆ÷ 
#ö Ð‰=÷	 
#Õ	"úr7   c                  óÐ   • / SQn / SQn[         R                  " 5          [         R                  " S[        5        [	        X5      nS S S 5        W(       d   eg ! , (       d  f       N= f)Nr9   r.   r/   r4   s      r)   Ú test_check_increasing_up_extremer?   ?   sL   € Ú€AÚ€Aô 
×	 Ò	 Õ	"Ü×Ò˜g¤{Ô3Ü(¨Ó.ˆ÷ 
#ö Ð‰=÷	 
#Õ	"úr7   c                  óÐ   • / SQn / SQn[         R                  " 5          [         R                  " S[        5        [	        X5      nS S S 5        W(       a   eg ! , (       d  f       N= f)Nr9   )r   g      ø¿g)\�Âõ(Àç{®Gáú!ÀrA   éÎÿÿÿr.   r/   r4   s      r)   Útest_check_increasing_downrC   K   sO   € Ú€AÚ+€Aô 
×	 Ò	 Õ	"Ü×Ò˜g¤{Ô3Ü(¨Ó.ˆ÷ 
#ö ÐÐˆ}÷	 
#Õ	"úr7   c                  óÐ   • / SQn / SQn[         R                  " 5          [         R                  " S[        5        [	        X5      nS S S 5        W(       a   eg ! , (       d  f       N= f)Nr9   )r   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿéûÿÿÿr.   r/   r4   s      r)   Ú"test_check_increasing_down_extremerJ   W   sO   € Ú€AÚ€Aô 
×	 Ò	 Õ	"Ü×Ò˜g¤{Ô3Ü(¨Ó.ˆ÷ 
#ö ÐÐˆ}÷	 
#Õ	"úr7   c                  ó¦   • / SQn / SQnSn[         R                  " [        US9   [        X5      nS S S 5        W(       a   eg ! , (       d  f       N= f)Nr9   )r   rE   r   rG   r   rI   Úinterval©Úmatch)ÚpytestÚwarnsr3   r   )r"   r#   Úmsgr5   s       r)   Útest_check_ci_warnrR   c   sF   € Ú€AÚ€Að €CÜ	�Š”k¨Ó	-Ü(¨Ó.ˆ÷ 
.ö ÐÐˆ}÷ 
.Õ	-ús   ¤AÁ
Ac            	      ó&  • [         R                  " / SQ5      n [         R                  " / SQ5      n[        U[        U 5      5        [         R                  " / SQ5      n [         R                  " / SQ5      n[        U[        U 5      5        [         R                  " [        U 5      5      n[        SSS9nUR                  X 5        [        UR                  X 5      R                  U5      UR                  X 5      5        [        UR                  U5      UR                  U5      5        [         R                  R                  [        U 5      5      n[        SSS9n[        UR                  X$   X   5      UR                  X 5      U   5        [        UR                  X$   5      UR                  U5      U   5        [        5       n[        UR                  [         R                  " [        U5      5      U 5      [         R                  " U 5      5        g )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   sp  € Ü
�ŠÒ'Ó(€AÜ	�ŠÒ(Ó	)€BÜ�rÔ.¨qÓ1Ô2ä
�Š’Ó€AÜ	�Š’)Ó	€BÜ�rÔ.¨qÓ1Ô2ä
�	Š	”#�a“&Ó€AÜ	 #¨SÑ	1€BØ‡F�Fˆ1„LÜ�r—v‘v˜a“|×-Ñ-¨aÓ0°"×2BÑ2BÀ1Ó2HÔIÜ�r—|‘| A“¨¯
©
°1«Ô6ô �9‰9× Ñ ¤ Q£Ó(€DÜ	 #¨SÑ	1€BÜ�r×'Ñ'¨©°±Ó9¸2×;KÑ;KÈAÓ;QÐRVÑ;WÔXÜ�r—|‘| A¡GÓ,¨b¯l©l¸1«o¸dÑ.CÔDô 
Ó	€BÜ�r×'Ñ'¬¯ª´°A³«¸Ó;¼R¿WºWÀQ»ZÕHr+   c                  óø   • / SQn / SQn/ SQn[        5       nUR                  X5        [        UR                  X5      R                  U 5      UR	                  X5      5        [        X#R	                  X5      5        g )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   ‰   óa   € â€AÚ€AÚ#€Fô 
Ó	€BØ‡F�Fˆ1„LÜ�r—v‘v˜a“|×-Ñ-¨aÓ0°"×2BÑ2BÀ1Ó2HÔIÜ�v×/Ñ/°Ó5Õ6r+   c                  óø   • / SQn / SQn/ SQn[        5       nUR                  X5        [        UR                  X5      R                  U 5      UR	                  X5      5        [        X#R	                  X5      5        g )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                  óÂ   • / SQn / SQn/ SQn[        5       nUR                  X5        [        UR                  U 5      US5        [        UR	                  X5      US5        g)a?  
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~   £   sU   € ò$ 	2€AÚ:€Aò€Fô 
Ó	€BØ‡F�Fˆ1„LÜ˜bŸl™l¨1›o¨v°qÔ9Ü˜b×.Ñ.¨qÓ4°f¸aÕ@r+   c                  ó6  • [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        5       nUR                  X5        [	        UR                  U 5      U5        [	        UR                  X5      U5        g)aL  
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�   Ì   sk   € ô 	�ŠÒ#Ó$€AÜ
�ŠÒ#Ó$€AÜ�XŠXÒ8Ó9€FÜ	Ó	€BØ‡F�Fˆ1„LÜ˜bŸl™l¨1›o¨vÔ6Ü˜b×.Ñ.¨qÓ4°fÕ=r+   c                  ó  • [         R                  " / SQ5      n [        SS9R                  [         R                  " [        U 5      5      U 5      n[        [         R                  " US S R                  5      US S USS  -
  S:¬  5        g )N©rW   rU   rW   r   r   çffffff@r   F©Ú
increasingrE   r   r   )	r]   r^   r   r   r_   r`   r   rd   Úshape)r#   rf   s     r)   Ú!test_isotonic_regression_reversedrˆ   ä   sh   € Ü
�ŠÒ*Ó+€AÜ	 uÑ	-×	;Ñ	;¼B¿IºIÄcÈ!ÃfÓ<MÈqÓ	Q€BÜ”r—w’w˜r # 2˜wŸ}™}Ó-°°C°R°¸2¸a¸b¸6Ñ1AÀaÑ0GÕIr+   c            
      óÔ  • [         R                  " / SQ5      n [         R                  " [        U 5      5      n[	        SS9n[
        R                  " SS9 n[
        R                  " S5        UR                  X5      n[        U Vs/ s H  nS[        UR                  5      ;   PM     sn5      (       d   e S S S 5        WS   US	   :  nU(       a   eg s  snf ! , (       d  f       N(= f)
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Ü	×	 Ò	 ¨Ò	-°Ü×Ò˜hÔ'Ø×Ñ˜aÓ#ˆäÑUVÓWÒUVÈTÐ3´s¸4¿<¹<Ó7HÔHÑUVÑW×XÑXÐXÑX÷	 
.ð �q‘E˜B˜r™F‘N€MÞÐÐˆ}ùò	 X÷	 
.Õ	-úó   Á1CÂ"C
Â(CÃCÃ
C'c            
      óÔ  • [         R                  " / SQ5      n [         R                  " [        U 5      5      n[	        SS9n[
        R                  " SS9 n[
        R                  " S5        UR                  X5      n[        U Vs/ s H  nS[        UR                  5      ;   PM     sn5      (       d   e S S S 5        WS   US	   :  nU(       d   eg s  snf ! , (       d  f       N(= f)
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Ü	×	 Ò	 ¨Ò	-°Ü×Ò˜hÔ'Ø×Ñ˜aÓ#ˆäÑUVÓWÒUVÈTÐ3´s¸4¿<¹<Ó7HÔHÑUVÑW×XÑXÐXÑX÷	 
.ð �q‘E˜B˜r™F‘N€MÞÐ‰=ùò	 X÷	 
.Õ	-úr—   c                  óâ  • [        5       n [        R                  R                  S5      nSn[        R
                  " [        US9   U R                  / SQ/ SQSS/5        S S S 5        [        R
                  " [        US9   U R                  / SQSS	/5        S S S 5        S
n[        R
                  " [        US9   U R                  UR                  SS5      / SQ5        S S S 5        Sn[        R
                  " [        US9   U R                  UR                  SS5      5        S S S 5        g ! , (       d  f       NÔ= f! , (       d  f       N­= f! , (       d  f       Nv= f! , (       d  f       g = f)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¨Ó	-Ø
�‰Šyš) c¨3 ZÔ0÷ 
.ô 
�Š”z¨Ó	-Ø
�‰Šy˜1˜a˜&Ô!÷ 
.ð #€CÜ	�Š”z¨Ó	-Ø
�‰ˆs�y‰y˜˜BÓ¢Ô+÷ 
.ð =€CÜ	�Š”z¨Ó	-Ø
�‰�S—Y‘Y˜q "Ó%Ô&÷ 
.Ð	-÷ 
.Õ	-ú÷ 
.Õ	-ú÷ 
.Õ	-ú÷ 
.Õ	-ús0   ÁD-Â D>Â:%EÄ"E Ä-
D;Ä>
EÅ
EÅ 
E.c                  ó�  • [        5       n [        R                  R                  S5      nSn[        R                  " U5      nUR                  SSU4S9S[        R                  " S[        R                  " U5      -   5      -  -   n[        R                  " U5      nU R                  X4US9nU R                  X45      n[        Xg5        g )	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°wÐ"Ð?€KØ×&Ñ& qÓ,€Oä�{Õ4r+   c                  óÜ   • [        SSS9n Sn[        R                  " U5      n[        R                  " U5      n/ SQn[        R                  " U R	                  X#5      5      n[        XT5        g )Nr   r   rZ   r   )r   r   r   r   r   r   )r   r]   r_   Úroundr   r   )r!   r©   r"   r#   Úy_testÚy_results         r)   Ú test_isotonic_min_max_boundariesr²   2  sS   € ä	 !¨1Ñ	-€BØ	€AÜ
�	Š	�!‹€AÜ
�	Š	�!‹€AÚ€FÜ�xŠx˜×(Ñ(¨Ó.Ó/€HÜ�xÕ(r+   c                  ón   • [        5       n / SQn/ SQn/ SQn/ SQnU R                  XUS9n[        XE5        g )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·   =  s;   € Ü	Ó	€BÚ€AÚ €AÚ)€MÚ;€JØ×!Ñ! !°mÐ!ÐD€Jä�zÕ.r+   c                  óh  • [         R                  " / SQ5      n [         R                  " [        U 5      5      n[	        SSS9nUR                  X5        Sn[        R                  " [        US9   UR                  [        U5      S-
  [        U5      S-   /5        S S S 5        g ! , (       d  f       g = f)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¾   H  s~   € ä
�ŠÒ'Ó(€AÜ
�	Š	”#�a“&Ó€Aô 
 v¸WÑ	E€BØ‡F�Fˆ1„Lð 6€CÜ	�Š”z¨Ó	-Ø
�
‰
”C˜“F˜R‘K¤ Q£¨"¡Ð-Ô.÷ 
.×	-Ö	-ús   Á.,B#Â#
B1c                  óˆ  • [         R                  " / SQ5      n [         R                  " [        U 5      5      n[	        SSS9nUR                  X5        UR                  [        U5      S-
  [        U5      S-   /5      nUR                  U5      n[        U5      [        U5      :X  d   e[        U5      [        U5      :X  d   eg )NrT   rŠ   Úcliprº   rW   )	r]   r^   r_   r`   r   r   ra   r¼   r½   )r#   r"   r!   Úy1Úy2s        r)   Ú!test_isotonic_regression_oob_cliprÃ   W  sš   € ä
�ŠÒ'Ó(€AÜ
�	Š	”#�a“&Ó€Aô 
 v¸VÑ	D€BØ‡F�Fˆ1„Lð 
�‰”S˜“V˜b‘[¤# a£&¨2¡+Ð.Ó	/€BØ	�‰�A‹€BÜˆr‹7”c˜"“gÓÐÐÜˆr‹7”c˜"“gÓÐÑr+   c                  óH  • [         R                  " / SQ5      n [         R                  " [        U 5      5      n[	        SSS9nUR                  X5        UR                  [        U5      S-
  [        U5      S-   /5      n[        [         R                  " U5      5      S:X  d   eg )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È   g  s|   € ä
�ŠÒ'Ó(€AÜ
�	Š	”#�a“&Ó€Aô 
 v¸UÑ	C€BØ‡F�Fˆ1„Lð 
�‰”S˜“V˜b‘[¤# a£&¨2¡+Ð.Ó	/€BÜŒr�xŠx˜‹|Ó Ó!Ð!Ñ!r+   c                  óš  • [         R                  " / SQ5      n [         R                  " [        U 5      5      n[	        SSS9nUR                  X5        [        R                  " U[        R                  5      n[        R                  " U5      n[         R                  R                  UR                  U5      UR                  U5      5        g )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Ñ   u  s„   € Ü
�ŠÒ'Ó(€AÜ
�	Š	”#�a“&Ó€Aô 
 v¸VÑ	D€BØ‡F�Fˆ1„Lä�\Š\˜"œf×5Ñ5Ó6€FÜ
�,Š,�vÓ
€CÜ‡J�J×!Ñ! "§*¡*¨Q£-°·±¸Q³Õ@r+   c                  óÎ   • / SQn / SQn[        SSS9nUR                  X5        [        R                  " [        R                  " UR                  U 5      5      5      nU(       d   eg )N)r   r   r   TrÀ   rº   )r   r   r]   r�   Úisfinitera   )r"   r#   r!   Úall_predictions_finites       r)   Ú!test_isotonic_duplicate_min_entryrÕ   ‚  sL   € Ú€AÚ€Aä	 t¸6Ñ	B€BØ‡F�Fˆ1„LÜŸVšV¤B§K¢K°·
±
¸1³Ó$>Ó?ÐÞ!Ð!Ñ!r+   c                  ó¸  • [         R                  " / SQ5      n [        U SSS9n[         R                  " US:¬  5      (       d   e[         R                  " US:*  5      (       d   e[        U SSSS9n[         R                  " US:¬  5      (       d   e[         R                  " US:*  5      (       d   e[        U SSS9n[         R                  " US:¬  5      (       d   eg )	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                  ó  • [         R                  R                  S5      n [        5       nSn[         R                  " SSU5      nX0R                  US9-   nU R                  US9nSUSS& UR                  X4US	9  UR                  X4US	9  g )
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Ø	�K‰K˜YˆKÐ'Ñ'€Að 	�‰˜ˆÐ#€AØ€A€aˆ€FØ‡N�N�1 q€NÑ)ð ‡N�N�1 q€NÒ)r+   c                  óx  • [         R                  R                  S5      n SnSU R                  U5      -  S-
  n[         R                  " U R                  U5      [        U5      5      R                  S5      R                  S5      nU R                  U5      nSX@R                  U5      S:  '   [        SS	S
S9n[        SS	S
S9nUR                  X#USS9u  pxUR                  Xx5        UR                  X#US9  SU R                  U5      -  S-
  n	UR                  U	5      n
UR                  U	5      n[        X«5        g )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ò   Î  s0  € ô �)‰)×
Ñ
 Ó
$€CØ€Ià�S—X‘X˜iÓ(Ñ(¨2Ñ-€Gä
�Š�—‘˜Ó#¤U¨7£^Ó4×;Ñ;¸GÓD×KÑKÈIÓVð ð �h‰h�yÓ!€Gà)*€G�H‰H�YÓ #Ñ%Ñ&ä#¨!°1ÀFÑK€JÜ#¨!°1ÀFÑK€Jð
  *×2Ñ2Ø¨Àð  3ð  Ñ€Kð ×Ñ˜Ô1ð ‡N�N�7°7€NÑ;à�C—H‘H˜YÓ'Ñ'¨"Ñ,€FØ×$Ñ$ VÓ,€KØ×$Ñ$ VÓ,€Kä�{Õ0r+   c                  óD   • [        5       n [        R                  " U 5        g )N)r   Úcopy)r!   s    r)   Útest_isotonic_copy_before_fitrõ   ó  s   € ä	Ó	€BÜ‡I‚Iˆb…Mr+   c                  óÌ  • / SQn [         R                  " / SQ[         R                  S9n[        5       n[         R                  [         R
                  [         R                  [         R                  4 Hï  nS UR                  [         R                  5      U4 HÆ  n[         R                  " XS9n[        U[         R                  [         R                  /SS9R                  n[        XTS9nUR                  U:X  d   e[         R                  " [        U 5      5      R                  U5      nUR                  X…US9  UR                  U5      nUR                  U:X  a  MÆ   e   Mñ     g )N©r   r   r   r   r   )çÍÌÌÌÌÌì?rø   rø   rø   rø   ©ÚdtypeF)rú   Ú	ensure_2dr   )r]   r^   râ   r   Úint32rá   Úfloat32ræ   r   rú   r   r_   r`   r   ra   )	r#   rª   Úregrú   r   Úy_npÚexpected_dtypeÚresÚXs	            r)   Útest_isotonic_dtyper  ù  s  € Ú€AÜ�hŠhÒ0¼¿
¹
ÑC€GÜ
Ó
€Cä—(‘(œBŸH™H¤b§j¡j´"·*±*Ó=ˆØ" G§N¡N´2·:±:Ó$>ÀÓHˆMÜ—8’8˜AÑ+ˆDÜ(ØœRŸZ™Z¬¯©Ð4Àñç‰eð ô & dÑHˆCØ—9‘9 Ó.Ð.Ð.ä—	’	œ#˜a›&Ó!×(Ñ(¨Ó/ˆAØ�G‰G�A¨=ˆGÑ9Ø—+‘+˜a“.ˆCØ—9‘9 Õ.Ð.Ð.ó Iò >r+   Úy_dtypec                 ó  • [        5       n[        R                  " / SQU S9n[        R                  " [	        U5      [        R
                  S9nUR                  X25        UR                  U5      R                  UR                  :X  d   eg )Nr÷   rù   )	r   r]   r^   r_   r`   rý   r   ra   rú   )r  rþ   r#   r  s       r)   Útest_isotonic_mismatched_dtyper    s_   € ô Ó
€CÜ
�Š’¨Ñ0€AÜ
�	Š	”#�a“&¤§
¡
Ñ+€AØ‡G�GˆA„MØ�;‰;�q‹>×Ñ 1§7¡7Ó*Ð*Ñ*r+   c                  ó  • / SQn [         R                  [         R                  4 HZ  n[         R                  " XS9nUR	                  5       n[         R
                  " U5      n[        X#U5      u  p#n[        U/ SQ5        M\     g )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
    s^   € Ú€FÜ—*‘*œbŸj™jÓ)ˆÜ�HŠH�VÑ)ˆØ�F‰F‹HˆÜ�LŠL˜‹OˆÜ˜q QÓ'‰ˆˆaÜ˜1šiÖ(ò *r+   rú   c                 ó<  • [         R                  " / SQU S9nUR                  5       n[         R                  " U5      n[	        XU5      u  pnU [         R
                  :X  a  [         R                  " / SQ5      nO[         R                  " SS/5      n[        X5        g )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  #  sr   € ô 	�ŠÒ)°Ñ7€AØ	�‰‹€AÜ
�Š�Q‹€AÜ˜1 Ó#�G€Aˆ!Ø”—
‘
ÓÜ—’Ò*Ó+‰ä—’˜!˜Q˜Ó ˆÜ�qÕ r+   c                  óä  • [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        5       R	                  X5      nUR                  / SQ5      n[        U[         R                  " / SQ5      5        [        UR                  [         R                  " / SQ5      5        [        UR                  [         R                  " / SQ5      5        g )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  1  s•   € ô 	�ŠÒ%¬R¯Z©ZÑ8€AÜ
�Š’¤R§Z¡ZÑ0€AÜÓ×#Ñ# AÓ)€DØ�\‰\Ò-Ó.€Fä�vœrŸxšxÒ(?Ó@ÔAÜ�t×)Ñ)¬2¯8ª8²OÓ+DÔEÜ�t×)Ñ)¬2¯8ª8²OÓ+DÕEr+   c                  óF  • [         R                  " / SQ5      n [         R                  " / SQ5      n[        5       R                  X5      nUR	                  [         R                  " / SQ5      5      n[         R
                  " [         R                  " U5      5      (       d   eg )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  >  sk   € ô 	�ŠÒ/Ó0€AÜ
�ŠÒ)Ó*€AÜÓ×#Ñ# AÓ)€DØ�\‰\œ"Ÿ(š(Ò#AÓBÓC€FÜ�6Š6”"—+’+˜fÓ%×&Ñ&Ð&Ñ&r+   r†   TFc                 óH  • [         R                  R                  S5      nSnUR                  US9nUR                  US9n[	        U S9R                  X45      nUR                  UR                  pvUR                  UR                  :X  d   eUR                  S   UR                  S   :  d   e[         R                  " Xc5      R                  5       (       d   eUR                  5       UR                  5       ::  d   eUR                  5       UR                  5       :¼  d   e[        [         R                  " U5      S:„  5      (       d   eU (       a*  [        [         R                  " U5      S:¬  5      (       d   eg [        [         R                  " U5      S:*  5      (       d   eg )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!  H  sZ  € ä
�)‰)×
Ñ
 Ó
#€CØ€IØ�
‰
˜	ˆ
Ð"€AØ�
‰
˜	ˆ
Ð"€AÜ¨Ñ4×8Ñ8¸Ó>€DØ!%×!3Ñ!3°T×5GÑ5G�,Ø×Ñ ×!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                  óž  • [         R                  " S5      n U R                  SS5      n[         R                  " S5      n[        5       R	                  X5      n[        5       R	                  X5      nUR
                  UR
                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   e[        UR                  UR                  5        [        UR                  UR                  5        UR                  U 5      nUR                  U5      n[        XV5        g )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+  c  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Õ%r+   c                  ób  • [         R                  " S5      n [         R                  X 4   n[         R                  " S5      nSn[        R                  " [
        US9   [        5       R                  X5        S S S 5        [        5       R                  X5      n[        R                  " [
        US9   UR                  U5        S S S 5        [        R                  " [
        US9   UR                  U5        S S S 5        g ! , (       d  f       NŽ= f! , (       d  f       NS= f! , (       d  f       g = f)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_featurer.  y  sÉ   € ä
�	Š	�"‹€AÜ�5‰5��‰;€DÜ
�	Š	�"‹€Aà
;€CÜ	�Š”z¨Ó	-ÜÓ× Ñ  Ô)÷ 
.ô !Ó"×&Ñ& qÓ,€GÜ	�Š”z¨Ó	-Ø�‰˜Ô÷ 
.ô 
�Š”z¨Ó	-Ø×Ñ˜$Ô÷ 
.Ð	-÷ 
.Õ	-ú÷ 
.Õ	-ú÷ 
.Õ	-ús$   ÁC>Â0DÃ#D Ã>
DÄ
DÄ 
D.c                  óâ   • [        SSSS9u  p[        R                  " U5      nSUS'   UR                  5       n[	        XS9  [        X25        [        5       R                  XUS9  [        X25        g)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_overwrittenr4  ‹  sm   € ô  R°AÀBÑG�D€AÜŸ\š\¨!›_ÐØ "Ð˜1ÑØ.×3Ñ3Ó5Ðä˜Ò;ÜÐ%Ô>äÓ×Ñ˜QÐ1BÐÑCÜÐ%Õ>r+   r‡   Ú1dÚ2dc                 óf  • [         R                  " S5      nU S:X  a  UR                  SS5      n[         R                  " S5      n[        5       R	                  X5      nUR                  5       n[        U[         R                  5      (       d   eUR                  [        :X  d   e[        S/U5        g)z7Check `get_feature_names_out` for `IsotonicRegression`.rW   r6  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_outr?  �  s�   € ô 	�	Š	�"‹€AØ�ƒ}Ø�I‰I�b˜!ÓˆÜ
�	Š	�"‹€Aä
Ó
×
"Ñ
" 1Ó
(€CØ×%Ñ%Ó'€EÜ�eœRŸZ™Z×(Ñ(Ð(Ð(Ø�;‰;œ&Ó Ð Ð ÜÐ-Ð.°Õ6r+   c                  óœ  • [         R                  " S5      n [        SSSS9u  p[        5       n[        R
                  " SS9   UR                  X5        UR                  U5      nUR                  U5      nSSS5        [        WU R                  5      (       d   e[        W[        R                  5      (       d   eg! , (       d  f       NM= f)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›   r0  )Útransform_outputN)rO   Úimportorskipr   r   ÚsklearnÚconfig_contextr   r    ra   r:  Ú	DataFramer]   r;  )Úpdr  r#   Ú	regressorÚX_transr  s         r)   Ú'test_isotonic_regression_output_predictrJ  ¬  s¤   € ô 
×	Ò	˜XÓ	&€BÜ R°AÀBÑG�D€AÜ"Ó$€IÜ	×	Ò	°Ó	:Ø�‰�aÔØ×%Ñ% aÓ(ˆØ×"Ñ" 1Ó%ˆ÷ 
;ô
 �g˜rŸ|™|×,Ñ,Ð,Ð,Ü�fœbŸj™j×)Ñ)Ð)Ñ)÷ 
;Õ	:ús   Á4B=Â=
C)Frô   rÊ   r0   Únumpyr]   rO   Úscipy.specialr   rD  Ú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õ   r  ÚmarkÚparametrizerü   rá   rý   râ   r  r
  r  r  r  r!  r+  r.  r4  r?  rJ  © r+   r)   Ú<module>rU     sº  ðÛ Û Û ã Û Ý ã Ý ,÷ó õ "÷ñ õ
 1ò7òò	ò	ò	ò	ò	òIò4
7ò
7ò&AòR>ò0Jòò$ò$'ò(5ò )ò/ò/òò "ò
Aò"ò)òX*ò,"1òJò/ð* ‡�×Ñ˜ 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+   