
p7]c           @   sw   d  d l  Z d  d l Z d  d l m Z m Z m Z m Z d  d l	 m
 Z
 d  d l m Z m Z d d d     YZ d S(   iN(   t   assert_almost_equalt   assert_equalt   assert_raisest   assert_allclose(   t   seasonal_decompose(   t	   DataFramet
   date_ranget   TestDecomposec           B   s_   e  Z e d     Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(	   c          C   s   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 d! d" d# t |  d$ d%   |  _ d  S(&   Nii   i   i   i   i   i   iI  i  i)  i  i  i  i  i   i   iQ  i   i   if   i   i  i   ib   i+   isiii}   ii  ii   t   starts   1/1/1951t   periodst   freqt   Q(   R   R   t   lent   data(   t   clsR   (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   setup_class
   s    *c          C   s  t  |  j 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 g  } t j t 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" t j t j g  } t j t j d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> t j t j g  } t | j | d?  t | j | d?  t | j | d@  t  t j	 |  j j  dA d d } dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE g  } t j t j dF d d	 d
 d d d d d d d d d d d d d d d d d dG dH dI dJ dK dL dM t j t j g  } t j t j dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di t j t j g  } t | j | d  t | j | d?  t | j | d  t  |  j j dj  d d } dk dl dm dn dk dl dm dn dk dl dm dn dk dl dm dn dk dl dm dn dk dl dm dn dk dl dm dn dk dl dm g } t j t 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! t j t j g } t j t j do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d d d d d d d d d d d t j t j g } t | j | d?  t | j | d?  t | j | d@  d  S(   NR
   i   g{G:O@g{GU@gQVg      Ngp=
c@g     i@g     k@gp=
ףn@g     s@g     8|@g)\@g     Z@g)\<@g      @gR|@gRw@gRs@g     p@g\(l@g     Xj@g\(g@g     h@gp=
i@g     g@g\(d@g      R@g     "g(\@g     `Bg      B@g     Y@gp=
s`@gK7AS@gK7AQ@g{GZBgB`"WgCl{gsh|Og(\ZZ@g/Y@gx&1@gMb?gGz.@g+$gsh|@g";gQG@gʡELg/$<@gsh|_Bg{GBgOnb@g9vRgK7AU@gQk$g!rhAhgnH@g5^I&@g{G:DgOna@i   i   t   mgM?gec]?gH}?gvq-?gp=
se@g     Z@g      T@gHzS@g     S@g      ]@g     a@g\(c@gtA}˜?g37?g3?g|͍?gk?gvR~?gGZ*oG8?gAf?gQ5U?g}"O?gapI?gni5$?gG8-xW?gd@z?g]?g[[?g0/?gy?gg\8?g}ƅ!?gAJi?gcAJ?g@߾?gמY?g͍	K?g\*?gBfj?g4?igQQ@gzGAQ@g
ףp=TgQEKgOn"R@gOn"P@gJ+6EgISgC,(g!rhPg~jX@gfffff.^@gV-g+gSe#@gffffff@gB`"{CgB`"@gx9D@g33333cDg}?5^I6@gB`";EgJ+Eg33333e@g!rhMTgOn"T@g'1/gfg/4E@gx&@gJ+G(
   R   R   t   valuest   npt   nanR    t   seasonalt   trendt   residt   abs(   t   selft   res_addR   R   t   randomt   res_mult(    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   test_ndarray   st    $c   	       C   s  t  |  j d d } |  j j   } t d d d t |  d d  | _ t  | 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 j t 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& t j t j g  } t j t j d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB t j t j g  } t | j	 j
 j   | dC  t | j j
 j   | dC  t | j j
 j   | dD  t | j	 j
 j   | dC  t | j j
 j   | dC  t | j j
 j   | dD  t | j	 j j
 j   |  j j j
  t  t j |  j  dE d d } t  t j |  dE d d } dF dG dH dI dF dG dH dI dF dG dH dI dF dG dH dI dF dG dH dI dF dG dH dI dF dG dH dI dF dG dH dI g  } t j t j dJ d d d d d d d d d d d d d d d d d d d d dK dL dM dN dO dP dQ t j t j g  } t j t j dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm t j t j g  } t | j	 j
 j   | d  t | j j
 j   | dC  t | j j
 j   | d  t | j	 j
 j   | d  t | j j
 j   | dC  t | j j
 j   | d  t | j	 j j
 j   |  j j j
  d  S(n   NR
   i   R   s   1/1/1951R	   t   Ag{G:O@g{GU@gQVg      Ngp=
c@g     i@g     k@gp=
ףn@g     s@g     8|@g)\@g     Z@g)\<@g      @gR|@gRw@gRs@g     p@g\(l@g     Xj@g\(g@g     h@gp=
i@g     g@g\(d@g      R@g     "g(\@g     `Bg      B@g     Y@gp=
s`@gK7AS@gK7AQ@g{GZBgB`"WgCl{gsh|Og(\ZZ@g/Y@gx&1@gMb?gGz.@g+$gsh|@g";gQG@gʡELg/$<@gsh|_Bg{GBgOnb@g9vRgK7AU@gQk$g!rhAhgnH@g5^I&@g{G:DgOna@i   i   R   gM?gec]?gH}?gvq-?gp=
se@g     Z@g      T@gHzS@g     S@g      ]@g     a@g\(c@gtA}˜?g37?g3?g|͍?gk?gvR~?gGZ*oG8?gAf?gQ5U?g}"O?gapI?gni5$?gG8-xW?gd@z?g]?g[[?g0/?gy?gg\8?g}ƅ!?gAJi?gcAJ?g@߾?gמY?g͍	K?g\*?gBfj?g4?(   R   R   t   copyR   R   t   indexR   R   R    R   R   t   squeezeR   R   R   R   (	   R   R   t   freq_override_datat   res_add_overrideR   R   R   R   t   res_mult_override(    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   test_pandasU   sr    !
c   	      C   s   d } t  j g  t |  D] } | d ^ q t j j |   } t | j d d } t | d d } d } d } t | j	 j j
   | j	 d | d | t | j j j
   | j d | d | t | j j j
   | j d | d | d  S(   Nid   i   R
   g:0yE>g|=t   atolt   rtol(   t   pdt   Seriest   rangeR   R   t   randnR   R   R   R   R    R   R   (	   R   t   reset_randomstatet   nobst   xt   dtat   res_npt   resR%   R&   (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   test_pandas_nofreq   s    <c          C   s  t  j d d d d d d d d d d g  } t |  j 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 g  } t  j t  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' t  j t  j g  } t  j t  j d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC t  j t  j g  } t | j | dD  t | j | dD  t | j	 | dE  d  S(F   Ni   g       @g      @g      ?i   t   filtR
   g{G:O@g{GU@gQVg      Ngp=
c@g     i@g     k@gp=
ףn@g     s@g     8|@g)\@g     Z@g)\<@g      @gR|@gRw@gRs@g     p@g\(l@g     Xj@g\(g@g     h@gp=
i@g     g@g\(d@g      R@g     "g(\@g     `Bg      B@g     Y@gp=
s`@gK7AS@gK7AQ@g{GZBgB`"WgCl{gsh|Og(\ZZ@g/Y@gx&1@gMb?gGz.@g+$gsh|@g";gQG@gʡELg/$<@gsh|_Bg{GBgOnb@g9vRgK7AU@gQk$g!rhAhgnH@g5^I&@g{G:DgOna@i   i   (
   R   t   arrayR   R   R   R   R    R   R   R   (   R   R2   R   R   R   R   (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt	   test_filt   s(    2c      !   C   s-  t  |  j j d d d t } t 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 g   } t j t j t j t j t 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# g   } t j t j t j t j t j d$ d% d& d' d( d) d* d+ d, d- d. d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> g   } t | j | d?  t | j	 | d?  t | j
 | d@  t  t j |  j j  dA d d d t } t j dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE dB dC dD dE g   } t j t j t j t j t j dF d	 d
 dG d d dH d dI d dJ dK dL d dM d dN d dO d dP dQ dR dS dT dU dV dW g   } t j t j t j t j t j dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds g   } t | j | d  t | j	 | d?  t | j
 | d  t  |  j j dt  d d d t } t j du dv dw dx du dv dw dx du dv dw dx du dv dw dx du dv dw dx du dv dw dx du dv dw dx du dv dw g  } t j t j t j t 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" g } t j t j t j t j dy dz 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 | j | d?  t | j	 | d?  t | j
 | d@  d  S(   NR
   i   t	   two_sidedgq=
ף0S@gRV@g\g333333Jgp=
c@g     i@g     k@gp=
ףn@g     s@g     8|@g)\@g     Z@g)\<@g      @gR|@gRw@gRs@g     p@g\(l@g     Xj@g\(g@g     h@gp=
i@g     g@g\(d@g      R@g     "g(\@g     `Bg      B@g     Y@gp=
s`@gMbX9&@gLg rh]@gbX9a@got@g/$p@g rhT@g;OvSg#~jcgEfgKcgl1LgDl\g%C,@gw/-Lgl@g^Ia@g;OnVgw/MDg#~jig"~rgA`RG@g rh!R@gI+?U@g^IWm@gw/@g rh1Z@i   i   R   gV-?gGr?gF_?gV-?g     te@g     n@g     @g     =@g     |@g     w@g     s@g     l@g     g@g     i@g     d@g     Z@g      T@g     S@g     S@g      ]@g     a@g     c@gz6?gMb?g      ?gn?go?giq?gS:?gNbX9?g$(~k?g/L
F?g46<?gpΈ?g"~j?gn?gw/?g!rh?g镲q?gjMS?gV}b?gTN?gQ?gZd;?gtV?gŏ1w-!?g(0?gΈ @g\m?gW2ı?ig=
ףpMT@gQW@g|[g(\oPgx@g=
ףpNg~jl\@gƳb@gS㥛t@gQpp@g~jS@g r PgX9Țcg(\/ggʡcgNbX9lagB`"kNgQ]gS%#@g7A`EgB`"Bgq=
ף`@g%CWgoA;gX9ȢigHz7sgxE@gd;OwU@gOn"T@gq=
ףl@gJ+C(   R   R   R   t   FalseR   R3   R   R    R   R   R   R   (   R   R   R   R   R   R   R   (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt.   test_one_sided_moving_average_in_stl_decompose   sv    '$*$'"!c         C   s}   t  j t  j d  d  j } t | d d j } t  j t  j d d t d	  j } t  j | d <| d <t | |  d  S(
   Ni   i   i   R
   t   dtypei    i(   i   i   (   i   i   (	   R   t   tilet   aranget   TR   R   t   floatR   R   (   R   R-   R   t   expected(    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   test_2d  s
    $c         C   s8  t  j d  } d } t | d | j } t | d t  j  t | d | d d j } t | |  t | d | d d j } t | |  t | d  d   d  f d | d d j } t | |  t  j t  j d  d	  j	 } t | d | d d j } t | |  t | d | d d j } t | |  d  S(
   Ni   i   R
   i    t   extrapolate_trendi   i   i   (   i   i   (
   R   R:   R   R   R   R   R    t   NoneR9   R;   (   R   R-   R
   R   (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   test_interpolate_trend
  s    +c         C   sn   t  t t |  j j  t  t t |  j d d d |  j j t  j   } t j	 | j
 d <t  t t |  d  S(   NR   R
   i   i   (   R   t
   ValueErrorR   R   R   t   astypeR<   R   R   R   t   iloc(   R   R-   (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   test_raises!  s    (   t   __name__t
   __module__t   classmethodR   R   R$   R1   R4   R7   R>   RA   RE   (    (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyR   	   s   
	A	=			K		(    (   t   numpyR   t   pandasR'   t   numpy.testingR    R   R   R   t   statsmodels.tsa.seasonalR   R   R   R   (    (    (    sB   lib/python2.7/site-packages/statsmodels/tsa/tests/test_seasonal.pyt   <module>   s
   "