ó
‡ˆ\c           @   s7  d  Z  d d l m Z d d l Z d d l Z d d l Z d d l m Z 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 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 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# 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% m, Z, d d! l% m- Z- d d" l% m. Z. d d# l% m/ Z/ d d$ l% m0 Z0 d d% l% m1 Z1 d d& l% m2 Z2 d d' l% m3 Z3 d d( l% m4 Z4 d d) l% m5 Z5 d d* l% m6 Z6 d d+ l% m7 Z7 d d, l8 m9 Z9 d d- l: m; Z; d d. l: m< Z< d d/ l: m= Z= d d0 l: m> Z> d d1 l: m? Z? d d2 l@ mA ZA d d3 l@ mB ZB d d4 lC mD ZD d d5 lE mF ZF d d6 lG mH ZH d d7 lI mJ ZJ e jK d8 ƒ ZL e jM d8 ƒ d9 ZN e e jO d: ƒ ƒ ZP e jQ d; d; d; d; d9 d9 d9 d< d< d< d< d< g ƒ e jQ d= d= d= d; d; d; d9 d9 d9 d< d< d< g ƒ e jQ d= d; d9 d< d= d; d9 d< d= d; d9 d< d= d; d9 g ƒ e jQ d; d; d9 d9 d9 d< d< d< d> d> d> d> d> d> d> d> g ƒ d; d; d; d; d9 d9 d9 d< d< d< d< d< g d? d? d? d? d@ d@ d@ dA dA dA dA dA g f ZR eA ƒ  ZS dB eT f dC „  ƒ  YZU e dD „  ƒ ZV e jW jX dE ƒ dF „  ƒ ZY d dG „ Z[ d dH „ Z\ dI „  Z] dJ „  Z^ dK „  Z_ dL „  Z` dM „  Za dN „  Zb dO „  Zc dP „  Zd dQ „  Ze dR „  Zf dS „  Zg dT „  Zh e dU „  ƒ Zi dV „  Zj dW „  Zk dX „  Zl dY „  Zm dZ „  Zn d[ „  Zo d\ „  Zp d] „  Zq d^ „  Zr d_ „  Zs d` „  Zt e da „  ƒ Zu db „  Zv dc „  Zw dd „  Zx de „  Zy df „  Zz dg „  Z{ e dh „  ƒ Z| di „  Z} dj „  Z~ dk „  Z e dl „  ƒ Z€ dm „  Z dn „  Z‚ do „  Zƒ dp „  Z„ dq „  Z… dr „  Z† ds „  Z‡ dt „  Zˆ du „  Z‰ e jW jX dE ƒ dv „  ƒ ZŠ dw „  Z‹ dx „  ZŒ dy „  Z dz „  ZŽ d S({   s   Test the split moduleiÿÿÿÿ(   t   divisionN(   t
   coo_matrixt
   csc_matrixt
   csr_matrix(   t   stats(   t   combinations(   t   combinations_with_replacement(   t   assert_true(   t   assert_false(   t   assert_equal(   t   assert_almost_equal(   t   assert_raises(   t   assert_raises_regexp(   t   assert_greater(   t   assert_greater_equal(   t   assert_not_equal(   t   assert_array_almost_equal(   t   assert_array_equal(   t   assert_warns_message(   t   assert_warns(   t   assert_raise_message(   t   ignore_warnings(   t   assert_no_warnings(   t   _num_samples(   t   MockDataFrame(   t   cross_val_score(   t   KFold(   t   StratifiedKFold(   t
   GroupKFold(   t   TimeSeriesSplit(   t   LeaveOneOut(   t   LeaveOneGroupOut(   t	   LeavePOut(   t   LeavePGroupsOut(   t   ShuffleSplit(   t   GroupShuffleSplit(   t   StratifiedShuffleSplit(   t   PredefinedSplit(   t   check_cv(   t   train_test_split(   t   GridSearchCV(   t   RepeatedKFold(   t   RepeatedStratifiedKFold(   t   Ridge(   t   _validate_shuffle_split(   t   _CVIterableWrapper(   t   _build_repr(   t
   CV_WARNING(   t   NSPLIT_WARNING(   t   load_digits(   t   make_classification(   t   six(   t   zip(   t   comb(   t   SVCi
   i   i   i   i   i    i   t   1t   2t   3t   MockClassifierc        
   B   se   e  Z d  Z d e d „ Z d d d d d d d d d d „	 Z d „  Z d d d „ Z e d „ Z	 RS(   s-   Dummy classifier to test the cross-validationi    c         C   s   | |  _  | |  _ d  S(   N(   t   at   allow_nd(   t   selfR;   R<   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   __init__S   s    	c         C   sÔ  | |  _  | |  _ |	 |  _ |
 d
 k	 r4 |
 |  ƒ n  |  j rX | j t | ƒ d ƒ } n  | j d k r€ |  j r€ t d ƒ ‚ n  | d
 k	 rÊ t	 | j
 d | j
 d k d j | j
 d | j
 d ƒ ƒ n  | d
 k	 r$t	 | j
 d t t j t ƒ ƒ k d j | j
 d t t j t ƒ ƒ ƒ ƒ n  | d
 k	 rtd } t	 | j
 d | j
 d k | j | j
 d | j
 d ƒ ƒ n  | d
 k	 rÐd } t	 | j
 t j
 k | j | j
 d | j
 d	 t j
 d t j
 d	 ƒ ƒ n  |  S(   s÷   The dummy arguments are to test that this fit function can
        accept non-array arguments through cross-validation, such as:
            - int
            - str (this is actually array-like)
            - object
            - function
        iÿÿÿÿi   s   X cannot be di    sK   MockClassifier extra fit_param sample_weight.shape[0] is {0}, should be {1}sI   MockClassifier extra fit_param class_prior.shape[0] is {0}, should be {1}sR   MockClassifier extra fit_param sparse_sample_weight.shape[0] is {0}, should be {1}sU   MockClassifier extra fit_param sparse_param.shape is ({0}, {1}), should be ({2}, {3})i   N(   t	   dummy_intt	   dummy_strt	   dummy_objt   NoneR<   t   reshapet   lent   ndimt
   ValueErrorR   t   shapet   formatt   npt   uniquet   yt   P_sparse(   R=   t   Xt   Yt   sample_weightt   class_priort   sparse_sample_weightt   sparse_paramR?   R@   RA   t   callbackt   fmt(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   fitW   s<    
				
"
$
c         C   s8   |  j  r$ | j t | ƒ d ƒ } n  | d  d  … d f S(   Niÿÿÿÿi    (   R<   RC   RD   (   R=   t   T(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   predictƒ   s    	c         C   s   d d t  j |  j ƒ S(   Ng      ð?i   (   RI   t   absR;   (   R=   RM   RN   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   scoreˆ   s    c         C   s   i |  j  d 6|  j d 6S(   NR;   R<   (   R;   R<   (   R=   t   deep(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt
   get_params‹   s    N(
   t   __name__t
   __module__t   __doc__t   FalseR>   RB   RU   RW   RY   R[   (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyR:   P   s   		*	c           C   s×  d }  d } d } d } d } t  j d d g d d g d d g d d	 g g ƒ } t  j d d d d g ƒ } t  j d d d d g ƒ } t  j d d d d g ƒ } t ƒ  }	 t | ƒ }
 t | ƒ } t | ƒ } t ƒ  } t | ƒ } t d
 d ƒ } t	 d d d d g ƒ } d } d } d } d } d } d } d } d } |  t
 |  | ƒ | | | t
 | | ƒ | d g } x't t |	 |
 | | | | | | g | | | | | | | | g ƒ ƒ D]à \ } \ } } t | | | j | | | ƒ ƒ t  j j t | j | | | ƒ ƒ t | j | | | ƒ ƒ ƒ x[ | j | | | ƒ D]D \ } } t t  j | ƒ j j d ƒ t t  j | ƒ j j d ƒ q6Wt | t | ƒ ƒ q±Wd } t t | |	 j d  | | ƒ t t | |
 j d  | | ƒ d  S(   Ni   i   i
   i   i   i   i   i   i   t   random_statei    s   LeaveOneOut()s   LeavePOut(p=2)s3   KFold(n_splits=2, random_state=None, shuffle=False)s=   StratifiedKFold(n_splits=2, random_state=None, shuffle=False)s   LeaveOneGroupOut()s   LeavePGroupsOut(n_groups=2)sV   ShuffleSplit(n_splits=10, random_state=0, test_size='default',
       train_size=None)s.   PredefinedSplit(test_fold=array([1, 1, 2, 2]))t   is%   The 'X' parameter should not be None.(   RI   t   arrayR   R    R   R   R   R!   R"   R%   R5   t	   enumerateR4   R	   t   get_n_splitst   testingt   listt   splitt   asarrayt   dtypet   kindt   reprR   RF   RB   (    t	   n_samplest   n_unique_groupst   n_splitst   pt   n_shuffle_splitsRM   t   X_1dRK   t   groupst   loot   lpot   kft   skft   lolot   lopot   sst   pst   loo_reprt   lpo_reprt   kf_reprt   skf_reprt	   lolo_reprt	   lopo_reprt   ss_reprt   ps_reprt   n_splits_expectedRa   t   cvt   cv_reprt   traint   testt   msg(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt(   test_cross_validator_with_default_params   sX    3			" !" 		s"   ignore: You should specify a valuec          C   sµ  d }  t  j j d ƒ } | j d d d |  d f ƒ} | j d d d |  f ƒ} | j d d ƒ } | j d d d |  d f ƒ} | j d d d |  f ƒ} t ƒ  t d d ƒ t ƒ  t ƒ  t	 ƒ  t
 ƒ  t ƒ  t d	 d
 ƒ t ƒ  t ƒ  t d d ƒ t ƒ  t ƒ  t d | ƒ g } x  | D]˜ } t | j | | | ƒ ƒ t | j | | | ƒ ƒ y t | j | | | ƒ ƒ Wqt k
 r¬}	 d }
 d j |
 ƒ } | t |	 ƒ k s­t ‚ qXqWd  S(   Ni   i   i    i   t   sizei   iÿÿÿÿRo   t	   test_sizeg      à?t   n_groupst	   test_foldt   binaryt
   multiclasss/   Supported target types are: {}. Got 'multilabel(   RŽ   R   (   RI   t   randomt   RandomStatet   randintRC   R   R    R   R   R)   R*   R"   R$   R#   R   R!   R   R   R%   Rf   Rg   RF   RH   t   strt   AssertionError(   Rl   t   rngRM   RK   t   y_2dt   y_multilabelRr   t	   splitterst   splittert   et   allowed_target_typesRˆ   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt	   test_2d_yÍ   s.    	c         C   sg   t  |  ƒ t  | ƒ }  } t |  j | ƒ t  ƒ  ƒ | d  k	 rc t |  j | ƒ t  t | ƒ ƒ ƒ n  d  S(   N(   t   setR	   t   intersectionRB   t   uniont   range(   R†   R‡   Rl   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   check_valid_splité   s    c   
      C   sä   t  | ƒ } | d  k	 r7 t |  j | | | ƒ | ƒ n |  j | | | ƒ } t ƒ  } d } xM |  j | | | ƒ D]6 \ } }	 t | |	 d | ƒ| d 7} | j |	 ƒ qq Wt | | ƒ | d  k	 rà t | t t | ƒ ƒ ƒ n  d  S(   Ni    Rl   i   (	   R   RB   R	   Rd   R   Rg   R¡   t   updateR    (
   R„   RM   RK   Rr   t   expected_n_splitsRl   t   collected_test_samplest
   iterationsR†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   check_cv_coverageõ   s    	"
c          C   sê  t  j d d g d d g d d g g ƒ }  t  j d d g d d g d d g d d g d	 d
 g g ƒ } t t t d ƒ j |  ƒ f t  j d d d d d g ƒ } t d ƒ } t t d t | j | | ƒ ƒ t	 j
 ƒ  . t	 j d ƒ t | | | d d  d d ƒWd  QXt  j d d d d d g ƒ } t t t | j | | ƒ ƒ t t t d ƒ t t t d ƒ d } t t | t d ƒ t t | t d ƒ t t t d ƒ t t t d ƒ t t t d ƒ t t t d ƒ t t t d d d d  ƒd  S(   Ni   i   i   i   i   i   i   i   i	   i
   iÿÿÿÿs   The least populated classt   ignoreRr   R£   i    s>   k-fold cross-validation requires at least one train/test splitg      ø?g       @Rn   t   shuffle(   RI   Rb   RF   t   nextR   Rg   R   R   t   Warningt   warningst   catch_warningst   simplefilterR¦   RB   R   R   t	   TypeError(   t   X1t   X2RK   t   skf_3t   error_string(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_kfold_valueerrors
  s0    *<	"	
	
c       	   C   s”   t  j d ƒ }  t d ƒ } t | |  d d  d d  d d ƒt  j d ƒ } t d ƒ } t | | d d  d d  d d ƒt d t d ƒ j | ƒ ƒ d  S(   Ni   i   RK   Rr   R£   i   i   (   RI   t   onesR   R¦   RB   R	   Rd   (   R¯   Ru   R°   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_kfold_indices9  s    c          C   sK  d d g d d g d d g d d g d	 d
 g g }  t  d ƒ j |  d  ƒ } t | ƒ \ } } t | d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d g ƒ t | d d g ƒ t  d ƒ j |  ƒ } t | ƒ \ } } t | d d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d g ƒ t | d d d g ƒ d  S(   Ni   i   i   i   i   i   i   i   i	   i
   iÿÿÿÿi    (   R   Rg   R©   R   (   R°   t   splitsR†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_kfold_no_shuffleI  s    3c          C   s  t  j d ƒ d d d d g }  } t d ƒ j |  | ƒ } t | ƒ \ } } t | d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d g ƒ t | d d g ƒ t  j d ƒ d d d d d d d g }  } t d ƒ j |  | ƒ } t | ƒ \ } } t | d d d d g ƒ t | d d d g ƒ t | ƒ \ } } t | d d d g ƒ t | d d d d g ƒ t d t d ƒ j |  | ƒ ƒ t  j d ƒ }  d	 d	 d	 d
 d
 d
 d
 g } d d d d d d d g } t  j j t	 t d ƒ j |  | ƒ ƒ t	 t d ƒ j |  | ƒ ƒ ƒ d  S(   Ni   i   i    i   i   i   i   i   R7   t   0(
   RI   R´   R   Rg   R©   R   R	   Rd   Re   Rf   (   RM   RK   R¶   R†   R‡   t   y1t   y2(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt    test_stratified_kfold_no_shuffle`  s.    "+	c          C   s·  d }  t  j |  ƒ } t  j d g t d |  ƒ d g t d |  ƒ d g t d |  ƒ ƒ } xQt t f D]C} x:t d d	 | ƒj | | ƒ D]\ } } t t  j	 | | d k ƒ t
 | ƒ d d
 ƒ t t  j	 | | d k ƒ t
 | ƒ d d
 ƒ t t  j	 | | d k ƒ t
 | ƒ d d
 ƒ t t  j	 | | d k ƒ t
 | ƒ d d
 ƒ t t  j	 | | d k ƒ t
 | ƒ d d
 ƒ t t  j	 | | d k ƒ t
 | ƒ d d
 ƒ q‘ Wql Wd  S(   Niè  i   gš™™™™™¹?i    g{®Gázì?i   g{®Gáz„?i   R¨   i   (   RI   R´   Rb   t   intR_   t   TrueR   Rg   R
   t   sumRD   (   Rl   RM   RK   R¨   R†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_stratified_kfold_ratios„  s    )+-----c          C   s­   x¦ t  d d ƒ D]• }  t d ƒ j d t j |  ƒ ƒ } g  } x' | D] \ } } | j t | ƒ ƒ qD Wt j | ƒ t j | ƒ d k s t	 ‚ t
 t j | ƒ |  ƒ q Wd  S(   Ni   i   i   RM   i   (   R    R   Rg   RI   R´   t   appendRD   t   maxt   minR”   R	   R¾   (   Ra   Ru   t   sizest   _R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_kfold_balance—  s    !(c    	      C   sö   t  j d ƒ }  d g d d g d } xÈ t t f D]º } t d d | ƒ} xŸ t d d ƒ D]Ž } | j |  |  | |  ƒ } g  } x' | D] \ } } | j t | ƒ ƒ q‰ Wt  j	 | ƒ t  j
 | ƒ d k sÔ t ‚ t t  j | ƒ | ƒ q\ Wq4 Wd  S(   Ni   i    i   i   i   R¨   i   (   RI   R´   R½   R_   R   R    Rg   RÀ   RD   RÁ   RÂ   R”   R	   R¾   (	   RM   RK   R¨   R„   Ra   Rv   RÃ   RÄ   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_stratifiedkfold_balance£  s    (c          C   s  t  d ƒ }  t  d d t d d ƒ} t  d d t d d ƒ} t j d ƒ } t j d ƒ } x¨ t |  j | ƒ | j | ƒ | j | ƒ ƒ D]y \ \ } } \ } } \ }	 }
 xK t | | |	 f d ƒ D]1 \ } } t t	 t j
 | | ƒ ƒ t	 | ƒ ƒ qÂ Wd | | <qˆ Wt t | ƒ d ƒ d  S(   Ni   R¨   R`   i    i   i,  i   (   R   R½   RI   R´   t   zerosR4   Rg   R   R   RD   t   intersect1dR	   R¾   (   Ru   t   kf2t   kf3RM   t	   all_foldst   tr1t   te1t   tr2t   te2t   tr3t   te3t   tr_at   tr_b(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_shuffle_kfold¶  s    I%)c       
   C   só  t  j d ƒ }  d g d d g d } t  j d ƒ } d g d d g d } t d d t d	 d ƒ} t d d t d	 d ƒ} x‚ | | f D]t } t  j j t | j |  | ƒ ƒ t | j |  | ƒ ƒ ƒ t  j j t | j | | ƒ ƒ t | j | | ƒ ƒ ƒ q‹ Wt d d t d	 t  j	 j
 d ƒ ƒ} t d d t d	 t  j	 j
 d ƒ ƒ} x¡ | | f D]“ } xŠ t |  | f | | f ƒ D]m } xd t | j | Œ  | j | Œ  ƒ D]A \ \ } }	 \ } }
 t j t ƒ  t  j j |	 |
 ƒ Wd  QXq¢WqzWqXWd  S(
   Ni   i    i   i   i   i   i   R¨   R`   (   RI   R´   R   R½   R   Re   R	   Rf   Rg   R   R‘   R4   t   pytestt   raisesR”   R   (   RM   RK   R°   Rº   Ru   Rv   R„   t   dataRÄ   t   test_at   test_b(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt2   test_shuffle_kfold_stratifiedkfold_reproducibilityÌ  s$    7;$"(c          C   sÔ   t  j d ƒ }  d g d d g d } t d d t d d ƒ} t d d t d d ƒ} xZ t | j |  | ƒ | j |  | ƒ ƒ D]1 \ \ } } \ } } t t | ƒ t | ƒ ƒ q Wt | |  | d d  d	 d ƒd  S(
   Ni(   i    i   i   i   R¨   R`   Rr   R£   (
   RI   R´   R   R½   R4   Rg   R   R   R¦   RB   (   t   X_40RK   t   kf0t   kf1RÄ   t   test0t   test1(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_shuffle_stratifiedkfoldï  s    +c          C   sQ  t  j d  t  j d  }  } t d d d d ƒ } d } t d | d t ƒ } t | |  | d	 | ƒj ƒ  } t d
 | ƒ t | d ƒ t | d t	 d d ƒ} t | |  | d	 | ƒj ƒ  } t | d
 ƒ t | d t	 d d ƒ} t | |  | d	 | ƒj ƒ  } t | d
 ƒ t
 | ƒ } t | |  | d	 | ƒj ƒ  } t d | ƒ t | d ƒ d  S(   NiX  t   Ci
   t   gammag{®Gázt?i   Rn   R¨   R„   gq=
×£pí?gš™™™™™é?R`   i    i   gÃõ(\Âí?(   t   digitsR×   t   targetR6   R   R_   R   t   meanR   R½   R   (   RM   RK   t   modelRn   R„   t
   mean_score(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt1   test_kfold_can_detect_dependent_samples_on_digitsü  s"    		c    	      C   sI  t  d d d d ƒ j t ƒ }  t  d d d d ƒ j t ƒ } t  d t j d ƒ d d ƒ j t ƒ } x5 t j D]* } t  d | d ƒ d d ƒ j t ƒ } qm Wx§ t |  | | | ƒ D] \ } } } } t | d | d ƒ t | d | d ƒ t | d | d ƒ t | d | d ƒ t | d | d ƒ t | d | d ƒ q± Wd  S(   NR‹   gš™™™™™É?R`   i    i   i   (	   R"   Rg   RM   RI   t   int32R3   t   integer_typesR4   R   (	   t   ss1t   ss2t   ss3t   typt   ss4t   t1t   t2t   t3t   t4(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_shuffle_split(  s    '((c       
   C   s’  t  j d ƒ }  t  j d d d d d d d g ƒ } t t t t d d ƒ j |  | ƒ ƒ t t t t d d ƒ j |  | ƒ ƒ t t t t d d d ƒ j |  | ƒ ƒ t  j d ƒ }  t  j d d d d d d d d d g	 ƒ } t t t d d d	 ƒ t t t t d d
 d	 ƒ j |  | ƒ ƒ t t t t d d	 d
 ƒ j |  | ƒ ƒ t t t t d d ƒ j |  | ƒ ƒ t t t t d d ƒ j |  | ƒ ƒ d  S(   Ni   i    i   i   i   gš™™™™™É?i	   g      à?g333333ã?i   t
   train_sizeR‹   (   RI   t   arangeRh   R   RF   R©   R$   Rg   (   RM   RK   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt"   test_stratified_shuffle_split_init7  s$    $	%	*				c          C   sÂ   t  j d d d d d d d d d d d d d d d g ƒ }  d } d } t d d | d	 | d
 d ƒj t  j t |  ƒ ƒ |  ƒ } x: | D]2 \ } } t t | ƒ | ƒ t t | ƒ | ƒ qˆ Wd  S(   Ni    i   i   i   i   i
   i   R‹   Rõ   R`   (   RI   Rb   R$   Rg   R´   RD   R	   (   RK   R‹   Rõ   t   sssR†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt0   test_stratified_shuffle_split_respects_test_sizeV  s    <$c    
      C   s"  t  j d d d d d d d d d d d d g ƒ t  j d d d d d d d d d d d d g ƒ t  j d d d d d d d d d d d d d d d g d ƒ t  j d d d d d d d d d d d d d d d d g ƒ t  j d g d d g d ƒ t  j g  t d	 ƒ D] }  |  g d
 |  ^ q
ƒ d d d d d d d d d d d d g d d d d d d d d d d d d g g } x | D]˜} t d d d d d ƒj t  j t | ƒ ƒ | ƒ } t  j | ƒ } t  j	 d t | ƒ ƒ } t | ƒ | } x$| D]\ } } t
 t  j | | ƒ t  j | | ƒ ƒ t  j t  j | | d t ƒd ƒ t t | | ƒ ƒ } t  j t  j | | d t ƒd ƒ t t | | ƒ ƒ }	 t | |	 d ƒ t t | ƒ t | ƒ | j ƒ t t | ƒ | ƒ t t | ƒ | ƒ t
 t  j j j | | ƒ g  ƒ qúWq‚Wd  S(   Ni   i   i   i    i   iÿÿÿÿi   i2   i   id   R7   R8   R9   i   R‹   g…ëQ¸Õ?R`   t   return_inverse(   RI   Rb   t   concatenateR    R$   Rg   R´   RD   t
   asanyarrayt   ceilR   RJ   t   bincountR½   t   floatR   R	   RŠ   t   libt   arraysetopsRÈ   (
   Ra   t   ysRK   Rø   R‹   Rõ   R†   R‡   t   p_traint   p_test(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt"   test_stratified_shuffle_split_itera  s6    00=<0'-$' c       	      s  d }  d ‰  ‡  f d †  } xöd D]î} t  j | d d d g ƒ } t d	 ˆ  d
 d |  d d ƒ } d g | } d g | } d } xƒ | j d t  j | ƒ d | ƒ D]` \ } }	 | d 7} xG | | f | |	 f g D]- \ }
 } x | D] } |
 | c d 7<qè WqÕ Wq¦ Wt | ˆ  ƒ t | d
 d |  d d d |  ƒ\ } } t t | ƒ | ƒ t t |	 ƒ | ƒ t t t | ƒ j	 |	 ƒ ƒ d ƒ t  j
 | ƒ } t | j d |  ƒ t | | t | ƒ ƒ t t | ƒ d ƒ t | ƒ | } t | ƒ | } | | | ƒ | | | ƒ q" Wd  S(   Ni   iè  c            sS   d ˆ  } t  j ˆ  | ƒ } x0 |  D]( } | j | ƒ } t | | k d ƒ q# Wd  S(   Ngš™™™™™©?s=   An index is not drawn with chance corresponding to even draws(   R   t   binomt   pmfR   (   t
   idx_countsRo   t	   thresholdt   bft   countt   prob(   Rn   (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   assert_counts_are_okŠ  s    
i   i   i   i    i   Rn   R‹   g      ð?R`   RM   RK   Rõ   (   i   i   (   RI   Rb   R$   Rg   R´   R	   R,   RD   R   Rž   RJ   R‹   Rÿ   (   t   n_foldsR  Rl   Rr   R¶   t   train_countst   test_countst   n_splits_actualR†   R‡   t   countert   idst   idt   n_traint   n_testt   group_countst	   ex_test_pt
   ex_train_p(    (   Rn   sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt"   test_stratified_shuffle_split_even„  s<    
	.
%'"c          C   s·   d d d d g d d d g d }  t  j |  ƒ } t d d d d	 d
 d ƒ } t | j d | d |  ƒ ƒ \ } } t t  j | | ƒ g  ƒ t t  j | | ƒ t  j t	 |  ƒ ƒ ƒ d  S(   Ni    i   i   i   i   i   Rn   R‹   g      à?R`   RM   RK   (
   RI   t	   ones_likeR$   R©   Rg   R   RÈ   t   union1dRö   RD   (   RK   RM   Rø   R†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt4   test_stratified_shuffle_split_overlap_train_test_bug·  s    $$c          C   sƒ  x|t  j d d g d d g d d g d d g g ƒ t  j d d g d d g d d g d d g g ƒ g D]}  t  j |  ƒ } t d d d d d d ƒ } t | j d | d |  ƒ ƒ \ } } |  | } |  | } t t  j | | ƒ g  ƒ t t  j | | ƒ t  j	 t
 |  ƒ ƒ ƒ t  j |  d  d  … d f ƒ } t | t  j | d  d  … d f ƒ ƒ t | t  j | d  d  … d f ƒ ƒ qg Wd  S(	   Ni    i   Rn   R‹   g      à?R`   RM   RK   (   RI   Rb   R  R$   R©   Rg   R   RÈ   R  Rö   RD   Rå   R	   (   RK   RM   Rø   R†   R‡   t   y_traint   y_testt   expected_ratio(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt(   test_stratified_shuffle_split_multilabelÉ  s    3:$

(&c    
      C   s@  d d d g d g d d d d g }  d d d g d g d d d d g } t  j |  g d | g d ƒ } t  j | ƒ } t d d d d d	 d ƒ } t | j d
 | d | ƒ ƒ \ } } | | } | | } t  j | d  d  … d f ƒ }	 t |	 t  j | d  d  … d f ƒ ƒ t |	 t  j | d  d  … d f ƒ ƒ d  S(   Ni   i    iè  i
   id   Rn   R‹   g      à?R`   RM   RK   i   (   RI   Rb   R  R$   R©   Rg   Rå   R	   (
   t   row_with_many_zerost   row_with_many_onesRK   RM   Rø   R†   R‡   R  R  R   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt4   test_stratified_shuffle_split_multilabel_many_labelsà  s    ''!$

&c    	      C   s	  t  j d d ƒ }  g  } g  } xY t t d d t ƒj t ƒ ƒ D]6 \ } \ } } | j | ƒ | j | ƒ | |  | <q@ Wg  } g  } t |  ƒ } t	 t
 t  j |  ƒ ƒ | j ƒ  ƒ x4 | j ƒ  D]& \ } } | j | ƒ | j | ƒ qÁ Wt | | ƒ t | | ƒ d  S(   Ni
   g      ð¿i   R¨   (   RI   t   fullRc   R   R½   Rg   RM   RÀ   R%   R	   RD   RJ   Rd   R   (	   t   foldst   kf_traint   kf_testRa   t	   train_indt   test_indt   ps_traint   ps_testRz   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt%   test_predefinedsplit_with_kfold_split÷  s     4"c       	   C   sÍ  xÆt  D]¾}  t j t |  ƒ ƒ } } d } d	 } t | d | d d ƒ} t | ƒ t | j | | d |  ƒ| ƒ t j |  ƒ } t j	 |  ƒ } x1| j
 | | d |  ƒD]\ } }	 t j | | ƒ }
 t j | |	 ƒ } t t j t j | | | ƒ ƒ ƒ t t j t j | |	 |
 ƒ ƒ ƒ t | | j | |	 j | j ƒ t t j | |	 ƒ g  ƒ t t t | ƒ t | t | ƒ ƒ ƒ d k ƒ t t t |
 ƒ t d | t | ƒ ƒ ƒ d k ƒ qª Wq Wd  S(
   Ni   g      ð?i   R‹   R`   i    Rr   i   gUUUUUUÕ?(   t   test_groupsRI   R´   RD   R#   Rk   R	   Rd   RJ   Rh   Rg   R   t   anyt   in1dRŠ   R   RÈ   R   RX   t   round(   t   groups_iRM   RK   Rn   R‹   t   slot   l_uniquet   lR†   R‡   t   l_train_uniquet   l_test_unique(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_group_shuffle_split  s(    
%##"!c          C   s-  t  ƒ  }  t d d ƒ } t d d ƒ } t t |  ƒ d ƒ t t | ƒ d ƒ t t | ƒ d ƒ t t t d d ƒ ƒ d ƒ xqt |  d f | d f | d f f ƒ D]H\ } \ } } x3t t ƒ D]%\ } } t t j | ƒ ƒ } | d k rö | n | | d d }	 t j	 t | ƒ ƒ }
 } t | j
 |
 | d	 | ƒ|	 ƒ t j | ƒ } x– | j |
 | d	 | ƒD]| \ } } t t j | | | | ƒ j ƒ  g  ƒ t t | ƒ t | ƒ t | ƒ ƒ t j | | ƒ j d
 sht | ƒ ‚ qhWqÃ Wq¤ Wt |  j
 d  d  d d d d d g ƒ d ƒ t |  j
 d	 d d d d g ƒ d ƒ t | j
 d  d  t j d ƒ ƒ d ƒ t | j
 d	 t j d ƒ ƒ d ƒ t t ƒ $ |  j
 d  d  d t j d g ƒ Wd  QXt t ƒ $ | j
 d  d  d t j d g ƒ Wd  QXd } t t | |  j
 d  d  d  ƒ t t | | j
 d  d  d  ƒ d  S(   NRŒ   i   i   s   LeaveOneGroupOut()s   LeavePGroupsOut(n_groups=1)s   LeavePGroupsOut(n_groups=2)i   s   LeavePGroupsOut(n_groups=3)Rr   i    R;   t   bt   cg      ð?gš™™™™™ñ?g333333ó?i   i   g        s*   The 'groups' parameter should not be None.(   R   R!   R	   Rk   Rc   R.  RD   RI   RJ   R´   Rd   Rh   Rg   R   RÈ   t   tolistRG   R”   RB   Rö   R   RF   t   nant   infR   (   t   logot   lpgo_1t   lpgo_2t   jR„   t   p_groups_outRa   R2  RŒ   Rn   RM   RK   t
   groups_arrR†   R‡   Rˆ   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_leave_one_p_group_out1  sH    	"%#2+%%"%%		c       	   C   s‡  t  j d d d d d d d d g ƒ }  t  j t |  ƒ ƒ } t  j |  d t ƒ} t ƒ  j | d |  ƒ} t ƒ  j | d |  ƒ} t d d ƒ j | d |  ƒ} t d d ƒ j | d |  ƒ} d | (xl | | f | | f g D]R \ } } xC t | | ƒ D]2 \ \ }	 }
 \ } } t	 |	 | ƒ t	 |
 | ƒ qù WqÝ Wt
 d t d d ƒ j | d | d |  ƒƒ t
 d t ƒ  j | d | d |  ƒƒ d  S(	   Ni    i   i   t   copyRr   RŒ   i   RK   (   RI   Rb   R´   RD   R½   R   Rg   R!   R4   R   R	   Rd   (   Rr   RM   t   groups_changingRw   t   lolo_changingt   lplot   lplo_changingt   llot   llo_changingR†   R‡   t
   train_chant	   test_chan(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt$   test_leave_group_out_changing_groupsk  s"    '%(
c          C   s-  t  j d ƒ }  } } t t d t t ƒ  j |  | | ƒ ƒ t  j d ƒ }  } } d j | ƒ } t t | t t ƒ  j |  | | ƒ ƒ t  j d ƒ }  } } d j | ƒ } t t | t t d d ƒ j |  | | ƒ ƒ t  j	 d ƒ }  } } d j | ƒ } t t | t t d d ƒ j |  | | ƒ ƒ d  S(   Ni    s   Found array with 0 sample(s)i   sc   The groups parameter contains fewer than 2 unique groups ({}). LeaveOneGroupOut expects at least 2.s²   The groups parameter contains fewer than (or equal to) n_groups (3) numbers of unique groups ({}). LeavePGroupsOut expects that at least n_groups + 1 (4) unique groups be presentRŒ   i   (
   RI   R´   R   RF   R©   R   Rg   RH   R!   Rö   (   RM   RK   Rr   Rˆ   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt:   test_leave_one_p_group_out_error_on_fewer_number_of_groups„  s$    			c          C   sA   x: t  t f D], }  t t |  d d ƒt t |  d d ƒq Wd  S(   Nt	   n_repeatsi    g      ø?(   R)   R*   R   RF   (   R„   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_repeated_cv_value_errors  s    c          C   sz  d d g d d g d d g d d g d	 d
 g g }  d } t  d d d d d | ƒ } xt d ƒ D]} | j |  ƒ } t | ƒ \ } } t | d d g ƒ t | d d d g ƒ t | ƒ \ } } t | d d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d g ƒ t | d d d g ƒ t | ƒ \ } } t | d d d g ƒ t | d d g ƒ t t t | ƒ qa Wd  S(   Ni   i   i   i   i   i   i   i   i	   i
   i{icRn   RP  R`   i    (   R)   R    Rg   R©   R   R   t   StopIteration(   RM   R`   t   rkfRÄ   R¶   R†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt&   test_repeated_kfold_determinstic_split¥  s*    3	c          C   s<   d }  d } t  |  | ƒ } |  | } t | | j ƒ  ƒ d  S(   Ni   i   (   R)   R	   Rd   (   Rn   RP  RS  R£   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt$   test_get_n_splits_for_repeated_kfoldÄ  s
    
c          C   s<   d }  d } t  |  | ƒ } |  | } t | | j ƒ  ƒ d  S(   Ni   i   (   R*   R	   Rd   (   Rn   RP  t   rskfR£   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt/   test_get_n_splits_for_repeated_stratified_kfoldÌ  s
    
c          C   s’  d d g d d g d d g d d g d	 d
 g g }  d d d d d g } d } t  d d d d d | ƒ } x"t d ƒ D]} | j |  | ƒ } t | ƒ \ } } t | d d g ƒ t | d d d g ƒ t | ƒ \ } } t | d d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d g ƒ t | d d d g ƒ t | ƒ \ } } t | d d d g ƒ t | d d g ƒ t t t | ƒ qv Wd  S(   Ni   i   i   i   i   i   i   i   i	   i
   i    iq²ésRn   RP  R`   (   R*   R    Rg   R©   R   R   RR  (   RM   RK   R`   RV  RÄ   R¶   R†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt1   test_repeated_stratified_kfold_determinstic_splitÔ  s,    3	c        
   C   sD  t  t t ƒ t j ƒ  4 t j d d t ƒt  t t t d ƒ d d ƒWd  QXt  t t t d ƒ d d d d ƒt  t t t d ƒ d t j	 d ƒ d t j	 d ƒ ƒt  t t t d ƒ d d ƒt  t t t d ƒ d d	 d d
 ƒt  t
 t t d ƒ d d ƒt  t t t d ƒ t d ƒ ƒ t  t t t d ƒ d t d t ƒd  S(   NR§   t   categoryi   Rõ   gš™™™™™ñ?R‹   g333333ã?t
   wrong_typei   i   t   some_argumenti*   i
   R¨   t   stratify(   R   RF   R'   R«   R¬   t   filterwarningst   FutureWarningR    RI   t   float32R®   R_   R½   (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_train_test_split_errorsô  s"    "c          C   s  t  j d ƒ j d ƒ }  t |  ƒ } t  j d ƒ } t |  | d d  d d ƒ} | \ } } } } t t | ƒ t | ƒ ƒ t | d  d  … d f | d ƒ t | d  d  … d f | d ƒ t |  | | j	 ƒ  ƒ } | \ } } } }	 } } t
 | t ƒ s t ‚ t
 | t ƒ st ‚ t  j d ƒ j d d d d	 ƒ }
 t  j d ƒ j d d
 d ƒ } t |
 | ƒ } t | d j d ƒ t | d j d ƒ t | d	 j d ƒ t | d j d  ƒ t  j d d d d d	 d	 d	 d	 g ƒ } xÀ t d	 d d d d g d	 d d	 d d g ƒ D]‘ \ } } t | d | d | d d ƒ\ } } t t | ƒ | ƒ t t | ƒ t | ƒ t | ƒ ƒ t t  j | d k ƒ t  j | d	 k ƒ ƒ qWt  j d ƒ } xj d	 d g D]\ } t | d t d | ƒ\ } } t | d d g ƒ t | d d d	 d d d d d
 g ƒ q¹Wd  S(!   Nid   i
   R‹   Rõ   g      à?i    i   i   i   i   i   i   i   g      Ð?g      è?i   R\  R`   gš™™™™™É?R¨   i   i	   (   i
   i
   i2   i–   i,  iF   i  (   i   i   i   i   (   i   i   i   i   (   i   i   i   (   i   i   i   (   RI   Rö   RC   R   R'   RB   R	   RD   R   R;  t
   isinstanceRf   R”   RG   Rb   R4   R¾   R_   (   RM   t   X_sRK   Rg   t   X_traint   X_testR  R  t	   X_s_traint   X_s_testt   X_4dt   y_3dR‹   t   exp_test_sizeR†   R‡   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_train_test_split  sB    !!!'"#/c          C   s›   t  g }  y! d d l m } |  j | ƒ Wn t k
 r= n XxV |  D]N } | t ƒ } t | ƒ \ } } t | | ƒ s~ t ‚ t | | ƒ sE t ‚ qE Wd  S(   Niÿÿÿÿ(   t	   DataFrame(	   R   t   pandasRk  RÀ   t   ImportErrorRM   R'   Ra  R”   (   t   typesRk  t   InputFeatureTypet   X_dfRc  Rd  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   train_test_split_pandas;  s    	c          C   s„   t  j d ƒ j d ƒ }  t t t g } xV | D]N } | |  ƒ } t | ƒ \ } } t | t ƒ sg t ‚ t | t ƒ s. t ‚ q. Wd  S(   Nid   i
   (   i
   i
   (	   RI   Rö   RC   R   R   R   R'   Ra  R”   (   RM   t   sparse_typesRo  Rb  Rc  Rd  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   train_test_split_sparseL  s    c          C   s^   t  t ƒ }  t |  ƒ \ } } t | t  ƒ s3 t ‚ t | t  ƒ sH t ‚ t |  ƒ \ } } d  S(   N(   R   RM   R'   Ra  R”   (   Rp  Rc  Rd  t   X_train_arrt
   X_test_arr(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   train_test_split_mock_pandasX  s
    c          C   sZ  t  j d ƒ }  d g d d g d } t  j t  j d ƒ t  j d ƒ f ƒ } | j ƒ  } xù t t f D]ë } t |  | d | r… | n d  d d ƒ\ } } } } t |  | d | r¸ | n d  d d ƒ\ }	 }
 } } t |  | d | rë | n d  d d ƒ\ } } } } t  j	 j
 | |	 ƒ t  j	 j
 | | ƒ t  j	 j
 | | ƒ t  j	 j
 | | ƒ qg Wd  S(	   Ni   R7   i   R¸   i   R\  R`   i    (   RI   R´   t   hstackRÇ   R;  R½   R_   R'   RB   Re   R	   (   RM   R¹   Rº   t   y3R\  t   X_train1t   X_test1t   y_train1t   y_test1t   X_train2t   X_test2t   y_train2t   y_test2t   X_train3t   X_test3t   y_train3t   y_test3(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   train_test_split_list_inputa  s    '000c           C   sÛ   t  t t d d  d d  ƒt  t t d d ƒt  t t d d ƒt  t t d d d d ƒt  t t d d ƒt  t t t d d ƒ j t ƒ ƒ t  t t t d d	 ƒ j t ƒ ƒ t  t t t d d
 d d ƒ j t ƒ ƒ d  S(   NR‹   Rõ   g       @g      ð?gš™™™™™¹?gffffffî?y              ð?i   i
   i   i   (   R   RF   R"   RB   R©   Rg   RM   (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_shufflesplit_errorsv  s    ""c          C   sR   t  d d ƒ }  t t d „  |  j t ƒ Dƒ ƒ t d „  |  j t ƒ Dƒ ƒ ƒ d  S(   NR`   i   c         s   s   |  ] \ } } | Vq d  S(   N(    (   t   .0R;   R9  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pys	   <genexpr>‹  s    c         s   s   |  ] \ } } | Vq d  S(   N(    (   R‡  R;   R9  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pys	   <genexpr>Œ  s    (   R"   R   Rf   Rg   RM   (   Ry   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_shufflesplit_reproducible‡  s    c          C   sá   t  d d d d ƒ }  t j d ƒ } d g d d g d	 } t j t j d ƒ t j d	 ƒ f ƒ } | j ƒ  } t j j t |  j	 | | ƒ ƒ t |  j	 | | ƒ ƒ ƒ t j j t |  j	 | | ƒ ƒ t |  j	 | | ƒ ƒ ƒ d  S(
   NR‹   i   R`   i*   i   R7   i   R¸   i   (
   R$   RI   R´   Rw  RÇ   R;  Re   R	   Rf   Rg   (   Rø   RM   R¹   Rº   Rx  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt&   test_stratifiedshufflesplit_list_input  s    'c          C   s}   t  j d d t  j ƒj d d ƒ }  t  j |  d d  d  … f <t  j d d g |  j d d ƒ } t |  | d d	 d
 d ƒd  S(   NiÈ   Ri   i
   iÿÿÿÿi   i    i   R‹   gš™™™™™É?R`   i*   (   RI   Rö   t   float64RC   R<  t   repeatRG   R'   (   RM   RK   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt    test_train_test_split_allow_nans  s    $#c       
   C   sY  t  j d ƒ }  t d d t ƒ} t  j j t t d ƒ j |  ƒ ƒ t | j |  ƒ ƒ ƒ t  j	 d d d d d d d d d g	 ƒ } t d | d t
 ƒ} t  j j t t d ƒ j |  | ƒ ƒ t | j |  | ƒ ƒ ƒ t  j	 d d d d d d d d d g	 ƒ } t d | d t
 ƒ} t  j j t t d ƒ j |  | ƒ ƒ t | j |  | ƒ ƒ ƒ | j d d ƒ } t d | d t
 ƒ} t  j j t t d ƒ j |  | ƒ ƒ t | j |  | ƒ ƒ ƒ t t  j t t d ƒ j |  | ƒ ƒ d t t d ƒ j |  | ƒ ƒ d k ƒ ƒ t  j d ƒ }  t  j	 d d d d g d d d d g d d d d g d d d d g d d d d g g ƒ } t d | d t
 ƒ} t  j j t t d ƒ j |  ƒ ƒ t | j |  ƒ ƒ ƒ t  j	 d d g d d g d d g d d g d d g g ƒ } t d | d t
 ƒ} t  j j t t d ƒ j |  ƒ ƒ t | j |  ƒ ƒ ƒ t t t d	 d
 ƒd  S(   Ni	   i   t
   classifieri    i   i   iÿÿÿÿi   R„   Rw   (   RI   R´   R&   R_   Re   R	   Rf   R   Rg   Rb   R½   R   RC   R   t   allR©   R   RF   (   RM   R„   t   y_binaryt   y_multiclasst   y_multiclass_2dR—   t   y_multioutput(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_check_cv¥  s6    7*$*$$	)3'7<7c          C   s.  t  d d ƒ j t t ƒ }  t |  ƒ } t j j t | j t t ƒ ƒ t | j t t ƒ ƒ ƒ t  d d d t	 ƒ j t t ƒ } t | ƒ } t j j t | j t t ƒ ƒ t | j t t ƒ ƒ ƒ yA t j j t | j t t ƒ ƒ t | j t t ƒ ƒ ƒ t	 } Wn t
 k
 rt } n Xt | d ƒ d  S(   NRn   i   R¨   sV   If the splits are randomized, successive calls to split should yield different results(   R   Rg   RM   RK   R&   RI   Re   R	   Rf   R½   R”   R_   R   (   t   kf_itert   kf_iter_wrappedt   kf_randomized_itert   kf_randomized_iter_wrappedt   splits_are_equal(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_cv_iterable_wrapperÌ  s    !

c       '   C   sÖ  t  j j d ƒ }  d } d } d } t  j | ƒ } } d | } |  j d | | ƒ } | | } t t  j | ƒ ƒ t  j | ƒ }	 t d | ƒ }
 x9 t	 |
 j
 | | | ƒ ƒ D] \ } \ } } | |	 | <q­ Wt t |	 ƒ t | ƒ ƒ x: t  j |	 ƒ D]) } t | t t |	 | k ƒ | ƒ ƒ qö Wx= t  j | ƒ D], } t t t  j |	 | | k ƒ ƒ d ƒ q3Wt  j | d t ƒ} xJ |
 j
 | | | ƒ D]3 \ } } t t t  j | | | | ƒ ƒ d ƒ qŽWt  j d	 d
 d d d
 d d d d d d d d d d
 d d d d d d d d d d d d d d d  d! d d d" d# d$ d% d& g& ƒ } t t  j | ƒ ƒ } t | ƒ } d } d | } | | } t  j | ƒ } } t  j | ƒ }	 x9 t	 |
 j
 | | | ƒ ƒ D] \ } \ } } | |	 | <q¿Wt t |	 ƒ t | ƒ ƒ x: t  j |	 ƒ D]) } t | t t |	 | k ƒ | ƒ ƒ qWt j ƒ  U t j d' t ƒ x= t  j | ƒ D], } t t t  j |	 | | k ƒ ƒ d ƒ qbWWd  QXt  j | d t ƒ} xJ |
 j
 | | | ƒ D]3 \ } } t t t  j | | | | ƒ ƒ d ƒ qÃWt |
 j
 | | | j ƒ  ƒ ƒ } xR t |
 j
 | | | ƒ | ƒ D]2 \ \ } } \ } } t | | ƒ t | | ƒ q:Wt  j d d d d( d( g ƒ } t  j t | ƒ ƒ } } t t d) t t d d* ƒ j
 | | | ƒ ƒ d  S(+   Ni    i   iè  i   gš™™™™™©?Rn   i   Ri   t   Albertt   Jeant   Bertrandt   Michelt   Francist   Robertt   Rachelt   Loist   Michellet   Bernardt   Mariont   Laurat   Franckt   Johnt   Gaelt   Annat   Alixt   Davidt   Tonyt   Abelt   Beckyt   Madmoodt   Caryt   Maryt	   Alexandret   Barackt   Abdoult   Rashat   Xit   SilviaR§   i   s%   Cannot have number of splits.*greateri   (   RI   R   R‘   R´   R’   RD   RJ   RÇ   R   Rc   Rg   R	   R   RX   R¾   Rh   t   objectRÈ   Rb   R«   R¬   R­   t   DeprecationWarningRf   R;  R4   R   R   RF   R©   (   R•   RŒ   Rl   Rn   RM   RK   t	   toleranceRr   t   ideal_n_groups_per_foldR&  t   lkfRa   RÄ   R‡   t   groupR†   t   cv_itert   train1Rß   t   train2t   test2(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_group_kfoldæ  st    

.!*"+

.!0"+!	c          C   sÛ  d d g d d g d d g d d g d	 d
 g d d g d d g g }  t  t d t t d d ƒ j |  ƒ ƒ t d ƒ } | j |  d  ƒ } t | ƒ \ } } t | d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d d d g ƒ t | d d g ƒ t d ƒ j |  ƒ } t | ƒ \ } } t | d d d g ƒ t | d d g ƒ t | ƒ \ } } t | d d d d d g ƒ t | d d g ƒ t d ƒ j |  ƒ } t t | ƒ ƒ } t | | j	 ƒ  ƒ t | d ƒ d  S(   Ni   i   i   i   i   i   i   i   i	   i
   i   i   i   i   s$   Cannot have number of folds.*greaterRn   iÿÿÿÿi    (
   R   RF   R©   R   Rg   R   RD   Rf   R	   Rd   (   RM   t   tscvR¶   R†   R‡   R  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_time_series_cvA  s.    E	c         C   s   xx t  |  | ƒ D]g \ \ } } \ } } t | | ƒ t | ƒ | k sM t ‚ t t | ƒ | d ƒ } t | | | ƒ q Wd  S(   Ni    (   R4   R   RD   R”   RÁ   (   R¶   t   check_splitst   max_train_sizeR†   R‡   t   check_traint
   check_testt   suffix_start(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt!   _check_time_series_max_train_sizeg  s
    (c          C   s¾   t  j d ƒ }  t d d ƒ j |  ƒ } t d d d d ƒ j |  ƒ } t | | d d ƒt d d d d ƒ j |  ƒ } t | | d d ƒt d d d d ƒ j |  ƒ } t | | d d ƒd  S(	   Ni   i   Rn   i   RÆ  i   i   (   i   i   (   RI   RÇ   R   Rg   RÊ  (   RM   R¶   RÅ  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_time_series_max_train_sizeo  s    c          C   sÿ   t  j j d ƒ }  t d d d d d d ƒ \ } } |  j d d d ƒ } t ƒ  t ƒ  t ƒ  t ƒ  t	 d d	 d d ƒ g } x€ t
 | d ƒ D]o \ } } t t ƒ  d
 i d d g d 6d | d d d t ƒ} t | d | d | d | d | d i | d 6ƒqˆ Wd  S(   Ni    Rl   i   t	   n_classesi   R`   i   Rn   i   t
   param_gridi   gš™™™™™¹?t   alphaR„   t   error_scoret   raiset   iidRM   RK   Rr   t
   fit_params(   RI   R   R‘   R2   R’   R   R   R   R   R$   R   R(   R+   R_   R   (   R•   RM   RK   Rr   t   cvst   inner_cvt   outer_cvt   gs(    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_nested_cv~  s    !!c           C   sY   t  t t d d ƒt  t t d d ƒt  t t d d ƒt  t t t d ƒ d d ƒd  S(   NRõ   g      è?i   (   R   R^  R"   R#   R$   R'   R    (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_train_test_default_warning  s
    c           C   s„   t  t t t ƒ t  t t t ƒ t  t t t ƒ t  t t t ƒ t t d d ƒt t d d ƒt t d d ƒt t d d ƒd  S(   NRn   i   (   R   R^  R0   R   R   R   R   R   (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_nsplit_default_warn˜  s    c           C   s7   t  t t t ƒ t  t t t d  ƒ t t d d ƒd  S(   NR„   i   (   R   R^  R/   R&   RB   R   (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_check_cv_default_warn¥  s    c          C   s3   d d d „  ƒ  Y}  t  t |  d d ƒ ƒ d ƒ d  S(   Nt   MockSplitterc           B   s    e  Z d  d d „ Z d „  Z RS(   i    c         S   s   | |  _  | |  _ | |  _ d  S(   N(   R;   R9  R:  (   R=   R;   R9  R:  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyR>   ®  s    		c         S   s
   t  |  ƒ S(   N(   R.   (   R=   (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   __repr__³  s    N(   R\   R]   RB   R>   RÜ  (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyRÛ  ­  s   i   i   s   MockSplitter(a=5, b=6, c=None)(    (   R	   Rk   (   RÛ  (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   test_build_repr¬  s    	(   R^   t
   __future__R    R«   RÕ   t   numpyRI   t   scipy.sparseR   R   R   t   scipyR   t	   itertoolsR   R   t   sklearn.utils.testingR   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   t   sklearn.utils.validationR   t   sklearn.utils.mockingR   t   sklearn.model_selectionR   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   t   sklearn.linear_modelR+   t   sklearn.model_selection._splitR,   R-   R.   R/   R0   t   sklearn.datasetsR1   R2   t   sklearn.externalsR3   t   sklearn.externals.six.movesR4   t   sklearn.utils.fixesR5   t   sklearn.svmR6   R´   RM   Rö   RK   t   eyeRL   Rb   R.  Rã   R¸  R:   R‰   t   markR]  Rœ   RB   R¡   R¦   R³   Rµ   R·   R»   R¿   RÅ   RÆ   RÔ   RÚ   Rà   Rè   Rô   R÷   Rù   R  R  R  R!  R$  R-  R8  RD  RN  RO  RQ  RT  RU  RW  RX  R`  Rj  Rq  Rs  Rv  R…  R†  Rˆ  R‰  RŒ  R“  R™  RÂ  RÄ  RÊ  RË  R×  RØ  RÙ  RÚ  RÝ  (    (    (    sG   lib/python2.7/site-packages/sklearn/model_selection/tests/test_split.pyt   <module>   sò   009<'-	?>	/			$					#		,			#	3					%	:						 		0								'		[	&					