
    'YHh$                         d Z ddlZddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z)  G d d      Z* G d	 d
e*      Z+y)z
Tests for setting options in KalmanFilter, KalmanSmoother, SimulationSmoother

(does not test the filtering, smoothing, or simulation smoothing for each
option)

Author: Chad Fulton
License: Simplified-BSD
    N)FILTER_CONVENTIONALFILTER_EXACT_INITIALFILTER_AUGMENTEDFILTER_SQUARE_ROOTFILTER_UNIVARIATEFILTER_COLLAPSEDFILTER_EXTENDEDFILTER_UNSCENTEDFILTER_CONCENTRATEDFILTER_CHANDRASEKHARINVERT_UNIVARIATESOLVE_LU	INVERT_LUSOLVE_CHOLESKYINVERT_CHOLESKYSTABILITY_FORCE_SYMMETRYMEMORY_STORE_ALLMEMORY_NO_FORECASTMEMORY_NO_PREDICTEDMEMORY_NO_FILTEREDMEMORY_NO_LIKELIHOODMEMORY_NO_GAINMEMORY_NO_SMOOTHINGMEMORY_NO_STD_FORECASTMEMORY_CONSERVE)SMOOTHER_STATESMOOTHER_STATE_COVSMOOTHER_STATE_AUTOCOVSMOOTHER_DISTURBANCESMOOTHER_DISTURBANCE_COVSMOOTHER_ALL)SimulationSmootherSIMULATION_STATESIMULATION_ALL)assert_equalc                       e Zd Zed        Zy)Optionsc                     t        j                  d      }d}t        |d|d|| _        | j                  j	                  |       y )N
      )k_endogk_states)nparanger"   modelbind)clsargskwargsendogr,   s        f/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_options.pysetup_classzOptions.setup_class;   s@     		"&dq8 1)/1			u    N)__name__
__module____qualname__classmethodr6    r7   r5   r'   r'   :   s     r7   r'   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestOptionsc                    | j                   }d|_        d|_        t        |j                  t               d|_        t        |j                  t        t        z         d|_        t        |j                  t               |j                  t               t        |j                  t               |j                  dd       t        |j                  t               d|_        |j                  D ]  }t        ||d        t        |j                  t        t        z  t        z  t        z  t        z  t        z  t        z  t        z  t         z  t"        z         |j                  D ]  }t        ||d        t        |j                  d       y )Nr   TF)filter_conventionalfilter_augmented)r/   filter_methodr@   r%   r   filter_collapsedr   set_filter_methodr   filter_methodssetattrr   r   r   r	   r
   r   r   selfr/   names      r5   test_filter_methodszTestOptions.test_filter_methodsH   sq   

   %)!U((*=>!%U(((+;;	=$)!U((*:; 	 01U((*:; 	D16 	  	8U((*=>  (( 	'DE4&	'"669II!235EF./1DE !!	
 (( 	(DE4'	(U((!,r7   c                    | j                   }d|_        d|_        t        |j                  t               d|_        t        |j                  t        t        z         d|_        t        |j                  t               |j                  t               t        |j                  t               |j                  ddd       t        |j                  t        t        z         d|_        |j                  D ]  }t        ||d        t        |j                  t        t        z  t        z  t        z  t        z         |j                  D ]  }t        ||d        t        |j                  d       y )Nr   TF)invert_choleskyinvert_univariate	invert_lu)r/   inversion_methodrM   r%   r   rL   r   set_inversion_methodr   inversion_methodsrF   r   r   rG   s      r5   test_inversion_methodsz"TestOptions.test_inversion_methodsq   sF   

 "# #'U++->? $U++&8	:"'U++_= 	""9-U++Y7 	""459U 	# 	LU++&8	: "#++ 	'DE4&	'""(94~E	

 ++ 	(DE4'	(U++Q/r7   c                    | j                   }d|_        d|_        t        |j                  t               d|_        t        |j                  d       d|_        |j                  t               t        |j                  t               d|_        |j                  d       t        |j                  t               d|_        |j                  d       t        |j                  t               y )Nr   TF)stability_method)stability_force_symmetry)r/   rT   rU   r%   r   set_stability_method)rH   r/   s     r5   test_stability_methodsz"TestOptions.test_stability_methods   s    

 "# *.&U++-EF).&U++Q/ "#""#;<U++-EF "#""D"9U++-EF "#""D"AU++-EFr7   c                 R   | j                   }t        |_        d|_        t	        |j                  t
               d|_        t	        |j                  t
        t        z         d|_        t	        |j                  t               |j                  t               t	        |j                  t               |j                  dd       t	        |j                  t               d|_        |j                  D ]  }|dk(  r	t        ||d        t	        |j                  t
        t        z  t        z  t        z  t        z  t        z  t        z         t	        |j                  t         z  t                |j                  D ]  }|dk(  r	t        ||d        t	        |j                  d       y )NTF)memory_no_filteredmemory_no_predictedr   memory_conserve)r/   r   conserve_memorymemory_no_forecastr%   r   rY   r   set_conserve_memoryr   memory_optionsrF   r   r   r   r   r   rG   s      r5   test_conserve_memoryz TestOptions.test_conserve_memory   s   

 !1 $( U**,>?#' U**'*<<	>#( U**,>? 	!!"56U**,?@ 	!!T6; 	" 	=U**,>? !"(( 	'D((E4&	' 	!!!447II !#12 "89	
 	U**_<oN(( 	(D((E4'	( 	U**A.r7   c                     | j                   }d|_        d|_        t        |j                  t               d|_        t        |j                  t        t        z         d|_        t        |j                  t               |j                  t               t        |j                  t               |j                  dd       t        |j                  t               d|_        |j                  D ]  }|dk(  r	t        ||d        t        |j                  t        t        z  t        z  t        z  t        z         t        |j                  t               |j                  D ]  }|dk(  r	t        ||d        t        |j                  d       y )Nr   TF)smoother_disturbancesmoother_disturbance_covsmoother_all)r/   smoother_outputsmoother_stater%   r   rb   r   set_smoother_outputr    smoother_outputsrF   r   r   r!   rG   s      r5   test_smoother_outputsz!TestOptions.test_smoother_outputs   so   


 !"  $U**N;%)"U**#&::	<$U**,@A 	!!":;U**,DE 	!!t;@ 	" 	BU**,@A !"** 	'D~%E4&	' 	!!//2HH !#;<	

 	U**L9** 	(D~%E4'	( 	U**A.r7   c                     t        | j                  j                  t              t               t        | j                  j                  dd      t               y )NT)simulate_statesimulate_disturbance)r%   r/   get_simulation_outputr#   r$   )rH   s    r5   test_simulation_outputsz#TestOptions.test_simulation_outputs	  sL     	JJ,,-=>	 	JJ,,DBF - H	r7   N)	r8   r9   r:   rJ   rR   rW   r`   ri   rn   r<   r7   r5   r>   r>   G   s%    '-R$0LG6)/V*/X
r7   r>   ),__doc__numpyr-   (statsmodels.tsa.statespace.kalman_filterr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   *statsmodels.tsa.statespace.kalman_smootherr   r   r   r   r    r!   .statsmodels.tsa.statespace.simulation_smootherr"   r#   r$   numpy.testingr%   r'   r>   r<   r7   r5   <module>ru      sc          <  
 '
 
L' Lr7   