ó
‡ˆ\c           @  sP  d  Z  d d l m Z 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	 Z	 d d l
 m Z m Z d d l
 m Z d d l
 m Z d d l
 m Z d d l
 m Z d d	 l
 m 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 d d l m Z m Z m Z m Z m  Z  d „  Z! d „  Z" e	 j# j$ d e d e% ƒ ƒ d „  ƒ Z& d „  Z' d „  Z( d „  Z) e	 j# j$ d e( e e' ƒ  ƒ d e) ƒd „  ƒ Z* e	 j# j$ d e' ƒ  ƒ d „  ƒ Z+ e d e, ƒ d „  ƒ Z- d „  Z. e	 j# j$ d e. ƒ  ƒ d „  ƒ Z/ e d  „  ƒ Z0 d! „  Z1 d" „  Z2 d S(#   s.   
General tests for all estimators in sklearn.
iÿÿÿÿ(   t   print_functionN(   t   assert_falset   clean_warning_registry(   t   all_estimators(   t   assert_equal(   t   assert_greater(   t	   assert_in(   t   ignore_warnings(   t   ConvergenceWarning(   t   BiclusterMixin(   t   LinearClassifierMixin(   t   IS_PYPY(   t   _yield_all_checkst   set_checking_parameterst&   check_parameters_default_constructiblet   check_no_attributes_set_in_initt-   check_class_weight_balanced_linear_classifierc          C  sL   xE t  ƒ  D]: \ }  } d j |  ƒ } t |  j ƒ  j d ƒ d | ƒq
 Wd  S(   NsD   Base estimators such as {0} should not be included in all_estimatorst   baset   msg(   R   t   formatR   t   lowert
   startswith(   t   namet	   EstimatorR   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt    test_all_estimator_no_base_class(   s    	c          C  s&   t  d t ƒ }  t t |  ƒ d ƒ d  S(   Nt   include_meta_estimatorsi    (   R   t   TrueR   t   len(   t
   estimators(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   test_all_estimators0   s    s   name, EstimatorR   c         C  s   t  |  | ƒ d  S(   N(   R   (   R   R   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt%   test_parameters_default_constructible8   s    c          c  sS   xL t  ƒ  D]A \ }  } t | t ƒ r+ q
 n  |  j d ƒ r@ q
 n  |  | f Vq
 Wd  S(   Nt   _(   R   t
   issubclassR	   R   (   R   R   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   _tested_non_meta_estimatorsA   s    c      	   c  sh   t  d t t f ƒ M xE | D]= \ } } | ƒ  } x% |  | | ƒ D] } | | | f VqB Wq WWd  QXd  S(   Nt   category(   R   t   DeprecationWarningt   FutureWarning(   t   check_generatorR   R   R   t	   estimatort   check(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   _generate_checks_per_estimatorJ   s
    	c         C  si   t  |  t j ƒ re d j g  |  j j ƒ  D] \ } } d j | | ƒ ^ q( ƒ } d j |  j j | ƒ Sd  S(   Nt    s   {}={}s   {}({})(	   t
   isinstancet	   functoolst   partialt   joint   keywordst   itemsR   t   funct   __name__(   t   valt   kt   vt   kwstring(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   _rename_partialR   s    	4s   name, Estimator, checkt   idsc         C  sF   t  d t t t t f ƒ % | ƒ  } t | ƒ | |  | ƒ Wd  QXd  S(   NR"   (   R   R#   R   t   UserWarningR$   R   (   R   R   R'   R&   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   test_non_meta_estimatorsY   s
    	
c         C  s<   t  d t t t t f ƒ  | ƒ  } t |  | ƒ Wd  QXd  S(   NR"   (   R   R#   R   R8   R$   R   (   R   R   R&   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   test_no_attributes_set_in_inith   s    	R"   c          B  sü   e  j ƒ  }  e  j j e  j j e j d d ƒ ƒ } e  j j | d ƒ } e  j j | ƒ s_ d  Sz e  j | ƒ e	 j
 } d d g e	 _
 e ƒ  e j ƒ  A e j d e ƒ e d ƒ  } | j ƒ  e d d ƒ UWd  QXWd  QXWd  | e	 _
 e  j |  ƒ Xd  S(   Ni    s   ..s   setup.pyt   configt   ignoreR1   t   __main__(   t   ost   getcwdt   patht   abspathR-   t   sklearnt   __path__t   existst   chdirt   syst   argvR   t   warningst   catch_warningst   simplefilterR8   t   opent   readt   dict(   t   cwdt
   setup_patht   setup_filenamet   old_argvt   f(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   test_configures   s     (	'	c          c  s‚   t  d d ƒ }  t ƒ  t j d t ƒ T xL |  D]D \ } } d | ƒ  j ƒ  j ƒ  k r0 t | t ƒ r0 | | f Vq0 q0 WWd  QXd  S(   Nt   type_filtert
   classifiert   recordt   class_weight(	   R   R   RH   RI   R   t
   get_paramst   keysR    R
   (   t   classifiersR   t   clazz(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   _tested_linear_classifiers   s    s   name, Classifierc         C  s   t  |  | ƒ d  S(   N(   R   (   R   t
   Classifier(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt-   test_class_weight_balanced_linear_classifiers˜   s    c          C  sú   t  j d t j d d d d „  ƒ }  g  |  D] \ } } } | ^ q+ } x­ | d g D]ž } d | k rl qT n  t r d | k sT d	 | k r qT n  t | d
 d ƒ} xM t | d d ƒ D]9 } t | | d  ƒ d  k rµ t d j	 | | ƒ ƒ ‚ qµ qµ WqT Wd  S(   NR@   t   prefixs   sklearn.t   onerrorc         S  s   d  S(   N(   t   None(   R   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   <lambda>£   s    RB   s   .tests.t   _svmlight_formats   feature_extraction._hashingt   fromlistt   dummyt   __all__s#   Module '{0}' has no attribute '{1}'(    (
   t   pkgutilt   walk_packagesRB   RC   R   t
   __import__t   getattrRa   t   AttributeErrorR   (   t   pkgsR   t   modnamet   submodst   packageR   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   test_import_all_consistencyž   s    "c          C  sy   d
 }  xl t  j d t j d d „  ƒ D]L \ } } } d | k s% | j d	 ƒ s% | |  k ra q% n  t | t j ƒ q% Wd  S(   Nt   utilst   testsR   t   setupR@   R`   c         S  s   d  S(   N(   Ra   (   R   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyRb   ¶   s    t   .R   (   Rq   Rr   R   Rs   (   Rg   Rh   RB   RC   R   R   Rf   (   t
   EXCEPTIONSR   Rm   (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt!   test_root_import_all_completeness³   s    'c          C  sŸ   t  j d ƒ }  t d „  t j t j d d ƒDƒ ƒ } g  | j ƒ  D]8 \ } } | rD |  j | ƒ rD | d | k rD | ^ qD } t	 | g  d j
 | ƒ ƒ d  S(   NsÃ   (?x)
                                      \.externals(\.|$)|
                                      \.tests(\.|$)|
                                      \._
                                      c         s  s$   |  ] \ } } } | | f Vq d  S(   N(    (   t   .0R   R   t   ispkg(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pys	   <genexpr>Å   s   R_   s   sklearn.s   .testss{   {0} do not have `tests` subpackages. Perhaps they require __init__.py or an add_subpackage directive in the parent setup.py(   t   ret   compileRM   Rg   Rh   RB   RC   R/   t   searchR   R   (   t   HAS_TESTS_EXCEPTIONSt   lookupR   Rx   t   missing_tests(    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   test_all_tests_are_importable¼   s    			(3   t   __doc__t
   __future__R    R>   RH   RF   Ry   Rg   R+   t   pytestt   sklearn.utils.testingR   R   R   R   R   R   R   t   sklearn.exceptionsR   RB   t   sklearn.cluster.biclusterR	   t   sklearn.linear_model.baseR
   t   sklearn.utilsR   t   sklearn.utils.estimator_checksR   R   R   R   R   R   R   t   markt   parametrizeR   R   R!   R(   R6   R9   R:   R#   RS   R\   R^   Rp   Rv   R   (    (    (    s8   lib/python2.7/site-packages/sklearn/tests/test_common.pyt   <module>   sT   (								
			