U
    _»{jf  ã                   @   sü  d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dl	m
Z d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dl m!Z! d dl"m#Z#m$Z$m%Z%m&Z& e 'd¡ (d	¡Z)d
d„ Z*dd„ Z+dd„ Z,dd„ Z-dd„ Z.dd„ Z/dd„ Z0dd„ Z1dd„ Z2ej3 4dddde 5d ¡d!fd d"d#gd$fd%d&d'gd(fd)d*e6ddƒdfe6d d#ƒd$fej7d d"d#gej8d+�d$fej7d d"d#gej9d+�d$fej7d d"d#gej:d+�d$fd d,gd!fd-e 7d d,g¡d!fd.d/d0d1gd(fd2e6d3d4ƒd(fe 7d/d0d1g¡d(fej7d/d0d1ge;d+�d(fg¡d5d6„ ƒZ<d7d8„ Z=d9d:„ Z>ej3 4d;d<d=d>d?g¡ej3 4d@d<dAd=dBdCg¡dDdE„ ƒƒZ?ej3 4d;d<d=dBg¡ej3 4d@d<dAd=dBdCg¡dFdG„ ƒƒZ@ej3 4d;d=d>d?g¡ej3 4d@d<dAd=dBdCg¡ej3 4dHd"d#gd0d1gg¡dIdJ„ ƒƒƒZAej3 4dKd d,g¡ej3 4dLd d,g¡ej3 4d;d=d>d?g¡ej3 4d@d=dBg¡ej3 4dMd dNdOdPgdQdRdggfd"d#dSgdOdPgdRdggfg¡dTdU„ ƒƒƒƒƒZBej3 4d;d<d=dBg¡ej3 4d@d<dAd=dBg¡dVdW„ ƒƒZCej3 4d;d=d>d?g¡ej3 4d@d<dAd=dBg¡ej3 4dXd dNdOdPgdQdRdggfd"d#dSgdOdPgdRdggfg¡dYdZ„ ƒƒƒZDej3 4d[d\d]d^d_g¡d`da„ ƒZEej3 4d;d<d=dBg¡dbdc„ ƒZFej3 4d[d]d^d_g¡ej3 4dHd#d1g¡ddde„ ƒƒZGej3 4d;d<d=d>g¡dfdg„ ƒZHdhdi„ ZIej3 4djddSg¡dkdl„ ƒZJej3 4dmd=dBg¡dndo„ ƒZKdpdq„ ZLdrds„ ZMej3 4dtdudvg¡dwdx„ ƒZNej3 4dydzgd{gdzd{gdzd|gd{d|gg¡d}d~„ ƒZOdd€„ ZPd�d‚„ ZQdƒd„„ ZRej3 4d…d†d‡dˆd‰dŠd‹dŒg¡d�dŽ„ ƒZSd�d�„ ZTej3 4d‘d’d“gd”e jUd,fd•e jUd,fd”e jUdS d fd–e jUd fd”e jUd— d,fg¡ej3 4d˜d™gdšd›dœd�g¡dždŸ„ ƒƒZVej3 4d’d gd¡ed”d¡d¢ƒd£ fd¤ed”d¤d¢ƒd£ fd¥g¡d¦d§„ ƒZWej3 4d¨eXd©ƒd fejYd feXejYƒd fe ZejY¡d fe [ejY¡d fdªd«d¬d­d®ejYgd,fd¯g¡d°d±„ ƒZ\d²d³„ Z]d´dµ„ Z^d¶d·„ Z_ej3 4d¸e 7d"¡e 7d#¡gd"d#gdSdNggg¡d¹dº„ ƒZ`ej3 4d;d=d>d?g¡d»d¼„ ƒZadS )½é    N)Úcopy)Úchain)Úconfig_context)Ú_approximate_modeÚ_determine_key_typeÚ_get_column_indicesÚ_message_with_timeÚ_print_elapsed_timeÚ_safe_assignÚ_safe_indexingÚ_to_object_arrayÚcheck_random_stateÚcolumn_or_1dÚ
deprecatedÚgen_even_slicesÚget_chunk_n_rowsÚis_scalar_nanÚresampleÚ	safe_maskÚshuffle)ÚMockDataFrame)Ú_convert_containerÚassert_allclose_dense_sparseÚassert_array_equalÚassert_no_warningsé	   )é   r   c               	   C   s¼   t d ƒtjjjkst‚t tjƒtjjjks.t‚tj d¡} t dƒ d¡|  d¡ksVt‚tj d¡} t | ƒ| ksrt‚tj d¡} t dƒ d¡|  d¡ksšt‚t 	t
¡� t dƒ W 5 Q R X d S )Né*   éd   é+   zsome invalid seed)r   ÚnpÚrandomZmtrandZ_randÚAssertionErrorÚRandomStateÚrandintÚpytestÚraisesÚ
ValueError)Zrng_42© r(   ú]/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sklearn/utils/tests/test_utils.pyÚtest_make_rng+   s    r*   c               	   C   s  t jdd��n} t  d¡ tƒ dd„ ƒ}|ƒ }|dks8t‚t| ƒdksHt‚t| d jtƒs\t‚d	t	| d j
ƒ ¡ ksvt‚W 5 Q R X t jdd��z} t  d¡ td
ƒG dd„ dƒƒ}|ƒ }t|dƒsÂt‚t| ƒdksÒt‚t| d jtƒsæt‚d	t	| d j
ƒ ¡ k�st‚W 5 Q R X d S )NT)ÚrecordÚalwaysc                   S   s   dS )NÚspamr(   r(   r(   r(   r)   ÚhamE   s    ztest_deprecated.<locals>.hamr-   é   r   r   zdon't use thisc                   @   s   e Zd ZdZdS )ztest_deprecated.<locals>.Hamr/   N)Ú__name__Ú
__module__Ú__qualname__ÚSPAMr(   r(   r(   r)   ÚHamU   s   r4   r3   )ÚwarningsÚcatch_warningsÚsimplefilterr   r"   ÚlenÚ
issubclassÚcategoryÚFutureWarningÚstrÚmessageÚlowerÚhasattr)Úwr.   r-   r4   r(   r(   r)   Útest_deprecated=   s$    

$
rA   c                	   C   s‚   t ƒ d kst‚t t¡� t dgddgƒ W 5 Q R X t t¡� t ddgddgddd� W 5 Q R X tt ddgdd�ƒdks~t‚d S )	Nr   r/   Fr   )ÚreplaceÚ	n_samplesé   é   )rC   )r   r"   r%   r&   r'   r8   r(   r(   r(   r)   Útest_resampleb   s    "rF   c                  C   sš   t j d¡} d}d}| j|dfd�}| jd||d�}t||ddd d�\}}t  |dk¡s\t‚t||dd|d�\}}t  |dk¡r„t‚t  |¡dks–t‚d S )	Nr   r   gÍÌÌÌÌÌì?r/   ©Úsizeé
   ©rC   Úrandom_stateÚstratifyr   )	r    r!   r#   ÚnormalZbinomialr   Úallr"   Úsum)ÚrngrC   ÚpÚXÚyÚ_Zy_not_stratifiedZy_stratifiedr(   r(   r)   Útest_resample_stratifiedp   s    rU   c                  C   sÖ   t j d¡} d}| j|dfd�}| jdd|d�}t||dd| |d�\}}t||d	d| |d�\}}t  |¡jd dk sxt‚t  |¡jd dks�t‚t||dd
| |d�\}}|jd d
ksºt‚t  |¡jd dksÒt‚d S )Nr   r   r/   rG   rD   Té2   )rB   rC   rK   rL   Féè  )	r    r!   r#   rM   r$   r   ÚuniqueÚshaper"   )rP   rC   rR   rS   Z	X_replacerT   ZX_no_replacer(   r(   r)   Ú test_resample_stratified_replace€   s@         ÿ
     ÿ
     ÿ
rZ   c                  C   s\   t j d¡} d}| j|dfd�}| jdd|dfd�}t||d| |d�\}}|jdksXt‚d S )Nr   r   r/   rG   rD   rV   rJ   )r    r!   r#   rM   r$   r   Úndimr"   )rP   rC   rR   rS   r(   r(   r)   Útest_resample_stratify_2dy™   s    r\   c               	   C   sn   t j d¡} d}| j|dfd�}| jdd|d�}t |¡}tjt	dd�� t
||d| |d�\}}W 5 Q R X d S )	Nr   r   rD   rG   zA sparse matrix was passed©ÚmatchrV   rJ   )r    r!   r#   rM   r$   ÚspÚ
csr_matrixr%   r&   Ú	TypeErrorr   )rP   rC   rR   rS   rL   r(   r(   r)   Ú#test_resample_stratify_sparse_error£   s    
rb   c                  C   sp   t dƒ} |  dd¡}t |¡}dddddg}t||ƒ}|| jd dksLt‚t||ƒ}|| jd dkslt‚d S )Nr   rE   é   FTr   )r   Zrandr_   r`   r   rY   r"   )rK   rR   ZX_csrÚmaskr(   r(   r)   Útest_safe_mask®   s    


re   c                  C   s  ddddgfdddddgfdt  d¡d fd	dd
dgfd	ddd
d
dgfd	dgd
gdggfddddgdddggfddd
dggfdddgd
d
gddggfdddgdd
gddggfddd
dggfdt  d¡ d¡fg} | D ]D\}}|dkrútt|ƒt  |¡ƒ qÔt t¡� t|ƒ W 5 Q R X qÔd S )NÚbinaryr-   Úeggr   r/   Ú
continuousrI   g      4@Ú
multiclassrD   r   zmultilabel-indicatorzmulticlass-multioutputrE   rc   zcontinuous-multioutputé   )éÿÿÿÿr   )rf   ri   rh   )	r    ÚarangeÚreshaper   r   Zravelr%   r&   r'   )ZEXAMPLESZy_typerS   r(   r(   r)   Útest_column_or_1d»   s$    ôrn   z
key, dtype)r   Úint)Ú0r<   )TÚboolTrq   r/   rD   ro   rp   Ú1Ú2r<   ))r   r/   rD   ro   ))rp   rr   rs   r<   ©ÚdtypeF))TFrq   )Úcol_0r<   rv   Úcol_1Úcol_2))rv   rw   rx   r<   ÚbeginÚendc                 C   s   t | ƒ|kst‚d S ©N)r   r"   )Úkeyru   r(   r(   r)   Útest_determine_key_typeÓ   s    r}   c                	   C   s&   t jtdd�� tdƒ W 5 Q R X d S )NzNo valid specification of ther]   ç      ð?)r%   r&   r'   r   r(   r(   r(   r)   Útest_determine_key_type_errorò   s    r   c                	   C   s2   t jtdd�� ttdddƒdd� W 5 Q R X d S )NzOnly array-like or scalar arer]   r   rD   r/   F)Zaccept_slice)r%   r&   ra   r   Úslicer(   r(   r(   r)   Ú#test_determine_key_type_slice_error÷   s    r�   Ú
array_typeÚlistÚarrayÚsparseÚ	dataframeÚindices_typeÚtupleÚseriesr€   c                 C   sŒ   ddg}|dkr.t |d tƒr.|d  d7  < tdddgdddgdd	d
gg| ƒ}t||ƒ}t||dd�}t|tdddgdd	d
gg| ƒƒ d S ©Nr/   rD   r€   r   rc   rE   é   é   é   r   r   ©Úaxis©Ú
isinstancero   r   r   r   ©r‚   r‡   Úindicesr„   Úsubsetr(   r(   r)   Ú&test_safe_indexing_2d_container_axis_0ü   s    "
 ÿr•   c              
   C   sz   ddg}|dkr.t |d tƒr.|d  d7  < tdddddddd	d
g	| ƒ}t||ƒ}t||dd�}t|tddg| ƒƒ d S rŠ   r�   r’   r(   r(   r)   Útest_safe_indexing_1d_container
  s    
r–   r“   c              	   C   sÞ   t |ƒ}|dkr.t|d tƒr.|d  d7  < dddg}tdddgdd	d
gdddgg| |ƒ}t||ƒ}t|d tƒrª| dkrªd}tjt|d�� t||dd� W 5 Q R X n0t||dd�}t	|tddgd	d
gddgg| ƒƒ d S )Nr€   r/   rv   rw   rx   rD   r   rc   rE   r‹   rŒ   r�   r   r   r†   úLSpecifying the columns using strings is only supported for pandas DataFramesr]   rŽ   )
r   r‘   ro   r   r<   r%   r&   r'   r   r   )r‚   r‡   r“   Zindices_convertedÚcolumns_namer„   Úerr_msgr”   r(   r(   r)   Ú&test_safe_indexing_2d_container_axis_1  s(    
  ÿ
ÿ ÿrš   Úarray_read_onlyÚindices_read_onlyzaxis, expected_arrayrc   rE   r‹   rŒ   r�   r   c           	      C   s†   t  dddgdddgddd	gg¡}| r2|jd
d� t||ƒ}t  ddg¡}|rZ|jd
d� t||ƒ}t|||d�}t|t||ƒƒ d S )Nr/   rD   r   rc   rE   r‹   rŒ   r�   r   F)ÚwriterŽ   )r    r„   Zsetflagsr   r   r   )	r›   rœ   r‚   r‡   r�   Úexpected_arrayr„   r“   r”   r(   r(   r)   Ú&test_safe_indexing_2d_read_only_axis_14  s    
"

rŸ   c              
   C   sf   dgdgd  dgd  }t ddddddd	d
dg	| ƒ}t ||ƒ}t||dd�}t|t ddg| ƒƒ d S )NFTrD   r‹   r/   r   rc   rE   rŒ   r�   r   r   rŽ   ©r   r   r   r’   r(   r(   r)   Ú$test_safe_indexing_1d_container_maskJ  s
    
r¡   zaxis, expected_subsetc                 C   sd   dddg}t dddgddd	gd
ddgg| |ƒ}dddg}t ||ƒ}t|||d�}t|t || ƒƒ d S )Nrv   rw   rx   r/   rD   r   rc   rE   r‹   rŒ   r�   r   FTrŽ   r    )r‚   r‡   r�   Zexpected_subsetr˜   r„   r“   r”   r(   r(   r)   Útest_safe_indexing_2d_maskT  s    
  ÿ

 ÿr¢   z array_type, expected_output_type)rƒ   rƒ   )r„   r„   )r…   r…   )r†   r‰   c                 C   sR   t dddgdddgddd	gg| ƒ}d}t||d
d�}t ddd	g|ƒ}t||ƒ d S ©Nr/   rD   r   rc   rE   r‹   rŒ   r�   r   r   rŽ   r    )r‚   Úexpected_output_typer„   r“   r”   rž   r(   r(   r)   Ú#test_safe_indexing_2d_scalar_axis_0h  s
    
"r¥   c              
   C   s>   t ddddddddd	g	| ƒ}d}t||d
d�}|dks:t‚d S r£   )r   r   r"   )r‚   r„   r“   r”   r(   r(   r)   Útest_safe_indexing_1d_scalary  s    r¦   c           	   	   C   s¶   dddg}t dddgddd	gd
ddgg| |ƒ}t|tƒrn| dkrnd}tjt|d�� t||dd� W 5 Q R X nDt||dd�}dd	dg}|dkrždgd	gdgg}t ||ƒ}t||ƒ d S )Nrv   rw   rx   r/   rD   r   rc   rE   r‹   rŒ   r�   r   r†   r—   r]   rŽ   r…   )r   r‘   r<   r%   r&   r'   r   r   )	r‚   r¤   r“   r˜   r„   r™   r”   Zexpected_outputrž   r(   r(   r)   Ú#test_safe_indexing_2d_scalar_axis_1�  s"    
  ÿÿ

r§   c                 C   s>   t dddgdddgddd	gg| ƒ}t|d d
d�}t||ƒ d S r£   r    )r‚   rR   ZX_subsetr(   r(   r)   Útest_safe_indexing_None_axis_0�  s    "r¨   c               	   C   sF   t  d¡} d}|  t¡}t jt|d�� t|dgdd� W 5 Q R X d S )NÚpandasz&No valid specification of the columns.r]   r~   r/   rŽ   )r%   ÚimportorskipÚ	DataFrameÚX_toyr&   r'   r   )Úpdr™   rR   r(   r(   r)   Ú0test_safe_indexing_pandas_no_matching_cols_error¤  s
    

r®   r�   c              	   C   s0   t jtdd�� ttddg| d� W 5 Q R X d S )Nz'axis' should be either 0r]   r   r/   rŽ   )r%   r&   r'   r   r¬   rŽ   r(   r(   r)   Útest_safe_indexing_error_axis¬  s    r¯   ÚX_constructorc              	   C   sp   t tdƒƒ}| dkr t |¡} n| dkr<t d¡}| |¡} d}tjt|d�� t	| ddgdd	� W 5 Q R X d S )
NrE   r„   r‰   r©   z:'X' should be a 2D NumPy array, 2D sparse matrix or pandasr]   r   r/   rŽ   )
rƒ   Úranger    Zasarrayr%   rª   ZSeriesr&   r'   r   )r°   rR   r­   r™   r(   r(   r)   Ú!test_safe_indexing_1d_array_error²  s    

r²   c               	   C   sT   ddg} dddgdddgd	d
dgg}d}t jt|d�� t|| dd� W 5 Q R X d S )Nrw   rx   r/   rD   r   rc   rE   r‹   rŒ   r�   r   z.String indexing is not supported with 'axis=0'r]   r   rŽ   )r%   r&   r'   r   )r“   r„   r™   r(   r(   r)   Ú4test_safe_indexing_container_axis_0_unsupported_typeÂ  s
    r³   c               	   C   s˜   t  d¡} |  dddgdddgdœ¡}t|ddgdd	�}t| jd
ƒrN| jj}n
| jjj}t	 
¡ � t	 d|¡ d|jd< W 5 Q R X |jd dks”t‚d S )Nr©   r/   rD   r   rc   rE   )ÚaÚbr   rŽ   ÚSettingWithCopyWarningÚerrorrI   )r   r   )r%   rª   r«   r   r?   Úerrorsr¶   ÚcoreÚcommonr5   r6   r7   Zilocr"   )r­   rR   r”   r¶   r(   r(   r)   Ú4test_safe_indexing_pandas_no_settingwithcopy_warningÊ  s    



r»   zkey, err_msg)rI   z all features must be in \[0, 2\])Zwhateverz/A given column is not a column of the dataframec              	   C   sF   t  d¡}|jtdddgd�}t jt|d�� t|| ƒ W 5 Q R X d S )Nr©   rv   rw   rx   ©Úcolumnsr]   )r%   rª   r«   r¬   r&   r'   r   )r|   r™   r­   ZX_dfr(   r(   r)   Útest_get_column_indices_errorÝ  s    
r¾   r|   Úcol1Úcol2Úcol3c              	   C   st   t  d¡}tjdtd�}dddddg}|j||d�}d | ¡}t  t¡�}t	|| ƒ W 5 Q R X t
|jƒ|kspt‚d S )	Nr©   )r/   rE   rt   r¿   rÀ   rÁ   r¼   z1Selected columns, {}, are not unique in dataframe)r%   rª   r    Zzerosro   r«   Úformatr&   r'   r   r<   Úvaluer"   )r|   r­   Ztoyr½   rR   r™   Úexc_infor(   r(   r)   Ú6test_get_column_indices_pandas_nonunique_columns_errorì  s    

rÅ   c                  C   sZ   dd„ } t  ddgddggddgd	d
ggg¡}t| |ƒƒ}t|ƒ t| |ƒƒ|ksVt‚d S )Nc                 S   s   t dd„ | D ƒƒS )Nc                 s   s    | ]}t d d„ |D ƒƒV  qdS )c                 s   s   | ]}t |ƒV  qd S r{   ©rˆ   )Ú.0ÚCr(   r(   r)   Ú	<genexpr>ý  s     zPtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>NrÆ   )rÇ   ÚBr(   r(   r)   rÉ   ý  s     zFtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>rÆ   )ÚAr(   r(   r)   Úto_tupleü  s    z3test_shuffle_on_ndim_equals_three.<locals>.to_tupler/   rD   r   rc   rE   r‹   rŒ   r�   )r    r„   Úsetr   r"   )rÌ   rË   ÚSr(   r(   r)   Ú!test_shuffle_on_ndim_equals_threeû  s
    &rÏ   c            
      C   sF  dddg} t jdddgtd�}dddg}tt jddgddgddggtd�ƒ}t t  d	¡ dd¡¡}t| ||||dd
�\}}}}}	|dddgks”t	‚t
|ƒtks¤t	‚t|dddgƒ |jtksÂt	‚|dddgksÔt	‚t
|ƒtksät	‚t|t jddgddgddggtd�ƒ t
|ƒtk�st	‚t|	 ¡ t  ddgddgddgg¡ƒ d S )Nr´   rµ   Úcrt   r/   rD   r   r   r‹   )rK   rc   rE   )r    r„   Úobjectr   r_   Z
csc_matrixrl   rm   r   r"   Útyperƒ   r   ru   Ztoarray)
r´   rµ   rÐ   ÚdÚeZa_sZb_sZc_sZd_sZe_sr(   r(   r)   Ú"test_shuffle_dont_convert_to_array  s    

$&rÕ   c               	      sb   t dƒ‰ tt‡ fdd„tddƒD ƒŽ ƒ} tˆ | ƒ tddƒ}tjtdd�� t|ƒ W 5 Q R X d S )NrI   c                    s   g | ]}ˆ | ‘qS r(   r(   )rÇ   r€   ©Z
some_ranger(   r)   Ú
<listcomp>!  s     z(test_gen_even_slices.<locals>.<listcomp>r   rk   z+gen_even_slices got n_packs=-1, must be >=1r]   )	r±   rƒ   r   r   r   r%   r&   r'   Únext)Zjoined_rangeZslicesr(   rÖ   r)   Útest_gen_even_slices  s     

rÙ   )Ú	row_bytesÚ
max_n_rowsÚworking_memoryÚexpected)é   Nr/   rÞ   )rÞ   NgGœ¡úÿÿï?éÿ  )rß   Nr/   é  )rà   Nr/   rß   )rÞ   NrD   i   )rÞ   rŒ   r/   rŒ   )i   Nr/   r/   c              
   C   s´   t  ¡ �  t  dt¡ t| ||d�}W 5 Q R X ||ks:t‚t|ƒt|ƒksNt‚t|d��R t  ¡ � t  dt¡ t| |d�}W 5 Q R X ||ks’t‚t|ƒt|ƒks¦t‚W 5 Q R X d S )Nr·   ©rÚ   rÛ   rÜ   ©rÜ   ©rÚ   rÛ   )r5   r6   r7   ÚUserWarningr   r"   rÒ   r   )rÚ   rÛ   rÜ   rÝ   Úactualr(   r(   r)   Útest_get_chunk_n_rows*  s    
ý
ræ   c               
   C   s¼   d} d}d}d}d}t jt|d�� t| ||d�}W 5 Q R X ||ksHt‚t|ƒt|ƒks\t‚t|d��L t jt|d�� t| |d�}W 5 Q R X ||ksšt‚t|ƒt|ƒks®t‚W 5 Q R X dS )	z<Check that warning is raised when working_memory is too low.i  Nr/   zICould not adhere to working_memory config. Currently 1MiB, 2MiB required.r]   rá   râ   rã   )r%   Zwarnsrä   r   r"   rÒ   r   )rÚ   rÛ   rÜ   rÝ   Zwarn_msgrå   r(   r(   r)   Útest_get_chunk_n_rows_warnsI  s&    ÿýrç   Úsourcer=   Úis_longÚABCZABCDEFZABCABCABCABCABCABCABCABCABCABCu   á�ˆÚtimeÚtime_str)gš™™™™™É?z   0.2s)é   z  20.0s)iÐ  z33.3min)i N  z333.3minc                 C   sþ   t | ||ƒ}|r"t|ƒdks2t‚nt|ƒdks2t‚| d|  d ¡sHt‚|t| ƒd d … }| |¡sjt‚|d t|ƒ … }| d¡sŠt‚|d tdƒ … }| |¡sªt‚|d t|ƒ … }| d¡sÊt‚|d d… }|rä|rút‚ntt|ƒƒdgksút‚d S )	NéF   ú[z] r   z, total=ú rk   Ú.)r   r8   r"   Ú
startswithÚendswithrƒ   rÍ   )rè   r=   ré   rë   rì   Úoutr(   r(   r)   Útest_message_with_timed  s"    
rõ   rÝ   Zhelloçš™™™™™¹?Ú
Ú )Nrø   c              	   C   sP   |  tddd„ ¡ td| ƒ� |  tddd„ ¡ W 5 Q R X | ¡ j|ksLt‚d S )NZdefault_timerc                   S   s   dS )Nr   r(   r(   r(   r(   r)   Ú<lambda>™  ó    z)test_print_elapsed_time.<locals>.<lambda>rê   c                   S   s   dS )Nrö   r(   r(   r(   r(   r)   rù   ›  rú   )ÚsetattrÚtimeitr	   Z
readouterrrô   r"   )r=   rÝ   ZcapsysZmonkeypatchr(   r(   r)   Útest_print_elapsed_time�  s    	rý   zvalue, resultÚnan)r   F)g        F)NF)rø   F)rþ   F)l   	H]v—i—eøFc                 C   s&   t | ƒ|kst‚tt | ƒtƒs"t‚d S r{   )r   r"   r‘   rq   )rÃ   Úresultr(   r(   r)   Útest_is_scalar_nanŸ  s    r   c                  C   s4   t jddgt jd�} t| ddd�}t|ddgƒ d	S )
zþMake sure sklearn.utils._approximate_mode returns valid
    results for cases where "class_counts * n_draws" is enough
    to overflow 32-bit signed integer.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20774
    i¸‚ rW   rt   i¨a  r   )Zclass_countsZn_drawsrP   i®`  éú   N)r    r„   Úint32r   r   )rR   Úretr(   r(   r)   Útest_approximate_mode¶  s    r  c                   C   s   d S r{   r(   r(   r(   r(   r)   Ú
dummy_funcÇ  s    r  c                 C   sB   ddl m}m} t|dd ƒ t|dd ƒ ddlm} |jjd= d S )Nr   )Úparallel_backendÚregister_parallel_backendZlokyZfailing)Újoblib)Úsklearn.utilsr  r  r   Zsklearn.utils._joblibr  ÚparallelZBACKENDS)Ztmpdirr  r  r  r(   r(   r)   Útest_deprecation_joblib_apiË  s
    r  Úsequencec                 C   s:   t | ƒ}t|tjƒst‚|jjdks(t‚|jdks6t‚d S )NÚOr/   )r   r‘   r    Zndarrayr"   ru   Úkindr[   )r  rô   r(   r(   r)   Útest_to_object_arrayØ  s    r  c                 C   s   t j d¡}| dd¡}ddg}| t|ƒ|jd ¡}t|| ƒ}t|||d� t||dd�}t	|t|| ƒƒ ddg}| |jd t|ƒ¡}t|| ƒ}t|||d� t||dd�}t	|t|| ƒƒ d	\}}|j|jŽ }t|| ƒ}t|||d� t	|t|| ƒƒ d
S )z,Check that `_safe_assign` works as expected.r   rI   rE   r/   rD   )Úrow_indexerrŽ   )Úcolumn_indexer)NNN)
r    r!   r#   Zrandnr8   rY   r   r
   r   r   )r‚   rP   ZX_arrayr  ÚvaluesrR   Zassigned_portionr  r(   r(   r)   Útest_safe_assignà  s2    
 ÿ
 ÿ
r  )bÚstringrü   r5   r   Ú	itertoolsr   Únumpyr    r%   Zscipy.sparser…   r_   Zsklearnr   r	  r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Zsklearn.utils._mockingr   Zsklearn.utils._testingr   r   r   r   rl   rm   r¬   r*   rA   rF   rU   rZ   r\   rb   re   rn   ÚmarkZparametrizeZbool_r€   r„   r  Zint64Zuint8rÑ   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ç   Úascii_lowercaserõ   rý   Úfloatrþ   Zfloat32Zfloat64r   r  r  r  r  r  r(   r(   r(   r)   Ú<module>   sn  L%

êþ

 0ÿ0þüþ	

þ


þþ
 ÿ

ùþ



ûþ
üþ	ýþ


ôþ
,
