apexcharter/tests/testthat/test-apex.R

140 lines
4.1 KiB
R

context("apex")
test_that("apex works", {
meteo <- data.frame(
month = month.name,
tmax = c(7, 8, 12, 15, 19, 23, 25, 25, 21, 16, 11, 8),
tmin = c(3, 3, 5, 7, 11, 14, 16, 16, 13, 10, 6, 3)
)
column <- apex(data = meteo, mapping = aes(x = month, y = tmax), type = "column")
expect_is(column, "apexcharter")
expect_identical(column$x$ax_opts$chart$type, "bar")
expect_false(is.null(column$x$ax_opts$series))
line <- apex(data = meteo, mapping = aes(x = month, y = tmax), type = "line")
expect_is(line, "apexcharter")
expect_identical(line$x$ax_opts$chart$type, "line")
expect_false(is.null(line$x$ax_opts$series))
pie <- apex(data = meteo, mapping = aes(x = month, y = tmax), type = "pie")
expect_is(pie, "apexcharter")
expect_identical(pie$x$ax_opts$chart$type, "pie")
expect_false(is.null(pie$x$ax_opts$series))
candlestick <- apex(
candles,
aes(x = datetime, open = open, close = close, low = low, high = high),
type = "candlestick"
)
expect_is(candlestick, "apexcharter")
expect_identical(candlestick$x$ax_opts$chart$type, "candlestick")
expect_false(is.null(candlestick$x$ax_opts$series))
tl <- data.frame(
x = month.abb,
start = Sys.Date() + 1:12,
end = Sys.Date() + 1:12 * 3
)
timeline <- apex(tl, aes(x = x, start = start, end = end), "timeline")
expect_is(timeline, "apexcharter")
expect_identical(timeline$x$ax_opts$chart$type, "rangeBar")
expect_false(is.null(timeline$x$ax_opts$series))
hm <- expand.grid(year = 2000:2010, month = month.name)
hm$value <- sample.int(1e4, nrow(hm))
heatmap <- apex(
data = hm,
type = "heatmap",
mapping = aes(x = year, y = month, fill = value)
) %>%
ax_dataLabels(enabled = FALSE) %>%
ax_colors("#008FFB")
expect_is(heatmap, "apexcharter")
expect_identical(heatmap$x$ax_opts$chart$type, "heatmap")
expect_false(is.null(heatmap$x$ax_opts$series))
})
test_that("is_x_datetime works", {
expect_true(is_x_datetime(list(x = Sys.Date())))
expect_true(is_x_datetime(list(x = Sys.time())))
expect_false(is_x_datetime(list(x = letters)))
})
test_that("list1 works", {
expect_is(list1(1), "list")
expect_is(list1(1:2), "integer")
expect_length(list1(1:2), 2)
})
test_that("correct_type works", {
expect_identical(correct_type("bar"), "bar")
expect_identical(correct_type("column"), "bar")
expect_identical(correct_type("line"), "line")
expect_identical(correct_type("spline"), "line")
expect_identical(correct_type("pie"), "pie")
})
test_that("make_series works", {
serie <- make_series(iris, aes(x = Sepal.Length, y = Sepal.Width))
expect_is(serie, "list")
expect_length(serie, 1)
expect_length(serie[[1]], 2)
expect_named(serie[[1]], c("name", "data"))
})
test_that("make_series works with group (iris)", {
mapping <- aes(x = Sepal.Length, y = Sepal.Width, fill = Species)
mapdata <- lapply(mapping, rlang::eval_tidy, data = iris)
serie <- make_series(mapdata, mapping)
expect_is(serie, "list")
expect_length(serie, 3)
expect_length(serie[[1]], 2)
expect_named(serie[[1]], c("name", "data"))
expect_identical(
lapply(serie, function(x) {
length(x$data)
}),
as.list(unlist(tapply(mapdata$fill, mapdata$fill, length, simplify = FALSE), use.names = FALSE))
)
})
test_that("make_series works with group (mtcars)", {
mapping <- aes(x = mpg, y = disp, fill = cyl)
mapdata <- lapply(mapping, rlang::eval_tidy, data = mtcars)
expect_warning(
serie <- make_series(mapdata, mapping)
)
expect_is(serie, "list")
expect_length(serie, 3)
expect_length(serie[[1]], 2)
expect_named(serie[[1]], c("name", "data"))
expect_identical(
lapply(serie, function(x) {
length(x$data)
}),
as.list(unlist(tapply(mapdata$fill, factor(mapdata$fill, levels = unique(mapdata$fill)), length, simplify = FALSE), use.names = FALSE))
)
})
test_that("compute count", {
ax <- apex(data = mtcars, type = "column", mapping = aes(x = vs))
expect_is(ax, "apex")
ax <- apex(data = mtcars, type = "column", mapping = aes(x = vs, fill = gear))
expect_is(ax, "apex")
})