@@ -551,6 +551,66 @@ def test_multiple_targets(self):
551551 self .assertEqual (len (seq .target ), 2 )
552552 self .assertIn ("value" , seq .target )
553553 self .assertIn ("value2" , seq .target )
554+ x , y = seq [0 ]
555+ self .assertEqual (x .shape [- 1 ], 2 )
556+ self .assertEqual (y .shape [- 1 ], 2 )
557+
558+ def test_feature_columns_are_included_in_encoder_inputs (self ):
559+ seq = TimeSeriesSequence (
560+ data = self .data ,
561+ time_idx = "date" ,
562+ target_column = "value" ,
563+ feature_columns = ["feature1" , "feature2" ],
564+ train_sequence_length = 10 ,
565+ predict_sequence_length = 1 ,
566+ )
567+ x , y = seq [0 ]
568+ self .assertEqual (x .shape [- 1 ], 3 )
569+ self .assertEqual (y .shape [- 1 ], 1 )
570+ np .testing .assert_allclose (x [0 , :, 1 ], self .data ["feature1" ].iloc [:10 ])
571+
572+ def test_generated_feature_columns_are_included_in_encoder_inputs (self ):
573+ config = {"date_features" : {"type" : "datetime" , "features" : ["dayofweek" ], "time_col" : "date" }}
574+ seq = TimeSeriesSequence (
575+ data = self .data ,
576+ time_idx = "date" ,
577+ target_column = "value" ,
578+ feature_columns = ["date_dayofweek" ],
579+ train_sequence_length = 10 ,
580+ predict_sequence_length = 1 ,
581+ feature_config = config ,
582+ )
583+ x , y = seq [0 ]
584+ self .assertEqual (x .shape [- 1 ], 2 )
585+ self .assertEqual (y .shape [- 1 ], 1 )
586+ np .testing .assert_allclose (x [0 , :, 1 ], self .data ["date" ].dt .dayofweek .iloc [:10 ])
587+
588+ def test_one_step_horizon_and_boundary_continuity (self ):
589+ data = pd .DataFrame ({"time" : [0 , 1 , 2 , 4 , 5 ], "value" : np .arange (5 )})
590+ seq = TimeSeriesSequence (
591+ data = data ,
592+ time_idx = "time" ,
593+ target_column = "value" ,
594+ train_sequence_length = 2 ,
595+ predict_sequence_length = 1 ,
596+ )
597+ self .assertEqual (len (seq .sequences ), 1 )
598+ np .testing .assert_array_equal (seq .sequences [0 ][0 ][:, 0 ], [0 , 1 ])
599+ np .testing .assert_array_equal (seq .sequences [0 ][1 ][:, 0 ], [2 ])
600+
601+ def test_inference_mode_uses_latest_complete_window (self ):
602+ data = pd .DataFrame ({"time" : range (5 ), "value" : np .arange (5 )})
603+ seq = TimeSeriesSequence (
604+ data = data ,
605+ time_idx = "time" ,
606+ target_column = "value" ,
607+ train_sequence_length = 3 ,
608+ predict_sequence_length = 2 ,
609+ mode = "inference" ,
610+ )
611+ self .assertEqual (len (seq .sequences ), 3 )
612+ np .testing .assert_array_equal (seq .sequences [- 1 ][0 ][:, 0 ], [2 , 3 , 4 ])
613+ self .assertEqual (seq .sequences [- 1 ][1 ].shape , (2 , 1 ))
554614
555615 def test_multiple_targets_as_list (self ):
556616 """Test target column provided as list."""
0 commit comments