context("computeFilaments") test_that("output is as expected on simulated series", { data = getDataTest(150) # index 143 : serie type 2 pred = computeForecast(data, 143, "Neighbors", "Zero", horizon=length(data$getSerie(1)), simtype="endo", local=FALSE, 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)) expect_identical(length(f$colors), as.integer(60)) expect_equal(f$index, 143) expect_true(all(I(f$neighb_indices) >= 2)) for (i in 1:37) { expect_equal(I(f$neighb_indices[i]), 2) expect_match(f$colors[i], f$colors[1]) } for (i in 38:60) { expect_equal(I(f$neighb_indices[i]), 3) expect_match(f$colors[i], f$colors[38]) } expect_match(f$colors[1], "#1*") expect_match(f$colors[38], "#E*") # index 142 : serie type 1 pred = computeForecast(data, 142, "Neighbors", "Zero", horizon=length(data$getSerie(1)), simtype="endo", local=FALSE, 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[ expect_identical(length(f$neighb_indices), as.integer(50)) expect_identical(length(f$colors), as.integer(50)) expect_equal(f$index, 142) expect_true(all(I(f$neighb_indices) != 2)) for (i in 1:37) { expect_equal(I(f$neighb_indices[i]), 1) expect_match(f$colors[i], f$colors[1]) } for (i in 38:50) { expect_equal(I(f$neighb_indices[i]), 3) expect_match(f$colors[i], f$colors[38]) } expect_match(f$colors[1], "#1*") expect_match(f$colors[38], "#E*") })