test_that("Verify Input Formats", { dfts(dfts(electricity)) if (requireNamespace("fda", quietly = TRUE)) { tmp <- dfts(fda::Data2fd(1:24, electricity$data)) expect_equal(tmp$data[2, 7], electricity$data[2, 7]) } if (requireNamespace("fda.usc", quietly = TRUE)) { tmp <- dfts(fda.usc::fdata(t(electricity$data))) expect_equal(tmp$data[2, 7], electricity$data[2, 7]) } if (requireNamespace("rainbow", quietly = TRUE)) { tmp <- dfts(suppressWarnings(rainbow::fts(x = 1:nrow(electricity$data), y = electricity$data))) expect_equal(tmp$data[2, 7], electricity$data[2, 7]) tmp <- dfts(rainbow::fds(1:nrow(electricity$data), electricity$data)) expect_equal(tmp$data[2, 7], electricity$data[2, 7]) } if (requireNamespace("funData", quietly = TRUE)) { tmp <- dfts(funData::funData(1:24, t(electricity$data))) expect_equal(tmp$data[2, 7], electricity$data[2, 7]) } tmp <- dfts(electricity) expect_equal(tmp$data[2, 7], electricity$data[2, 7]) }) test_that("Check inheritance of dfts", { expect_false(is.dfts(electricity$data)) expect_true(is.dfts(electricity)) }) test_that("Check math of dfts", { elec <- dfts(electricity) expect_equal((elec + elec)$data[8, 7], electricity$data[8, 7] * 2) expect_equal(sum((elec - elec)$data), 0) expect_equal(round(sqrt(elec)$data[8, 9], 5), 6.64605) expect_equal(min(elec)$data[1:3], c(0.2, 0.0, 0.0)) expect_equal(max(elec)$data[1:3], c(67.2, 64.6, 62.68)) expect_equal(mean(elec)[15], mean(electricity$data[15, ])) expect_equal(median(elec)[8], median(electricity$data[8, ])) expect_equal( quantile(elec, probs = 0.95)[1, ], quantile(electricity$data[1, ], prob = 0.95)[[1]] ) }) test_that("Check lag of dfts", { elec <- dfts(electricity) expect_equal(dim(lag(elec, 1)), c(24, 364)) expect_equal(lag(elec, lag = 1, difference = 2)$data[22, 42], 18.69) }) test_that("Check [ or [<-", { expect_equal(electricity[8, 10]$data[[1]], 51.3) expect_equal(electricity[1]$data[5], 0.5) # All 4 indices replacement tmp <- dfts(matrix(1:9, 3, 3)) tmp[1, 2] <- 1 expect_equal(tmp[1, 2]$data[1], 1) tmp[, 2] <- 2 expect_equal(sum(tmp$data[, 2]), 6) tmp[1, ] <- 3 expect_equal(sum(tmp$data[1, ]), 9) tmp[2:3, 1:2] <- 5 expect_equal(sum(tmp$data[2:3, 1:2]), 20) tmp[1, ] <- 1:3 expect_equal(sum(tmp$data[1, ]), 6) tmp[c(1, 3), ] <- 1 expect_equal(sum(tmp$data[c(1, 3), ]), 6) # 3 indices replacement tmp <- dfts(matrix(1:9, 3, 3)) tmp[2] <- 1 expect_equal(sum(tmp$data[, 2]), 3) tmp[2] <- 1:3 expect_equal(sum(tmp$data[, 2]), 6) tmp[c(1, 3)] <- 1 expect_equal(sum(tmp$data[, c(1, 3)]), 6) # dfts addition tmp <- dfts(matrix(1:9, 3, 3)) tmp[, 2:3] <- tmp[, 2:3] + 1 expect_equal(sum(tmp$data[, 2:3]), 6 + sum(4:9)) tmp <- dfts(matrix(1:9, 3, 3)) tmp[1, ] <- tmp[1, ] + 1 expect_equal(sum(tmp$data[1, ]), 3 + sum(c(1, 4, 7))) tmp <- dfts(matrix(1:9, 3, 3)) tmp[c(1, 3), ] <- tmp[c(1, 3), ] + 1 expect_equal(sum(tmp$data[c(1, 3), ]), 2 * 3 + sum(c(1, 3, 4, 6, 7, 9))) tmp <- dfts(matrix(1:9, 3, 3)) tmp[3] <- tmp[3] + 1 expect_equal(sum(tmp$data[, 3]), 3 + sum(c(7, 8, 9))) tmp <- dfts(matrix(1:9, 3, 3)) tmp[c(1, 3)] <- tmp[c(1, 3)] + 1 expect_equal(sum(tmp$data[, c(1, 3)]), 2 * 3 + sum(c(1:3, 7:9))) })