
    'YHhu                     L    d dl Zd dlmZmZmZ d dlmZ d dlm	Z	  G d d      Z
y)    N)assert_almost_equalassert_equalassert_raises)BoxCox)	macrodatac                   X    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zy)TestTransformc                     t        j                         }|j                  d   j                  | _        t               | _        y )Nrealgdp)r   load_pandasdatavaluesxr   bc)clsr   s     ^/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/base/tests/test_transform.pysetup_classzTestTransform.setup_class	   s/    $$&		)$++    c                     g d}t        t        | j                  j                  |       g d}t        t        | j                  j                  |       y )N)   r   )r   r   r   )r   
ValueErrorr   transform_boxcox)selfys     r   test_nonpositivezTestTransform.test_nonpositive   s:    j$''":":A> j$''":":A>r   c                     t        t        | j                  j                  | j                  d       t        t        | j                  j                  | j                  d       y )N)      )r   r   r   r   r   _est_lambdar   r   s    r   test_invalid_boundsz!TestTransform.test_invalid_bounds   s<    j$''"5"5tvvzJ 	j$''"5"5tvvwGr   c                     t        t        | j                  j                  | j                  dd       t        t        | j                  j
                  | j                  dd       y )N)r   r   testr   )r   r   r   r"   r   untransform_boxcoxr#   s    r   test_unclear_methodsz"TestTransform.test_unclear_methods   sF     	j$''"5"5ffgv	/j$''"<"<ffa	)r   c                    t        t        | j                  j                  | j                  d       | j                  j                  | j                  d       | j                  j                  | j                  d       | j                  j                  | j                  d       | j                  j                  | j                  d       y )Nr&   scalemadMADsdSDr!   r#   s    r   test_unclear_scale_parameterz*TestTransform.test_unclear_scale_parameter'   s     	j$''"5"5ffF	, 	DFF%0DFF%0DFF$/DFF$/r   c                     | j                   j                  | j                  dd      }t        |dd       | j                   j                  | j                  dd      }t        |dd       y )Nguerrero   )methodwindow_lengthAEկt>?r   g%q?r   r"   r   r   r   lmbdas     r   test_valid_guerreroz!TestTransform.test_valid_guerrero4   s\     ##DFF:Q#OE8Q/ ##DFF:Q#OE8Q/r   c                 l    | j                   j                  | j                  d      }t        |dd       y )Nr,   r*   g]E?r3   r7   r8   s     r   test_guerrero_robust_scalez(TestTransform.test_guerrero_robust_scale@   s-     ##DFF%#8E8Q/r   c                 l    | j                   j                  | j                  d      }t        |dd       y )Nloglik)r4   g?r   r7   r8   s     r   test_loglik_lambda_estimationz+TestTransform.test_loglik_lambda_estimationG   s+    ##DFF8#<E3*r   c                 >   | j                   j                  | j                        }| j                   j                  | j                  d      }t        |d   |d   d       | j                   j                  t	        j
                  dd            \  }}t        |dd       y )Nr6   r   r    r   d   g      ?   )r   r   r   r   nparange)r   y_transformed_no_lambday_transformed_lambdar   r9   s        r   "test_boxcox_transformation_methodsz0TestTransform.test_boxcox_transformation_methodsL   s     #'''":":466"B#ww77I3A603Q	8
 77++BIIa,=>5E2q)r   c                     | j                   j                  | j                  d      \  }}t        |d       t	        |t        j                  | j                        d       y )N        rB   )r   r   r   r   r   rC   log)r   y_transform_zero_lambdar9   s      r   test_zero_lambdazTestTransform.test_zero_lambdaZ   sE    )-)A)A$&&")M&UB3RVVDFF^QGr   c                 h   | j                   j                  | j                  d      }| j                   j                  | j                  d      } | j                   j                  |ddi} | j                   j                  |ddi}t	        | j                  |d       t	        | j                  |d       y )NrI   g      ?r4   naiverB   )r   r   r   r'   r   )r   y_zero_lambday_half_lambday_zero_lambda_uny_half_lambda_uns        r   test_naive_back_transformationz,TestTransform.test_naive_back_transformationa   s    00<00<547755} F=DF547755} F=DF 	DFF$4a8DFF$4a8r   N)__name__
__module____qualname__classmethodr   r   r$   r(   r0   r:   r<   r?   rG   rL   rS    r   r   r	   r	      sH     
?H)0
00+
*H9r   r	   )numpyrC   numpy.testingr   r   r   statsmodels.base.transformr   statsmodels.datasetsr   r	   rX   r   r   <module>r]      s      L L / *e9 e9r   