
    {Kgl                     R   d dl Z 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	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%m&Z& d dl'm(Z( d	 Z)ejT                  jW                  d
e#      d        Z,d Z-d Z.d Z/ G d dej`                        Z1d Z2d Z3d Z4d Z5d Z6d Z7 G d d      Z8 G d d      Z9 G d d      Z:d Z; G d d      Z<dId Z=d! Z>ejT                  j                  e"d"#      d$        Z@ejT                  jW                  d%d&eAfd'eBfd(ej                  fd)ej                  fg eEd*d+ge$       eEd,d-ge#      d.d/ fd0d1 fd2d3 fd4eFf      ejT                  jW                  d5ej                  ej                  fej                  ej                  fej                  ej                  fej                  ej                  fg      d6               ZMd7 ZNd8 ZOd9 ZPejT                  j                  e& e%d:      k\  d;#      ejT                  jW                  d<d+d-g      ejT                  jW                  d=ej                  ej                  ej                  ej                  g      d>                      ZRd? ZSd@ ZTejT                  j                  e"dA#      dB        ZUejT                  jW                  d<d*d, ej                  d+ejT                  j                  e& e%d:      k  d;#      C       ej                  d-ejT                  j                  e& e%d:      k  d;#      C      g      dD        ZWdE ZXejT                  jW                  dF e             dG        ZYejT                  jW                  dF e             dH        ZZy)J    N)sparse)LinearDiscriminantAnalysis)DecisionTreeClassifier)
TempMemmap_convert_container_delete_folder_get_warnings_filters_info_listassert_allcloseassert_allclose_dense_sparseassert_no_warningsassert_raise_messageassert_raisesassert_raises_regex'assert_run_python_script_without_outputcheck_docstring_parameterscreate_memmap_backed_dataignore_warningsraisesset_random_stateturn_warnings_into_errors)
deprecated)_IS_WASMCSC_CONTAINERSCSR_CONTAINERSparse_version
sp_version)available_ifc                  ~    t               } t               }t        | d       t        |d       |j                  dk(  sJ y )N   )r   r   r   random_state)ldatrees     d/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/utils/tests/test_testing.pytest_set_random_stater$   *   s:    
$
&C!#DS!T1!!!    csr_containerc                    t        j                  d      j                  dd      }d} | |      }||fD ]A  }t        j                  t
        |      5  t        ||dz         d d d        t        ||       C t        j                  t        d      5  t        ||       d d d        t        j                  t        j                  d      d	      j                         } | t        j                  d
            }t        j                  t
        d      5  t        ||       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N	   r   zNot equal to tolerance match   zCan only compare two sparse   r   )offsets)   r,   zArrays are not equal)nparangereshapepytestr   AssertionErrorr   
ValueErrorr   diagsonestocsr)r&   xmsgyXABs          r#   !test_assert_allclose_dense_sparser>   3   s    
		!Q"A
#CaAV]]>5(AE2 6$Q*	  
z)F	G$Q* 
H 	RWWQZ+113Abggfo&A	~-C	D$Q* 
E	D 65 
H	G
 
E	Ds$   D,D8E,D5	8EEc                      t        t        d      5  t        t        d      5  	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NzHello world)r9   )r   r3   r   r4    r%   r#   test_assert_raises_msgrA   G   s6    	^]	;:=9 : 
<	;99 
<	;s   A6A?	AAc                     d } d }t        t        d| d       t        t        t         t        d| d       t        t        t         t        d| d       t        t        t         t        d|       t        t        t         t        t
        fd|       y )Nc                     t        |       N)r4   )messages    r#   _raise_ValueErrorz4test_assert_raise_message.<locals>._raise_ValueErrorN   s    !!r%   c                       y rD   r@   r@   r%   r#   	_no_raisez,test_assert_raise_message.<locals>._no_raiseQ       r%   testzsomething else)r   r4   r   r3   	TypeErrorAttributeError)rF   rH   s     r#   test_assert_raise_messagerM   M   s    " V->G  ."6
FIV 	^$r%   c                     d d t        t                     t        t        t                     t        j                  t              5   t        t
                      d d d        t        j                         5 }  t        t                      d d d        t               dk(  sJ t        | d   j                  t              sJ t        | d   j                  t
              sJ t        j                         5 }  t        t
                      d d d        t        |       dk(  sJ t        | d   j                  t              sJ t        t        t        t
        f             t        fd       }t        t        t
        f      fd       }t        t              fd	       }t        t
              fd
       }t        t              fd       }t        t
              fd       }t        |       t        |       t        |       t        j                  t              5   |        d d d        t        j                  t
              5   |        d d d        t        j                  t              5   |        d d d        fd}fd}fd}	fd}
fd}fd}t        |       t        |       t        |	       t        j                  t              5   |
        d d d        t        j                  t
              5   |        d d d        t        j                  t              5   |        d d d        t
        }d}t        j                  t        |      5   t        |            } |        d d d        t        j                  t        |      5  t        |      d        }d d d        y # 1 sw Y   jxY w# 1 sw Y   DxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                  8    t        j                  dt               y Nzdeprecation warningwarningswarnDeprecationWarningr@   r%   r#   _warning_functionz.test_ignore_warning.<locals>._warning_functionw   s    +-?@r%   c                  b    t        j                  dt               t        j                  d       y rP   rQ   r@   r%   r#   _multiple_warning_functionz7test_ignore_warning.<locals>._multiple_warning_functionz   s    +-?@+,r%   categoryr+   r   r.   c                  "                       y rD   r@   )rW   rU   s   r#   decorator_no_warningz1test_ignore_warning.<locals>.decorator_no_warning   s    "$r%   c                                y rD   r@   rW   s   r#   decorator_no_warning_multiplez:test_ignore_warning.<locals>.decorator_no_warning_multiple   	    "$r%   c                                y rD   r@   rU   s   r#    decorator_no_deprecation_warningz=test_ignore_warning.<locals>.decorator_no_deprecation_warning   	    r%   c                                y rD   r@   ra   s   r#   decorator_no_user_warningz6test_ignore_warning.<locals>.decorator_no_user_warning   rc   r%   c                                y rD   r@   r]   s   r#   )decorator_no_deprecation_multiple_warningzFtest_ignore_warning.<locals>.decorator_no_deprecation_multiple_warning   r_   r%   c                                y rD   r@   r]   s   r#   "decorator_no_user_multiple_warningz?test_ignore_warning.<locals>.decorator_no_user_multiple_warning   r_   r%   c                  R    t               5            d d d        y # 1 sw Y   y xY wrD   )r   ra   s   r#   context_manager_no_warningz7test_ignore_warning.<locals>.context_manager_no_warning   s     s   &c                  j    t        t        t        f      5            d d d        y # 1 sw Y   y xY wNrX   )r   rT   UserWarningr]   s   r#   #context_manager_no_warning_multiplez@test_ignore_warning.<locals>.context_manager_no_warning_multiple   s$    '9;&GH&( IHHs   )2c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wrm   r   rT   ra   s   r#   &context_manager_no_deprecation_warningzCtest_ignore_warning.<locals>.context_manager_no_deprecation_warning   s    &89 :99   #,c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wrm   r   rn   ra   s   r#   context_manager_no_user_warningz<test_ignore_warning.<locals>.context_manager_no_user_warning   s    k2 322rs   c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wrm   rq   r]   s   r#   /context_manager_no_deprecation_multiple_warningzLtest_ignore_warning.<locals>.context_manager_no_deprecation_multiple_warning   s    &89&( :99rs   c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wrm   ru   r]   s   r#   (context_manager_no_user_multiple_warningzEtest_ignore_warning.<locals>.context_manager_no_user_multiple_warning   s    k2&( 322rs   zA'obj' should be a callable.+you should use 'category=UserWarning'r)   c                       y rD   r@   r@   r%   r#   rJ   z!test_ignore_warning.<locals>.test   s    r%   )r   r   rT   r2   warnsrn   FutureWarninglen
isinstancerE   r   r4   )recordr[   r^   rb   re   rg   ri   rk   ro   rr   rv   rx   rz   warning_classr*   silence_warnings_funcrJ   rW   rU   s                    @@r#   test_ignore_warningr   t   sb   A-
 '89:'8CUVW	(	)@)K@B 
* 
6K2]KM 
v;!fQi'');<<<fQi''555	6I2[IK 
v;!fQi'');<<<)5G4UV
 % % 1;?@% A% 01 2 k* + 01% 2% k*% +% +,4578	(	)!# 
*	k	"13 
#	(	)*, 
* )  )) 12:;=>	(	)') 
*	k	"79 
#	(	)02 
*  MOE	z	/ > >?P Q 
0 
z	/		'	 
(	 
0	/C 
*	) 
 
L 
*	)	"	"	)	)> 
*	)	"	"	)	) 
0	/ 
0	/s   OOO)9O6"PP3PP*P78Q4QOO&)O36P PPP'*P47Q QQc                       e Zd Zd Zy)	TestWarnsc                     d }t        j                  t              5  t        |       d d d        t        d d      dk(  sJ y # 1 sw Y   xY w)Nc                  .    t        j                  d       y)Nyor   )rR   rS   r@   r%   r#   fzTestWarns.test_warn.<locals>.f   s    MM$r%   c                     | S rD   r@   )r8   s    r#   <lambda>z%TestWarns.test_warn.<locals>.<lambda>   s    Ar%   r.   )r2   r   r3   r   )selfr   s     r#   	test_warnzTestWarns.test_warn   s@    	 ]]>*q! +!+q1Q666 +*s   AAN)__name__
__module____qualname__r   r@   r%   r#   r   r      s    7r%   r   c                     | |z   }|S zFunction f

    Parameters
    ----------
    a : int
        Parameter a
    b : float
        Parameter b

    Returns
    -------
    c : list
        Parameter c
    r@   abcs      r#   f_okr           	
AAHr%   c                     | |z   }|S )zFunction f

    Parameters
    ----------
    a : int
        Parameter a
    b : float
        Parameter b

    Results
    -------
    c : list
        Parameter c
    r@   r   s      r#   f_bad_sectionsr   
  r   r%   c                     || z   }|S r   r@   )r   r   r   s      r#   f_bad_orderr     r   r%   c                     | |z   }|S )zFunction f

    Parameters
    ----------
    a : int
        Parameter a
    b : int
        Parameter b
    c : int
        Parameter c

    Returns
    -------
    d : list
        Parameter c
    r@   )r   r   ds      r#   f_too_many_param_docstringr   0  s    " 	
AAHr%   c                     | |z   }|S )zFunction f

    Parameters
    ----------
    a : int
        Parameter a

    Returns
    -------
    c : list
        Parameter c
    r@   r   s      r#   	f_missingr   E  s     	
AAHr%   c                     | |z   |z   |z   S )zFunction f

    Parameters
    ----------
    a: int
        Parameter a
    b:
        Parameter b
    c :
        This is parsed correctly in numpydoc 1.2
    d:int
        Parameter d
    e
        No typespec is allowed without colon
    r@   )r   r   r   r   es        r#   f_check_param_definitionr   V  s      q519q=r%   c                       e Zd Zd Zd Zy)Klassc                      y rD   r@   r   r;   r:   s      r#   r   zKlass.f_missingj  rI   r%   c                      y)zFunction f

        Parameter
        ---------
        a : int
            Parameter a
        b : float
            Parameter b

        Results
        -------
        c : list
            Parameter c
        Nr@   r   s      r#   r   zKlass.f_bad_sectionsm  s     	r%   N)r   r   r   r   r   r@   r%   r#   r   r   i  s    r%   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)MockEstc                      y)MockEstimatorNr@   r   s    r#   __init__zMockEst.__init__      r%   c                     |S rD   r@   r   s      r#   fitzMockEst.fit      r%   c                     |S rD   r@   r   r;   s     r#   predictzMockEst.predict  r   r%   c                     |S rD   r@   r   s     r#   predict_probazMockEst.predict_proba  r   r%   c                      y)N      ?r@   r   s     r#   scorezMockEst.score  s    r%   N)r   r   r   r   r   r   r   r   r@   r%   r#   r   r     s    r%   r   c                       e Zd Zd Z ed       d        Z ed        ed      d               Z ed       d        Z ed	      d
        Z	y)MockMetaEstimatorc                     || _         y)zMetaEstimator to check if doctest on delegated methods work.

        Parameters
        ---------
        delegate : estimator
            Delegated estimator.
        Ndelegate)r   r   s     r#   r   zMockMetaEstimator.__init__  s     !r%   c                 .    t        | j                  d      S )Nr   hasattrr   r   s    r#   r   zMockMetaEstimator.<lambda>  s    wt}}i@r%   c                 8    | j                   j                  |      S )zThis is available only if delegate has predict.

        Parameters
        ----------
        y : ndarray
            Parameter y
        )r   r   r   s     r#   r   zMockMetaEstimator.predict  s     }}$$Q''r%   c                 .    t        | j                  d      S )Nr   r   r   s    r#   r   zMockMetaEstimator.<lambda>  s    wt}}g>r%   z%Testing a deprecated delegated methodc                      y)zThis is available only if delegate has score.

        Parameters
        ---------
        y : ndarray
            Parameter y
        Nr@   r   s     r#   r   zMockMetaEstimator.score  r   r%   c                 .    t        | j                  d      S )Nr   r   r   s    r#   r   zMockMetaEstimator.<lambda>  s    wt}}oFr%   c                     |S )zThis is available only if delegate has predict_proba.

        Parameters
        ---------
        X : ndarray
            Parameter X
        r@   r   s     r#   r   zMockMetaEstimator.predict_proba  s	     r%   z-Testing deprecated function with wrong paramsc                      y)z,Incorrect docstring but should not be testedNr@   r   s      r#   r   zMockMetaEstimator.fit  r   r%   N)
r   r   r   r   r   r   r   r   r   r   r@   r%   r#   r   r     s    ! @A( B( >?78 9 @ FG H ?@; A;r%   r   c                     t        j                  ddd       t        t              } | g k(  sJ t        t        dg      } | g k(  sJ t        t        dg      } | g k(  sJ t        j
                  t        d      5  t        t               d d d        t        j
                  t        d	      5  t        t        j                         d d d        t        t              } t        t               
      }|j                  j                  }| g dk(  sJ g dg dg dg ddd| dz   ddddddgdd| dz   dz   dddgdd| dz   dddgdd| dz   ddd d!gg}t        |t        t         t        t        j                  |j"                  |j$                  |j&                  |j(                  g      D ]#  \  }}t        |      } || k(  rJ d"|d#| d$        y # 1 sw Y   KxY w# 1 sw Y   xY w)%Nnumpydocz+numpydoc is required to test the docstringsz1.2.0)reason
minversionr   )ignorezUnknown section Resultsr)   zUnknown section Parameterr   )zxsklearn.utils.tests.test_testing.f_check_param_definition There was no space between the param name and colon ('a: int')ztsklearn.utils.tests.test_testing.f_check_param_definition There was no space between the param name and colon ('b:')zwsklearn.utils.tests.test_testing.f_check_param_definition There was no space between the param name and colon ('d:int'))z9In function: sklearn.utils.tests.test_testing.f_bad_orderznThere's a parameter name mismatch in function docstring w.r.t. function signature, at index 0 diff: 'b' != 'a'
Full diff:z- ['b', 'a']z+ ['a', 'b'])zHIn function: sklearn.utils.tests.test_testing.f_too_many_param_docstringz_Parameters in function docstring have more items w.r.t. function signature, first extra item: cr   - ['a', 'b']z+ ['a', 'b', 'c']z?          +++++)z7In function: sklearn.utils.tests.test_testing.f_missingzaParameters in function docstring have less items w.r.t. function signature, first missing item: br   r   z+ ['a'])z=In function: sklearn.utils.tests.test_testing.Klass.f_missingaParameters in function docstring have less items w.r.t. function signature, first missing item: Xr   - ['X', 'y']+ []zIn function: z!sklearn.utils.tests.test_testing.z.predictznThere's a parameter name mismatch in function docstring w.r.t. function signature, at index 0 diff: 'X' != 'y'r   z- ['X']z?   ^z+ ['y'].r   z&potentially wrong underline length... zParameters z--------- in z.scorez.fitr   r   r   z
"z"
 not in 
"")r2   importorskipr   r   r   r   RuntimeErrorr   r   r   r   r   	__class__r   zipr   r   r   r   r   r   )	incorrect	mock_metamock_meta_namemessagesr9   r   s         r#   test_check_docstring_parametersr     s<   
< +40I??*4>I??*9cUCI??	|+D	E">2 
F	|+F	G"5#7#78 
H ++CDI!795I((11N     		
	
		
		
 1.1AJKC 	
 1.1ACD 5	
 1.1AHI4	
  A.AQQUVV4 		
OQHf &OO##OOMM		
Q /q1	iLS)!LLU 
F	E	G	Gs   <G/G"G"G,c                       e Zd Zd Zd Zy)RegistrationCounterc                     d| _         y )Nr   )nb_callsr   s    r#   r   zRegistrationCounter.__init__J  s	    r%   c                 V    | xj                   dz  c_         |j                  t        u sJ y )Nr.   )r   funcr   )r   to_register_funcs     r#   __call__zRegistrationCounter.__call__M  s$    $$666r%   N)r   r   r   r   r   r@   r%   r#   r   r   I  s    7r%   r   c                     t        |t        j                        sJ |dk7  }|j                  j                  |u sJ t        j
                  j                  | |       y )Nr)r   r/   memmapflags	writeabletestingassert_array_equal)input_array	mmap_data	mmap_moder   s       r#   check_memmapr   R  sL    i+++S I??$$	111JJ!!+y9r%   c                    t               }| j                  t        d|       t        j                  d      }t        |      5 }t        ||       t        j                  j                  |j                        }d d d        t        j                  dk7  r!t        j                  j                        rJ |j                  dk(  sJ d}t        ||      5 }t        |||       t        j                  j                  |j                        }d d d        t        j                  dk7  r!t        j                  j                        rJ |j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   [xY w)Nregisterr   ntr.   r+r   r+   )r   setattratexitr/   r6   r   r   ospathdirnamefilenamenameexistsr   )monkeypatchregistration_counterr   datatemp_folderr   s         r#   test_tempmemmapr  Y  s   .0
,@A''!*K	K	 D[$'ggoodmm4 
! 
ww$77>>+...((A---I	K9	5[$)<ggoodmm4 
6 
ww$77>>+...((A--- 
!	  
6	5s   6E8E&E#&E/zmemmap not fully supported)r   c                    t               }| j                  t        d|       t        j                  d      }t        |      }t        ||       |j                  dk(  sJ t        |d      \  }}t        ||       |t        j                  j                  |j                        k(  sJ |j                  dk(  sJ d}t        ||      }t        |||       |j                  dk(  sJ ||dz   |dz   g}t        |      }t        ||      D ]  \  }}t        ||        |j                  d	k(  sJ t        |d
g      \  }}	t        ||       |	d
k(  sJ y )Nr   r   r.   T)return_folderr+   r   r      znot-an-array)r   r   r   r/   r6   r   r   r   r   r   r   r   r   )
r   r   r   r  folderr   
input_listmmap_data_listoutput_dataothers
             r#   test_create_memmap_backed_datar  n  sO   .0
,@A''!*K$[1Dd#((A---,[MLD&d#RWW__T]]3333((A---I$[IFDdI.((A---{Qa@J.z:N ^<T[$' =((A---2K3PQKk*N"""r%   z constructor_name, container_typelisttuplearrayr   
sparse_csrsparse_csr_array
sparse_cscsparse_csc_array	dataframec                  @    t        j                  d      j                  S Npandas)r2   r   	DataFramer@   r%   r#   r   r     s    f11(;EEr%   seriesc                  @    t        j                  d      j                  S r  )r2   r   Seriesr@   r%   r#   r   r     s    6..x8??r%   indexc                  @    t        j                  d      j                  S r  )r2   r   Indexr@   r%   r#   r   r     s    &--h7==r%   slicezdtype, superdtypec                 *   | dv r |       }ddg}t        || |      }t        ||      sJ | dv r%t        j                  t	        |d         |      sJ yt        |d      r|j                  |k(  sJ yt        |d      r|j                  d   |k(  sJ yy)	z\Check that we convert the container to the right type of array with the
    right data type.)r  polarsr  polars_seriesr  r   r.   dtype)r  r  r  r$  dtypesN)r   r   r/   
issubdtypetyper   r$  r%  )constructor_namecontainer_typer$  
superdtype	containercontainer_converteds         r#   test_convert_containerr-    s    D VV ()AI,
 )>:::55 }}T"5a"89:FFF	$g	."((E111	$h	/"))!,555 
0r%   c                      t        j                  d       t        dggddgdg      } | j                  j                  d   dk(  sJ y )Nr  r8   r  r<   categorical_feature_namesr   rY   )r2   r   r   r%  iloc)dfs    r#   (test_convert_container_categories_pandasr3    sH    
!	
seu
B 99>>!
***r%   c                      t        j                  d      } t        dggddgdg      }|j                  d   | j	                         k(  sJ y )Nr!  r8   r<   r/  )r2   r   r   schemaCategorical)plr2  s     r#   (test_convert_container_categories_polarsr8    sI    			X	&B	cUGXuQTPU	VB99S>R^^----r%   c                      t        j                  d      } t        dggddgdg      }t        |j                  d   j                        | j
                  u sJ y )Npyarrowr8   r<   r/  r   )r2   r   r   r'  r5  DictionaryType)par2  s     r#   )test_convert_container_categories_pyarrowr=    sS    			Y	'B	cUGYRUQV	WB		!!!"b&7&7777r%   z1.8z-sparse arrays are available as of scipy 1.8.0r(  r$  c                     ddg}t        j                  t        dt               5  t	        || |       ddd       y# 1 sw Y   yxY w)zCheck that if we convert to sparse array but sparse array are not supported
    (scipy<1.8.0), we should raise an explicit error.r   r.   z&only available with scipy>=1.8.0, got r)   r#  N)r2   r   r4   r   r   )r(  r$  r+  s      r#   7test_convert_container_raise_when_sparray_not_availabler?    sE     AI	6zlC
 	9&6eD	
 
 
s	   ?Ac                     t        t              5  t               # 1 sw Y   nxY wt        t        d      5 } t        d      # 1 sw Y   nxY w j                  sJ t        t        ddg      5 } t        d      # 1 sw Y   nxY w| j                  sJ t        j                   t        d      5  t        t              5 } t	        d      # 1 sw Y   nxY w	 d d d        n# 1 sw Y   nxY w| j                  rJ t        j                   t
        d      5  t        t        d      5 } t	               # 1 sw Y   nxY w	 d d d        n# 1 sw Y   nxY w| j                  rJ t        j                   t        d      5  t        t        d      5 } t	        d      # 1 sw Y   nxY w	 d d d        n# 1 sw Y   nxY w| j                  rJ t        j                   t
        d	      5  t        t        d
      5 } t        d      # 1 sw Y   nxY w	 d d d        n# 1 sw Y   nxY w| j                  rJ t        j                   t
        d      5  t        t        d
d      5 } t        d      # 1 sw Y   nxY w	 d d d        n# 1 sw Y   nxY w| j                  rJ t        j                   t
        d      5  t        t              5 } 	 d d d        n# 1 sw Y   nxY wd d d        n# 1 sw Y   nxY w| j                  rJ t        t        d
d      5 } 	 d d d        n# 1 sw Y   nxY w| j                  rJ t        t        t        f      5  t               # 1 sw Y   nxY wt        t        t        f      5  t	               # 1 sw Y   nxY wt        j                   t
              5  t        t        t        f      5  	 d d d        n# 1 sw Y   nxY wd d d        y # 1 sw Y   y xY w)Nzhow are your)   zhello how are youznot this onezthis will be raisedzthe failure message)err_msgzthis is ignoredz,should contain one of the following patternshellozBad message)r*   rA  zDid not raiseT)r*   may_pass)r   rK   raised_and_matchedr2   r4   r3   )cms    r#   test_raisesrF    s    
		k 
	 
		/2+,, 
0	/     
	.-!@	AR+,, 
B	A     
z)>	?I"233  
@	?	? $$$$ 
~-B	CI'<=, >== 
D	C	C $$$$ 
z)>	?I%672233 877 
@	?	? $$$$ 
L
 IW-M** .--
 
 

 $$$$ 
~-B	CIW6KLPRM** MLL 
D	C	C $$$$ 
~_	=I"  
>	=	= $$$$ 
	4	8B 
9	8	8$$$$ 
J'	(k 
)	(	J'	(l 
)	(	~	&Y
+, -,, 
'	&	&s!  $AA1A==B2C$CC	C$$C-E+D66D?	;EEF5FF(	$F55F>*H<HH	HH'J&I22I;	7JJ=K-K	K-K!	K--K6L$$L-MM'?N

N/O%O	O%O	O%%O.c                  ^   t        t        j                  dgt        j                        d       t	        j
                  t              5  t        t        j                  dgt        j                        d       d d d        t        t        j                  dgt        j                        d       t	        j
                  t              5  t        t        j                  dgt        j                        d       d d d        t	        j
                  t              5  t        t        j                  dgt        j                        d       d d d        t        t        j                  dgt        j                        dd	
       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   UxY w)Ng㈵ ?r#  r   gX ?gc^  ?g55  ?gh㈵>g        gh㈵>)atol)r
   r/   r  float32r2   r   r3   float64r@   r%   r#   "test_float32_aware_assert_allcloserK  2  s    BHHj\<cB	~	&*RZZ@#F 
'
 BHHj\<cB	~	&*RZZ@#F 
' 
~	&$rzz:C@ 
'BHHdV2::6$G 
'	& 
'	& 
'	&s$   
1F
1F1F#
FF #F,zcannot start subprocessc                     d} t        |        d} t        j                  t        d      5  t        |        d d d        d} t        j                  t        d      5  t        | d       d d d        dj	                  d	d
g      } t        j                  t        d      5  t        | d       d d d        y # 1 sw Y   xY w# 1 sw Y   ZxY w# 1 sw Y   y xY w)Nzx = 1zprint('something to stdout')zExpected no outputr)   z:output was not supposed to match.+got.+something to stdoutz
to.+stdout)pattern
z
import sysz-print('something to stderr', file=sys.stderr)z:output was not supposed to match.+got.+something to stderrz
to.+stderr)r   r2   r   r3   join)codes    r#   ,test_assert_run_python_script_without_outputrQ  D  s    D+D1)D	~-A	B/5 
C *D	J
 	0lK	
 99l$STUD	J
 	0lK	
 
 
C	B
 

 
s#   B7C C7C CC)marksc                 N    t        j                  dddd      }t        ||        y)zyNon-regression test to check that we can still convert a sparse container
    from a given format to another format.
    
   g?csr)densityformatN)r   randomr   )r(  X_sparses     r#   'test_convert_container_sparse_to_sparserZ  \  s#    2 }}RS?Hx!12r%   c                 x   | j                   dk(  ra|r_t        j                  | j                  | j                        5  t        j                  | j                  | j                         d d d        | j                   dk(  rt        j                  d      5 }| j                  }d|v rd}t        j                  || j                         |rt        |      d	k(  sJ 	 |r;t        |d	   j                        |k(  sJ |d	   j                  | j                  k(  sJ d d d        y y # 1 sw Y   xY w# 1 sw Y   y xY w)
Nerrorr)   )rE   rY   r   T)r   Pyarrowz*
Pyarrow will become a required dependencyr   )
actionr2   r   rY   rE   rR   rS   catch_warningsr~   str)warning_infowarnings_as_errorsr   rE   s       r#   check_warnings_as_errorsrc  y  s   g%*<]]<008L8LMMM$,,%.. N
 h&$$D1V"**GG#GMM%.. (:3v;!#@@q6!9,,-888ay))\-B-BBBB 21 ' NM 21s   ,D$BD0$D-0D9ra  c                 d    t         j                  j                  dd      dk7  }t        | |       y )NSKLEARN_WARNINGS_AS_ERRORS0rb  )r   environgetrc  )ra  rb  s     r#   test_sklearn_warnings_as_errorsrj    s(    (DcJcQ\>PQr%   c                     t        j                         5  t                t        | d       d d d        y # 1 sw Y   y xY w)NTrg  )rR   r_  r   rc  )ra  s    r#   test_turn_warnings_into_errorsrl    s*    		 	 	"!# $G 
#	"	"s   6?)r   )[r   r   unittestrR   numpyr/   r2   scipyr   sklearn.discriminant_analysisr   sklearn.treer   sklearn.utils._testingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   sklearn.utils.deprecationr   sklearn.utils.fixesr   r   r   r   r   sklearn.utils.metaestimatorsr   r$   markparametrizer>   rA   rM   r   TestCaser   r   r   r   r   r   r   r   r   r   r   r   r   r  xfailr  r  r  ndarray
csr_matrixr   r  int32integerint64rI  floatingrJ  r-  r3  r8  r=  skipifr?  rF  rK  rQ  paramrZ  rc  rj  rl  r@   r%   r#   <module>r     s    	      D /    & 1  6" .9+ :+&$Nrj7!! 7&&&*"& , ".; .;bEMP7 7:.* 8$@A# B#< &		%	"**	6$$%	 
l./	@ 
l./	@ 
EF 
?@ 
=> 
%" 	2::	2::	R[[!	R[[!	6#46>+.8 -&&:   +.@BT-UV288RXXrzz2::"NO	E P W		ECLH$ 8$=>L ?L. ++$$]511F % 	
 	++$$]511F % 	
*3+*3C0 )H)JKR LR
 )H)JKH LHr%   