o
    ×tBh.v  ã                   @   sÊ  d dl Zd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZ ej d
eef¡dd„ ƒZej dddidfddidfddidfddidfddidfddidfddidfddidfdddgidfddggidfdddgddggidfddgdgdggidfddgdggidfddid fddid fddid fd!did"fd!did"fd!did"fd#d$d$d%œd&fd#d gdggdd'œd(fg¡d)d*„ ƒZd+d,„ Zej dd-d#g¡d.d/„ ƒZej d0¡ej d1d2d3g¡d4d5„ ƒƒZej deddƒ¡ej ded$dƒ¡ej dd6d7g¡ej dd8d#g¡d9d:„ ƒƒƒƒZ ej d;d<gd=d>g¡d?d@„ ƒZ!ej g dA¢d6d$de "d dgd$dBgddCgg¡fd6d$e "g dD¢¡e "ddgdEdBgddCgg¡fd6dEde "d dgddgdEdFgddCgg¡fd7d$de "d dgd$d$gddCgg¡fd7d$e "g dD¢¡e "ddgddBgddCgg¡fg¡dGdH„ ƒZ#ej dIdJdKdLdMgd dNgdOdPgdQdRgdSdTgddUggdd$fg¡dVdW„ ƒZ$ej d;d<gd=d>g¡dXdY„ ƒZ%dZd[„ Z&d\d]„ Z'ej dd$dg¡d^d_„ ƒZ(ej d;d<gd=d>g¡ej dg d`¢¡dadb„ ƒƒZ)dcdd„ Z*ej dddFg¡ej d!dedfg¡ej dd$dg¡dgdh„ ƒƒƒZ+ej dddidfddidifddjidkfddidifddlidkfddmidkfddnidkfg¡dodp„ ƒZ,e -¡ dqdr„ ƒZ.ej dsd$dedfe/ddƒfd$dfdfe/ddƒfd$deded dgfd$dfdedgfdtdedfg du¢fdtdfdfdd$gfdtdeded gfdtdfdeg fg¡ej dvdfej0ej1g¡dwdx„ ƒƒZ2e -¡ dydz„ ƒZ3ej dsddedfe/d dƒfddfdfe/ddƒfddedeg d{¢fddfdeg d|¢fd}dedfg d~¢fd}dfdfg d¢fd}deded dEgfd}dfdedEgfd$dedfe/ddƒfd$dfdfe/ddƒfd$dedeg d{¢fd$dfdeg d|¢fdtdedfg d€¢fdtdfdfe/d$dƒfdtdeded dEgfdtdfdedEgfddedfg d‚¢fddfdfg dƒ¢fddeded gfddfdeg fg¡ej dvdfej0ej1g¡d„d…„ ƒƒZ4ej d0¡ej d1d2d3g¡d†d‡„ ƒƒZ5ej g dˆ¢ddedfe6fddedfe6fddedfej7fddedfej8fd$dfdfej8fd$dfdeej8fdEdfdfej8fdEdfdeej8fg¡d‰dŠ„ ƒZ9ej g dˆ¢ddedfe6fddedfe6fddedfej7fddedfej8fd$dfdfej8fd$dfdeej8fg¡d‹dŒ„ ƒZ:ej dg dŽ¢¡ej dg d¢¡ej d‘dedfg¡ej d!dedfg¡d’d“„ ƒƒƒƒZ;ej g dˆ¢ddedfej7fddedfej8fd$dfdfej8fd$dfdeej8fg¡d”d•„ ƒZ<ej g d–¢g d—¢¡d˜d™„ ƒZ=ej d!d‘gg dš¢¡d›dœ„ ƒZ>ej g d¢g dž¢¡dŸd „ ƒZ?d¡d¢„ Z@ej d£eeg¡d¤d¥„ ƒZAd¦d§„ ZBdS )¨é    N)Úsparse)Úrandom)Úassert_array_almost_equal)Úassert_allcloseÚassert_array_equal)ÚBSpline)ÚLinearRegression)ÚPipeline)ÚKBinsDiscretizerÚPolynomialFeaturesÚSplineTransformerÚestc                 C   sd   t  d¡ dd¡}dd„ }|| ƒ  |¡ƒsJ ‚|| dd |¡ƒs#J ‚t  | dd |¡¡s0J ‚d	S )
z+Test that output array has the given order.é
   é   é   c                 S   s   t  | j¡S )N)ÚnpÚ	isfortranÚT)Úa© r   ú‚/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/preprocessing/tests/test_polynomial.pyÚis_c_contiguous   s   z?test_polynomial_and_spline_array_order.<locals>.is_c_contiguousÚC)ÚorderÚFN)r   ÚarangeÚreshapeÚfit_transformr   )r   ÚXr   r   r   r   Ú&test_polynomial_and_spline_array_order   s
   r   zparams, err_msgÚdegreeéÿÿÿÿz%degree must be a non-negative integerg      @ÚstringÚn_knotsé   z(n_knots must be a positive integer >= 2.Úknotsz,Expected 2D array, got scalar array instead:r   z(Expected 2D array, got 1D array instead:z0Number of knots, knots.shape\[0\], must be >= 2.r   é   z+knots.shape\[1\] == n_features is violated.z(knots must be sorted without duplicates.ÚextrapolationzUextrapolation must be one of 'error', 'constant', 'linear', 'continue' or 'periodic'.Úinclude_biaszinclude_bias must be bool.Úperiodicé   )r'   r#   r    zFPeriodic splines require degree < n_knots. Got n_knots=3 and degree=3.)r'   r%   r    zFPeriodic splines require degree < n_knots. Got n_knots=2 and degree=2.c                 C   óT   dgdgg}t jt|d tdi | ¤Ž |¡ W d  ƒ dS 1 s#w   Y  dS )zATest that we raise errors for invalid input in SplineTransformer.r$   r   ©ÚmatchNr   )ÚpytestÚraisesÚ
ValueErrorr   Úfit©ÚparamsÚerr_msgr   r   r   r   Ú(test_spline_transformer_input_validation   s   7"ÿr5   c                  C   sŒ   t  d¡ dd¡} ddgddgddgg}td|d	d
 | ¡}t  |¡}td|d	d
 | ¡}t| jd ƒD ]}t|j	| j
|j	| j
ƒ q4d	S )zP
    Test that array-like knot positions in SplineTransformer are accepted.
    é   r   r   ç      à?r$   ç      ø?r   r*   N)r    r%   r#   )r   r   r   r   r1   ÚasarrayÚrangeÚshaper   Ú	bsplines_Út)r   r%   Úst1Úst2Úir   r   r   Ú)test_spline_transformer_manual_knot_input\   s   
ÿrA   Úcontinuec                 C   sL   t  d¡ dd¡}ddgddgddgddgddgg}td	|| d
 |¡}dS )zATest that SplineTransformer accepts integer value knot positions.r6   r   r   r   r$   r   é   é   r*   )r    r%   r'   N)r   r   r   r   r   )r'   r   r%   Ú_r   r   r   Ú%test_spline_transformer_integer_knotsi   s   "ÿþrF   zignore::FutureWarning:sklearnÚ	get_namesÚget_feature_namesÚget_feature_names_outc                 C   sx   t  d¡ dd¡}tdddd |¡}t|| ƒƒ }t|g d¢ƒ tdddd |¡}t|| ƒd	d
gƒ}t|g d¢ƒ dS )z<Test that SplineTransformer generates correct features name.r6   r   r   r*   T©r#   r    r(   )
Úx0_sp_0Úx0_sp_1Úx0_sp_2Úx0_sp_3Úx0_sp_4Úx1_sp_0Úx1_sp_1Úx1_sp_2Úx1_sp_3Úx1_sp_4Fr   Úb)Úa_sp_0Úa_sp_1Úa_sp_2Úa_sp_3Úb_sp_0Úb_sp_1Úb_sp_2Úb_sp_3N)r   r   r   r   r1   Úgetattrr   )rG   r   ÚspltÚfeature_namesr   r   r   Ú%test_spline_transformer_feature_namest   s   þþra   ÚuniformÚquantileÚconstantc                 C   s²   t  ddd¡dd…df }t jdgg|ddd…dd…f dggf }|ddd…dd…f }|dkr5||  }t|| |d|d}| |¡ ||fD ]}tt j| |¡dd	dƒ qGdS )
zšTest that B-splines are indeed a decomposition of unity.

    Splines basis functions must sum up to 1 per row, if we stay in between
    boundaries.
    r   r$   éd   Nr   r)   T)r#   r    r%   r(   r'   ©Úaxis)r   ÚlinspaceÚr_r   r1   r   ÚsumÚ	transform)r    r#   r%   r'   r   ÚX_trainÚX_testr_   r   r   r   Ú+test_spline_transformer_unity_decompositionœ   s    
*û
ÿrn   ÚbiasÚ	intercept©TF©FTc                 C   s€   t  ddd¡dd…df }t  |dd…df ¡d }tdtdd| d	d
fdt|dfgd}| ||¡ t| |¡|dd dS )z7Test that B-splines fit a sinusodial curve pretty well.r   r   re   Nr   Úsplineé   r*   rd   ©r#   r    r(   r'   Úols©Úfit_intercept©Ústepsçü©ñÒMbP?©Úrtol)	r   rh   Úsinr	   r   r   r1   r   Úpredict)ro   rp   r   ÚyÚpiper   r   r   Ú)test_spline_transformer_linear_regressionº   s    üþ	öÿr‚   )r%   r#   Úsample_weightÚexpected_knotsé   é   )r   r   r$   r$   r   r*   r$   é   r   c              
   C   sT   t  ddgddgddgddgddgddgddgg¡}tj|| ||d	}t||ƒ d S )
Nr   r   r*   r‡   r&   r   r…   r†   )r   r%   r#   rƒ   )r   Úarrayr   Ú_get_base_knot_positionsr   )r%   r#   rƒ   r„   r   Ú
base_knotsr   r   r   Ú/test_spline_transformer_get_base_knot_positionsÑ   s
   4ÿr‹   zknots, n_knots, degree)rb   r   r*   )rb   rD   r…   ç      ð¿ç        ç      ð?gš™™™™™¹?g       @gš™™™™™É?ç      @g333333Ó?ç      @ç      @c                 C   sP   t  ddd¡}t  ddd¡}t| ||dd}| |¡ t| |¡| |¡ƒ dS )zBTest that the SplineTransformer is periodic for multiple features.)r!   r   )r$   r   r   )r*   r   r)   )r%   r#   r    r'   N)r   rh   r   r1   r   rk   )r%   r#   r    ÚX_1ÚX_2r_   r   r   r   Ú4test_spline_transformer_periodicity_of_extrapolationñ   s   ÿ
r”   c                 C   sÌ   dd„ }t  ddd¡dd…df }tdtdd	| d
dfdt|dfgd}| |||dd…df ƒ¡ t  ddd¡dd…df }| |¡}t|||dd…df ƒddd t|dd… |dd… dd dS )z5Test that B-splines fit a periodic curve pretty well.c                 S   s,   t  dt j |  ¡t  dt j |  ¡ d S )Nr   r…   r*   )r   r~   Úpi)Úxr   r   r   Úf  s   ,z=test_spline_transformer_periodic_linear_regression.<locals>.fr   r$   ée   Nrs   r6   r*   r)   ru   rv   rw   ry   r!   r   i-  g{®Gáz„?)Úatolr}   re   éÈ   r{   r|   )r   rh   r	   r   r   r1   r   r   )ro   rp   r—   r   r   ÚX_Úpredictionsr   r   r   Ú2test_spline_transformer_periodic_linear_regression
  s&   üþ	öÿ
 "r   c                  C   sœ   t  ddd¡dd…df } d}t|ddgdgd	ggd
}| | ¡}t  d	dgdd	gd	dgdd	gg¡}tt  dd¡||dƒ}|| dd…df ƒ}t||ƒ dS )z@Test that the backport of extrapolate="periodic" works correctlyéþÿÿÿg      @r   Nr   r)   rŒ   r   rŽ   ©r    r'   r%   éýÿÿÿr‡   r   )r   rh   r   r   rˆ   r   r   r   )r   r    ÚtransformerÚXtÚcoefÚsplÚXsplr   r   r   Ú0test_spline_transformer_periodic_spline_backport)  s   ÿ
"r¦   c               	   C   s˜   t  ddd¡dd…df } tdddgdgd	gd
gdgdggd}tdddgd	gd
gdgdgdggd}| | ¡}| | ¡}t||dd…g d¢f ƒ dS )zT
    Test if shifted knots result in the same transformation up to permutation.
    r   r   r˜   Nr*   r)   r   rŽ   r   r   r‘   ç       @rŸ   g      "@)r‡   r   r$   r   r*   )r   rh   r   r   r   )r   Útransformer_1Útransformer_2ÚXt_1ÚXt_2r   r   r   Ú4test_spline_transformer_periodic_splines_periodicity;  s   ýý

r¬   c           	   	   C   sÖ   t  ddd¡dd…df }t| ddgdgdgd	gd
gdggd}| |¡}| ¡ | ¡  t|ƒ }d| }|}td| d ƒD ]}t j|dd}t  	|¡ ¡ |k sRJ ‚|| }q>t j|dd}t  	|¡ ¡ dksiJ ‚dS )z?Test that spline transformation is smooth at first / last knot.rž   r   i'  Nr)   r   rŽ   r   r   r‘   r§   rŸ   r$   r   rf   )
r   rh   r   r   ÚmaxÚminÚlenr:   ÚdiffÚabs)	r    r   r¡   r¢   ÚdeltaÚtolÚdXtÚdr°   r   r   r   Ú3test_spline_transformer_periodic_splines_smoothnessS  s    ý


r¶   )r$   r   r*   r‡   r   c                 C   sN  t  ddd¡dd…df }| ¡ }tdtd|| ddgd	t|d
ggƒ}| ||¡ t| dgdgg¡ddgƒ tdtd|| ddgd	t|d
ggƒ}| ||¡ t| dgdgg¡ddgƒ td|| dd}| |¡ t	 
t¡ | dgg¡ W d  ƒ n1 sƒw   Y  t	 
t¡ | dgg¡ W d  ƒ dS 1 s w   Y  dS )z1Test that B-spline extrapolation works correctly.r!   r$   re   Nrs   r‡   rd   ru   rv   rw   iöÿÿÿr   ÚlinearÚerror)r   rh   Úsqueezer	   r   r   r1   r   r   r.   r/   r0   rk   )ro   rp   r    r   r€   r   r_   r   r   r   Ú%test_spline_transformer_extrapolationz  sP   üþ	öÿüþ	öÿÿ
ÿ"ÿrº   c                  C   sn   t j d¡} |  d¡ dd¡}d}|d }t|dddd}| |¡}t|d	dd
}| |¡}t||dd dS )zCTest that a B-spline of degree=0 is equivalent to KBinsDiscretizer.iû| rš   r$   r   r   rc   T)r#   r    r%   r(   zonehot-dense)Ún_binsÚencodeÚstrategyg‚vIhÂ%<=r|   N)	r   r   ÚRandomStateÚrandnr   r   r   r
   r   )Úrngr   r»   r#   r_   ÚsplinesÚkbdÚkbinsr   r   r   Ú'test_spline_transformer_kbindiscretizer±  s   ÿ

rÄ   TFc                 C   sP   t | ||d}t ddd¡dd…df }| |¡ | |¡jd |jks&J ‚dS )z8Test that transform results in n_features_out_ features.rJ   r   r$   r   N)r   r   rh   r1   rk   r;   Ún_features_out_)r#   r(   r    r_   r   r   r   r   Ú&test_spline_transformer_n_features_outÅ  s   
rÆ   z*degree must be a non-negative int or tupleÚ12z&degree=\(min_degree, max_degree\) must)r!   r   )r   r8   ©r*   r   c                 C   r+   )zBTest that we raise errors for invalid input in PolynomialFeatures.r$   r   r,   Nr   )r.   r/   r0   r   r1   r2   r   r   r   Ú)test_polynomial_features_input_validationÑ  s   "ÿrÉ   c                  C   s@   t  d¡d d …t jf } t  t  | ¡| | d | d g¡}| |fS )Nr&   r   r*   )r   r   ÚnewaxisÚhstackÚ	ones_like)r   ÚPr   r   r   Úsingle_feature_degree3å  s    rÎ   z/degree, include_bias, interaction_only, indices©r   r*   )r   r   r*   Úsparse_Xc           
      C   ó~   | \}}|r
||ƒ}t |||d |¡}| |¡}	|r|	 ¡ }	t|	|dd…|f ƒ |jdkr;|jj|j|jfks=J ‚dS dS )z9Test PolynomialFeatures on single feature up to degree 3.©r    r(   Úinteraction_onlyNr   ©	r   r1   rk   Útoarrayr   Ún_output_features_Úpowers_r;   Ún_features_in_)
rÎ   r    r(   rÓ   ÚindicesrÐ   r   rÍ   ÚtfÚoutr   r   r   Ú$test_polynomial_features_one_featureì  s    ÿþ

ÿrÜ   c                  C   sÖ   t  d¡ d¡} | d d …d d…f }| d d …dd …f }t  |d |d  |d |d  |d |d  |d |d  |d |d  |d |d  |d |d  |d |d  |d |d  |d |d  g
¡}| |fS )Nr&   rÈ   r$   r   r   r*   )r   r   r   rË   )r   Úx1Úx2rÍ   r   r   r   Útwo_features_degree3  s"   öÿrß   )r   r$   r   r‡   )r$   r   r‡   )r   r   )r   r*   r‡   r   )r*   r‡   r   )r   r*   r‡   r   r&   é   r…   é	   ©r*   r*   )r   r&   rà   r…   rá   )r&   rà   r…   rá   c           
      C   rÑ   )z5Test PolynomialFeatures on 2 features up to degree 3.rÒ   Nr   rÔ   )
rß   r    r(   rÓ   rÙ   rÐ   r   rÍ   rÚ   rÛ   r   r   r   Ú%test_polynomial_features_two_features*  s    &ÿþ

ÿrã   c                 C   st  t  d¡ dd¡}tddd |¡}| ¡ }tg d¢|ƒ t|ƒ| |¡j	d ks+J ‚tdd	d |¡}t
|| ƒg d
¢ƒ}tg d¢|ƒ t|ƒ| |¡j	d ksRJ ‚tdd	d |¡}t
|| ƒg d
¢ƒ}tg d¢|ƒ t|ƒ| |¡j	d ksyJ ‚tdddd |¡}t
|| ƒg d
¢ƒ}tddg|ƒ t|ƒ| |¡j	d ks¡J ‚tddd |¡}| g d¢¡}tg d¢|ƒ d S )Né   r   r*   r   T©r    r(   )
Ú1Úx0rÝ   rÞ   zx0^2zx0 x1zx0 x2zx1^2zx1 x2zx2^2r$   F)r   rU   Úc)r   rU   rè   úa^2úa búa cúb^2úb cúc^2úa^3úa^2 búa^2 cúa b^2úa b cúa c^2úb^3úb^2 cúb c^2úc^3rÏ   )ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   râ   rÒ   ræ   ró   )úF40Dõ   â˜®õ   ×)ræ   rù   rú   rû   )r   r   r   r   r1   rH   r   r¯   rk   r;   r^   )rG   r   Úpolyr`   r   r   r   Útest_polynomial_feature_names_  sB   þêíÿþrý   )Údegr(   rÓ   Údtypec           
      C   s‚   t j d¡}| ddd¡}t |¡}t| ||d}| | |¡¡}| | |¡¡}	t	|tjƒs1J ‚|j
|	j
ks9J ‚t|j|	ƒ d S )Nr   r   ©re   r   ©r(   rÓ   )r   r   r¾   Úrandintr   Ú
csc_matrixr   r   ÚastypeÚ
isinstancerÿ   r   ÚA)
rþ   r(   rÓ   rÿ   rÀ   r   ÚX_cscr   ÚXt_cscÚXt_denser   r   r   Útest_polynomial_features_csc_X­  s   
ÿr
  c           
      C   s†   t j d¡}| ddd¡}t |¡}t| ||d}| | |¡¡}| |j|dd¡}	t	|tjƒs3J ‚|j
|	j
ks;J ‚t|j|	ƒ d S )Nr   r   r   r  F)Úcopy)r   r   r¾   r  r   Ú
csr_matrixr   r   r  r  rÿ   r   r  )
rþ   r(   rÓ   rÿ   rÀ   r   ÚX_csrr   ÚXt_csrr	  r   r   r   Útest_polynomial_features_csr_XÊ  s   
ÿr  Ú
n_features)r$   r‡   r   zmin_degree, max_degree))r   r$   )r   r   )r$   r*   )r   r‡   )r*   r‡   rÓ   c           	      C   sl   t  dgdg| d gff¡}t|||d}| |¡ |j}tj| d|||d}|tdd„ |D ƒƒks4J ‚dS )z?
    Test that n_output_features_ is calculated correctly.
    r$   r   )r    rÓ   r(   )r  Ú
min_degreeÚ
max_degreerÓ   r(   c                 S   s   g | ]}d ‘qS )r$   r   )Ú.0rE   r   r   r   Ú
<listcomp>  s    z)test_num_combinations.<locals>.<listcomp>N)r   r  r   r1   rÖ   Ú_combinationsrj   )	r  r  r  rÓ   r(   r–   r   Ú
num_combosÚcombosr   r   r   Útest_num_combinationså  s    ý
ûr  c           	      C   sz   t ddddd ¡ }| ¡ }t| ||d}| | |¡¡}| | |¡¡}t|tjƒs-J ‚|j	|j	ks5J ‚t
|j|ƒ d S )Néè  r   r7   r   ©Úrandom_stater  )Úsparse_randomÚtocsrrÕ   r   r   r  r  r   r  rÿ   r   r  )	rþ   r(   rÓ   rÿ   r  r   r   r  r	  r   r   r   Ú%test_polynomial_features_csr_X_floats  s   
ÿr  )Úzero_row_indexrþ   rÓ   ))r   r   T)r$   r   T©r   r   T)r   r*   T)r$   r*   T)r   r*   T)r   r   F)r$   r   F©r   r   F)r   r*   F)r$   r*   F)r   r*   Fc                 C   s~   t ddddd ¡ }d|| d d …f< | ¡ }t|d|d}| |¡}| |¡}t|tjƒs/J ‚|j|jks7J ‚t	|j
|ƒ d S )	Nr*   r   rŽ   r   r  r   Fr  ©r  r  rÕ   r   r   r  r   r  rÿ   r   r  )r  rþ   rÓ   r  r   r   r  r	  r   r   r   Ú'test_polynomial_features_csr_X_zero_row   s   

r#  ))TTrq   rr   )FFc                 C   sn   t ddddd ¡ }| ¡ }td| |d}| |¡}| |¡}t|tjƒs'J ‚|j|jks/J ‚t	|j
|ƒ d S )Nr  r   r7   r   r  r‡   r  r"  )r(   rÓ   r  r   r   r  r	  r   r   r   Ú'test_polynomial_features_csr_X_degree_4A  s   ÿ

r$  )rþ   ÚdimrÓ   )
)r   r$   Tr   )r*   r$   T)r*   r   T)r*   r*   T)r   r$   Fr!  )r*   r$   F)r*   r   F)r*   r*   Fc                 C   sl   t d|ddd ¡ }| ¡ }t| |d}| |¡}| |¡}t|tjƒs&J ‚|j|jks.J ‚t	|j
|ƒ d S )Nr  r7   r   r  )rÓ   r"  )rþ   r%  rÓ   r  r   r   r  r	  r   r   r   Ú(test_polynomial_features_csr_X_dim_edgesT  s   

r&  c                  C   sX   d} t  d¡ dd¡}tjt| d tƒ  |¡j W d   ƒ d S 1 s%w   Y  d S )Nz[The attribute `n_input_features_` was deprecated in version 1.0 and will be removed in 1.2.r   r   r   r,   )	r   r   r   r.   ÚwarnsÚFutureWarningr   r1   Ún_input_features_)Údepr_msgr   r   r   r   Ú4test_polynomial_features_deprecated_n_input_featuresp  s   ÿ"ÿr+  ÚTransformerc                 C   s^   t  d¡ dd¡}| ƒ  |¡}d}tjt|d | ¡  W d   ƒ d S 1 s(w   Y  d S )Nrä   r   r*   z&get_feature_names is deprecated in 1.0r,   )r   r   r   r1   r.   r'  r(  rH   )r,  r   rü   Úmsgr   r   r   Ú!test_get_feature_names_deprecated~  s   
"ÿr.  c                  C   sü   t  d¡} tddd}d}tjt|d | | ¡ W d  ƒ n1 s$w   Y  tddd}d	}tjt|d | | ¡ W d  ƒ n1 sHw   Y  | t | ¡t 	| ¡fD ]#}tdd
d}| |¡}t 
|¡rn| ¡ }t|t  | jd df¡ƒ qXdS )z”Check that PolynomialFeatures raises error when degree=0 and include_bias=False,
    and output a single constant column when include_bias=True
    )r   r   r   Frå   zWSetting degree to zero and include_bias to False would result in an empty output array.r,   N)r   r   znSetting both min_deree and max_degree to zero and include_bias to False would result in an empty output array.Tr$   )r   Úonesr   r.   r/   r0   r   r   r  r  ÚissparserÕ   r   r;   )r   rü   r4   Ú_XÚoutputr   r   r   Ú1test_polynomial_features_behaviour_on_zero_degree‡  s(   
ÿÿÿÿ

úr3  )CÚnumpyr   r.   Úscipyr   Úscipy.sparser   r  Úsklearn.utils._testingr   Únumpy.testingr   r   Úscipy.interpolater   Úsklearn.linear_modelr   Úsklearn.pipeliner	   Úsklearn.preprocessingr
   r   r   ÚmarkÚparametrizer   r5   rA   rF   Úfilterwarningsra   r:   rn   r‚   rˆ   r‹   r”   r   r¦   r¬   r¶   rº   rÄ   rÆ   rÉ   ÚfixturerÎ   Úslicer  r  rÜ   rß   rã   rý   ÚintÚfloat32Úfloat64r
  r  r  r  r#  r$  r&  r+  r.  r3  r   r   r   r   Ú<module>   sÔ   









þþþþþþ



þþÓþ
5


&
"ü("üöþ
&ýýþ


&5	






ùþ


øþþ

ìþþ
L

øþ


úþ
ÿüþ
	þ
þ
þ

