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   z/var/www/html/eduruby.in/lip-sync/lip-sync-env/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)
Zx0_sp_0Zx0_sp_1Zx0_sp_2Zx0_sp_3Zx0_sp_4Zx1_sp_0Zx1_sp_1Zx1_sp_2Zx1_sp_3Zx1_sp_4Fr   b)Za_sp_0Za_sp_1Za_sp_2Za_sp_3Zb_sp_0Zb_sp_1Zb_sp_2Zb_sp_3N)r   r    r!   r   r-   get_feature_names_outr   )r#   spltfeature_namesr   r   r   %test_spline_transformer_feature_namesD   s   rB   )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   r>   r&   N)
r   r    r!   r   r-   r?   lenn_features_out_	transformshape)r2   r9   r#   r@   rA   X_transr   r   r   7test_split_transform_feature_names_extrapolation_degreej   s   

rJ   r   r<   uniformquantilerC   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   Zaxis)r   linspacer_r   r-   r   sumrG   )r9   r<   r%   r2   r#   ZX_trainZX_testr@   r   r   r   +test_spline_transformer_unity_decomposition}   s    	*
rR   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   rM   Nr   spline   r8   rC   r<   r9   r=   r2   olsZfit_interceptZstepsMbP?rtol)	r   rO   sinr   r   r   r-   r   predict)rS   rT   r#   ypiper   r   r   )test_spline_transformer_linear_regression   s    	rd   )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   rj   rh   r   rg   ri   )r#   r%   r<   re   N)r   arrayr   Z_get_base_knot_positionsr   )r%   r<   re   rf   r#   Z
base_knotsr   r   r   /test_spline_transformer_get_base_knot_positions   s
   4rl   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   rg   r8   )r   r`   pi)xr   r   r   f   s   ,z=test_spline_transformer_periodic_linear_regression.<locals>.fr   r&   e   NrW   r5   r8   r4   rY   rZ   r[   r\   r   i-  g{Gz?)Zatolr_   rM      r]   r^   )r   rO   r   r   r   r-   ra   r   )rS   rT   ro   r#   rc   ZX_Zpredictionsr   r   r   2test_spline_transformer_periodic_linear_regression   s&   	
 "rs   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%   rj   r   )r   rO   r   r"   rk   r   r    r   )r#   r9   transformerXtZcoefZsplZ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   rp   Nr8   r4   ru   rv         @      @      @       @rw   g      "@)rj   r   r&   r   r8   )r   rO   r   r"   r   )r#   Ztransformer_1Ztransformer_2ZXt_1Z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.rt   r   i'  Nr4   ru   rv   r|   r}   r~   r   rw   r&   r   rN   )
r   rO   r   r"   maxminrE   rangediffabs)	r9   r#   ry   rz   deltaZtolZdXtdr   r   r   r   3test_spline_transformer_periodic_splines_smoothness  s    


r   )r&   r   r8   rj   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.rq   r&   rM   NrW   rj   rC   rY   rZ   r[   ir   rD   error0X contains values beyond the limits of the knotsr(   )r   rO   Zsqueezer   r   r   r-   r   ra   r*   r+   r,   rG   )rS   rT   r9   r#   rb   rc   r@   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.rr   r&   r   r   rL   T)r<   r9   r%   r=   zonehot-denseZaveraged_inverted_cdf)n_binsencodeZstrategyZquantile_methodgvIh%<=r^   N)	r   r   RandomStaterandnr!   r   r"   r	   r   )	global_random_seedrngr#   r   r<   r@   ZsplinesZkbdZkbinsr   r   r   'test_spline_transformer_kbindiscretizerw  s    

r   )r   rC   rD   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 )Nrr   (   r   F)r9   r%   r2   r=   sparse_outputTcsrr   rN   r   r   r   r(   zOut of bounds)r   r   r   r   r!   r   r-   rG   r   issparseformatr   toarrayZaminZamaxrP   rO   r*   r+   r,   )r9   r%   r2   r=   r   r   r#   Z
splt_denseZsplt_sparseZX_trans_sparseZX_trans_denseZX_minZX_maxZ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   rO   r-   rG   rH   rF   )r<   r=   r9   r2   r   r@   r#   r   r   r   &test_spline_transformer_n_features_out  s   
r   )rq   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 )Nrh   r   r8   )r   r    ZnewaxishstackZ	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-   rG   r   r   n_output_features_Zpowers_rH   Z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 )Nrh   r   r&   r   r   r8   )r   r    r!   r   )r#   x1x2r   r   r   r   two_features_degree3  s"   r   )r   r&   r   rj   )r&   r   rj   r   r   )r   r8   rj   r   )r8   rj   r   )r   r8   rj   r   rh      rg   	   r8   r8   )r   rh   r   rg   r   )rh   r   rg   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=   )
1Zx0r   r   zx0^2zx0 x1zx0 x2zx1^2zx1 x2zx2^2r&   F)r   r>   c)r   r>   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-   r?   r   rE   rG   rH   )r#   polyrA   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   rM   r   r=   r   Zcscr   r   r   randintr
   r"   astyper   r   r   r   r   r   )r   r=   r   r   r   r   r   r#   ZX_cscr   Z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&   rj   r   zmin_degree, max_degree))r   r&   )r   r   )r&   r8   )r   rj   )r8   rj   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   Z_combinationsrQ   )
r   r   r   r   r=   r   rn   r   Z
num_combosZ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         ?Z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   rv   r   ru   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   ))TTrU   rV   )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   rj   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   

r   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jr   r   r   degree_2_calc  s   $zRtest_csr_polynomial_expansion_index_overflow_non_regression.<locals>.degree_2_calc   i r&   r   r   r   )rH   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    int64rk   r
   _num_combinationsr   r=   iinfointpr   r*   r+   r,   r-   r"   Znonzerointr   appendextendr   r   rH   indptrr   int32listr   datar   )r   r=   r   r   Z	n_samplesr   Z
data_dtyper  rowcolr#   pfnum_combinationsr   rI   Zrow_nonzeroZcol_nonzeroZn_degree_1_features_outZmax_degree_2_idxZdata_targetZcol_nonzero_targetr   rn   rb   Zx_idxZy_idxZnnz_per_rowZrow_nonzero_targetr   r   r   ;test_csr_polynomial_expansion_index_overflow_non_regression  s   "




*
r  zdegree, n_features)r     )r8   i(	  )r8   r	  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`.
    rv   r&   r   r   r   rh   r   r   r   r(   Nz1.9.2r	  z>In scipy versions `<1.9.2`, the function `scipy.sparse.hstack`r   r   r8   )r   r   r  r   r   rk   r   r   r
   r   r   r=   r   r*   r+   r,   r-   r   r   r"   r   rH   r   r   r   Znnzapproxr   )r9   r   r   r=   r   r  Zindices_dtyper  r  expected_indicesr#   r  r  r   rI   Zexpected_dtypeZnon_bias_termsZexpected_nnzidxoffsetr   r   r   ,test_csr_polynomial_expansion_index_overflow  st   "


($
$r  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   rv   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   0test_csr_polynomial_expansion_too_large_to_index^  s    
"r  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(   Nr
  zoSetting both min_degree and max_degree to zero and include_bias to False would result in an empty output array.Tr&   )r   Zonesr
   r*   r+   r,   r"   r   r   r   r   rH   )r  r#   r   r0   Z_Xoutputr   r   r   1test_polynomial_features_behaviour_on_zero_degreev  s(   


r  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        Z
emscriptenrg      )sysplatformmaxsizer   )Zexpected_sizer   r   r   test_sizeof_LARGEST_INT_t  s
   
r  r  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   rv   r   r&   r   rh   Fr   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   rI   r  r   r   r   *test_csr_polynomial_expansion_windows_fail  s0   
"
"
 r  )Qr  numpyr   r*   Znumpy.testingr   r   Zscipyr   Zscipy.interpolater   Zscipy.sparser   r   Zsklearn.linear_modelr   Zsklearn.pipeliner   Zsklearn.preprocessingr	   r
   r   Z/sklearn.preprocessing._csr_polynomial_expansionr   Zsklearn.utils._testingr   Zsklearn.utils.fixesr   r   r   r   markZparametrizer$   r1   r;   rB   rJ   r   rR   rd   rk   rl   rs   r{   r   r   r   r   r   r   r   Zfixturer   slicer   r   r   r   r   r   Zfloat64r   r   r   r   r   r   r   r  sqrtr   r   r   r  r  r  r  Zxfailr  r  r   r   r   r   <module>   s   


	&
"("


&60




	



L



	rT
