Nothing
test_that("binned scales only support continuous data", {
p <- ggplot(mtcars) + geom_bar(aes(as.character(gear))) + scale_x_binned()
expect_snapshot_error(ggplot_build(p))
p <- ggplot(mtcars) + geom_point(aes(disp, mpg, colour = as.character(gear))) + scale_color_binned()
expect_snapshot_error(ggplot_build(p))
})
test_that("binned scales limits can expand to fit breaks", {
# See also #5095
scale <- scale_x_binned(right = FALSE, show.limits = TRUE)
scale$train(c(14, 29))
limits <- scale$get_limits()
breaks <- scale$get_breaks()
new_limits <- scale$get_limits()
# Positive control
expect_equal(limits, c(14, 29))
# Test case, should have been updated in break calculation
expect_equal(new_limits, c(14, 30))
# Negative control
# Now, new limits should not be updated because limits were given instead
# of computed
scale <- scale_x_binned(right = FALSE, show.limits = TRUE,
limits = c(14, 29))
limits <- scale$get_limits()
breaks <- scale$get_breaks()
new_limits <- scale$get_limits()
expect_equal(limits, new_limits)
})
test_that("binned limits should not compute out-of-bounds breaks", {
scale <- scale_x_binned(n.breaks = 10)
scale$train(c(1, 9))
limits <- scale$get_limits()
breaks <- scale$get_breaks()
expect_length(breaks, 7) # Not the requested 10 due to oob discarding
expect_true(all(
breaks > limits[1] & breaks < limits[2]
))
})
test_that("binned scales can use NAs in limits", {
scale <- scale_x_binned(limits = c(NA, 10))
scale$train(c(-20, 20))
expect_equal(scale$get_limits(), c(-20, 10))
scale <- scale_x_binned(limits = c(-10, NA))
scale$train(c(-20, 20))
expect_equal(scale$get_limits(), c(-10, 20))
})
test_that("binned scales can calculate breaks with reverse transformation", {
scale <- scale_x_binned(transform = "reverse")
scale$train(c(1, 9))
expect_equal(scale$get_breaks(), 8:2)
})
test_that('binned scales can calculate breaks on dates', {
data <- seq(as.Date("2000-01-01"), as.Date("2020-01-01"), length.out = 100)
scale <- scale_x_binned(transform = "date")
scale$train(scale$transform(data))
breaks <- scale$get_transformation()$inverse(scale$get_breaks())
expect_s3_class(breaks, "Date")
expect_equal(
unname(breaks),
as.Date(paste0(seq(2002, 2018, by = 2), "-01-01"))
)
})
test_that('binned scales can calculate breaks on date-times', {
data <- seq(
strptime("2000-01-01", "%Y-%m-%d"),
strptime("2020-01-01", "%Y-%m-%d"),
length.out = 100
)
scale <- scale_x_binned(transform = "time")
scale$train(scale$transform(data))
breaks <- scale$get_transformation()$inverse(scale$get_breaks())
expect_s3_class(breaks, "POSIXct")
expect_equal(
unname(unclass(breaks)),
unclass(as.POSIXct(strptime(
paste0(seq(2002, 2018, by = 2), "-01-01"),
"%Y-%m-%d"
)))
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.