
    Wh_                        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 d dlmZ d dlmZm Z m!Z! d dl"m#Z# d	 Z$ejJ                  jM                  d
e       d        Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z. G d d      Z/ G d d      Z0 G d d      Z1ed        Z2d Z3d Z4d Z5ed        Z6eejJ                  jM                  de3e4gdgd gd!d"fe3e4gd#d$gd%d&fg      d'               Z7eejJ                  jM                  d( ejp                  e3e4gd)dgid*d*d+,       ejp                  e3e4gd-d.id*d*d/,       ejp                  e3e4e5gd)dgid0d*d1,       ejp                  e3e4e5gd)d gid2d*d3,       ejp                  e4e5gd)d4gid5d*d6,       ejp                  e3e4gd.d gd!d*d7d8,      g      d9               Z9d: Z:d; Z;d< Z<ed=        Z=ed>        Z> G d? d@      Z?dldAZ@dB ZAdC ZBejJ                  jM                  dDdEeCfdFeDfdGej                  fdHej                  fg eGdIdJge!       eGdKdLge       dMdN fdOdP fdQdR fdSdT fdUdV fdWdX fdYdZ fd[eHf      ejJ                  jM                  d\ej                  ej                  fej                  ej                  fej                  ej                  fej                  ej                  fg      d]               ZOd^ ZPd_ ZQd` ZRda ZSdb ZTejJ                  j                  edcd      de        ZVejJ                  jM                  dfdIdK ejp                  dJ       ejp                  dL      g      dg        ZWdh ZXejJ                  jM                  di e             dj        ZYejJ                  jM                  di e             dk        ZZy)m    N)sparse)LinearDiscriminantAnalysis)DecisionTreeClassifier)
TempMemmap_convert_container_delete_folder_get_warnings_filters_info_listassert_allcloseassert_allclose_dense_sparseassert_docstring_consistency'assert_run_python_script_without_outputcheck_docstring_parameterscreate_memmap_backed_dataignore_warningsraisesset_random_stateskip_if_no_numpydocturn_warnings_into_errors)
deprecated)_IS_WASMCSC_CONTAINERSCSR_CONTAINERS)available_ifc                  ~    t               } t               }t        | d       t        |d       |j                  dk(  sJ y )N   )r   r   r   random_state)ldatrees     Z/var/www/html/jupyter_env/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:   .   s   
		!Q"A
#CaAV +]]>5 	3(AE2	3$Q*	+ 
z)F	G +$Q*+ 	RWWQZ+113Abggfo&A	~-C	D +$Q*+ +	3 	3+ +
+ +s$   D,D8E,D5	8EEc                  J
   d d t        j                         5  t        j                  d       t               t        t               d d d        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        j                         5  t        j                  d       t        t        t        f       d d d        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        j                         5  t        j                  d        |         |         |        d d d        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        j                         5  t        j                  d        |         |         |	        d d d        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   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   Rx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   txY w# 1 sw Y   Xx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DeprecationWarning r!   r   _warning_functionz.test_ignore_warning.<locals>._warning_functionE   s    +-?@r!   c                  b    t        j                  dt               t        j                  d       y r=   r>   rB   r!   r   _multiple_warning_functionz7test_ignore_warning.<locals>._multiple_warning_functionH   s    +-?@+,r!   errorcategoryr'   r   r*   c                  "                       y NrB   )rE   rC   s   r   decorator_no_warningz1test_ignore_warning.<locals>.decorator_no_warningg   s    "$r!   c                                y rJ   rB   rE   s   r   decorator_no_warning_multiplez:test_ignore_warning.<locals>.decorator_no_warning_multiplel   	    "$r!   c                                y rJ   rB   rC   s   r    decorator_no_deprecation_warningz=test_ignore_warning.<locals>.decorator_no_deprecation_warningp   	    r!   c                                y rJ   rB   rQ   s   r   decorator_no_user_warningz6test_ignore_warning.<locals>.decorator_no_user_warningt   rS   r!   c                                y rJ   rB   rM   s   r   )decorator_no_deprecation_multiple_warningzFtest_ignore_warning.<locals>.decorator_no_deprecation_multiple_warningx   rO   r!   c                                y rJ   rB   rM   s   r   "decorator_no_user_multiple_warningz?test_ignore_warning.<locals>.decorator_no_user_multiple_warning|   rO   r!   c                  R    t               5            d d d        y # 1 sw Y   y xY wrJ   )r   rQ   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NrG   )r   rA   UserWarningrM   s   r   #context_manager_no_warning_multiplez@test_ignore_warning.<locals>.context_manager_no_warning_multiple   s,    '9;&GH 	)&(	) 	) 	)s   )2c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wr]   r   rA   rQ   s   r   &context_manager_no_deprecation_warningzCtest_ignore_warning.<locals>.context_manager_no_deprecation_warning   s'    &89 	 	  	  	    #,c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wr]   r   r^   rQ   s   r   context_manager_no_user_warningz<test_ignore_warning.<locals>.context_manager_no_user_warning   s&    k2 	 	  	  	 rc   c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wr]   ra   rM   s   r   /context_manager_no_deprecation_multiple_warningzLtest_ignore_warning.<locals>.context_manager_no_deprecation_multiple_warning   s'    &89 	)&(	) 	) 	)rc   c                  ^    t        t              5            d d d        y # 1 sw Y   y xY wr]   re   rM   s   r   (context_manager_no_user_multiple_warningzEtest_ignore_warning.<locals>.context_manager_no_user_multiple_warning   s&    k2 	)&(	) 	) 	)rc   zA'obj' should be a callable.+you should use 'category=UserWarning'r%   c                       y rJ   rB   rB   r!   r   testz!test_ignore_warning.<locals>.test   s    r!   )r?   catch_warningssimplefilterr   rA   r.   warnsr^   FutureWarninglen
isinstancemessager   r0   )recordrK   rN   rR   rU   rW   rY   r[   r_   rb   rf   rh   rj   warning_classr&   silence_warnings_funcrl   rE   rC   s                    @@r   test_ignore_warningrw   B   sl   A-
 
	 	 	" Hg&)*)4FG	H 
(	) C@)K@BC 
 N6K2]KMNv;!fQi'');<<<fQi''555	 L6I2[IKLv;!fQi'');<<<		 	 	" Wg&)5G4UVW % % 1;?@% A% 01 2 k* + 01% 2% k*% +% 
	 	 	" +g&%'(*+ 
(	) $!#$	k	" 4134	(	) -*,- )  )) 
	 	 	" 1g&"$+-.01 
(	) *')*	k	" :79:	(	) 3023  MOE	z	/   > >?P Q  
z	/ 		'	 
(	 aH HC CN NL L
W W>+ +$ $4 4- -81 1* *: :3 3    s   2Q$0Q1#Q>$R-R+R%(R2R?:S<+SS&1S3T T	T$Q.1Q;>RRR"%R/2R<?S	SS#&S03S= T
TT"c                     | |z   }|S zFunction f

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

    Returns
    -------
    c : list
        Parameter c
    rB   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
    rB   rz   s      r   f_bad_sectionsr      r   r!   c                     || z   }|S ry   rB   )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
    rB   )r{   r|   ds      r   f_too_many_param_docstringr      s    " 	
AAHr!   c                     | |z   }|S )zFunction f

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

    Returns
    -------
    c : list
        Parameter c
    rB   rz   s      r   	f_missingr     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
    rB   )r{   r|   r}   r   es        r   f_check_param_definitionr   &  s      q519q=r!   c                       e Zd Zd Zd Zy)Klassc                      y rJ   rB   selfr7   r6   s      r   r   zKlass.f_missing:  s    r!   c                      y)zFunction f

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

        Results
        -------
        c : list
            Parameter c
        NrB   r   s      r   r   zKlass.f_bad_sections=  s     	r!   N)__name__
__module____qualname__r   r   rB   r!   r   r   r   9  s    r!   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)MockEstc                      y)MockEstimatorNrB   r   s    r   __init__zMockEst.__init__P      r!   c                     |S rJ   rB   r   s      r   fitzMockEst.fitS      r!   c                     |S rJ   rB   r   r7   s     r   predictzMockEst.predictV  r   r!   c                     |S rJ   rB   r   s     r   predict_probazMockEst.predict_probaY  r   r!   c                      y)N      ?rB   r   s     r   scorezMockEst.score\  s    r!   N)r   r   r   r   r   r   r   r   rB   r!   r   r   r   O  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__a  s     !r!   c                 .    t        | j                  d      S )Nr   hasattrr   r   s    r   <lambda>zMockMetaEstimator.<lambda>k  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.predictk  s     }}$$Q''r!   c                 .    t        | j                  d      S )Nr   r   r   s    r   r   zMockMetaEstimator.<lambda>v  s    wt}}g> r!   z%Testing a deprecated delegated methodc                      y)zThis is available only if delegate has score.

        Parameters
        ---------
        y : ndarray
            Parameter y
        NrB   r   s     r   r   zMockMetaEstimator.scorev  r   r!   c                 .    t        | j                  d      S )Nr   r   r   s    r   r   zMockMetaEstimator.<lambda>  s    wt}}oF r!   c                     |S )zThis is available only if delegate has predict_proba.

        Parameters
        ---------
        X : ndarray
            Parameter X
        rB   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 testedNrB   r   s      r   r   zMockMetaEstimator.fit  r   r!   N)
r   r   r   r   r   r   r   r   r   r   rB   r!   r   r   r   `  s    ! @A( B( >?78 9 @ FG H ?@; A;r!   r   c                     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dddddgd| ddddgd| ddddgd| d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   <xY w# 1 sw Y   xY w)Nr|   )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: 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']z.predict_probaz&potentially wrong underline length... zParameters z--------- in z.scorez.fitr   r   r   z
"z"
 not in 
"")r   r~   r   r.   r   RuntimeErrorr   r   r   r   r   	__class__r   zipr   r   r   r   r   r   )	incorrect	mock_metamock_meta_namemessagesr5   fs         r   test_check_docstring_parametersr     s   *40I??*4>I??*9cUCI??	|+D	E 3">23	|+F	G 9"5#7#789 ++CDI!795I((11N     		

	
		
		
 =^<LHUC 	
00>/? @ 5	
 =^<LFS4		
 =^<LDQ4 		
INH` &OO##OOMM		
 MQ /q1	iLS)!LLMO3 39 9s   $F.F;.F8;Gc                      y)zFunction one.

    Parameters
    ----------
    a : int,   float
        Parameter a.
        Second    line.

    b : str
        Parameter b.

    Returns
    -------
    c : int
       Returning

    d : int
       Returning
    NrB   r{   r|   s     r   f_oner     s    ( 	r!   c                      y)a  Function two.

    Parameters
    ----------
    a :   int, float
        Parameter a.
          Second line.

    b : str
        Parameter bb.

    e : int
        Extra parameter.

    Returns
    -------
    c : int
       Returning

    d : int
       Returning
    NrB   r   s     r   f_twor   (  s    . 	r!   c                      y)zFunction two.

    Parameters
    ----------
    a :   int, float
        Parameter a.

    b : str
        Parameter B!

    e :
        Extra parameter.

    Returns
    -------
    c : int
       Returning.

    d : int
       Returning
    NrB   r   s     r   f_threer   B  s    , 	r!   c                      t        j                  t        d      5  t        dt        g       ddd       y# 1 sw Y   yxY w)z1Check error raised when `objects` incorrect type.zAll 'objects' must be one ofr%   stringN)r.   r   	TypeErrorr   r   rB   r!   r   -test_assert_docstring_consistency_object_typer   [  s5     
y(F	G 8$h%678 8 8s	   7A zobjects, kwargs, errorr{   r|   )include_paramsexclude_paramszThe 'exclude_params' argumentFr}   )include_returnsexclude_returnszThe 'exclude_returns' argumentc                 |    t        j                  t        |      5  t        | fi | ddd       y# 1 sw Y   yxY w)z?Check `assert_docstring_consistency` argument checking correct.r%   N)r.   r   r   r   )objectskwargsrF   s      r   ,test_assert_docstring_consistency_arg_checksr   b  s4    $ 
y	. 8$W778 8 8s   2;zobjects, kwargs, error, warnr    
whitespace)idr   Tincl_allzNThe description of Parameter 'a' is inconsistent between \['f_one',\n'f_two'\]z	2-1 groupzYThe description of Parameter 'b' is inconsistent between \['f_one'\] and\n\['f_two'\] andz1-1-1 groupr   zPThe type specification of Parameter 'e' is inconsistent between\n\['f_two'\] andz
empty typez,Checking was skipped for Parameters: \['e'\]z	skip warnc                    |r1t        j                  t        |      5  t        | fi | ddd       y|r1t        j                  t
        |      5  t        | fi | ddd       yt        | fi | y# 1 sw Y   yxY w# 1 sw Y   yxY w)z;Check `assert_docstring_consistency` gives correct results.r%   N)r.   r   r/   r   ro   r^   )r   r   rF   r@   s       r   !test_assert_docstring_consistencyr   x  s    b ]]>7 	<(;F;	< 	<	\\+T2 	<(;F;	< 	< 	%W77	< 	<	< 	<s   A4B 4A= B	c                      y)zFunction four.

    Parameters
    ----------

    labels : array-like, default=None
        The set of labels to include when `average != 'binary'`, and their
        order if `average is None`. Labels present in the data can be excluded.
    NrB   labelss    r   f_fourr          	r!   c                      y)a  Function five.

    Parameters
    ----------

    labels : array-like, default=None
        The set of labels to include when `average != 'binary'`, and their
        order if `average is None`. This is an extra line. Labels present in the
        data can be excluded.
    NrB   r   s    r   f_fiver     s     	r!   c                      y)zFunction six.

    Parameters
    ----------

    labels : array-like, default=None
        The group of labels to add when `average != 'binary'`, and the
        order if `average is None`. Labels present on them datas can be excluded.
    NrB   r   s    r   f_sixr     r   r!   c                      d} t        j                  t        |       5  t        t        t
        t        gd       ddd       y# 1 sw Y   yxY w)z8Check `assert_docstring_consistency` difference message.a  The description of Parameter 'labels' is inconsistent between
\['f_four'\] and \['f_five'\] and \['f_six'\]:

\*\*\* \['f_four'\]
--- \['f_five'\]
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

\*\*\* 10,25 \*\*\*\*

--- 10,30 ----

  'binary'`, and their order if `average is None`.
\+ This is an extra line.
  Labels present in the data can be excluded.

\*\*\* \['f_four'\]
--- \['f_six'\]
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

\*\*\* 1,25 \*\*\*\*

  The
! set
  of labels to
! include
  when `average != 'binary'`, and
! their
  order if `average is None`. Labels present
! in the data
  can be excluded.
--- 1,25 ----

  The
! group
  of labels to
! add
  when `average != 'binary'`, and
! the
  order if `average is None`. Labels present
! on them datas
  can be excluded.r%   T)r   N)r.   r   r/   r   r   r   r   )r5   s    r   +test_assert_docstring_consistency_error_msgr     sD    (CT 
~S	1 S$ffe%<TRS S Ss   AAc            	         d} t        t        t        t        gddj	                  | j                                      d}t        t        t        t        gddj	                  |j                                      d}d}t        j                  t        |      5  t        t        t        t        gddj	                  |j                                      d	d	d	       y	# 1 sw Y   y	xY w)
zACheck `assert_docstring_consistency` `descr_regex_pattern` works.zThe (set|group) of labels to (include|add) when `average \!\= 'binary'`, and (their|the) order if `average is None`\.[\s\w]*\.* Labels present (on|in) (them|the) datas? can be excluded\.T )r   descr_regex_patternz(labels|average|binary)z#The set of labels to include when.+zCThe description of Parameter 'labels' in \['f_six'\] does not matchr%   N)	r   r   r   r   joinsplitr.   r   r/   )
regex_fullregex_wordsregex_errorr5   s       r   5test_assert_docstring_consistency_descr_regex_patternr     s    
	$  !	HHZ%5%5%78 -K 	HH[%6%6%89 9K
PC	~S	1 
$VU# #):):)< =	

 
 
s   ;CC%c                       e Zd Zd Zd Zy)RegistrationCounterc                     d| _         y )Nr   )nb_callsr   s    r   r   zRegistrationCounter.__init__3  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__6  s$    $$666r!   N)r   r   r   r   r   rB   r!   r   r   r   2  s    7r!   r   c                     t        |t        j                        sJ |dk7  }|j                  j                  |u sJ t        j
                  j                  | |       y )Nr)rr   r+   memmapflags	writeabletestingassert_array_equal)input_array	mmap_data	mmap_moder   s       r   check_memmapr  ;  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+   r2   r   r  ospathdirnamefilenamenameexistsr   )monkeypatchregistration_counterr  datatemp_folderr  s         r   test_tempmemmapr  B  s    .0
,@A''!*K	K	  5D[$'ggoodmm45 
ww$77>>+...((A---I	K9	5 5[$)<ggoodmm45 
ww$77>>+...((A---5 55 5s   6E8E&E#&E/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+   r2   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!  W  sT   .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r.   importorskip	DataFramerB   r!   r   r   r     s    f11(;EE r!   seriesc                  @    t        j                  d      j                  S r+  r.   r.  SeriesrB   r!   r   r   r     s    6..x8?? r!   indexc                  @    t        j                  d      j                  S r+  )r.   r.  IndexrB   r!   r   r   r     s    &--h7== r!   pyarrowc                  @    t        j                  d      j                  S Nr7  )r.   r.  TablerB   r!   r   r   r     s    F//	:@@ r!   pyarrow_arrayc                  @    t        j                  d      j                  S r9  )r.   r.  ArrayrB   r!   r   r   r     s    &"5"5i"@"F"F r!   polarsc                  @    t        j                  d      j                  S Nr>  r-  rB   r!   r   r   r     s    6..x8BB r!   polars_seriesc                  @    t        j                  d      j                  S r@  r2  rB   r!   r   r   r     s    &"5"5h"?"F"F r!   slicezdtype, superdtypec                 4   | dv r |       }ddg}t        || |      }t        ||      sJ | dv r%t        j                  t	        |d         |      sJ y| dv r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)  r4  r>  rA  r7  r;  r0  r   r*   dtype)r"  r#  r4  )r>  rA  r7  r;  NrF  dtypes)r   rr   r+   
issubdtypetyper   rF  rG  )constructor_namecontainer_typerF  
superdtype	containercontainer_converteds         r   test_convert_containerrO  u  s    L    ()AI,
 )>:::55 }}T"5a"89:FFF	T	T	$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,  r4   r)  r8   categorical_feature_namesr   rH   )r.   r.  r   rG  iloc)dfs    r   (test_convert_container_categories_pandasrU    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>  r4   r8   rQ  )r.   r.  r   schemaCategorical)plrT  s     r   (test_convert_container_categories_polarsrZ    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 )Nr7  r4   r8   rQ  r   )r.   r.  r   rI  rW  DictionaryType)parT  s     r   )test_convert_container_categories_pyarrowr^    sS    			Y	'B	cUGYRUQV	WB		!!!"b&7&7777r!   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&   r`  zDid not raiseT)r&   may_pass)r   r   raised_and_matchedr.   r0   r/   )cms    r   test_raisesre    s    
		 k  
		/ -2+,,- -     
	.-!@	A -R+,,- -     
z)>	? 4I 	4"233	4 	4 	44 4 4 $$$$ 
~-B	C I'<= 	,	 	 	   $$$$ 
z)>	? 4I%67 	42233	4 	4 	44 4 4 $$$$ 
L
 + IW- 	+M**	+ 	+ 	++ + +
 $$$$ 
~-B	C +IW6KL 	+PRM**	+ 	+ 	++ + + $$$$ 
~_	= I 	"	 	 	   $$$$ 
	4	8 B  $$$$ 
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㈵ ?rE  r   gX ?gc^  ?g55  ?gh㈵>g        gh㈵>)atol)r
   r+   r$  float32r.   r   r/   float64rB   r!   r   "test_float32_aware_assert_allcloserj    s   BHHj\<cB	~	& G*RZZ@#FG
 BHHj\<cB	~	& G*RZZ@#FG 
~	& A$rzz:C@ABHHdV2::6$GG GG GA As$   
1F
1F1F#
FF #F,zcannot start subprocess)reasonc                     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   r.   r   r/   r   )codes    r   ,test_assert_run_python_script_without_outputrp  (  s    D+D1)D	~-A	B 6/56 *D	J
 L 	0lK	L 99l$STUD	J
 L 	0lK	L L6 6L LL Ls#   B7C C7C CCrJ  c                 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   )rJ  X_sparses     r   'test_convert_container_sparse_to_sparserx  @  s#    " }}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)
NrF   r%   )rs   rH   r   T)rt   Pyarrowz*
Pyarrow will become a required dependencyr   )
actionr.   r   rH   rs   r?   r@   rm   rq   str)warning_infowarnings_as_errorsrt   rs   s       r   check_warnings_as_errorsr  U  s*   g%*<]]<008L8LM 	MM$,,%..	
 h&$$D1 	CV"**GG#GMM%.. (:3v;!#@@q6!9,,-888ay))\-B-BBBB	C 	C '	 		C 	Cs   ,D$BD0$D-0D9r}  c                 d    t         j                  j                  dd      dk7  }t        | |       y )NSKLEARN_WARNINGS_AS_ERRORS0r~  )r  environgetr  )r}  r~  s     r   test_sklearn_warnings_as_errorsr  m  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)NTr  )r?   rm   r   r  )r}  s    r   test_turn_warnings_into_errorsr  s  s7    		 	 	" H!# $GH H Hs   6?)r   )[r  r  r?   numpyr+   r.   scipyr   sklearn.discriminant_analysisr   sklearn.treer   sklearn.utils._testingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   sklearn.utils.deprecationr   sklearn.utils.fixesr   r   r   sklearn.utils.metaestimatorsr   r    markparametrizer:   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   paramr   r   r   r   r   r   r   r  r  r!  r"  r#  ndarray
csr_matrixr   rC  int32integerint64rh  floatingri  rO  rU  rZ  r^  re  rj  xfailrp  rx  r  r  r  rB   r!   r   <module>r     sG    	     D /    " 1 
 6" .9+ :+&J&&&*"& , ".; .;b |M |M~	.	4	2 8 8  EN #u>+	
 EN %3%@,	
8  8 "EN-u5r2,	
 	eU^&7%>B:VE7#u%) 		
 	E7#u%4 		
 	Gu%# 		
 	EN#u=;	
G*-\	8]- ^	8
		
	 -S -S` "
 "
J7 7:.*#< &		%	"**	6$$%	 
l./	@ 
l./	@ 
EF 
?@ 
=> 
@A 
FG 
BC 
FG  
%!* 	2::	2::	R[[!	R[[!	&6+<&6R+.8CLH$ 8$=>L ?L. 	
 		
	33C0 )H)JKR LR
 )H)JKH LHr!   