a few simplifications in computeFilaments, prepare markdown report
[talweg.git] / pkg / tests / testthat / test.computeFilaments.R
index 34e07f7..ec39340 100644 (file)
@@ -8,15 +8,15 @@ I = function(i)
 getDataTest = function(n)
 {
        data = Data$new()
-       x = seq(0,10,0.1)
-       L = length(x)
+       x = seq(0,9.5,0.1)
+       L = length(x) #96 1/4h
        s1 = cos(x)
        s2 = sin(x)
        s3 = c( s1[1:(L%/%2)] , s2[(L%/%2+1):L] )
-       #sum((s1-s2)^2) == 97.59381
-       #sum((s1-s3)^2) == 57.03051
-       #sum((s2-s3)^2) == 40.5633
-       s = list( s1, s2, s3 )
+       #sum((s1-s2)^2) == 96
+       #sum((s1-s3)^2) == 58
+       #sum((s2-s3)^2) == 38
+       s = list(s1, s2, s3)
        series = list()
        for (i in seq_len(n))
        {
@@ -26,7 +26,10 @@ getDataTest = function(n)
                # 10 series with NAs for index 2
                if (I(i) == 2 && i >= 60 && i<= 90)
                        serie[sample(seq_len(L),1)] = NA
-               data$append(c(), serie, level, c(), c()) #no need for more
+               time = as.POSIXct(i*15*60, origin="2007-01-01", tz="GMT")
+               exo = runif(4)
+               exo_hat = runif(4)
+               data$append(time, serie, level, exo, exo_hat)
        }
        data
 }
@@ -36,7 +39,9 @@ test_that("output is as expected on simulated series",
        data = getDataTest(150)
 
        # index 143 : serie type 2
-       f = computeFilaments(data, 143, limit=60, plot=FALSE)
+       pred = computeForecast(data, 143, "Neighbors", "Zero",
+               horizon=length(data$getSerie(1)), simtype="endo", h_window=1)
+       f = computeFilaments(data, pred, 1, limit=60, plot=FALSE)
 
        # Expected output: 50-3-10 series of type 2, then 23 series of type 3 (closest next)
        expect_identical(length(f$neighb_indices), as.integer(60))
@@ -57,7 +62,9 @@ test_that("output is as expected on simulated series",
        expect_match(f$colors[38], "#E*")
 
        # index 142 : serie type 1
-       f = computeFilaments(data, 142, limit=50, plot=FALSE)
+       pred = computeForecast(data, 142, "Neighbors", "Zero",
+               horizon=length(data$getSerie(1)), simtype="endo", h_window=1)
+       f = computeFilaments(data, pred, 1, limit=50, plot=FALSE)
 
        # Expected output: 50-10-3 series of type 1, then 13 series of type 3 (closest next)
        # NOTE: -10 because only past days with no-NAs tomorrow => exclude type 1 in [60,90[