
    !g                        d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	m
Z
mZ ddlmZ ej                  j                  ej                  j!                  e            Zej&                  j)                         j*                  Z ej,                         d        Zd Zej2                  j5                  dd	      d
        Zd Zd Zd Zd Zd Z d Z!d Z"d Z#y)z?
Tests of save / load / remove_data state space functionality.
    N)datasets)sarimax
structuralvarmaxdynamic_factor)assert_allclosec               #      K   t        j                         \  } }| 	 t        j                  |        t        j                  |       y # t
        $ r t        dj                  |             Y y w xY ww)Nz)Couldn't close or delete file {filename}.)filename)tempfilemkstemposcloseunlink	Exceptionprintformat)fdr
   s     g/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_save.pytemp_filenamer      s`     ##%LB
N7

		( 7 "FHF5	77s(   A4*A
 	A4
$A1.A40A11A4c                    t        j                  t        d   j                  d      }|j	                  |j
                        }|j                          |j                  |        t         j                  j                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y Nrealgdp      r   orderr   SARIMAX	macrodatavaluessmoothstart_paramssummarysaveSARIMAXResultsloadr   paramsbsellfr   modresres2s       r   test_sarimaxr/      s    
//)I.55Y
GC
**S%%
&CKKMHH]!!&&}5DCJJ,CGGTXX&CGGTXX&    r   )r   )r   r   r   )r      r   c                    t        j                  t        d   j                  |      }|j	                  |j
                        }|j                          |j                  | d       t         j                  j                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y )Nr   r   T)remove_datar   )r   r   r,   r-   r.   s        r   test_sarimax_save_remove_datar4   +   s    
//)I.55U
CC
**S%%
&CKKMHH]H-!!&&}5DCJJ,CGGTXX&CGGTXX&r0   c                     t        j                  t        d   j                  d      } t	        j
                  t	        j                  |             }| j                  | j                        }|j                  | j                        }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y r   )r   r   r    r!   pickleloadsdumpsr"   r#   r   r(   r)   r*   r,   pkl_modr-   pkl_ress       r   test_sarimax_pickler<   7   s    
//)I.55Y
GCll6<<,-G
**S%%
&CnnS--.GCJJ/CGGW[[)CGGW[[)r0   c                    t        j                  t        d   j                  d      }|j	                  |j
                        }|j                          |j                  |        t         j                  j                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y Nr   llevel)r   UnobservedComponentsr    r!   r"   r#   r$   r%   UnobservedComponentsResultsr'   r   r(   r)   r*   r+   s       r   test_structuralrB   C   s    

)
))##X/C
**S%%
&CKKMHH]1166}EDCJJ,CGGTXX&CGGTXX&r0   c                     t        j                  t        d   j                  d      } t	        j
                  t	        j                  |             }| j                  | j                        }|j                  |j                        }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y r>   )r   r@   r    r!   r6   r7   r8   r"   r#   r   r(   r)   r*   r9   s       r   test_structural_picklerD   O   s    

)
))##X/Cll6<<,-G
**S%%
&CnnW112GCJJ/CGGW[[)CGGW[[)r0   c                    t        j                  t        ddg   j                         j                  dd  j
                  dd      }|j                  |j                        }|j                          |j                  |        t         j                  j                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y )Nr   realconsr   )	k_factorsfactor_order)r   DynamicFactorr    diffilocr!   r"   r#   r$   r%   DynamicFactorResultsr'   r   r(   r)   r*   r+   s       r   test_dynamic_factorrM   \   s    

&
&9j)*//166qr:AAQC **S%%
&CKKMHH]..33MBDCJJ,CGGTXX&CGGTXX&r0   c                 J   t        j                  t        ddg   j                         j                  dd  j
                  d      }t        j                  t        j                  |            }|j                  |j                        }|j                  |j                        }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         |j                          |j!                  |        t         j"                  j%                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y Nr   rF   r   )r   r   r   )r   VARMAXr    rJ   rK   r!   r6   r7   r8   r"   r#   r   r(   r)   r*   r$   r%   VARMAXResultsr'   )r   r,   r:   r-   r;   r.   s         r   test_dynamic_factor_picklerR   i   s   
--9j)*//166qr:AAC ll6<<,-G
**S%%
&CnnS--.GCJJ/CGGW[[)CGGW[[)KKMHH]$$]3DCJJ,CGGTXX&CGGTXX&r0   c                    t        j                  t        ddg   j                         j                  dd  j
                  d      }|j                  |j                        }|j                          |j                  |        t         j                  j                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y rO   r   rP   r    rJ   rK   r!   r"   r#   r$   r%   rQ   r'   r   r(   r)   r*   r+   s       r   test_varmaxrU   ~   s    
--9j)*//166qr:AAC **S%%
&CKKMHH]$$]3DCJJ,CGGTXX&CGGTXX&r0   c                    t        j                  t        ddg   j                         j                  dd  j
                  d      }|j                  |j                        }|j                          |j                  |        t         j                  j                  |       }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y rO   rT   r+   s       r   test_varmax_picklerW      s    
--9j)*//166qr:AAC **S%%
&CKKMHH]$$]3DCJJ,CGGTXX&CGGTXX&r0   c                      t         j                  j                  t        dd      } t        j
                  j                  |       }t        |t        j                        sJ y )Nresultszsm-0.9-sarimax.pkl)	r   pathjoincurrent_pathr   r&   r'   
isinstanceSARIMAXResultsWrapper)pkl_fileloadeds     r   test_existing_picklera      sE    ww||L)5IJH##((2Ffg;;<<<r0   )$__doc__r6   r   r   pyteststatsmodelsr   statsmodels.tsa.statespacer   r   r   r   numpy.testingr   rZ   dirnameabspath__file__r\   r    load_pandasdatafixturer   r/   markparametrizer4   r<   rB   rD   rM   rR   rU   rW   ra    r0   r   <module>rp      s     	    8 8 )wwrwwx89**,11	 7 7' "CD' E'	*	'
*
''*
''=r0   