@@ -1179,6 +1179,52 @@ static void cb_forecast_hopping_window(int id, struct task_check *check,
11791179 TEST_CHECK (ret == FLB_TRUE );
11801180}
11811181
1182+ static void cb_forecast_r_tumbling_window (int id , struct task_check * check ,
1183+ char * buf , size_t size )
1184+ {
1185+ int ret ;
1186+
1187+ /* Expect one record only */
1188+ ret = mp_count_rows (buf , size );
1189+ TEST_CHECK (ret == 1 );
1190+
1191+ /* Check SUM value result */
1192+ ret = mp_record_key_cmp (buf , size , 0 , "FORECAST_R" ,
1193+ MSGPACK_OBJECT_FLOAT ,
1194+ NULL , 0 , 39.0 );
1195+ TEST_CHECK (ret == FLB_TRUE );
1196+
1197+ /* Check AVG value result */
1198+ ret = mp_record_key_cmp (buf , size , 0 , "AVG(usage)" ,
1199+ MSGPACK_OBJECT_FLOAT ,
1200+ NULL , 0 , 60.0 );
1201+
1202+ TEST_CHECK (ret == FLB_TRUE );
1203+ }
1204+
1205+ static void cb_forecast_r_hopping_window (int id , struct task_check * check ,
1206+ char * buf , size_t size )
1207+ {
1208+ int ret ;
1209+
1210+ /* Expect one record only */
1211+ ret = mp_count_rows (buf , size );
1212+ TEST_CHECK (ret == 1 );
1213+
1214+ /* Check SUM value result */
1215+ ret = mp_record_key_cmp (buf , size , 0 , "FORECAST_R" ,
1216+ MSGPACK_OBJECT_FLOAT ,
1217+ NULL , 0 , 24.0 );
1218+ TEST_CHECK (ret == FLB_TRUE );
1219+
1220+ /* Check AVG value result */
1221+ ret = mp_record_key_cmp (buf , size , 0 , "AVG(usage)" ,
1222+ MSGPACK_OBJECT_FLOAT ,
1223+ NULL , 0 , 175.0 );
1224+
1225+ TEST_CHECK (ret == FLB_TRUE );
1226+ }
1227+
11821228/* Tests for 'test_window' */
11831229struct task_check window_checks [] = {
11841230 {
@@ -1210,7 +1256,7 @@ struct task_check window_checks[] = {
12101256 "ADVANCE BY 2 SECOND) WHERE word3 IS NOT NULL;" ,
12111257 cb_hopping_window_5_second
12121258 },
1213- {
1259+ { /* FORECAST */
12141260 4 , FLB_SP_WINDOW_TUMBLING , 1 , 0 ,
12151261 "timeseries_forecast_window_tumbling" ,
12161262 "SELECT AVG(usage), TIMESERIES_FORECAST(id, usage, 20) FROM " \
@@ -1224,6 +1270,20 @@ struct task_check window_checks[] = {
12241270 "STREAM:FLB WINDOW HOPPING (5 SECOND, ADVANCE BY 2 SECOND);" ,
12251271 cb_forecast_hopping_window
12261272 },
1273+ { /* FORECAST_R */
1274+ 6 , FLB_SP_WINDOW_TUMBLING , 1 , 0 ,
1275+ "timeseries_forecast_r_window_tumbling" ,
1276+ "SELECT AVG(usage), TIMESERIES_FORECAST_R(id, usage, 500, 10000) FROM " \
1277+ "STREAM:FLB WINDOW TUMBLING (5 SECOND);" ,
1278+ cb_forecast_r_tumbling_window
1279+ },
1280+ {
1281+ 7 , FLB_SP_WINDOW_HOPPING , 5 , 2 ,
1282+ "timeseries_forecast_r_window_hopping" ,
1283+ "SELECT AVG(usage), TIMESERIES_FORECAST_R(id, usage, 500, 10000) FROM " \
1284+ "STREAM:FLB WINDOW HOPPING (5 SECOND, ADVANCE BY 2 SECOND);" ,
1285+ cb_forecast_r_hopping_window
1286+ },
12271287};
12281288
12291289static void test_window ()
0 commit comments