fix 2 tests out of 3; TODO: test forecasters
[talweg.git] / pkg / R / F_Average.R
index dab156a..ba0f003 100644 (file)
@@ -13,6 +13,22 @@ AverageForecaster = setRefClass(
                {
                        callSuper(...)
                },
+               predict = function(today, memory, horizon, ...)
+               {
+                       predicted_shape = predictShape(today, memory, horizon, ...)
+                       #Take care of never passing same_day==FALSE (when pjump == Persistence)
+                       predicted_delta =
+                               if (#as.character(substitute(pjump))=="Persistence" && #TODO: doesn't work
+                                       hasArg("same_day") && list(...)$same_day==FALSE)
+                               {
+                                       args = list(...)
+                                       args$same_day = TRUE
+                                       do.call(pjump, append(list("today"=today,"memory"=memory,"horizon"=horizon), args))
+                               }
+                               else
+                                       pjump(data, today, memory, horizon, params, ...)
+                       predicted_shape + tail(data$getSerie(today),1) - predicted_shape[1] + predicted_delta
+               },
                predictShape = function(today, memory, horizon, ...)
                {
                        avg = rep(0., horizon)