context("test-graphics")
tsbl_co2 <- as_tsibble(co2)
tsbl_ped <- tsibble::pedestrian %>%
filter(Sensor == "Southern Cross Station",
yearmonth(Date) == yearmonth("2015 Jan"))
test_that("gg_season() plots", {
p <- gg_season(tsbl_co2, value)
expect_equal(
ggplot2::layer_data(p)$y,
tsbl_co2$value
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p)$colour)),
rep(12, 39)
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "index", y = "value")
)
p <- gg_season(tsbl_ped, Count, "day")
expect_equal(
ggplot2::layer_data(p)$y,
tsbl_ped$Count
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p)$colour)),
rep(24, 31)
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "Date_Time", y = "Count")
)
})
test_that("gg_season() plot labels", {
p <- gg_season(tsbl_co2, value, labels = "both")
expect_equal(
ggplot2::layer_data(p)$y,
tsbl_co2$value
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p)$colour)),
rep(12, 39)
)
expect_equal(
c(ggplot2::layer_data(p,2)$label, ggplot2::layer_data(p,3)$label),
ordered(rep(1959:1997, 2))
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "index", y = "value")
)
})
test_that("gg_season() facets", {
p <- gg_season(tsbl_co2, value, facet_period = "10 year", labels = "both")
# expect_equal(
# ggplot2::layer_data(p)$y,
# tsbl_co2$value
# )
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p)$colour)),
rep(12, 39)
)
expect_equal(
c(ggplot2::layer_data(p,2)$label, ggplot2::layer_data(p,3)$label),
ordered(rep(1959:1997, 2))
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "index", y = "value")
)
})
test_that("gg_subseries() plots", {
p <- gg_subseries(tsbl_co2, value)
expect_equal(
ggplot2::layer_data(p)$y,
tsbl_co2$value[order((seq_along(tsbl_co2$value) - 1)%%12)]
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p)$PANEL)),
rep(39, 12)
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "index", y = "value")
)
p <- gg_subseries(tsbl_ped, Count, "day")
expect_equal(
ggplot2::layer_data(p)$y,
tsbl_ped$Count[order((seq_along(tsbl_ped$Count) - 1)%%24)]
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p)$PANEL)),
rep(31, 24)
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "Date_Time", y = "Count")
)
})
test_that("gg_lag() plots", {
p <- gg_lag(tsbl_co2, value)
expect_equal(
ggplot2::layer_data(p, 2)$x,
do.call(c, map(seq_len(9), function(i)
tsbl_co2$value[seq_len(length(tsbl_co2$value) - i)]))
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p, 2)$PANEL)),
length(tsbl_co2$value) - seq_len(9)
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "lag(value, n)", y = "value")
)
p <- gg_lag(tsbl_co2, value, lags = c(1, 4, 9))
expect_equal(
ggplot2::layer_data(p, 2)$x,
do.call(c, map(c(1, 4, 9),
function(i) tsbl_co2$value[seq_len(length(tsbl_co2$value) - i)]))
)
expect_equivalent(
as.numeric(table(ggplot2::layer_data(p, 2)$PANEL)),
length(tsbl_co2$value) - c(1, 4, 9)
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "lag(value, n)", y = "value")
)
})
test_that("gg_tsdisplay() plots", {
p <- gg_tsdisplay(tsbl_co2, value)
expect_s3_class(
p, "gg_tsensemble"
)
expect_equal(
ggplot2::layer_data(p[[1]], 1)$y,
tsbl_co2$value
)
p_built <- ggplot2::ggplot_build(p[[1]])
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "index", y = "value")
)
p <- p + ggplot2::labs(x = "x", y = "y", title = "title")
p_built <- ggplot2::ggplot_build(p[[1]])
expect_equivalent(
p_built$plot$labels[c("x", "y", "title")],
list(x = "x", y = "y", title = "title")
)
p_built <- ggplot2::ggplot_build(p[[2]])
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "lag [1M]", y = "acf")
)
p_built <- ggplot2::ggplot_build(p[[3]])
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "index", y = "value")
)
p <- gg_tsdisplay(tsbl_co2, value, plot_type = "histogram")
p_built <- ggplot2::ggplot_build(p[[3]])
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "value", y = "count")
)
p <- gg_tsdisplay(tsbl_co2, value, plot_type = "scatter")
expect_equal(
ggplot2::layer_data(p[[3]], 1)$y,
tsbl_co2$value[-1]
)
p_built <- ggplot2::ggplot_build(p[[3]])
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = expression(Y[t - 1]), y = expression(Y[t]))
)
p <- gg_tsdisplay(tsbl_co2, value, plot_type = "spectrum")
p_built <- ggplot2::ggplot_build(p[[3]])
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "frequency", y = "spectrum")
)
})
test_that("gg_arma() plots", {
skip_if_not_installed("fable")
mdl <- tsbl_co2 %>%
fabletools::model(fable::ARIMA(value ~ 0 + pdq(1,1,1) + PDQ(1,1,2)))
p <- gg_arma(mdl)
smmry <- fabletools::glance(mdl)
ar_roots <- smmry$ar_roots[[1]]
ma_roots <- smmry$ma_roots[[1]]
expect_equal(
ggplot2::layer_data(p, 4)$y,
c(Im(1/ar_roots), Im(1/ma_roots))
)
expect_equal(
ggplot2::layer_data(p, 4)$x,
c(Re(1/ar_roots), Re(1/ma_roots))
)
expect_equal(
ggplot2::layer_data(p, 4)$PANEL,
factor(c(rep_along(ar_roots, 1), rep_along(ma_roots, 2)))
)
p_built <- ggplot2::ggplot_build(p)
expect_equivalent(
p_built$plot$labels[c("x", "y")],
list(x = "Re(1/root)", y = "Im(1/root)")
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.