Nothing
skip_on_ci()
skip_if_not_installed("vdiffr")
library(ggplot2)
library(data.table)
library(vdiffr)
context("Streamline")
geo <- geopotential[date == date[1]]
geo[, c("u", "v") := GeostrophicWind(gh, lon, lat)]
basic_geom_streamline <- ggplot(geo, aes(lon, lat)) +
geom_streamline(
aes(dx = dlon(u, lat), dy = dlat(v)),
res = 1 / 3,
L = 10,
skip = 2
)
basic_stat_streamline <- ggplot(geo, aes(lon, lat)) +
stat_streamline(
aes(dx = dlon(u, lat), dy = dlat(v)),
res = 1 / 3,
L = 10,
skip = 2
)
test_that("Streamline works", {
# skip_on_ci()
writer_warnings <- function(...) suppressWarnings(vdiffr::write_svg(...))
expect_warning(
invisible(print(basic_geom_streamline)),
"Performing only 1 integration step"
)
expect_doppelganger(
"streamline-base",
basic_geom_streamline,
writer = writer_warnings
)
expect_doppelganger(
"streamline-base-stat",
basic_stat_streamline,
writer = writer_warnings
)
})
test_that("Streamline wraps in x amd y", {
# skip_on_ci()
expect_doppelganger(
"streamline-xwrapped",
ggplot(geo, aes(lon, lat)) +
geom_streamline(
aes(dx = u, dy = v),
L = 20,
skip = 2,
res = 1 / 2,
xwrap = c(0, 360)
)
)
expect_doppelganger(
"streamline-ywrapped",
ggplot(geo, aes(lat, lon)) +
geom_streamline(
aes(dx = v, dy = u),
L = 20,
skip = 2,
res = 1 / 2,
ywrap = c(0, 360)
)
)
})
test_that("Streamline ignores irregular grids", {
data <- data.frame(
lat = rnorm(10),
lon = rnorm(10),
u = rnorm(10),
v = rnorm(10)
)
g <- ggplot(data, aes(lon, lat)) +
geom_streamline(aes(dx = v, dy = u))
geo <- rbind(na.omit(geo)[1, u := 1], geo)
g2 <- ggplot(geo, aes(lon, lat)) +
geom_streamline(aes(dx = dlon(u, lat), dy = dlat(v)), L = 20)
expect_error(
invisible(print(g)),
"'x' and 'y' do not define a regular grid."
)
expect_warning(
invisible(print(g2)),
"'x' and 'y' do not define a regular grid."
)
skip_on_ci()
})
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.