
    0Ph;W                     L   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j4        5                    d$ej6        ej7        ej8        ej9        g          d%             Z:ej4        5                    d&ej6        ej7        ej8        ej9        g          d'             Z;d( Z<ej4        5                    d$ej9        ej8        g          d)             Z=d* Z>d+ Z?ej4        5                    d,d-d.g          d/             Z@d0 ZAd1 ZBd2 ZCej4        5                    d3d4d5g          d6             ZDd7 ZEdS )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          \  }}}|                     |||          }|                     |||                              |          }t          ||           d S )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	            [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/tests/test_isotonic.pytest_permutation_invariancer*      s     
		BA   A)))M '1m! L L LCo$$Q$GGMffS#_fEEOOPQRRO}o66666    c                      g d} g d}t          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   |sJ d S )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   (   s    		AA		 	"	" / /g{333(A../ / / / / / / / / / / / / / /    +AAAc                      g d} g d}t          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   |sJ d S )Nr   r   r   r   r   r   )r         ?g)\(@{G!@r;   2   r.   r/   r4   s      r)   test_check_increasing_upr=   3   s    A&&&A 
	 	"	" / /g{333(A../ / / / / / / / / / / / / / / r7   c                      g d} g d}t          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   |sJ d S )Nr9   r.   r/   r4   s      r)    test_check_increasing_up_extremer?   ?   s    AA 
	 	"	" / /g{333(A../ / / / / / / / / / / / / / / r7   c                      g d} g d}t          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   |rJ d S )Nr9   )r   g      g)\({G!rA   r.   r/   r4   s      r)   test_check_increasing_downrC   K   s    A+++A 
	 	"	" / /g{333(A../ / / / / / / / / / / / / / / r7   c                      g d} g d}t          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   |rJ d S )Nr9   )r   r.   r/   r4   s      r)   "test_check_increasing_down_extremerJ   W   s    AA 
	 	"	" / /g{333(A../ / / / / / / / / / / / / / / r7   c                      g d} g d}d}t          j        t          |          5  t          | |          }d d d            n# 1 swxY w Y   |rJ d S )Nr9   )r   rE   r   rG   r   rI   intervalmatch)pytestwarnsr3   r   )r"   r#   msgr5   s       r)   test_check_ci_warnrR   c   s    AA C	k	-	-	- / /(A../ / / / / / / / / / / / / / / s   AA
Ac            	         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          }|                    ||            t          |                    ||                               |          |	                    ||                      t          |                    |          |
                    |                     t           j                            t          |                     }t          dd          }t          |	                    ||         | |                   |	                    ||           |                    t          |                    ||                   |                    |          |                    t                      }t          |	                    t          j        t          |                    |           t          j        |                      d S )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1222
A	)))		Br.q11222
	#a&&A	#S	1	1	1BFF1aLLLrvva||--a00"2B2B1a2H2HIIIr||A

1666 9  Q((D	#S	1	1	1Br''$4992;K;KAq;Q;QRV;WXXXr||AdG,,bll1ood.CDDD 
		Br''A;;RWQZZHHHHHr+   c                  D   g d} g d}g d}t                      }|                    | |           t          |                    | |                              |           |                    | |                     t          ||                    | |                     d S )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###F 
		BFF1aLLLrvva||--a00"2B2B1a2H2HIIIvr//15566666r+   c                  D   g d} g d}g d}t                      }|                    | |           t          |                    | |                              |           |                    | |                     t          ||                    | |                     d S )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                      }|                    | |           t          |                    |           |d           t          |                    | |          |d           dS )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   )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~      s    $ 	211A:::A  F 
		BFF1aLLLbll1oovq999b..q!44fa@@@@@r+   c                  `   t          j        g d          } t          j        g d          }t          j        g d          }t                      }|                    | |           t	          |                    |           |           t	          |                    | |          |           dS )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      s     	###$$A
###$$AX88899F			BFF1aLLLbll1oov666b..q!44f=====r+   c                     t          j        g d          } t          j        g d          }t          | d          }t          ||           t	          d                              t          j        t          |                     |           }t          ||           t          t          j	        |d d         j
                  |d d         |dd          z
  dk               d S )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88899He444EE8$$$	u	-	-	-	;	;BIc!ff<M<Mq	Q	QBB!!!rwr#2#w}--CRC2abb61Aa0GIIIIIr+   c                     t          j        g d          } t          j        t          |                     }t	          d          }t          j        d          5 }t          j        d           |                    ||           }t          d |D                       sJ 	 d d d            n# 1 swxY w Y   |d         |d	         k     }|rJ d S )
Nr   autor   Trecordalwaysc                 :    g | ]}d t          |j                  v S zinvalid value encountered in strmessage.0warns     r)   
<listcomp>z<test_isotonic_regression_auto_decreasing.<locals>.<listcomp>   (    WWWT3s4<7H7HHWWWr+   r   rE   
r]   r^   r_   r`   r   r0   r1   r2   r   allr#   r"   r!   wrf   r5   s         r)   (test_isotonic_regression_auto_decreasingr      s'   
***++A
	#a&&A 
v	.	.	.B		 	-	-	- Yh'''a##WWUVWWWXXXXXX	Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y qEBrFNM   AB00B47B4c                     t          j        g d          } t          j        t          |                     }t	          d          }t          j        d          5 }t          j        d           |                    ||           }t          d |D                       sJ 	 d d d            n# 1 swxY w Y   |d         |d	         k     }|sJ d S )
N)r   r   r   r   rW   rU   rW   r   r   Tr   r   c                 :    g | ]}d t          |j                  v S r   r   r   s     r)   r   z<test_isotonic_regression_auto_increasing.<locals>.<listcomp>  r   r+   r   rE   r   r   s         r)   (test_isotonic_regression_auto_increasingr     s'   
***++A
	#a&&A 
v	.	.	.B		 	-	-	- Yh'''a##WWUVWWWXXXXXX	Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y qEBrFNMr   c                     t                      } t          j                            d          }d}t	          j        t          |          5  |                     g dg dddg           d d d            n# 1 swxY w Y   t	          j        t          |          5  |                     g ddd	g           d d d            n# 1 swxY w Y   d
}t	          j        t          |          5  |                     |                    dd          g d           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  | 	                    |                    dd                     d d d            d S # 1 swxY w Y   d S )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     sr   			B
)


#
#C
FC	z	-	-	- 1 1
yyy)))c3Z0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
z	-	-	- " "
yyy1a&!!!" " " " " " " " " " " " " " " #C	z	-	-	- , ,
syyB+++, , , , , , , , , , , , , , , =C	z	-	-	- ' '
SYYq"%%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'sH   A55A9<A9CC	C*-D##D'*D'*FF	Fc                     t                      } t          j                            d          }d}t          j        |          }|                    dd|f          dt          j        dt          j        |          z             z  z   }t          j        |          }|                     |||          }|                     ||          }t          ||           d S )	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$''$BIaLL8H1I1I*IIAgajjG""1aw"??K&&q!,,O{O44444r+   c                      t          dd          } d}t          j        |          }t          j        |          }g d}t          j        |                     ||                    }t          ||           d S )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x((A..//Hx(((((r+   c                      t                      } g d}g d}g d}g d}|                     |||          }t          ||           d S )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  si    			BA   A)))M;;;J!!!Qm!DDJz:.....r+   c                     t          j        g d          } t          j        t          |                     }t	          dd          }|                    ||            d}t          j        t          |          5  |	                    t          |          dz
  t          |          dz   g           d d d            d S # 1 swxY w Y   d S )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	E	E	EBFF1aLLL 6C	z	-	-	- / /


CFFRKQ"-.../ / / / / / / / / / / / / / / / / /s   <8CCCc                     t          j        g d          } t          j        t          |                     }t	          dd          }|                    ||            |                    t          |          dz
  t          |          dz   g          }|                    |          }t          |          t          |          k    sJ t          |          t          |          k    sJ d S )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	D	D	DBFF1aLLL 
SVVb[#a&&2+.	/	/B	ABr77c"ggr77c"ggr+   c                  ~   t          j        g d          } t          j        t          |                     }t	          dd          }|                    ||            |                    t          |          dz
  t          |          dz   g          }t          t          j
        |                    dk    sJ d S )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	C	C	CBFF1aLLL 
SVVb[#a&&2+.	/	/Brx||!!!!!!r+   c                     t          j        g d          } t          j        t          |                     }t	          dd          }|                    ||            t          j        |t          j                  }t          j	        |          }t           j
                            |                    |          |                    |                     d S )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	D	D	DBFF1aLLL\"f566F
,v

CJ!!"**Q--Q@@@@@r+   c                      g d} g d}t          dd          }|                    | |           t          j        t          j        |                    |                               }|sJ d S )N)r   r   r   Tr   r   )r   r   r]   r   isfinitera   )r"   r#   r!   all_predictions_finites       r)   !test_isotonic_duplicate_min_entryr     sm    		A		A	t6	B	B	BBFF1aLLLVBK

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 d S )	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444A6!q&>>6!s( 	ASFFFA6!q&>>6!s( 	ASU;;;A6!q&>>r+   c                  \   t           j                            d          } t                      }d}t          j        dd|          }||                     |          z   }|                     |          }d|dd<   |                    |||	           |                    |||	           d S )
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	CKKYK'''A 	##AAacFNN1aqN))) NN1aqN)))))r+   c                     t           j                            d          } d}d|                     |          z  dz
  }t          j        |                     |          t          |                                        d                              d          }|                     |          }d||                     |          dk     <   t          dd	d
          }t          dd	d
          }|                    |||d          \  }}|	                    ||           |
                    |||           d|                     |          z  dz
  }	|                    |	          }
|                    |	          }t          |
|           d S )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SXXi(((2-G
##U7^^44;;GDDKKIVV  hhy!!G)*GCHHY#%&#!1FKKKJ#!1FKKKJ
  *22  3    K [111 NN7G7N;;;CHHY'''",F$$V,,K$$V,,K{K00000r+   c                  J    t                      } t          j        |            d S )N)r   copy)r!   s    r)   test_isotonic_copy_before_fitr     s    			BIbMMMMMr+   dtypec                 V   g d}t          j        g dt           j                  }t                      }d |                    t           j                  |fD ]}t          j        ||           }t          |t           j        t           j        gd          j        }t          ||          }|j        |k    sJ t          j	        t          |                                        |           }|                    |||           |                    |          }|j        |k    sJ d S )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000
CCCG


Crz : :GD + +x'''$RZ0E
 
 

 	 "$mDDDyN****Ic!ff$$U++4}555kk!nnyN*****+ +r+   y_dtypec                 "   t                      }t          j        g d|           }t          j        t	          |          t          j                  }|                    ||           |                    |          j        |j        k    sJ d S )Nr  r  )	r   r]   r^   r_   r`   r  r   ra   r   )r  r  r#   r  s       r)   test_isotonic_mismatched_dtyper    sz     

C
000A
	#a&&
+++AGGAqMMM;;q>>17******r+   c                     g d} t           j        t           j        fD ]g}t          j        | |          }|                                }t          j        |          }t          |||          \  }}}t          |g d           hd S )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*bj) ) )HV5)))FFHHLOOq!Q''1a1iii(((() )r+   c                 J   t          j        g d|           }|                                }t          j        |          }t	          |||          \  }}}| t           j        k    rt          j        g d          }nt          j        ddg          }t          ||           d S )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  )  s     	)))777A	A
QA1a##GAq!
***++!Q  q%     r+   c                     t          j        g dt           j                  } t          j        g dt           j                  }t                                          | |          }|                    g d          }t          |t          j        g d                     t          |j        t          j        g d                     t          |j        t          j        g d                     d S )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     	%%%RZ888A
RZ000A##Aq))D\\---..Fvrx(?(?(?@@AAAt)28OOO+D+DEEEt)28OOO+D+DEEEEEr+   c                  D   t          j        g d          } t          j        g d          }t                                          | |          }|                    t          j        g d                    }t          j        t          j        |                    sJ d S )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  s     	///00A
)))**A##Aq))D\\"(#A#A#ABBCCF6"+f%%&&&&&&&r+   r   TFc                 X   t           j                            d          }d}|                    |          }|                    |          }t	          |                               ||          }|j        |j        }}|j        |j        k    sJ |j        d         |j        d         k     sJ t          j	        ||          
                                sJ |                                |                                k    sJ |                                |                                k    sJ t          t          j        |          dk              sJ | r)t          t          j        |          dk              sJ d S t          t          j        |          dk              sJ d S )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  s   
)


#
#CI

	
""A

	
""A44488A>>D!%!3T5G,L!33333
 a 171:----7<##''))))) ((((((((rw|$$q())))) /27<((A-.......27<((A-.......r+   c                  v   t          j        d          } |                     dd          }t          j        d          }t                                          | |          }t                                          ||          }|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                   |                    |           }|                    |          }t          ||           d S )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_validationr4  i  s%    		"A99RD
	"A ""&&q!,,G#%%))$22J>Z.....>Z.....=J,,,,,=J,,,,,w,j.FGGGw,j.FGGGooa  G  &&GGW%%%%%r+   c                     t          j        d          } t           j        | | f         }t          j        d          }d}t          j        t
          |          5  t                                          ||           d d d            n# 1 swxY w Y   t                                          | |          }t          j        t
          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t
          |          5  |	                    |           d d d            d S # 1 swxY w Y   d S )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   r0  s        r)   )test_isotonic_2darray_more_than_1_featurer7    s   
	"A5A;D
	"A
;C	z	-	-	- * *  q)))* * * * * * * * * * * * * * * !""&&q!,,G	z	-	-	-                 
z	-	-	-    $                                   s6   #B		BBC33C7:C7D<<E E c                  4   t          ddd          \  } }t          j        |          }d|d<   |                                }t	          ||           t          ||           t                                          | ||           t          ||           dS )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_overwrittenr=    s     RABGGGDAq\!__ "1.3355):;;;;%'=>>>Q1BCCC%'=>>>>>r+   r   1d2dc                 x   t          j        d          }| dk    r|                    dd          }t          j        d          }t                                          ||          }|                                }t          |t           j                  sJ |j        t          k    sJ t          dg|           dS )z7Check `get_feature_names_out` for `IsotonicRegression`.rW   r?  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_outrH    s     		"A}}IIb!
	"A



"
"1a
(
(C%%''EeRZ(((((;&    -.66666r+   c                     t          j        d          } t          ddd          \  }}t                      }t	          j        d          5  |                    ||           |                    |          }|                    |          }ddd           n# 1 swxY w Y   t          || j
                  sJ t          |t          j                  sJ dS )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   r9  )transform_outputN)rO   importorskipr   r   sklearnconfig_contextr   r    ra   rC  	DataFramer]   rD  )pdr  r#   	regressorX_transr  s         r)   'test_isotonic_regression_output_predictrS    s    
	X	&	&BRABGGGDAq"$$I			:	:	: & &a%%a((""1%%& & & & & & & & & & & & & & &
 gr|,,,,,fbj)))))))s   ABB!B)Fr   r   r0   numpyr]   rO   scipy.specialr   rM  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*  r4  r7  r=  rH  rS   r+   r)   <module>r_     s<                  , , , , , ,            " ! ! ! ! !         
 1 0 0 0 0 07 7 7  	 	 		 	 		 	 		 	 		 	 	I I I4
7 
7 
7
7 
7 
7&A &A &AR> > >0	J 	J 	J  $  $' ' '(5 5 5 ) ) )/ / // / /   " " "
A 
A 
A" " ") ) )X* * *,"1 "1 "1J   28RXrz2:"NOO+ + PO+( RXrxRZ$PQQ+ + RQ+) ) ) 2:rz":;;
! 
! <;
!
F 
F 
F' ' ' e}55/ / 65/4& & &,     $? ? ?$ 4,//7 7 0/7* * * * *r+   