Commit | Line | Data |
---|---|---|
a65907cc | 1 | context("Check that computeFilaments behaves as expected") |
1e20780e | 2 | |
a65907cc BA |
3 | test_that("output is as expected on simulated series", |
4 | { | |
5 | x = seq(0,10,0.1) | |
6 | L = length(x) | |
7 | s1 = cos(x) | |
8 | s2 = sin(x) | |
9 | s3 = c( s1[1:(L%/%2)] , s2[(L%/%2+1):L] ) | |
10 | #sum((s1-s2)^2) == 97.59381 | |
11 | #sum((s1-s3)^2) == 57.03051 | |
12 | #sum((s2-s3)^2) == 40.5633 | |
13 | s = list( s1, s2, s3 ) | |
14 | n = 150 | |
15 | series = list() | |
16 | for (i in seq_len(n)) | |
1e20780e | 17 | { |
a65907cc BA |
18 | index = (i%%3) + 1 |
19 | level = mean(s[[index]]) | |
20 | serie = s[[index]] - level + rnorm(L,sd=0.05) | |
21 | # 10 series with NAs for index 2 | |
22 | if (index == 2 && i >= 60 && i<= 90) | |
23 | serie[sample(seq_len(L),1)] = NA | |
24 | series[[i]] = list("level"=level,"serie"=serie) #no need for more | |
1e20780e | 25 | } |
a65907cc BA |
26 | data = new("Data", data=series) |
27 | ||
28 | # index 142 : serie type 2 | |
29 | f2 = computeFilaments(data, 142, limit=60, plot=FALSE) | |
30 | # Expected output: 22 series of type 3 (closer), then 50-2-10 series of type 2 | |
31 | # | |
32 | # | |
33 | # | |
34 | # | |
35 | # | |
36 | # | |
37 | # Simulate shift at origin when predict_at > 0 | |
38 | series[2:(n+1)] = series[1:n] | |
39 | series[[1]] = list("level"=0, "serie"=s[[1]][1:(L%/%2)]) | |
40 | # index 143 : serie type 3 | |
41 | f3 = computeFilaments(data, 143, limit=70, plot=FALSE) | |
42 | # Expected output: 22 series of type 2 (closer) then 50-2 series of type 3 | |
43 | # ATTENTION au shift | |
44 | # | |
45 | # | |
46 | # index 144 : serie type 1 | |
47 | f1 = computeFilaments(data, 144, limit=50, plot=FALSE) | |
48 | # Expected output: 2 series of type 3 (closer), then 50-2 series of type 1 | |
49 | # | |
50 | expect_that( diff_norm, is_less_than(0.5) ) | |
1e20780e | 51 | }) |