tests/testthat/test-timewise.R

test_that("difference() input", {
  expect_error(difference(1:10, lag = -1), "must be positive integers.")
  expect_error(difference(1:10, differences = -1), "must be positive integers.")
})

test_that("difference() output", {
  expect_equal(difference(1:10, 2), c(rep(NA, 2), diff(1:10, 2)))
  expect_equal(difference(1:10, 2, 2), c(rep(NA, 4), diff(1:10, 2, 2)))
  x <- cumsum(cumsum(1:10))
  expect_equal(difference(x, lag = 2), c(rep(NA, 2), diff(x, lag = 2)))
  expect_equal(difference(x, 1, 2), c(rep(NA, 2), diff(x, 1, 2)))
  # expect_equal(difference(x, 10, 2), diff(x, 10, 2))
})

tsbl <- tsibble(year = 2000:2005, value = (0:5)^2, index = year)

test_that("difference() with `order_by`", {
  msg <- "Current temporal order."
  expect_warning(scrambled <- tsbl %>% slice(sample(nrow(.))), msg)
  # expect_warning(
  #   right <- mutate(scrambled, diff = difference(value, order_by = year)), msg)
  # expect_equal(sort(right$diff, na.last = FALSE), difference(tsbl$value))
})


test_that("difference() with short time series (#310)", {
  expect_length(difference(1, differences = 3), 1L)
})

Try the tsibble package in your browser

Any scripts or data that you put into this service are public.

tsibble documentation built on June 27, 2024, 5:06 p.m.