
    Ugl                     ,   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j*        +                    d
e#          d             Z,d Z-d Z.d Z/ G d dej0                  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<dJd!Z=d" Z>ej*        ?                    e"d#$          d%             Z@ej*        +                    d&d'eAfd(eBfd)ejC        fd*ejD        fg eEd+d,ge$           eEd-d.ge#          d/d0 fd1d2 fd3d4 fd5eFf          ej*        +                    d6ejG        ejH        fejI        ejH        fejJ        ejK        fejL        ejK        fg          d7                         ZMd8 ZNd9 ZOd: ZPej*        Q                    e& e%d;          k    d<$          ej*        +                    d=d,d.g          ej*        +                    d>ejG        ejI        ejJ        ejL        g          d?                                     ZRd@ ZSdA ZTej*        ?                    e"dB$          dC             ZUej*        +                    d=d+d- ejV        d,ej*        Q                    e& e%d;          k     d<$          D           ejV        d.ej*        Q                    e& e%d;          k     d<$          D          g          dE             ZWdF ZXej*        +                    dG e                      dH             ZYej*        +                    dG e                      dI             ZZdS )K    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 d S )N   )r   r   r   random_state)ldatrees     _/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/utils/tests/test_testing.pytest_set_random_stater$   *   sR    
$
&
&C!##DS!T1!!!!!!    csr_containerc                    t          j        d                              dd          }d} | |          }||fD ]X}t          j        t
          |          5  t          ||dz             d d d            n# 1 swxY w Y   t          ||           Yt          j        t          d          5  t          ||           d d d            n# 1 swxY w Y   t          j	        t          j
        d          d	                                          } | t          j
        d
                    }t          j        t
          d          5  t          ||           d d d            d S # 1 swxY w Y   d S )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55 	3 	3(AE222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3$Q****	z)F	G	G	G + +$Q***+ + + + + + + + + + + + + + + 	RWQZZ+++1133Abgfoo&&A	~-C	D	D	D + +$Q***+ + + + + + + + + + + + + + + + + +s6   A77A;	>A;	.CCCE&&E*-E*c                      t          t          d          5  t          t          d          5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NzHello world)r9   )r   r3   r   r4    r%   r#   test_assert_raises_msgrA   G   s    	^]	;	;  :=999 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s.   A;A?	A?	AAAc                  b   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|           d S )Nc                      t          |           N)r4   )messages    r#   _raise_ValueErrorz4test_assert_raise_message.<locals>._raise_ValueErrorN   s    !!!r%   c                      d S 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GG      ."6
FIVVV 	^$    r%   c                  F
   d d t          t                               t          t          t                               t          j        t                    5   t          t
                                 d d d            n# 1 swxY w Y   t          j                    5 }  t          t                                 d d d            n# 1 swxY w Y   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            n# 1 swxY w Y   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            n# 1 swxY w Y   t          j        t
                    5   |             d d d            n# 1 swxY w Y   t          j        t                    5   |             d d d            n# 1 swxY w Y   fd}fd}fd}	fd}
fd}fd}t          |           t          |           t          |	           t          j        t                    5   |
             d d d            n# 1 swxY w Y   t          j        t
                    5   |             d d d            n# 1 swxY w Y   t          j        t                    5   |             d d d            n# 1 swxY w Y   t
          }d}t          j
        t          |          5   t          |                    } |             d d d            n# 1 swxY w Y   t          j
        t          |          5  t          |          d             }d d d            d S # 1 swxY w Y   d S )Nc                  :    t          j        dt                     d S 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           d S rP   rQ   r@   r%   r#   _multiple_warning_functionz7test_ignore_warning.<locals>._multiple_warning_functionz   s-    +-?@@@+,,,,,r%   categoryr+   r   r.   c                  0                                 d S rD   r@   )rW   rU   s   r#   decorator_no_warningz1test_ignore_warning.<locals>.decorator_no_warning   s'    ""$$$$$r%   c                                     d S rD   r@   rW   s   r#   decorator_no_warning_multiplez:test_ignore_warning.<locals>.decorator_no_warning_multiple       ""$$$$$r%   c                                     d S rD   r@   rU   s   r#    decorator_no_deprecation_warningz=test_ignore_warning.<locals>.decorator_no_deprecation_warning       r%   c                                     d S rD   r@   ra   s   r#   decorator_no_user_warningz6test_ignore_warning.<locals>.decorator_no_user_warning   rc   r%   c                                     d S rD   r@   r]   s   r#   )decorator_no_deprecation_multiple_warningzFtest_ignore_warning.<locals>.decorator_no_deprecation_multiple_warning   r_   r%   c                                     d S rD   r@   r]   s   r#   "decorator_no_user_multiple_warningz?test_ignore_warning.<locals>.decorator_no_user_multiple_warning   r_   r%   c                  j    t                      5                 d d d            d S # 1 swxY w Y   d S rD   )r   ra   s   r#   context_manager_no_warningz7test_ignore_warning.<locals>.context_manager_no_warning   s     	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   (,,c                      t          t          t          f          5                 d d d            d S # 1 swxY w Y   d S NrX   )r   rT   UserWarningr]   s   r#   #context_manager_no_warning_multiplez@test_ignore_warning.<locals>.context_manager_no_warning_multiple   s    '9;&GHHH 	) 	)&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   6::c                  x    t          t                    5                 d d d            d S # 1 swxY w Y   d S rm   r   rT   ra   s   r#   &context_manager_no_deprecation_warningzCtest_ignore_warning.<locals>.context_manager_no_deprecation_warning   s    &8999 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	    /33c                  x    t          t                    5                 d d d            d S # 1 swxY w Y   d S rm   r   rn   ra   s   r#   context_manager_no_user_warningz<test_ignore_warning.<locals>.context_manager_no_user_warning   s    k222 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 rs   c                  x    t          t                    5                 d d d            d S # 1 swxY w Y   d S rm   rq   r]   s   r#   /context_manager_no_deprecation_multiple_warningzLtest_ignore_warning.<locals>.context_manager_no_deprecation_multiple_warning   s    &8999 	) 	)&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)rs   c                  x    t          t                    5                 d d d            d S # 1 swxY w Y   d S rm   ru   r]   s   r#   (context_manager_no_user_multiple_warningzEtest_ignore_warning.<locals>.context_manager_no_user_multiple_warning   s    k222 	) 	)&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)rs   zA'obj' should be a callable.+you should use 'category=UserWarning'r)   c                      d S rD   r@   r@   r%   r#   rJ   z!test_ignore_warning.<locals>.test   s    Dr%   )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   s   A A A- - -
 '899:::'8CUVVVWWW	(	)	) C C@)K@@@BBBC C C C C C C C C C C C C C C 
 N6K2]KKKMMMN N N N N N N N N N N N N N Nv;;!fQi');<<<<<fQi'55555	 L6I2[IIIKKKL L L L L L L L L L L L L L Lv;;!fQi');<<<<<)5G4UVVV  
 % % % % % _% 1;?@@@% % % % A@% 0111    21 k***    +* 0111% % % % 21% k***% % % % +*% +,,,45557888	(	)	) $ $!!###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	k	"	" 4 4113334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	(	)	) - -**,,,- - - - - - - - - - - - - - -         ) ) ) ) )                  ) ) ) ) )) ) ) ) ) 1222:;;;=>>>	(	)	) * *'')))* * * * * * * * * * * * * * *	k	"	" : :77999: : : : : : : : : : : : : : :	(	)	) 3 3002223 3 3 3 3 3 3 3 3 3 3 3 3 3 3  MOE	z	/	/	/     > > >?P Q Q                              
z	/	/	/  		'	'	 	 
(	'	                 s   !BBB*CCCE77E;>E;#K::K>K>L55L9<L9M00M47M4O66O:=O:P11P58P5Q,,Q03Q0#S

SS0TTTc                       e Zd Zd ZdS )	TestWarnsc                     d }t          j        t                    5  t          |           d d d            n# 1 swxY w Y   t          d d          dk    sJ d S )Nc                  .    t          j        d           dS )Nyor   )rR   rS   r@   r%   r#   fzTestWarns.test_warn.<locals>.f   s    M$1r%   c                     | S rD   r@   )r8   s    r#   <lambda>z%TestWarns.test_warn.<locals>.<lambda>   s    A r%   r.   )r2   r   r3   r   )selfr   s     r#   	test_warnzTestWarns.test_warn   s    	 	 	 ]>** 	" 	"q!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"!++q11Q666666s   9= =N)__name__
__module____qualname__r   r@   r%   r#   r   r      s#        7 7 7 7 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dS )Klassc                     d S rD   r@   r   r;   r:   s      r#   r   zKlass.f_missingj  rI   r%   c                     dS )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  s2              r%   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )MockEstc                     dS )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                     dS )N      ?r@   r   s     r#   scorezMockEst.score  s    sr%   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	dS )MockMetaEstimatorc                     || _         dS )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                 6    | 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                     dS )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FF r%   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                     dS )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A( ( BA( \>>??Z788  98 @? \FFGG  HG Z?@@; ; 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            n# 1 swxY w Y   t          j        t          d	          5  t          t          j                   d d d            n# 1 swxY w Y   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    sJ d"|d#| d$            ,d S )%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00I????*4>>>I????*9cUCCCI????	|+D	E	E	E 3 3">2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	|+F	G	G	G 9 9"5#78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ++CDDI!799555I(1N        		
 		
 		
	
 	
 	
		
 		
 		
		
 		
 		
 J.JJJKC 	
 C.CCCD 5	
 H.HHHI4	
 V.VVVV4 		
OQHf &O#OM		
  M MQ /q11	iSSS)))!LM Ms$   B..B25B2C::C>C>c                       e Zd Zd Zd ZdS )RegistrationCounterc                     d| _         d S )Nr   )nb_callsr   s    r#   r   zRegistrationCounter.__init__J  s    r%   c                 F    | xj         dz  c_         |j        t          u sJ d S )Nr.   )r   funcr   )r   to_register_funcs     r#   __call__zRegistrationCounter.__call__M  s,    $666666r%   N)r   r   r   r   r   r@   r%   r#   r   r   I  s2          7 7 7 7 7r%   r   rc                     t          |t          j                  sJ |dk    }|j        j        |u sJ t          j                            | |           d S )Nr   )r   r/   memmapflags	writeabletestingassert_array_equal)input_array	mmap_data	mmap_moder   s       r#   check_memmapr   R  sX    i+++++S I?$	1111J!!+y99999r%   c                    t                      }|                     t          d|           t          j        d          }t          |          5 }t          ||           t          j        	                    |j
                  }d d d            n# 1 swxY w Y   t          j        dk    r!t          j                            |          rJ |j        dk    sJ d}t          ||          5 }t          |||           t          j        	                    |j
                  }d d d            n# 1 swxY w Y   t          j        dk    r!t          j                            |          rJ |j        dk    sJ d S )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0
,@AAA'!**K	K	 	  5D[$'''goodm445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
w$7>>+.....(A----I	K9	5	5	5 5[$)<<<<goodm445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
w$7>>+.....(A------s$   5BBB+7D..D25D2zmemmap not fully supported)r   c                    t                      }|                     t          d|           t          j        d          }t          |          }t          ||           |j        dk    sJ t          |d          \  }}t          ||           |t          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 d S )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  s   .00
,@AAA'!**K$[11Dd###(A----,[MMMLD&d###RW__T]333333(A----I$[IFFFDdI...(A----{Qa@J.z::N ^<< ( (T[$''''(A----2K3PQQKk***N""""""r%   z constructor_name, container_typelisttuplearrayr   
sparse_csrsparse_csr_array
sparse_cscsparse_csc_array	dataframec                  4    t          j        d          j        S Npandas)r2   r   	DataFramer@   r%   r#   r   r     s    f1(;;E r%   seriesc                  4    t          j        d          j        S r  )r2   r   Seriesr@   r%   r#   r   r     s    6.x88? r%   indexc                  4    t          j        d          j        S r  )r2   r   Indexr@   r%   r#   r   r     s    &-h77= r%   slicezdtype, superdtypec                 Z   | dv r
 |            }ddg}t          || |          }t          ||          sJ | dv r,t          j        t	          |d                   |          sJ dS t          |d          r|j        |k    sJ dS t          |d          r|j        d         |k    sJ dS dS )	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V ())AI,  
 )>:::::555 }T"5a"899:FFFFFFF	$g	.	. 6"(E111111	$h	/	/ 6")!,55556 655r%   c                      t          j        d           t          dggddgdg          } | j        j        d         dk    sJ d S )Nr  r8   r  r<   categorical_feature_namesr   rY   )r2   r   r   r%  iloc)dfs    r#   (test_convert_container_categories_pandasr3    sZ    
!!!	
seu
 
 
B 9>!
******r%   c                      t          j        d          } t          dggddgdg          }|j        d         |                                 k    sJ d S )Nr!  r8   r<   r/  )r2   r   r   schemaCategorical)plr2  s     r#   (test_convert_container_categories_polarsr8    sY    		X	&	&B	cUGXuQTPU	V	V	VB9S>R^^--------r%   c                      t          j        d          } t          dggddgdg          }t          |j        d         j                  | j        u sJ d S )Npyarrowr8   r<   r/  r   )r2   r   r   r'  r5  DictionaryType)par2  s     r#   )test_convert_container_categories_pyarrowr=    s]    		Y	'	'B	cUGYRUQV	W	W	WB	!!""b&77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           dS # 1 swxY w Y   dS )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?    s     AI	CzCC
 
 
 E E 	9&6eDDDD	E E E E E E E E E E E E E E E E E Es   AAAc                  z   t          t                    5  t                      # 1 swxY w Y   t          t          d          5 } t          d          # 1 swxY w Y   | j        sJ t          t          ddg          5 } t          d          # 1 swxY w Y   | j        sJ t          j         t          d          5  t          t                    5 } t	          d          # 1 swxY w Y   	 d d d            n# 1 swxY w Y   | j        rJ t          j         t
          d          5  t          t          d          5 } t	                      # 1 swxY w Y   	 d d d            n# 1 swxY w Y   | j        rJ t          j         t          d          5  t          t          d          5 } t	          d          # 1 swxY w Y   	 d d d            n# 1 swxY w Y   | j        rJ t          j         t
          d	          5  t          t          d
          5 } t          d          # 1 swxY w Y   	 d d d            n# 1 swxY w Y   | j        rJ t          j         t
          d          5  t          t          d
d          5 } t          d          # 1 swxY w Y   	 d d d            n# 1 swxY w Y   | j        rJ t          j         t
          d          5  t          t                    5 } 	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   | j        rJ t          t          d
d          5 } 	 d d d            n# 1 swxY w Y   | j        rJ t          t          t          f          5  t                      # 1 swxY w Y   t          t          t          f          5  t	                      # 1 swxY w Y   t          j         t
                    5  t          t          t          f          5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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    
			  kk        
		/	/	/ -2+,,,- - - - - - - -     
	.-!@	A	A	A -R+,,,- - - - - - - -     
z)>	?	?	? 4 4I 	4"2333	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 $$$$ 
~-B	C	C	C  I'<=== 	,,	 	 	 	 	 	 	 	 	               $$$$ 
z)>	?	?	? 4 4I%6777 	422333	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 $$$$ 
L
 
 
 + + IW--- 	+M***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	++ + + + + + + + + + + + + + +
 $$$$ 
~-B	C	C	C + +IW6KLLL 	+PRM***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	++ + + + + + + + + + + + + + + $$$$ 
~_	=	=	=  I 	"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               $$$$ 
	4	8	8	8 B              $$$$ 
J'	(	(  kk       	J'	(	(  ll       	~	&	&  Y
+,, 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s  $((AAABBB C=C%%C)	)C=,C)	-C==DD,E*EE	E*E	E**E.1E.G0G  G	GG	GGGIH..H2	2I5H2	6II
I
5J5JJ!	!J5$J!	%J55J9<J9$L9L;LL	LL	LL"%L"	MMMNNN;O

OO.P0
PP0P	P0P	 P00P47P4c                  d   t          t          j        dgt          j                  d           t	          j        t                    5  t          t          j        dgt          j                  d           d d d            n# 1 swxY w Y   t          t          j        dgt          j                  d           t	          j        t                    5  t          t          j        dgt          j                  d           d d d            n# 1 swxY w Y   t	          j        t                    5  t          t          j        dgt          j                  d           d d d            n# 1 swxY w Y   t          t          j        dgt          j                  dd	
           d S )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  sE   BHj\<<<cBBB	~	&	& G G*RZ@@@#FFFG G G G G G G G G G G G G G G
 BHj\<<<cBBB	~	&	& G G*RZ@@@#FFFG G G G G G G G G G G G G G G 
~	&	& A A$rz:::C@@@A A A A A A A A A A A A A A ABHdV2:666$GGGGGGs6   	0BB	B	0DDD80E44E8;E8zcannot start subprocessc                     d} t          |            d} t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   d} t          j        t          d          5  t          | d           d d d            n# 1 swxY w Y   d                    d	d
g          } t          j        t          d          5  t          | d           d d d            d S # 1 swxY w Y   d S )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11)D	~-A	B	B	B 6 6/5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 *D	J
 
 
 L L 	0lKKKK	L L L L L L L L L L L L L L L 99l$STUUD	J
 
 
 L L 	0lKKKK	L L L L L L L L L L L L L L L L L Ls5   AAA3BBBC--C14C1)marksc                 V    t          j        dddd          }t          ||            dS )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  \  s3    2 }RS???Hx!122222r%   c                 <   | j         dk    rZ|rXt          j        | j        | j                  5  t          j        | j        | j                   d d d            n# 1 swxY w Y   | j         dk    rt          j        d          5 }| j        }d|v rd}t          j        || j                   |rt          |          d	k    snnJ |r8t          |d	         j                  |k    sJ |d	         j        | j        k    sJ d d d            d S # 1 swxY w Y   d S d S )
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8LMMM 	 	M$,%.   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 h&&$D111 	CV"*GG##GM%.    (:@3v;;!###### C6!9,--8888ay)\-BBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C '&s$   !AA"AA<DDDra  c                 p    t           j                            dd          dk    }t          | |           d S )NSKLEARN_WARNINGS_AS_ERRORS0rb  )r   environgetrc  )ra  rb  s     r#   test_sklearn_warnings_as_errorsrj    s8    (DcJJcQ\>PQQQQQQr%   c                     t          j                    5  t                       t          | d           d d d            d S # 1 swxY w Y   d S )NTrg  )rR   r_  r   rc  )ra  s    r#   test_turn_warnings_into_errorsrl    s    		 	"	" H H!### $GGGGH H H H H H H H H H H H H H H H H Hs    AAA)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     si    				              D D D D D D / / / / / /                                     & 1 0 0 0 0 0              6 5 5 5 5 5" " " .99+ + :9+&  $ $ $Nr r rj7 7 7 7 7! 7 7 7  &  &  &  *  "  &       ,       ".; .; .; .; .; .; .; .;bEM EM EMP7 7 7 7 7 7 7 7: : : :. . .* 8$@AA# # BA#< &		%	"*	6$%	 
l./	@	@ 
l./	@	@ 
EEF 
??@ 
==> 
% " 	2:	2:	R[!	R[!	 6 6 # 46>+ + +. . .8 8 8 --&&&:    +.@BT-UVV28RXrz2:"NOO	E 	E PO WV	 	EC C CLH H H$ 8$=>>L L ?>L. +$$]]5111F %  	
 	
 	
 	+$$]]5111F %  	
 	
 	
 *3 3+ *3C C C0 )H)H)J)JKKR R LKR
 )H)H)J)JKKH H LKH H Hr%   