o
    \i                     @   s	  d dl Z d dlZd dl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 d dlmZ d dlmZmZmZ d d	lmZ d d
lmZ d dlmZmZmZmZ ej deefdd Z!ej dddggidfdddgddggidfddgd ggidfgdd Z"ej dddgdd Z#dd Z$ej dg dej d dd!gd"d# Z%ej d e&dd$ej d%e&d!d$ej dd&d'gej dd(dgd)d* Z'ej d+d,gd-d.gd/d0 Z(ej g d1d&d!de)d dgd!d2gd3d4ggfd&d!e)g d5e)ddgd6d2gd3d4ggfd&d6de)d dgdd3gd6d7gd3d4ggfd'd!de)d dgd!d!gd3d4ggfd'd!e)g d5e)ddgd$d2gd3d4ggfgd8d9 Z*ej d+d,gd-d.gd:d; Z+d<d= Z,d>d? Z-ej d d!d$gd@dA Z.ej d+d,gd-d.gej d g dBdCdD Z/dEdF Z0ej d e&dd!ej dd&d'gej dg dGej dHdIdJgdKdL Z1ej d%d$d7gej dHdJdIgej d d!d6gej dg dGej dMdIdJgdNdO Z2ej dd dPidQfd dRidQfd dSidQfd dTidUfgdVdW Z3e4 dXdY Z5ej dZd!dJdIe6ddfd!dIdIe6ddfd!dJdJd dgfd!dIdJdgfd[dJdIg d\fd[dIdIdd!gfd[dJdJd gfd[dIdJg fgej d]dge e d^d_ Z7e4 d`da Z8ej dZddJdIe6d d3fddIdIe6dd3fddJdJg dbfddIdJg dcfdddJdIg defdddIdIg dffdddJdJd d6gfdddIdJd6gfd!dJdIe6ddfd!dIdIe6ddfd!dJdJg dbfd!dIdJg dcfd[dJdIg dgfd[dIdIe6d!dfd[dJdJd d6gfd[dIdJd6gfdhdJdIg difdhdIdIg djfdhdJdJd gfdhdIdJg fgej d]dge e dkdl Z9dmdn Z:ej g doddJdIe;fddJdIe;fddJdIej<fddJdIej=fd!dIdIej=fd!dIdJej=fd6dIdIej=fd6dIdJej=fgej dpedqdr Z>ej g doddJdIe;fddJdIe;fddJdIej<fddJdIej=fd!dIdIej=fd!dIdJej=fgej dsedtdu Z?ej dvg dwej dxg dyej dzdJdIgej dHdJdIgej dsed{d| Z@ej g doddJdIej<fddJdIej=fd!dIdIej=fd!dIdJej=fgej dsed}d~ ZAej g dg dej dsedd ZBej dHdzgg dej dsedd ZCej g dg dej dsedd ZDej dzdJdIgej dHdJdIgej dsedd ZEej dddde;eFeGejHjId fdde;eFeGejHjIfgej dzdJdIgej dHdJdIgej dsedd ZJej dzdJdIgej dHdJdIgej dsedd ZKej dee dd ZLdd ZMejjNe jOdkddJdej dsedd ZPdS )    N)assert_allcloseassert_array_equal)sparse)BSpline)random)LinearRegression)Pipeline)KBinsDiscretizerPolynomialFeaturesSplineTransformer)_get_sizeof_LARGEST_INT_t)assert_array_almost_equal)CSC_CONTAINERSCSR_CONTAINERSparse_version
sp_version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/www-root/data/www/176.119.141.140/sports-predictor/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knots   z0Number of knots, knots.shape\[0\], must be >= 2.r   z*knots.shape\[1\] == n_features is violatedz(knots must be sorted without duplicates.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   
"r1   extrapolationcontinueperiodicc                 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.   r   r   r   r&   r            )degreer%   r2   N)r   r    r!   r   r"   )r2   r#   r%   _r   r   r   %test_spline_transformer_integer_knots:   s   "r;   c                  C   sp   t ddd} tdddd| }| }t|g d tdddd| }|d	d
g}t|g d dS )z<Test that SplineTransformer generates correct features name.r5   r   r   r8   T)n_knotsr9   include_bias)
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   r-   get_feature_names_outr   )r#   spltfeature_namesr   r   r   %test_spline_transformer_feature_namesD   s   rT   )constantlinearr3   r4   r9   r8   c                 C   sh   t ddd}t|| d|}|ddg}t||jks"J ||}|j	d t|ks2J dS )	zsTest feature names are correct for different extrapolations and degree.

    Non-regression test for gh-25292.
    r5   r   r   )r9   r2   r   rH   r&   N)
r   r    r!   r   r-   rQ   lenn_features_out_	transformshape)r2   r9   r#   rR   rS   X_transr   r   r   7test_split_transform_feature_names_extrapolation_degreej   s   

r\   r   r<   uniformquantilerU   c                 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 )
zTest 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   r4   T)r<   r9   r%   r=   r2   axis)r   linspacer_r   r-   r   sumrY   )r9   r<   r%   r2   r#   X_trainX_testrR   r   r   r   +test_spline_transformer_unity_decomposition}   s    	*
rg   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   r_   Nr   spline   r8   rU   r<   r9   r=   r2   olsfit_interceptstepsMbP?rtol)	r   rb   sinr   r   r   r-   r   predict)rh   ri   r#   ypiper   r   r   )test_spline_transformer_linear_regression   s    	r{   )r%   r<   sample_weightexpected_knots         )r   r   r&   r&   r   r8   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 )zJCheck the behaviour to find knot positions with and without sample_weight.r   r   r8   r   r   r   r~   r   )r#   r%   r<   r|   N)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   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~   r8   )r   rw   pi)xr   r   r   f   s   ,z=test_spline_transformer_periodic_linear_regression.<locals>.fr   r&   e   Nrl   r5   r8   r4   rn   ro   rp   rr   r   i-  g{Gz?)atolrv   r_      rt   ru   )r   rb   r   r   r   r-   rx   r   )rh   ri   r   r#   rz   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 correctlyg      @r   Nr   r4   g                    ?r9   r2   r%   r   r   )r   rb   r   r"   r   r   r    r   )r#   r9   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 )zJTest if shifted knots result in the same transformation up to permutation.r   r   r   Nr8   r4   r   r         @      @      @       @r   g      "@)r   r   r&   r   r8   )r   rb   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'  Nr4   r   r   r   r   r   r   r   r&   r   r`   )
r   rb   r   r"   maxminrW   rangediffabs)	r9   r#   r   r   deltatoldXtdr   r   r   r   3test_spline_transformer_periodic_splines_smoothness  s    


r   )r&   r   r8   r   r   c                 C   sZ  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}|| d}t	j
t|d |dgg W d   n1 sw   Y  t	j
t|d |dgg W d   dS 1 sw   Y  dS )z1Test that B-spline extrapolation works correctly.r   r&   r_   Nrl   r   rU   rn   ro   rp   ir   rV   error0X contains values beyond the limits of the knotsr(   )r   rb   squeezer   r   r   r-   r   rx   r*   r+   r,   rY   )rh   ri   r9   r#   ry   rz   rR   msgr   r   r   %test_spline_transformer_extrapolation?  sR   		
"r   c           	      C   sp   t j| }|ddd}d}|d }t|dddd}||}t|ddd	d
}||}t||dd dS )zCTest that a B-spline of degree=0 is equivalent to KBinsDiscretizer.r   r&   r   r   r^   T)r<   r9   r%   r=   zonehot-denseaveraged_inverted_cdf)n_binsencodestrategyquantile_methodgvIh%<=ru   N)	r   r   RandomStaterandnr!   r   r"   r	   r   )	global_random_seedrngr#   r   r<   rR   splineskbdkbinsr   r   r   'test_spline_transformer_kbindiscretizerw  s    

r   )r   rU   rV   r3   r4   r=   FTc                 C   sz  t j|}|ddd}t| |||dd}t| |||dd}|| || ||}	||}
t	|	r?|	j
dksAJ t|
|	  t j|dd	}t j|dd	}t jt |d |d
t ||d d
f }|dkrd}tjt|d || W d    n1 sw   Y  d}tjt|d || W d    d S 1 sw   Y  d S t||||  d S )Nr   (   r   F)r9   r%   r2   r=   sparse_outputTcsrr   r`   r   r   r   r(   zOut of bounds)r   r   r   r   r!   r   r-   rY   r   issparseformatr   toarrayaminamaxrc   rb   r*   r+   r,   )r9   r%   r2   r=   r   r   r#   
splt_densesplt_sparseX_trans_sparseX_trans_denseX_minX_maxX_extrar   r   r   r   %test_spline_transformer_sparse_output  sN   	



""r   r   c                 C   sT   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.)r<   r9   r=   r2   r   r   r&   r   N)r   r   rb   r-   rY   rZ   rX   )r<   r=   r9   r2   r   rR   r#   r   r   r   &test_spline_transformer_n_features_out  s   
r   )r   r   z&degree=\(min_degree, max_degree\) must)r   g      ?r8   r   )r&   r   r8   z'int or tuple \(min_degree, max_degree\)c                 C   r'   )zBTest that we raise errors for invalid input in PolynomialFeatures.r&   r   r(   Nr   )r*   r+   r,   r
   r-   r.   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   r8   )r   r    newaxishstack	ones_like)r#   Pr   r   r   single_feature_degree3  s    r   z/degree, include_bias, interaction_only, indicesr   r8   )r   r   r8   X_containerc           
      C      | \}}|dur||}t |||d|}||}	|dur#|	 }	t|	|dd|f  |jdkr?|jj|j|jfksAJ dS dS )z9Test PolynomialFeatures on single feature up to degree 3.Nr9   r=   interaction_onlyr   	r
   r-   rY   r   r   n_output_features_powers_rZ   n_features_in_)
r   r9   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   r8   )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   r8   r   r   )r8   r   r   )r   r8   r   r   r      r~   	   r8   r8   )r   r   r   r~   r   )r   r   r~   r   c           
      C   r   )z5Test PolynomialFeatures on 2 features up to degree 3.Nr   r   r   )
r   r9   r=   r   r   r   r#   r   r   r   r   r   r   %test_polynomial_features_two_features1  s    #

r   c                  C   sh  t ddd} tddd| }| }tg d| t||| j	d ks+J tdd	d| }|g d
}tg d| t||| j	d ksPJ tdd	d| }|g d
}tg d| t||| j	d ksuJ tdddd| }|g d
}tddg| t||| j	d ksJ tddd| }|g d}tg d| d S )N   r   r8   r   Tr9   r=   )
1x0r   r   zx0^2zx0 x1zx0 x2zx1^2zx1 x2zx2^2r&   F)r   rH   c)r   rH   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
   r-   rQ   r   rW   rY   rZ   )r#   polyrS   r   r   r   test_polynomial_feature_namesb  sB   r  )degr=   r   dtypecsc_containerc                 C   s   t j|}|ddd}||}t| ||d}	|	||}
|	||}t|
r2|
j	dks4J |
j
|j
ks<J t|
 | d S )Nr   r   r_   r   r=   r   cscr   r   r   randintr
   r"   astyper   r   r   r  r   r   )r  r=   r   r  r	  r   r   r#   X_cscr   Xt_cscXt_denser   r   r   test_polynomial_features_csc_X  s   r  csr_containerc                 C   s   t j|}|ddd}||}t| ||d}	|	||}
|	|j|dd}t|
r4|
j	dks6J |
j
|j
ks>J t|
 | d S )Nr   r   r
  r  F)copyr   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&   r8   )r   r   )r8   r   r   c           
      C   sj   |dgdg| d gff}t |||d}|| |j}t j| d|||d}	|tdd |	D ks3J dS )z?
    Test that n_output_features_ is calculated correctly.
    r&   r   )r9   r   r=   r  
min_degree
max_degreer   r=   c                 S   s   g | ]}d qS )r&   r   ).0r:   r   r   r   
<listcomp>	  s    z)test_num_combinations.<locals>.<listcomp>N)r
   r-   r   _combinationsrd   )
r  r  r  r   r=   r  r   r   
num_comboscombosr   r   r   test_num_combinations  s    
r"  c                 C   s   |t ddd|d}| }t| ||d}|||}	|||}
t|	r/|	jdks1J |	j|
jks9J t	|	 |
 d S )N  r         ?random_stater  r   )
sparse_randomr   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_floats  s   r(  )zero_row_indexr  r   ))r   r   T)r&   r   Tr   r   T)r   r8   T)r&   r8   T)r   r8   T)r   r   F)r&   r   Fr   r   F)r   r8   F)r&   r8   F)r   r8   Fc           
      C   s   |t ddd|d}d|| d d f< | }t|d|d}||}||}	t|r1|jdks3J |j|	jks;J t| |	 d S )	Nr8   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   r   'test_polynomial_features_csr_X_zero_row'  s   

r-  ))TTrj   rk   )FFc           	      C   sx   |t ddd|d}| }td| |d}||}||}t|r)|jdks+J |j|jks3J t| | d S )Nr#  r   r$  r%  r   r  r   r,  )	r=   r   r  r   r  r#   r   r  r  r   r   r   'test_polynomial_features_csr_X_degree_4K  s   

r.  )r  dimr   )
)r   r&   Tr*  )r8   r&   T)r8   r   T)r8   r8   T)r   r&   Fr+  )r8   r&   F)r8   r   F)r8   r8   Fc           
      C   sv   |t d|d|d}| }t| |d}||}||}	t|r(|jdks*J |j|	jks2J t| |	 d S )Nr#  r$  r%  r   r   r,  )
r  r/  r   r  r   r  r#   r   r  r  r   r   r   (test_polynomial_features_csr_X_dim_edgesa  s   

r1  c              	      sx   fdd}d}d}t j}t jddt jd}t |d |d |d |d g}t j|d |d |d |d gt jd}	||||	ff||f|d	}
t |dd
}|j|dd|j|jd}|t 	t j
jkrd}tjt|d ||
 W d   dS 1 s~w   Y  dS ||
}| \}}|| }|||	t   |	d | }|rdg|d  ng }|rdg|d  ng }tdD ]}|d|  }|d| d  }|	d|  }|	d| d  }|r|d |d |||g ||t| |t| g  s)||| || || g |||||| ||||| ||||| g q||| g ||||||  qt|d dt    }|j|d ksTJ |j|ks\J |j||d fkshJ |jj|jj  krzt jks}J  J |j t 	t jjksJ |rtt|d ng }||d g| |d g|   t|j| t|| t|| dS )a  Check the automatic index dtype promotion to `np.int64` when needed.

    This ensures that sufficiently large input configurations get
    properly promoted to use `np.int64` for index and indptr representation
    while preserving data integrity. Non-regression test for gh-16803.

    Note that this is only possible for Python runtimes with a 64 bit address
    space. On 32 bit platforms, a `ValueError` is raised instead.
    c                    sD    r| | |d d|  d  d | S | | |d | d  | S )Nr   r8   r&   r   )r   ijr0  r   r   degree_2_calc  s   $zRtest_csr_polynomial_expansion_index_overflow_non_regression.<locals>.degree_2_calc   i r&   r   r  r   )rZ   r  r   r=   r9   r   r  tThe output that would result from the current configuration would have \d* features which is too large to be indexedr(   Nr8   ) r   float32r    int64r   r
   _num_combinationsr   r=   iinfointpr   r*   r+   r,   r-   r"   nonzerointr   appendextendr   r  rZ   indptrr   int32listr   datar   )r   r=   r  r4  	n_samplesr  
data_dtyperE  rowcolr#   pfnum_combinationsr   r[   row_nonzerocol_nonzeron_degree_1_features_outmax_degree_2_idxdata_targetcol_nonzero_targetr2  r   ry   x_idxy_idxnnz_per_rowrow_nonzero_targetr   r0  r   ;test_csr_polynomial_expansion_index_overflow_non_regression  s   "




*
rV  zdegree, n_features)r     )r8   i(	  )r8   rW  c                 C   s  dg}|d t t jjkrt jnt j}t jdg|d}t j|d g|d}|d t| g}	|	||d  d |	d   |	||d  |d  d |	d   ||||ff}
t||| d}|j	|d| |j
|jd}|t t jjkrd	}tjt|d
 ||
 W d   dS 1 sw   Y  dS ttdk r|dkr| dkr|sd}tjt|d
 ||
}W d   dS 1 sw   Y  dS ||
}|t t jjkrt jnt j}d| d t|   }t|| }|j|
jksJ |jd|jfksJ |jj|jj  kr|ksJ  J |j|ksJ |r)|d tdks)J t|D ]}|d|	| f tdks?J q-|| }| dkrP|d| 9 }|j|	| d  d | ks`J dS )zTests known edge-cases to the dtype promotion strategy and custom
    Cython code, including a current bug in the upstream
    `scipy.sparse.hstack`.
    r   r&   r   r6  r   r   r7  r  r8  r(   Nz1.9.2rW  z>In scipy versions `<1.9.2`, the function `scipy.sparse.hstack`r   r   r8   )r   r<  rC  r   r:  r   r?  r@  r
   r;  r   r=   r=  r*   r+   r,   r-   r   r   r"   r  rZ   r   rB  r   nnzapproxr   )r9   r  r   r=   r  rE  indices_dtyperH  rI  expected_indicesr#   rJ  rK  r   r[   expected_dtypenon_bias_termsexpected_nnzidxoffsetr   r   r   ,test_csr_polynomial_expansion_index_overflow  st   "


($
$rb  c           
      C   s   t t jjd }dg}dg}|d g}||||ff}t| |dd}d}	tjt|	d || W d    n1 s<w   Y  tjt|	d |	| W d    d S 1 sYw   Y  d S )	Nr   r   r   r&   r   r7  r8  r(   )
r   r<  r:  r   r
   r*   r+   r,   r-   r"   )
r   r=   r  r  rE  rH  rI  r#   rJ  r   r   r   r   0test_csr_polynomial_expansion_too_large_to_index^  s    
"rc  sparse_containerc                 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  || |fD ]#}tdd
d}||}t|ri|	 }t
|t |jd df qSdS )zCheck 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(   NrX  zoSetting both min_degree and max_degree to zero and include_bias to False would result in an empty output array.Tr&   )r   onesr
   r*   r+   r,   r"   r   r   r   r   rZ   )rd  r#   r  r0   _Xoutputr   r   r   1test_polynomial_features_behaviour_on_zero_degreev  s(   


rh  c                  C   s:   t jdkst jdkrt jdkrd} nd} t | ksJ d S )Nwin32        
emscriptenr~      )sysplatformmaxsizer   )expected_sizer   r   r   test_sizeof_LARGEST_INT_t  s
   
rq  ri  zyOn Windows, scikit-learn is typically compiled with MSVC that does not support int128 arithmetic (at the time of writing))reasonrunc                 C   s*  t ttjjd d }dg}dg}|d g}|d g}|t ||d  d |d   |t ||d  |d  d |d   | |||ff}tdddd	}tjd
krxd}t	j
t|d || W d    d S 1 sqw   Y  d S ||}	tdD ]}
|	d||
 f t	dksJ qd S )NgUUUUUU?r8   r   r   r&   r   r   Fr7  rj  r8  r(   )r?  r   r<  r:  r   r@  r
   rm  ro  r*   r+   r,   r"   r   rZ  )r  r  rE  rH  rI  r\  r#   rJ  r   r[   r`  r   r   r   *test_csr_polynomial_expansion_windows_fail  s0   
"
"
 rt  )Qrm  numpyr   r*   numpy.testingr   r   scipyr   scipy.interpolater   scipy.sparser   r'  sklearn.linear_modelr   sklearn.pipeliner   sklearn.preprocessingr	   r
   r   /sklearn.preprocessing._csr_polynomial_expansionr   sklearn.utils._testingr   sklearn.utils.fixesr   r   r   r   markparametrizer$   r1   r;   rT   r\   r   rg   r{   r   r   r   r   r   r   r   r   r   r   r   fixturer   slicer   r   r   r  r?  r9  float64r  r  r"  r(  r-  r.  r1  rV  sqrtr<  r:  r   rb  rc  rh  rq  xfailrn  rt  r   r   r   r   <module>   s   


	&
"("


&60




	



L



	rT
