tests/testthat/test_idleSleep.R

# Copyright © 2022 University of Kansas. All rights reserved.

testthat::test_that("Check that idle sleep carries last observation forward", {
  file <- system.file("extdata/example.gt3x", package = "agcounts")
  raw <- data.frame(read.gt3x(file))
  expect_false(any(.get_sleep(raw)))
  raw[100:250, c("X", "Y", "Z")] <- 0 # Create idle sleep mode behavior
  expect_true(any(.get_sleep(raw)))
  sf <- .get_frequency(raw)
  raw_with_first_obs <- .check_idle_sleep(raw, frequency = sf, epoch = 5, tz = "UTC", verbose = TRUE)
  expect_true(raw_with_first_obs$X[99] == mean(raw_with_first_obs$X[100:250]))
  expect_true(raw_with_first_obs$Y[99] == mean(raw_with_first_obs$Y[100:250]))
  expect_true(raw_with_first_obs$Z[99] == mean(raw_with_first_obs$Z[100:250]))
  raw[1:99, c("X", "Y", "Z")] <- 0 # Create idle sleep mode behavior
  raw_missing_first_obs <- .check_idle_sleep(raw, frequency = sf, epoch = 5, tz = "UTC", verbose = FALSE)
  # Divisible by epoch length
  expect_equal(as.numeric(format(raw_missing_first_obs[1, "time"], "%S")) %% 5, 0)
  last_missing_obs <- which(!.get_sleep(raw))[1] - 1
  obs_per_epoch <- sf * 5
  obs_removed <- (last_missing_obs %/% obs_per_epoch) * obs_per_epoch + obs_per_epoch
  expect_equal(nrow(raw_missing_first_obs), nrow(raw) - obs_removed)
})
bhelsel/agcounts documentation built on June 14, 2024, 12:41 a.m.