ó
‡ˆ\c           @   s·  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
 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 e j ƒ  Z d d d d g Z d „  Z d „  Z d „  Z d „  Z  d „  Z! e d „  ƒ Z" d „  Z# d „  Z$ d „  Z% e j& j' d e ƒ d  „  ƒ Z( e j& j' d e ƒ d! „  ƒ Z) d" „  Z* d# „  Z+ d$ „  Z, d% „  Z- d& „  Z. d' „  Z/ d( „  Z0 d) „  Z1 d* „  Z2 d+ „  Z3 d, „  Z4 d- „  Z5 d. „  Z6 d/ „  Z7 d0 „  Z8 e j& j' d1 e ƒ d2 „  ƒ Z9 d3 „  Z: e j& j' d1 e ƒ d4 „  ƒ Z; d5 „  Z< d6 „  Z= d S(7   iÿÿÿÿN(   t   product(   t   assert_almost_equal(   t   assert_array_almost_equal(   t   assert_equal(   t   assert_greater(   t   assert_raise_message(   t   assert_raises(   t   assert_raises_regex(   t   assert_no_warnings(   t   assert_warns_message(   t   ignore_warnings(   t   assert_less(   t   datasets(   t   PCA(   t   _assess_dimension_(   t   _infer_dimension_t   fullt   arpackt
   randomizedt   autoc          C   s5  t  j }  xð t j |  j d ƒ D]Ø } t d | d d ƒ } | j |  ƒ j |  ƒ } t j j	 | j d | ƒ | j
 |  ƒ } t | | ƒ | j |  ƒ } | j
 |  ƒ } t | | ƒ | j ƒ  } | j ƒ  } t t j | | ƒ t j |  j d ƒ d ƒ q  Wt d d ƒ } | j |  ƒ t | j j ƒ  d d ƒ d  S(   Ni   t   n_componentst
   svd_solverR   i   g      ð?i   (   t   irist   datat   npt   aranget   shapeR   t   fitt	   transformt   testingR   t   fit_transformR   t   get_covariancet   get_precisiont   dott   eyeR   t   explained_variance_ratio_t   sum(   t   Xt   n_compt   pcat   X_rt   X_r2t   covt	   precision(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca   s"    	c       	   C   sõ  t  j }  |  j d } xÜ t j d | ƒ D]È } t d | d d d d ƒ } | j |  ƒ j |  ƒ } t j j	 | j d | ƒ | j
 |  ƒ } t | | ƒ | j |  ƒ } t | | ƒ | j ƒ  } | j ƒ  } t t j | | ƒ t j | ƒ d ƒ q) Wt d d d d d d ƒ } t t | j |  ƒ t	 | j t d d d d d d ƒ j ƒ t	 | j t d d d d d d ƒ j ƒ t d | d d d d ƒ } t t | j |  ƒ t	 | j t d | d d d d ƒ j ƒ t	 | j t d d d d d d ƒ j ƒ d  S(   Ni   R   R   R   t   random_statei    i   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R   t
   ValueErrorR   R   (   R%   t   dR&   R'   R(   R)   R*   R+   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_arpack_solver9   s<    					c       	   C   s¦  t  j }  xê t j d |  j d ƒ D]Ï } t d | d d d d ƒ } | j |  ƒ j |  ƒ } t j j	 | j d | ƒ | j
 |  ƒ } t | | ƒ | j |  ƒ } t | | ƒ | j ƒ  } | j ƒ  } t t j | | ƒ t j |  j d ƒ d ƒ q# Wt d d d d d d ƒ } t t | j |  ƒ t d d d d d d ƒ } t t | j |  ƒ t	 | j t d d d d d d ƒ j ƒ t	 | j t d d d d d d ƒ j ƒ d  S(   Ni   R   R   R   R-   i    i   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R   R.   R   R   (   R%   R&   R'   R(   R)   R*   R+   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_randomized_solvere   s.    	 		c          C   sT   d }  |  d } t  j j d d d |  | f ƒ} t d |  ƒ } t | j | ƒ d  S(   Ni
   i   iÿÿÿÿi   t   sizeR   (   R   t   randomt   uniformR   R   R   (   R   t
   n_featuresR%   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_no_empty_slice_warningŠ   s
    
!c          C   sF  t  j j d ƒ }  d } d } d } d } t  j |  j | | ƒ t  j t  j t  j d d | ƒ ƒ |  j | | ƒ ƒ ƒ } | d  d  … d  d … f c d 9<t | j | | f ƒ t	 | j
 d	 d ƒ j
 ƒ  d
 ƒ xpt t t t f ƒ D]Y\ } } | j ƒ  } t d | d t d | d | d d d d ƒ }	 |	 j | j ƒ  ƒ }
 t |
 j | | f ƒ |	 j | ƒ } t |
 | ƒ t |
 j
 d d d	 d ƒ t  j | ƒ d d ƒt |
 j d	 d ƒ t  j | ƒ ƒ | j ƒ  } t d | d t d | d | ƒ j | ƒ }	 |	 j | ƒ } t | j | | f ƒ t | j
 d	 d ƒ j
 ƒ  d d ƒ qå Wd  S(   Ni    id   iP   i   i2   g      $@g      ð?i   t   axisgfffffæE@R   t   whitent   copyR   R-   t   iterated_poweri   t   ddofi   t   decimali   gfffff†R@(   R   R3   t   RandomStateR!   t   randnt   diagt   linspaceR   R   R   t   stdR    t   solver_listt   Truet   FalseR9   R   R   R   R   R   t   onest   meant   zerosR   (   t   rngt	   n_samplesR5   R   t   rankR%   t   solverR9   t   X_R'   t
   X_whitenedt   X_whitened2t   X_unwhitened(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_whitening“   s:    !"""c    
      C   s}  t  j j d ƒ }  d } d } |  j | | ƒ } t d d d d ƒ j | ƒ } t d d d d d	 d ƒ j | ƒ } t | j | j d
 ƒ t | j | j d ƒ t d d d d d	 d ƒ j | ƒ } t | j | j d
 ƒ t | j | j d
 ƒ t  j	 j
 t  j | d t ƒƒ d } t | d t ƒd  } | j | ƒ } t | j t  j | d d
 d d ƒƒ t | j | ƒ | j | ƒ } t | j t  j | d d
 d d ƒƒ t | j | ƒ | j | ƒ }	 t | j t  j |	 d d
 d d ƒd d
 ƒt | j | d d
 ƒt j | | d | d d	 |  ƒd } t d d ƒ j | ƒ } t d d d d d	 |  ƒ j | ƒ } t | j | j d ƒ d  S(   Ni    id   iP   R   i   R   R   R   R-   i   i   R   i*   t   rowvart   reverseR;   R7   R<   t   n_informativei   (   R   R3   R=   R>   R   R   R   t   explained_variance_R#   t   linalgt   eigR*   RD   t   sortedRC   R   t   varR   t   make_classification(
   RH   RI   R5   R%   R'   t   apcat   rpcat   expected_resultt   X_pcat   X_rpca(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_explained_varianceÄ   sN    $		$		%				
	c          C   s³  t  j j d ƒ }  d } d } |  j | | ƒ } t d d d d d |  ƒ j | ƒ } t d d d d	 d |  ƒ j | ƒ } t d d d d
 d |  ƒ j | ƒ } t | j | j d ƒ t | j | j d ƒ t | j | j d ƒ | j | ƒ } | j | ƒ } | j | ƒ }	 t t  j	 | j d ƒ t  j
 j | d ƒ d d ƒ t t  j	 | j d ƒ t  j
 j | d ƒ d d ƒ t t  j	 | j d ƒ t  j
 j |	 d ƒ d d ƒ t | j t  j t  j	 | d d d ƒƒ d ƒ t | j t  j t  j	 | d d d ƒƒ d ƒ t | j t  j t  j	 |	 d d d ƒƒ d ƒ t  j j d ƒ }  d } d } |  j | | ƒ } t d d d d d |  ƒ } t d d d d	 d |  ƒ } t d d d d
 d |  ƒ } | j | ƒ } | t  j t  j	 | d d d ƒƒ :} | d  d  … d f c d 9<| d  d  … d f c d 9<t  j | | j ƒ }
 | j |
 ƒ | j |
 ƒ | j |
 ƒ t | j d d d g d ƒ t | j d d d g d ƒ t | j d d d g d ƒ d  S(   Ni    id   iP   R   i   R   R   R-   R   R   i   i   g       @t   froi	   R7   in   i   g‰A`åÐ"	@gX9´Èv¾@g      ð?i   (   R   R3   R=   R>   R   R   R   t   singular_values_R   R$   RU   t   normt   sqrtR   R!   t   components_(   RH   RI   R5   R%   R'   RZ   R[   R]   t   X_apcaR^   t   X_hat(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_singular_valuesû   s\    	&	&	&&c          C   sü   t  j j d ƒ }  d \ } } |  j | | ƒ d } | d c  t  j d d d g ƒ 7*d |  j d | ƒ t  j d d d g ƒ } xs t D]k } t d	 d
 d | ƒ j | ƒ j | ƒ } | t  j	 | d
 j
 ƒ  ƒ :} t t  j | d d ƒ d d ƒ q‰ Wd  S(   Ni    id   i   gš™™™™™¹?i
   i   i   i   R   i   R   g      ð?(   id   i   (   R   R3   R=   R>   t   arrayRB   R   R   R   Rc   R$   R   t   abs(   RH   t   nt   pR%   t   XtRK   t   Yt(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_check_projection:  s    ",'c          C   s  t  j j d ƒ }  d \ } } |  j | | ƒ } | d  d  … d f c d 9<| d d d g 7} t d d	 d
 d ƒ j | ƒ } | j | ƒ } | j | ƒ } t | | d d ƒxg t	 D]_ } t d d	 d t
 d
 | ƒ } | j | ƒ | j | ƒ } | j | ƒ } t | | d d ƒqµ Wd  S(   Ni    i2   i   i   gñhãˆµøä>i   i   R   i   R   R   R<   R8   (   i2   i   (   R   R3   R=   R>   R   R   R   t   inverse_transformR   RB   RC   (   RH   Rj   Rk   R%   R'   t   Yt	   Y_inverseRK   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_inverseI  s    RK   c      	   C   sZ  t  j d d d g d d d g g ƒ } d } i d d 6d d 6d d 6d d 6} xÄ | | j g D]³ } xg d d	 g D]Y } |  d k r d } n |  } t t d
 j | | |  | | ƒ t | d |  ƒj | ƒ qr W|  d k r_ | } t t d j | | ƒ t | d |  ƒj | ƒ q_ q_ Wd } t | ƒ } t	 t d j | | ƒ t | d |  ƒj | ƒ d  S(   Ni    i   i   R   R   R   R   iÿÿÿÿi   sa   n_components={}L? must be between {}L? and min\(n_samples, n_features\)={}L? with svd_solver='{}'R   sg   n_components={}L? must be strictly less than min\(n_samples, n_features\)={}L? with svd_solver='arpack'g      ð?sS   n_components={} must be of type int when greater than or equal to 1, was of type={}(
   R   Rh   t   TR   R.   t   formatR   R   t   typeR   (   RK   R%   t
   smallest_dt   lower_limitR   R   t   solver_reportedt	   type_ncom(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_validationa  s:    '"				c         C   sˆ   t  j } xx | | j g D]g } t d |  ƒ } | j | ƒ |  d k rg t | j t | j ƒ d ƒ q t | j t | j ƒ ƒ q Wd  S(   NR   R   i   (	   R   R   Rs   R   R   R   t   n_components_t   minR   (   RK   R%   R   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_n_components_none’  s    	 c          C   sñ   t  j j d ƒ }  d \ } } |  j | | ƒ d } | d c  t  j d d d g ƒ 7*d |  j d | ƒ t  j d d d g ƒ } t d	 d
 d d d d ƒ j | ƒ j | ƒ } | t  j | d
 j	 ƒ  ƒ :} t
 t  j | d d ƒ d d ƒ d  S(   Ni    id   i   gš™™™™™¹?i
   i   i   i   R   i   R   R   R-   g      ð?(   id   i   (   R   R3   R=   R>   Rh   R   R   R   Rc   R$   R   Ri   (   RH   Rj   Rk   R%   Rl   Rm   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt$   test_randomized_pca_check_projection   s    ",c          C   s…   d d g d d g g }  t  d d d d d d ƒ j |  ƒ j |  ƒ } t | j d ƒ t | j ƒ  d d	 ƒ t | j ƒ  d
 d	 ƒ d  S(   Ng      ð?g        R   i   R   R   R-   i    i   g¸…ëQ¸æ?(   i   i   (   R   R   R   R   R   R   RF   RA   (   R%   t   X_transformed(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_randomized_pca_check_list¯  s    c       	   C   s9  t  j j d ƒ }  d \ } } |  j | | ƒ } | d  d  … d f c d 9<| d d d g 7} t d d	 d
 d d d ƒ j | ƒ } | j | ƒ } | j | ƒ } t | | d d	 ƒt d d	 d t	 d
 d d d ƒ j | ƒ } | j | ƒ } | j | ƒ } t  j
 | | ƒ t  j
 | ƒ j ƒ  j ƒ  } t | d ƒ d  S(   Ni    i2   i   i   gñhãˆµøä>i   i   R   i   R   R   R-   R<   R8   (   i2   i   (   R   R3   R=   R>   R   R   R   Ro   R   RC   Ri   RF   t   maxR   (   RH   Rj   Rk   R%   R'   Rp   Rq   t   relative_max_delta(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_randomized_pca_inverse¹  s    $,c          C   sÃ   t  j j d ƒ }  d } d } |  j | | ƒ } i  } xq t D]i } t d d d | ƒ } | d
 k r | j | ƒ | j | | <q= d	 j | ƒ } t	 t
 | | j | ƒ q= Wt | d | d ƒ d  S(   Ni    iX  i
   R   t   mleR   R   R   s:   n_components='mle' cannot be a string with svd_solver='{}'(   R   R   (   R   R3   R=   R>   RB   R   R   R{   Rt   R   R.   R   (   RH   RI   R5   R%   t   n_components_dictRK   R'   t   error_message(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_n_components_mleÑ  s    	c       	   C   sž   t  j j d ƒ }  d \ } } |  j | | ƒ d } | d c  t  j d d d d d	 g ƒ 7*t d
 d d d ƒ j | ƒ } t | j d ƒ t | j	 d ƒ d  S(   Ni    id   i   gš™™™™™¹?i
   i   i   i   i   R   R„   R   R   (   id   i   (
   R   R3   R=   R>   Rh   R   R   R   R   R{   (   RH   Rj   Rk   R%   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_dimå  s    (c          C   s  d \ }  } t  j j d ƒ } | j |  | ƒ d | j |  d ƒ t  j d d d d d g ƒ t  j d d d	 d d
 g ƒ } t d | d d ƒ } | j | ƒ | j } g  } x0 t | ƒ D]" } | j	 t
 | | |  | ƒ ƒ qº Wt  j | ƒ } t | d | j ƒ  d |  ƒ d  S(   Niè  i   i    gš™™™™™¹?i   i   i   i   i   i   R   R   R   g{®Gáz„?(   iè  i   (   R   R3   R=   R>   Rh   R   R   RT   t   ranget   appendR   R   R   (   Rj   Rk   RH   R%   R'   t   spectt   llt   k(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_infer_dim_1ð  s    ?	 c       
   C   sÏ   d \ }  } t  j j d ƒ } | j |  | ƒ d } | d c  t  j d d d d d	 g ƒ 7*| d d
 c !t  j d d d d	 d g ƒ 7+t d | d d ƒ } | j | ƒ | j } t t	 | |  | ƒ d ƒ d  S(   Niè  i   i    gš™™™™™¹?i
   i   i   i   i   i   i   i   iÿÿÿÿR   R   R   (   iè  i   (
   R   R3   R=   R>   Rh   R   R   RT   R   R   (   Rj   Rk   RH   R%   R'   R‹   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_infer_dim_2  s    (+	c          C   sþ   d \ }  } t  j j d ƒ } | j |  | ƒ d } | d c  t  j d d d d d	 g ƒ 7*| d d
 c !t  j d d d d	 d g ƒ 7+| d d c !d	 t  j d d d d d g ƒ 7+t d | d d ƒ } | j | ƒ | j } t t	 | |  | ƒ d	 ƒ d  S(   Nid   i   i    gš™™™™™¹?i
   i   i   i   i   i   i   i   iÿÿÿÿi   i(   R   R   R   (   id   i   (
   R   R3   R=   R>   Rh   R   R   RT   R   R   (   Rj   Rk   RH   R%   R'   R‹   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_infer_dim_3  s    (+/	c          C   só   t  j }  t d d d d ƒ } | j |  ƒ t | j d ƒ t | j d ƒ t d d d d ƒ } | j |  ƒ t | j d ƒ t | j d ƒ t j j	 d ƒ } | j
 d	 d
 ƒ }  t d d d d ƒ j |  ƒ } t | j d ƒ t | j d ƒ d  S(   NR   gffffffî?R   R   i   g{®Gáz„?i   i    i   i   g      à?(   R   R   R   R   R   R   R{   R   R3   R=   t   rand(   R%   R'   RH   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt$   test_infer_dim_by_explained_variance  s    	c          C   sÙ   d \ }  } t  j j d ƒ } | j |  | ƒ d t  j d d d g ƒ } xˆ t D]€ } t d d d	 | ƒ } | j | ƒ | j | ƒ } d
 t  j	 d t  j
 t  j d ƒ d ƒ | } t  j j | | d d ƒ qQ Wd  S(   Niè  i   i    gš™™™™™¹?i   i   R   i   R   g      à¿i   (   iè  i   g|®Gáz„?(   R   R3   R=   R>   Rh   RB   R   R   t   scoret   logt   pit   expR   R   (   Rj   Rk   RH   R%   RK   R'   t   ll1t   h(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_score0  s    ,/c          C   s  d \ }  } t  j j d ƒ } | j |  | ƒ d t  j d d d g ƒ } xÊ t D]Â } t d d d	 | ƒ } | j | ƒ | j | ƒ } | j | j |  | ƒ d
 t  j d d d g ƒ ƒ } t	 | | ƒ t d d d t
 d	 | ƒ } | j | ƒ | j | ƒ } | | k sQ t ‚ qQ Wd  S(   Nid   i   i    gš™™™™™¹?i   i   R   i   R   gš™™™™™É?R8   (   id   i   (   R   R3   R=   R>   Rh   RB   R   R   R“   R   RC   t   AssertionError(   Rj   Rk   RH   R%   RK   R'   R—   t   ll2(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_score2=  s    ,5c          C   s1  d \ }  } t  j j d ƒ } | j |  | ƒ | j |  d ƒ t  j d d d g ƒ t  j d d d g ƒ } | j |  | ƒ | j |  d ƒ t  j d d d g ƒ t  j d d d g ƒ } t  j | ƒ } xI t | ƒ D]; } t d | d	 d
 ƒ } | j | ƒ | j	 | ƒ | | <qÖ W| j
 ƒ  d k s-t ‚ d  S(   NiÈ   i   i    i   i   i   i   R   R   R   (   iÈ   i   (   R   R3   R=   R>   Rh   RG   R‰   R   R   R“   t   argmaxRš   (   Rj   Rk   RH   t   XlRl   RŒ   R   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_score3P  s    55c             s¾   t  j ƒ  }  |  j ‰  d „  t Dƒ } xF | j ƒ  D]8 } | j ˆ  ƒ t j | j | j	 d k ƒ s2 t
 ‚ q2 W‡  f d †  | j ƒ  Dƒ } t | d | d ƒ t | d | d d d ƒd  S(	   Nc      	   S   s.   i  |  ]$ } t  d  d d | d d ƒ | “ q S(   R   i   R   R-   i    (   R   (   t   .0R   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pys
   <dictcomp>e  s   	i    c            s(   i  |  ] \ } } | j  ˆ  ƒ | “ q S(    (   R“   (   R    R   R'   (   t   X_digits(    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pys
   <dictcomp>r  s   	R   R   R   R<   i   (   R   t   load_digitsR   RB   t   valuesR   R   t   allRT   t   noise_variance_Rš   t   itemsR   (   t   digitst   pca_dictR'   t
   score_dict(    (   R¡   sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt%   test_pca_score_with_different_solversa  s    	
)c          C   sÇ   d \ }  } t  j j d ƒ } | j |  | ƒ d t  j d d d g ƒ } d d g } xj | D]b } t d	 | d
 | ƒ } | j | ƒ | j d k sš t ‚ | j | j	 ƒ | j d k s] t ‚ q] Wd  S(   Nid   i   i    gš™™™™™¹?i   i   R   R   R   R   (   id   i   (
   R   R3   R=   R>   Rh   R   R   R¥   Rš   Rs   (   Rj   Rk   RH   R%   t   svd_solversR   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt'   test_pca_zero_noise_variance_edge_casesy  s    ,c          C   s   t  j j d ƒ }  |  j d d ƒ } t d d ƒ } | j | ƒ t d d d d ƒ } | j | ƒ t | j | j ƒ t d d	 d
 d ƒ } | d  d … d  d  … f } | j | ƒ t d d	 d d d
 d ƒ } | j | ƒ t | j | j ƒ t d d ƒ } | j | ƒ t d d d d ƒ } | j | ƒ t | j | j ƒ t d d d
 d ƒ } | j | ƒ t d d d d d
 d ƒ } | j | ƒ t | j | j ƒ d  S(   Ni    R2   iè  i2   R   g      à?R   R   i   R-   i
   R   (   iè  i2   (   R   R3   R=   R4   R   R   R   Rd   (   RH   R%   R'   t   pca_testRp   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_svd_solver_auto  s.    R   c         C   st   t  j j d ƒ j d d ƒ } t j j | ƒ } t j j | ƒ sH t ‚ t	 d d d |  ƒ } t
 t | j | ƒ d  S(   Ni    i   i   R   i   R   (   R   R3   R=   R‘   t   spt   sparset
   csr_matrixt   issparseRš   R   R   t	   TypeErrorR   (   R   R%   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_sparse_input°  s
    c          C   sJ   t  j j d ƒ j d d ƒ }  t d d d d ƒ } t t | j |  ƒ d  S(   Ni    i   i   R   i   R   t   bad_argument(   R   R3   R=   R‘   R   R   R.   R   (   R%   R'   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_bad_solver»  s    c         C   s   t  |  ƒ t |  ƒ d  S(   N(   t"   check_pca_float_dtype_preservationt$   check_pca_int_dtype_upcast_to_double(   R   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   test_pca_dtype_preservationÁ  s    
c         C   s  t  j j d ƒ j d d ƒ j t  j ƒ } | j t  j ƒ } t d d d |  d d ƒ j | ƒ } t d d d |  d d ƒ j | ƒ } | j	 j
 t  j k sŸ t ‚ | j	 j
 t  j k sº t ‚ | j | ƒ j
 t  j k sÛ t ‚ | j | ƒ j
 t  j k sü t ‚ t | j	 | j	 d d ƒd  S(	   Ni    iè  i   R   i   R   R-   R<   (   R   R3   R=   R‘   t   astypet   float64t   float32R   R   Rd   t   dtypeRš   R   R   (   R   t   X_64t   X_32t   pca_64t   pca_32(    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyR·   Ç  s    *!!c         C   s"  t  j j d ƒ j d d d
 ƒ } | j t  j ƒ } | j t  j ƒ } t d d d |  d d ƒ j | ƒ } t d d d |  d d ƒ j | ƒ } | j	 j
 t  j k s¨ t ‚ | j	 j
 t  j k sÃ t ‚ | j | ƒ j
 t  j k sä t ‚ | j | ƒ j
 t  j k st ‚ t | j	 | j	 d d	 ƒd  S(   Ni    iè  i   R   i   R   R-   R<   i   (   iè  i   (   R   R3   R=   t   randintRº   t   int64t   int32R   R   Rd   R½   R»   Rš   R   R   (   R   t   X_i64t   X_i32RÀ   RÁ   (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyR¸   Û  s    !!!(>   t   numpyR   t   scipyR¯   t	   itertoolsR    t   pytestt   sklearn.utils.testingR   R   R   R   R   R   R   R   R	   R
   R   t   sklearnR   t   sklearn.decompositionR   t   sklearn.decomposition.pcaR   R   t	   load_irisR   RB   R,   R0   R1   R6   RP   R_   Rg   Rn   Rr   t   markt   parametrizeRz   R}   R~   R€   Rƒ   R‡   Rˆ   RŽ   R   R   R’   R™   Rœ   RŸ   Rª   R¬   R®   R´   R¶   R¹   R·   R¸   (    (    (    sC   lib/python2.7/site-packages/sklearn/decomposition/tests/test_pca.pyt   <module>   sf   		,	%			17	?		1		
													#		