
    -i;W                        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# r3\Rh                  Rk                  S$\Rl                  \Rn                  \Rp                  \Rr                  /5      S% 5       r:\Rh                  Rk                  S&\Rl                  \Rn                  \Rp                  \Rr                  /5      S' 5       r;S( r<\Rh                  Rk                  S$\Rr                  \Rp                  /5      S) 5       r=S* r>S+ r?\Rh                  Rk                  S,S-S./5      S/ 5       r@S0 rAS1 rBS2 rC\Rh                  Rk                  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	            N/var/www/html/venv/lib/python3.13/site-packages/sklearn/tests/test_isotonic.pytest_permutation_invariancer*      si     
	BA A)M 'm! LCo$$Q$GMffS_fEOOPQRO}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	1BFF1Lrvva|--a0"2B2B12HIr||A

16 99  Q(D	#S	1Br''92;K;KA;QRV;WXr||AG,bll1od.CD 
	Br''A;RWWQZ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FF1Lrvva|--a0"2B2B12H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   )bh86@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    $ 	2A:AF 
	BFF1Lbll1ovq9b..q4fa@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XX89F		BFF1Lbll1ov6b..q4f=r+   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[        U SS9n[        X!5        [	        SS9R                  [         R                  " [        U 5      5      U 5      n[        X15        [        [         R                  " US S R                  5      US S USS  -
  S:  5        g )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xx89He4EE$	u	-	;	;BIIc!f<Mq	QBB!rwwr#2w}}-CR2ab61Aa0G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WUVT3s4<<7HHUVWXXXX	 
. qEBrFNM}	 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WUVT3s4<<7HHUVWXXXX	 
. qEBrFNM=	 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
FC	z	-
y)c3Z0 
. 
z	-
y1a&! 
. #C	z	-
syyB+ 
. =C	z	-
SYYq"%& 
.	- 
.	- 
.	- 
.	- 
.	-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$'$BIIaL8H1I*IIAggajG""1w"?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_testr   s         r)    test_isotonic_min_max_boundariesr   8  sS    	!1	-B	A
		!A
		!AFxx((./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   C  s;    		BA A)M;J!!!m!DJ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   N  s~    
'(A
		#a&A 
vW	EBFF1L 6C	z	-


CFRK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   ]  s    
'(A
		#a&A 
vV	DBFF1L 
SVb[#a&2+.	/B	ABr7c"gr7c"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   m  s|    
'(A
		#a&A 
vU	CBFF1L 
SVb[#a&2+.	/Brxx|!!!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   {  s    
'(A
		#a&A 
vV	DBFF1L\\"f556F
,,v
CJJ!!"**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	t6	BBFF1LVVBKK

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+?gMgS?g9vgI+ƿg/$gl?gtV?g"~?gzG?gy&1?g#~jg"~j?g;On?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     		
	A0 	AS4A66!q&>>>66!s( 	ASFA66!q&>>>66!s( 	ASU;A66!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	KKYK''A 	#AAaFNN1qN) NN1qN)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[        X5        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SXXi((2-G
#U7^4;;GDKKIV  hhy!G)*GHHY#%&#!1FKJ#!1FKJ
  *22  3  K 1 NN77N;CHHY''",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IIbMr+   dtypec                 B   / SQn[         R                  " / SQ[         R                  S9n[        5       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                  XUS9  UR                  U5      nUR                  U:X  a  M   e   g )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hh0

CG

Crzz :GDxx'$RZZ0E

% 	 "$DyyN***IIc!f$$U+}5kk!nyyN*** E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
0A
		#a&

+AGGAM;;q>177***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**bjj)HHV)FFHLLOqQ'a1i( *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     	)7A	A
QA1#GA!

*+!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  7  s     	%RZZ8A
RZZ0A##A)D\\-.Fvrxx(?@At))288O+DEt))288O+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  D  sk     	/0A
)*A##A)D\\"((#ABCF66"++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#  N  sZ   
))


#CI

	
"A

	
"A488>D!%!3!3T5G5G,!3!3333
 a 1771:---77<#'')))) ((((((rww|$q())))277<(A-....277<(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-  i  s    			"A99RD
		"A "&&q,G#%))$2J>>Z.....>>Z.....==J,,,,,==J,,,,,w,,j.F.FGw,,j.F.FGooa 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_featurer0    s    
		"A55;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)zCheck 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    sm     RABGDA\\!_ "1.335;%>Q1B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   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}IIb!
		"A


"
"1
(C%%'EeRZZ((((;;&   -.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   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RABGDA"$I				:a%%a(""1% 
;
 gr||,,,,fbjj)))) 
;	:s   4B==
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*,"1J 288RXXrzz2::"NO+ P+( RXXrxxRZZ$PQ+ R+) 2::rzz":;
! <
!
F' e}5/ 6/4&, $?$ 4,/7 07*r+   