ó
‡ˆ\c           @   s>  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	 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" d  d l# m$ Z$ d	 „  Z% d
 „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d „  Z- d e j. f d „  ƒ  YZ/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d e5 f d „  ƒ  YZ6 d e5 f d „  ƒ  YZ7 d e5 f d „  ƒ  YZ8 d „  Z9 d  e5 f d! „  ƒ  YZ: d" d# „ Z; d$ „  Z< d% „  Z= d S(&   iÿÿÿÿN(   t   sparse(   t
   deprecated(   t   if_delegate_has_method(   t   assert_raisest   assert_lesst   assert_greatert   assert_less_equalt   assert_greater_equalt   assert_warnst   assert_no_warningst   assert_equalt   set_random_statet   assert_raise_messaget   ignore_warningst   check_docstring_parameterst   assert_allclose_dense_sparset   assert_raises_regext
   TempMemmapt   create_memmap_backed_datat   _delete_folder(   t   SkipTest(   t   DecisionTreeClassifier(   t   LinearDiscriminantAnalysisc           C   s$   t  d d ƒ t t t  d d ƒ d  S(   Ni    i   (   R   R   t   AssertionError(    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_assert_less'   s    c           C   s$   t  d d ƒ t t t  d d ƒ d  S(   Ni   i    (   R   R   R   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_assert_greater,   s    c           C   s1   t  d d ƒ t  d d ƒ t t t  d d ƒ d  S(   Ni    i   (   R   R   R   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_assert_less_equal1   s    c           C   s1   t  d d ƒ t  d d ƒ t t t  d d ƒ d  S(   Ni   i    (   R   R   R   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_assert_greater_equal7   s    c          C   s@   t  ƒ  }  t ƒ  } t |  d ƒ t | d ƒ t | j d ƒ d  S(   Ni   (   R   R   R   R
   t   random_state(   t   ldat   tree(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_set_random_state=   s
    		c          C   sÚ   t  j d ƒ j d d ƒ }  d } t j |  ƒ } x; |  | g D]- } t t | t | | d ƒ t | | ƒ q= Wt t d t |  | ƒ t j	 t  j
 d ƒ d d ƒj ƒ  } t j t  j
 d ƒ ƒ } t t d
 t | | ƒ d  S(   Ni	   i   s   Not equal to tolerance i   s   Can only compare two sparsei   t   offsetsi    i   s   Arrays are not equal(   i   i   (   t   npt   aranget   reshapeR    t
   csc_matrixR   R   R   t
   ValueErrort   diagst   onest   tocsrt
   csr_matrix(   t   xt   msgt   yt   Xt   At   B(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt!   test_assert_allclose_dense_sparseF   s    	$	c        	   C   s3   t  t d ƒ  t t d d ƒ Wd  QXWd  QXd  S(   Ns   Hello worldR+   (   R   R   R   R%   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_assert_raises_msgZ   s    c          C   s   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         S   s   t  |  ƒ ‚ d  S(   N(   R%   (   t   message(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   _raise_ValueErrora   s    c           S   s   d  S(   N(    (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt	   _no_raised   s    t   tests   something else(   R   R%   R   R   t	   TypeErrort   AttributeError(   R3   R4   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_assert_raise_message`   s     			
	
	
	c             s­  d „  ‰ d „  ‰  t  t ˆ ƒ ƒ t  t ˆ d t ƒƒ t t t ˆ d t ƒƒ t t t ˆ  d t ƒƒ t t t ˆ  d t ƒƒ t  t ˆ d t t f ƒƒ t ‡  ‡ f d †  ƒ }  t d t t f ƒ ‡  f d †  ƒ } t d t ƒ ‡ f d †  ƒ } t d t ƒ ‡ f d †  ƒ } t d t ƒ ‡  f d †  ƒ } t d t ƒ ‡  f d	 †  ƒ } t  |  ƒ t  | ƒ t  | ƒ t t | ƒ t t | ƒ t t | ƒ ‡ f d
 †  } ‡  f d †  } ‡ f d †  } ‡ f d †  }	 ‡  f d †  }
 ‡  f d †  } t  | ƒ t  | ƒ t  | ƒ t t |	 ƒ t t |
 ƒ t t | ƒ t } d } t j t d | ƒ t | ƒ ˆ ƒ } | ƒ  Wd  QXt j t d | ƒ t | ƒ d „  ƒ } Wd  QXd  S(   Nc           S   s   t  j d t ƒ d  S(   Ns   deprecation warning(   t   warningst   warnt   DeprecationWarning(    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   _warning_function   s    c           S   s!   t  j d t ƒ t  j d ƒ d  S(   Ns   deprecation warning(   R9   R:   R;   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   _multiple_warning_function‚   s    t   categoryc              s   ˆ ƒ  ˆ  ƒ  d  S(   N(    (    (   R=   R<   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   decorator_no_warning—   s    c              s   ˆ  ƒ  d  S(   N(    (    (   R=   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   decorator_no_warning_multipleœ   s    c              s   ˆ  ƒ  d  S(   N(    (    (   R<   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt    decorator_no_deprecation_warning    s    c              s   ˆ  ƒ  d  S(   N(    (    (   R<   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   decorator_no_user_warning¤   s    c              s   ˆ  ƒ  d  S(   N(    (    (   R=   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt)   decorator_no_deprecation_multiple_warning¨   s    c              s   ˆ  ƒ  d  S(   N(    (    (   R=   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt"   decorator_no_user_multiple_warning¬   s    c              s   t  ƒ   ˆ  ƒ  Wd  QXd  S(   N(   R   (    (   R<   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   context_manager_no_warning¸   s    
c              s'   t  d t t f ƒ  ˆ  ƒ  Wd  QXd  S(   NR>   (   R   R;   t   UserWarning(    (   R=   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt#   context_manager_no_warning_multiple¼   s    c              s!   t  d t ƒ  ˆ  ƒ  Wd  QXd  S(   NR>   (   R   R;   (    (   R<   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt&   context_manager_no_deprecation_warningÀ   s    c              s!   t  d t ƒ  ˆ  ƒ  Wd  QXd  S(   NR>   (   R   RF   (    (   R<   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   context_manager_no_user_warningÄ   s    c              s!   t  d t ƒ  ˆ  ƒ  Wd  QXd  S(   NR>   (   R   R;   (    (   R=   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt/   context_manager_no_deprecation_multiple_warningÈ   s    c              s!   t  d t ƒ  ˆ  ƒ  Wd  QXd  S(   NR>   (   R   RF   (    (   R=   (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt(   context_manager_no_user_multiple_warningÌ   s    sA   'obj' should be a callable.+you should use 'category=UserWarning't   matchc           S   s   d  S(   N(    (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyR5   á   s    (   R	   R   R;   R   RF   t   pytestt   raisesR%   (   R?   R@   RA   RB   RC   RD   RE   RG   RH   RI   RJ   RK   t   warning_classRL   t   silence_warnings_funcR5   (    (   R=   R<   s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_ignore_warning|   s`    		

	
	
$





		t	   TestWarnsc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s‰   d „  } t  j ƒ  E t  j d t ƒ t  j } t t t | ƒ d ƒ t t  j | ƒ Wd  QXt t t	 | ƒ t t	 d „  d ƒ d ƒ d  S(   Nc           S   s   t  j d ƒ d S(   Nt   yoi   (   R9   R:   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   fè   s    t   ignorei   c         S   s   |  S(   N(    (   R*   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   <lambda>õ   s    i   (
   R9   t   catch_warningst   simplefilterRF   t   filtersR
   R   R   R   R	   (   t   selfRT   t   filters_orig(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt	   test_warnç   s    	
c         C   s|   d „  } t  } t j d j } z/ y t t | ƒ t } Wn t k
 rM n XWd  | t j d _ X| rx t d ƒ ‚ n  d  S(   Nc           S   s   t  j d t ƒ d  S(   NRS   (   R9   R:   R;   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRT   ø   s    R9   s#   wrong warning caught by assert_warn(   t   Falset   syst   modulesRY   R   RF   t   TrueR   (   RZ   RT   t   failedRY   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_warn_wrong_warning÷   s    	
(   t   __name__t
   __module__R\   Rb   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRR   æ   s   	c         C   s   |  | } | S(   sª   Function f

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

    Returns
    -------
    c : list
        Parameter c
    (    (   t   at   bt   c(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   f_ok  s    
c         C   s   |  | } | S(   sª   Function f

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

    Results
    -------
    c : list
        Parameter c
    (    (   Re   Rf   Rg   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   f_bad_sections   s    
c         C   s   | |  } | S(   sª   Function f

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

    Returns
    -------
    c : list
        Parameter c
    (    (   Rf   Re   Rg   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   f_bad_order3  s    
c         C   s   |  | } | S(   sˆ   Function f

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

    Returns
    -------
    c : list
        Parameter c
    (    (   Re   Rf   Rg   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt	   f_missingF  s    
c         C   s   |  | | | S(   sÕ   Function f

    Parameters
    ----------
    a: int
        Parameter a
    b:
        Parameter b
    c :
        Parameter c
    d:int
        Parameter d
    e
        No typespec is allowed without colon
    (    (   Re   Rf   Rg   t   dt   e(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   f_check_param_definitionW  s    t   Klassc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   d  S(   N(    (   RZ   R-   R,   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRk   k  s    c         C   s   d S(   sÕ   Function f

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

        Results
        -------
        c : list
            Parameter c
        N(    (   RZ   R-   R,   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRi   n  s    (   Rc   Rd   Rk   Ri   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRo   j  s   	t   MockEstc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   d S(   t   MockEstimatorN(    (   RZ   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   __init__  s    c         C   s   | S(   N(    (   RZ   R-   R,   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   fitƒ  s    c         C   s   | S(   N(    (   RZ   R-   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   predict†  s    c         C   s   | S(   N(    (   RZ   R-   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   predict_proba‰  s    c         C   s   d S(   Ng      ð?(    (   RZ   R-   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   scoreŒ  s    (   Rc   Rd   Rr   Rs   Rt   Ru   Rv   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRp   €  s
   				t   MockMetaEstimatorc           B   sz   e  Z d  „  Z e d d ƒ d „  ƒ Z e d d ƒ e d ƒ d „  ƒ ƒ Z e d d ƒ d „  ƒ Z e d ƒ d „  ƒ Z RS(   c         C   s   | |  _  d S(   s©   MetaEstimator to check if doctest on delegated methods work.

        Parameters
        ---------
        delegate : estimator
            Delegated estimator.
        N(   t   delegate(   RZ   Rx   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRr   ‘  s    Rx   c         C   s   |  j  j | ƒ S(   s‹   This is available only if delegate has predict.

        Parameters
        ----------
        y : ndarray
            Parameter y
        (   Rx   Rt   (   RZ   R-   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRt   ›  s    	s%   Testing a deprecated delegated methodc         C   s   d S(   sˆ   This is available only if delegate has score.

        Parameters
        ---------
        y : ndarray
            Parameter y
        N(    (   RZ   R-   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRv   ¦  s    c         C   s   | S(   s   This is available only if delegate has predict_proba.

        Parameters
        ---------
        X : ndarray
            Parameter X
        (    (   RZ   R-   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRu   ±  s    	s-   Testing deprecated function with wrong paramsc         C   s   d S(   s,   Incorrect docstring but should not be testedN(    (   RZ   R-   R,   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRs   ¼  s    (	   Rc   Rd   Rr   R   Rt   R   Rv   Ru   Rs   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRw     s   	

c       	   C   sÍ  y% d d  l  }  t j d k s$ t ‚ Wn# t t f k
 rJ t d ƒ ‚ n Xt t ƒ } | g  k si t ‚ t t d d g ƒ} | g  k s t ‚ t t d d g ƒ} | g  k s· t ‚ t	 t
 d t t ƒ t	 t
 d t t j ƒ t t ƒ } | d	 d
 d d g k s
t ‚ d d d d d d d g } t d t ƒ  ƒ } x t | t t t j | j | j | j | j g ƒ D]Z \ } } t | ƒ } t | ƒ d k s›t ‚ | | d k skt d | | d f ƒ ‚ qkWd  S(   Niÿÿÿÿi   i   s+   numpydoc is required to test the docstringsRU   Rf   s   Unknown section Resultss   Unknown section Parametersx   sklearn.utils.tests.test_testing.f_check_param_definition There was no space between the param name and colon ('a: int')st   sklearn.utils.tests.test_testing.f_check_param_definition There was no space between the param name and colon ('b:')sr   sklearn.utils.tests.test_testing.f_check_param_definition Parameter 'c :' has an empty type spec. Remove the colonsw   sklearn.utils.tests.test_testing.f_check_param_definition There was no space between the param name and colon ('d:int')s   a != bs   arg mismatch: ['b']s   arg mismatch: ['X', 'y']s   predict y != Xs!   predict_proba arg mismatch: ['X']s   score arg mismatch: ['X']s   .fit arg mismatch: ['X', 'y']Rx   i   i    s   "%s" not in "%s"(   i   i   (   t   numpydocR^   t   version_infoR   t   ImportErrorR   R   Rh   Rk   R   t   RuntimeErrorRi   Ro   Rn   Rw   Rp   t   zipRj   Rt   Ru   Rv   Rs   t   len(   Ry   t	   incorrectt   messagest	   mock_metat   messRT   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_check_docstring_parametersÁ  sF    	
				t   RegistrationCounterc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   d |  _  d  S(   Ni    (   t   nb_calls(   RZ   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyRr   ó  s    c         C   s(   |  j  d 7_  | j t k s$ t ‚ d  S(   Ni   (   R…   t   funcR   R   (   RZ   t   to_register_func(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   __call__ö  s    (   Rc   Rd   Rr   Rˆ   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyR„   ò  s   	t   rc         C   sS   t  | t j ƒ s t ‚ | d k } | j j | k s< t ‚ t j j |  | ƒ d  S(   NR‰   (   t
   isinstanceR!   t   memmapR   t   flagst	   writeablet   testingt   assert_array_equal(   t   input_arrayt	   mmap_datat	   mmap_modeR   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   check_memmapû  s    c      
   C   s/  t  ƒ  } |  j t d | ƒ t j d ƒ } t | ƒ ) } t | | ƒ t j j	 | j
 ƒ } Wd  QXt j d k r t j j | ƒ s t ‚ n  | j d k s¢ t ‚ d } t | d | ƒ/ } t | | d | ƒt j j	 | j
 ƒ } Wd  QXt j d k rt j j | ƒ st ‚ n  | j d k s+t ‚ d  S(   Nt   registeri   t   nti   s   r+R’   i   (   R„   t   setattrt   atexitR!   R'   R   R“   t   ost   patht   dirnamet   filenamet   namet   existsR   R…   (   t   monkeypatcht   registration_counterR   t   datat   temp_folderR’   (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_tempmemmap  s     	c         C   sZ  t  ƒ  } |  j t d | ƒ t j d ƒ } t | ƒ } t | | ƒ | j d k sY t ‚ t | d t	 ƒ\ } } t | | ƒ | t
 j j | j ƒ k sŸ t ‚ | j d k s´ t ‚ d } t | d | ƒ} t | | | ƒ | j d k sñ t ‚ | | d | d g } t | ƒ } x* t | | ƒ D] \ } } t | | ƒ q$W| j d k sVt ‚ d  S(	   NR”   i   i   t   return_folderi   s   r+R’   i   (   R„   R–   R—   R!   R'   R   R“   R…   R   R`   R˜   R™   Rš   R›   R}   (   Rž   RŸ   R   R    t   folderR’   t
   input_listt   mmap_data_list(    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   test_create_memmap_backed_data  s(    		!(>   R9   t   unittestR^   R˜   R—   t   numpyR!   t   scipyR    RM   t   sklearn.utils.deprecationR   t   sklearn.utils.metaestimatorsR   t   sklearn.utils.testingR   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   t   sklearn.treeR   t   sklearn.discriminant_analysisR   R   R   R   R   R   R0   R1   R8   RQ   t   TestCaseRR   Rh   Ri   Rj   Rk   Rn   t   objectRo   Rp   Rw   Rƒ   R„   R“   R¢   R§   (    (    (    s?   lib/python2.7/site-packages/sklearn/utils/tests/test_testing.pyt   <module>   sH   p										j'					1	1		