
    ,YHh                        d dl mZ d dlmZmZmZmZ d dlmZ d dl	Z	d dl
Zd dlmZ  e       Ze	j                  j!                  d e        ed       ed	d
       eddd      g      d        Ze	j                  j!                  d e        ed       edd
       eddd      g      d        Ze	j                  j!                  d ed       ed	d       ed      g      d        Zd Zd Zd Zd Zd  Zd! Zy)"    )pytest_error_str)RollingForecastCVSlidingWindowForecastCVcheck_cvtrain_test_split)load_wineindN)assert_array_equalcv   h   
   )initialr            )r   r   stepc                    t        | j                  t                    }d }|D ][  \  }}|j                  d   | j                  k(  sJ |d   |d   | j                  z   k(  sJ ||d   || j
                  z   k(  sJ |d   }] y Nr   )listsplityshaper   r   )r
   splitslast_train_steptraintests        b/var/www/html/planif/env/lib/python3.12/site-packages/pmdarima/model_selection/tests/test_split.py test_rolling_forecast_cv_passingr!      s     "((1+FO $tzz!}$$$Bx59rtt++++&9"'' 9999)$    *   )window_sizer   C   )r$   r   r   c                    t        | j                  t                    }d }d }|D ]  \  }}|j                  d   | j                  k(  sJ |d   |d   | j                  z   k(  sJ ||d   || j
                  z   k(  sJ |d   }||j                  d   |k(  sJ |j                  d   }| j                  s| j                  |j                  d   k(  rJ  y r   )r   r   r   r   r   r   r$   )r
   r   r   last_window_sizer   r   s         r     test_sliding_forecast_cv_passingr(   #   s     "((1+FO 4tzz!}$$$Bx59rtt++++&9"'' 9999)';;q>%5555 ;;q> >>>>U[[^3334r"   r   )r   d   i  )r$   c                     t        j                  t              5  t        | j	                  t
                     d d d        y # 1 sw Y   y xY w)N)pytestraises
ValueErrorr   r   r   r
   s    r    test_cv_split_value_errorsr/   A   s5     
z	" RXXa[  s   AAc                      t        j                  t              5  t        d      f d d d        t        j                  t              5  t        d      f d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)Nr   r   )r   )r+   r,   r-   r    r"   r     test_cv_constructor_value_errorsr2   M   sa    	z	" !B ! 
z	" $r"#$ $! !$ $s   A 	A, A),A5c                      t        d      } t        |       | u sJ t        t        d       t              sJ t	        j
                  t              5  t        d       d d d        y # 1 sw Y   y xY w)Nr   r   zsomething else)r   r   
isinstancer   r+   r,   	TypeErrorr.   s    r    test_check_cvr6   U   s]    	 2	&BB<2htn&7888	y	! #!"# # #s   A%%A.c                      t        t        d      \  } }|j                  d   dk(  sJ t        t        t	        j
                  | |g             y )Nr   )	test_sizer   )r   r   r   r	   npconcatenate)trtes     r    test_train_test_splitr=   ^   s?    a2.FB88A;"q".."b23r"   c                      t        ddd      } t        j                  t              5 }t	        | j                  t                     d d d        dt              v sJ y # 1 sw Y   xY w)N      r   r$   r   r   z> 2)r   r+   r,   r-   r   r   r   r   )r
   ves     r    test_bad_window_sizerC   d   sW    	 QQ!	<B	z	" bRXXa[$R(((( s   AA(c                     t         d d } t        ddd      }|j                  |       }t        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d	      ft        j                  d
d      t        j
                  g d      ft        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d      fg}t        |      D ],  \  }\  }}t        |||   d          t        |||   d          . t        j                  t              5  t        |       d d d        y # 1 sw Y   y xY w)Nr)   Z   r@   r   rA   r   rE   [   \   ]   rG   rG   rH   rI   ^   r?   rH   rH   rI   rK   _      rI   rI   rK   rM   `   rK   rK   rM   rP   a      rM   rM   rP   rR   b      rP   rP   rR   rU   c   )r   r   r   r9   arangearray	enumerater	   r+   r,   StopIterationnextendogr
   genexpectedir   r   s          r    test_issue_364_bad_splitsrc   k   sh   dsGE	 Ra1	=B
((5/C 
1b	288$456	1b	288$456	1b	288$456	1b	288$456	1b	288$456	1b	288$456	1b	288$456H &cN 1=E45(1+a.14!Q01
 
}	% S	     2GGc                     t         d d } t        ddd      }|j                  |       }t        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d	      ft        j                  dd
      t        j
                  g d      ft        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d      ft        j                  dd      t        j
                  g d      fg}t        |      D ],  \  }\  }}t        |||   d          t        |||   d          . t        j                  t              5  t        |       d d d        y # 1 sw Y   y xY w)Nr)   rE   r@   r   )r   r   r   r   rF   rG   rJ   rH   rL   rI   rO   rK   rQ   rM   rT   rP   rW   )r   r   r   r9   rY   rZ   r[   r	   r+   r,   r\   r]   r^   s          r    #test_rolling_forecast_cv_bad_splitsrf      sh   dsGE	2A	3B
((5/C 
1b	288$456	1b	288$456	1b	288$456	1b	288$456	1b	288$456	1b	288$456	1b	288$456H &cN 1=E45(1+a.14!Q01
 
}	% S	  rd   )pmdarima.compat.pytestr   pmdarima.model_selectionr   r   r   r   pmdarima.datasetsr   r+   numpyr9   numpy.testingr	   r   markparametrizer!   r(   r/   r2   r6   r=   rC   rc   rf   r1   r"   r    <module>rn      s(   48 8 *   ,N A#,"3	
$
$ !!$B"5B"1=	44, "%#-C0
$#4)2r"   