ó
áp7]c           @   s_   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 d     YZ
 d S(   i˙˙˙˙N(   t   assert_almost_equalt   assert_equalt   assert_raises(   t   BoxCox(   t	   macrodatat   TestTransformc           B   sq   e  Z e d     Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   c         C   s/   t  j   } | j d j |  _ t   |  _ d  S(   Nt   realgdp(   R   t   load_pandast   datat   valuest   xR   t   bc(   t   clsR   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   setup_class	   s    c         C   sN   d d d g } t  t |  j j |  d d d g } t  t |  j j |  d  S(   Ni   i˙˙˙˙i    (   R   t
   ValueErrorR   t   transform_boxcox(   t   selft   y(    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_nonpositive   s    c         C   s<   t  t |  j j |  j d  t  t |  j j |  j d  d  S(   Niý˙˙˙i   i   i˙˙˙˙(   iý˙˙˙i   i   (   i   i˙˙˙˙(   R   R   R   t   _est_lambdaR
   (   R   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_invalid_bounds   s    c         C   sB   t  t |  j j |  j d d  t  t |  j j |  j d d  d  S(   Ni˙˙˙˙i   t   testi   (   i˙˙˙˙i   (   R   R   R   R   R
   t   untransform_boxcox(   R   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_unclear_methods   s    c         C   s   t  t |  j j |  j d d |  j j |  j d d |  j j |  j d d |  j j |  j d d |  j j |  j d d d  S(   Nt   scaleR   t   madt   MADt   sdt   SD(   R   R   R   R   R
   (   R   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_unclear_scale_parameter'   s    c         C   sf   |  j  j |  j d d d d } t | d d  |  j  j |  j d d d d } t | d d  d  S(   Nt   methodt   guerrerot   window_lengthi   gAEŐŻt>ŕ?i   g%ťĎqŕ?(   R   R   R
   R    (   R   t   lmbda(    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_valid_guerrero4   s    !!c         C   s/   |  j  j |  j d d } t | d d  d  S(   NR   R   g]âČEß?i   (   R   R   R
   R    (   R   R!   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_guerrero_robust_scale@   s    c         C   s/   |  j  j |  j d d } t | d d  d  S(   NR   t   loglikgÉ?i   (   R   R   R
   R    (   R   R!   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_loglik_lambda_estimationG   s    c         C   s}   |  j  j |  j  } |  j  j |  j d  } t | d | d d  |  j  j t j d d   \ } } t | d d  d  S(   NgAEŐŻt>ŕ?i    i   i   id   g      đ?i   (   R   R   R
   R    t   npt   arange(   R   t   y_transformed_no_lambdat   y_transformed_lambdaR   R!   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt"   test_boxcox_transformation_methodsL   s    
$c         C   sK   |  j  j |  j d  \ } } t | d  t | t j |  j  d  d  S(   Ng        i   (   R   R   R
   R   R    R&   t   log(   R   t   y_transform_zero_lambdaR!   (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_zero_lambdaZ   s    c         C   s   |  j  j |  j d  } |  j  j |  j d  } |  j  j d d |  } |  j  j d d |  } t |  j | d  t |  j | d  d  S(   Ng        g      ŕ?R   t   naivei   (   R   R   R
   R   R    (   R   t   y_zero_lambdat   y_half_lambdat   y_zero_lambda_unt   y_half_lambda_un(    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   test_naive_back_transformationa   s    (   t   __name__t
   __module__t   classmethodR   R   R   R   R   R"   R#   R%   R*   R-   R3   (    (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyR      s   										(    (   t   numpyR&   t   numpy.testingR    R   R   t   statsmodels.base.transformR   t   statsmodels.datasetsR   R   (    (    (    sD   lib/python2.7/site-packages/statsmodels/base/tests/test_transform.pyt   <module>   s   