# input data
data1 <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF"),
date = c("1990-01-01", "1990-01-02",
"1990-01-01:1990-01-31"),
number = c(100, 1000, 10000))
data2 <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01", "1990-01-03"))
data3 <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF", "OTH"),
date = c("1990-01-01", "1990-01-02",
"1990-01-01:1990-01-31", NA),
number = c(100, 1200, 12222, 21))
test <- list(a = data1, b = data2, c = data3)
dat1 <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF"),
date = messydates::as_messydate(c("1990-01-01",
"1990-01-02",
"1990-01-01:1990-01-31")),
number = c(100, 1000, 10000))
dat2 <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = messydates::as_messydate(c("1990-01-01",
"1990-01-03")))
dat3 <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF", "OTH"),
date = messydates::as_messydate(c("1990-01-01",
"1990-01-02",
"1990-01-01:1990-01-31",
NA)),
number = c(100, 1200, 12222, 21))
test2 <- list(a = dat1, b = dat2, c = dat3)
# expected output data
data.con.con <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01",
"1990-01-02"))
data.favour <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01",
"1990-01-03"))
data.con.any <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01",
"1990-01-02"),
number = c(100, 1000))
data.13.any <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF", "OTH"),
date = c("1990-01-01", "1990-01-02",
"1990-01-01:1990-01-31", NA),
number = c(100, 1000, 10000, 21))
data.dup <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF", "OTH",
"NZL", "BRA", "CHF", "OTH"),
date = c("1990-01-01", "1990-01-02",
"1990-01-01:1990-01-31", NA,
"1990-01-01", "1990-01-02",
"1990-01-01:1990-01-31", NA),
number = c(100, 1000, 10000, 21,
100, 1000, 10000, 21))
data.con.min <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01",
"1990-01-02"),
number = c(100, 1000))
data.con.max <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01",
"1990-01-03"),
number = c(100, 1200))
data.con.median <- dplyr::tibble(manyID = c("NZL", "BRA"),
date = c("1990-01-01",
"1990-01-02"),
number = c(100, 1100))
data.multi <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF", "OTH"),
date = c("1990-01-01", "1990-01-02",
"1990-01-01", NA),
number = c(100, 1200, 12222, 21))
data.many <- dplyr::tibble(manyID = c("NZL", "BRA", "CHF", "OTH"),
number = c(100, 1100, 11111, 21),
date = c("1990-01-01", "1990-01-02",
"1990-01-16", NA))
test_that("pluck works", {
expect_equal(pluck(test, "a"), data1)
expect_equal(pluck(test, "b"), data2)
expect_equal(pluck(test, "c"), data3)
})
test_that("consolidate methods work", {
expect_equal(consolidate(test, "every", "every",
resolve = "coalesce"),
data.con.con[order(data.con.con$manyID),])
expect_equal(consolidate(test, "every", "any",
resolve = "coalesce"),
data.con.any[order(data.con.any$manyID),])
expect_equal(consolidate(test, "any", "any",
resolve = "coalesce"),
data.13.any[order(data.13.any$manyID),])
expect_equal(consolidate(test, "any", resolve = "coalesce"),
data.13.any[order(data.13.any$manyID),])
expect_equal(consolidate(datacube = test, rows = "every", cols = "any",
resolve = "min"),
data.con.min[order(data.con.min$manyID),])
expect_equal(consolidate(test, "every", "any",
resolve = "max"),
data.con.max[order(data.con.max$manyID),])
expect_equal(consolidate(test, "every", "any",
resolve = "median"),
data.con.median[order(data.con.median$manyID),])
expect_equal(consolidate(datacube = test, rows = "every", cols = "any",
resolve = "mean"),
data.con.median[order(data.con.median$manyID),])
expect_length(consolidate(test, "every", "any",
resolve = "random"), 3)
expect_equal(unname(unlist(lapply(consolidate(
datacube = test2, rows = "every", cols = "any", resolve = "min"), class))),
c("character", "Date", "numeric"))
expect_equal(unname(unlist(lapply(consolidate(
datacube = test2, rows = "every", cols = "any", resolve = "max"), class))),
c("character", "Date", "numeric"))
expect_equal(dim(consolidate(test2, "every", "any",
resolve = "median")), c(2,3))
expect_equal(dim(consolidate(datacube = test2, rows = "every", cols = "any",
resolve = "mean")), c(2,3))
expect_length(consolidate(test2, "every", "any",
resolve = "random"), 3)
expect_equal(consolidate(datacube = test2, rows = "any", cols = "any",
resolve = c(date = "min", number = "max")),
data.multi[order(data.multi$manyID),])
expect_equal(consolidate(test2, "any", "any",
resolve = c(date = "mean", number = "median")),
data.many[order(data.many$manyID),])
expect_length(consolidate(test2, "any", "any",
resolve = c(date = "coalesce",
number = "random")), 3)
expect_length(consolidate(test2, "any", "any",
resolve = "coalesce", key = c("manyID", "date")), 3)
})
test_that("favouring a dataset works", {
expect_equal(consolidate(favour(test, "b"), "every", "every",
resolve = "coalesce"),
data.favour[order(data.favour$manyID),])
expect_equal(consolidate(favor(test, "b"), "every", "every",
resolve = "coalesce"),
data.favour[order(data.favour$manyID),])
expect_equal(consolidate(favor(test, c("c", "a", "b")), "every", "every",
resolve = "coalesce"),
data.favour[order(data.favour$manyID),])
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.