test_that("we can compute summary functions on units", {
x <- 1:4
ux <- x * as_units("m")
expect_equal(as.numeric(sum(ux)), sum(x))
expect_equal(as.numeric(min(ux)), min(x))
expect_equal(as.numeric(max(ux)), max(x))
expect_equal(as.numeric(range(ux)), range(x))
expect_equal(units(sum(ux)), units(ux))
expect_equal(units(min(ux)), units(ux))
expect_equal(units(max(ux)), units(ux))
expect_equal(units(range(ux)), units(ux))
expect_error(all(ux))
expect_error(sum(ux, x))
y <- 1:4
uy <- y * as_units("km")
expect_equal(as.numeric(sum(ux, uy)), sum(c(x, 1000*y)))
expect_equal(as.numeric(min(ux, uy)), min(c(x, 1000*y)))
expect_equal(as.numeric(max(ux, uy)), max(c(x, 1000*y)))
expect_equal(as.numeric(range(ux, uy)), range(c(x, 1000*y)))
z <- 1:4 * as_units("s")
expect_error(sum(ux, z))
})
test_that("we can compute means and medians and quantiles", {
x <- 1:4
ux <- set_units(x, "lb/ton")
w <- x / 5:8
uw <- w * as_units("g")
expect_equal(as.numeric(mean(ux)), mean(x))
expect_equal(as.numeric(median(ux)), median(x))
expect_equal(as.numeric(quantile(ux)), quantile(x), ignore_attr = TRUE)
expect_equal(as.numeric(weighted.mean(ux, w)), weighted.mean(x, w))
expect_equal(as.numeric(weighted.mean(ux, uw)), weighted.mean(x, w))
})
test_that("we can format units", {
x <- 1:4
ux <- x * as_units("m")
expect_equal(format(ux), c("1 [m]", "2 [m]", "3 [m]", "4 [m]"))
})
test_that("summary works with NA values", {
x <- c(1, NA) * as_units("g")
expect_equal(summary(x), summary(as.numeric(x)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.