tests/testthat/test-summarise_loading.R

has_accdata <- requireNamespace("accdata", quietly = TRUE)

if (has_accdata) {
  daily_acc_3d <- import_dataset("daily_acc_3d")
  data <- define_region(
    daily_acc_3d,
    start_time = "2016-01-20 00:01:00",
    end_time = "2016-01-20 23:59:59"
  )
  data <- use_resultant(data)
  data <- find_peaks(data, "all")
}

test_that("error handling works", {
  if (!has_accdata) {
    skip("`accdata` not available")
  }

  expect_error(
    summarise_loading(mtcars),
    class = "error_argument_class"
  )
  expect_error(
    summarise_loading(data, "acceleration", "vertical"),
    class = "error_argument_value"
  )
  expect_error(
    summarise_loading(data, "acc", "both"),
    class = "error_argument_value"
  )
  expect_error(
    summarise_loading(data, "acc", "vertical", daily_average = "yes"),
    class = "error_argument_type"
  )
  expect_error(
    summarise_loading(data, "acc", "vertical", ranges_acc = "1, 2")
  )
  expect_error(
    summarise_loading(data, "acc", "vertical", ranges_acc = -1:2)
  )
  expect_error(
    summarise_loading(data, "acc", "vertical", ranges_acc = c(3, 2, 1))
  )
  expect_error(
    summarise_loading(data, "acc", "vertical", ranges_grf = 1:10)
  )
  expect_error(
    summarise_loading(data, "acc", "vertical", save_summary = TRUE)
  )
  expect_error(
    summarise_loading(data, "grf", "resultant")
  )
})

test_that("summarising works", {
  if (!has_accdata) {
    skip("`accdata` not available")
  }

  expect_snapshot(summarise_loading(data, "acc", "all", ranges_acc = 1:5))
})

test_that("saving the summary works", {
  if (!has_accdata) {
    skip("`accdata` not available")
  }

  summary_dir <- tempdir()
  out <- summarise_loading(
    data, "acc", "all", ranges_acc = 1:5, save_summary = summary_dir
  )

  file1 <- paste0(summary_dir, "/vertical_peak_acc.csv")
  file2 <- paste0(summary_dir, "/resultant_peak_acc.csv")
  file3 <- paste0(summary_dir, "/daily_average_vertical_peak_acc.csv")
  file4 <- paste0(summary_dir, "/daily_average_resultant_peak_acc.csv")
  files <- c(file1, file2, file3, file4)

  purrr::walk(files, ~ expect_true(file.exists(.x)))
  purrr::walk(files, file.remove)
})
verasls/impactr documentation built on Aug. 14, 2022, 12:44 p.m.