tests/testthat/test-utils.R

test_that("get_interval_criteria", {
  expect_equal(grep("%m",
                    get_interval_date_criteria (granularity = 'months')), 1)
  expect_equal(grep("%V",
                    get_interval_date_criteria (granularity = 'weeks')), 1)
  expect_equal(grep("%d",
                    get_interval_date_criteria (granularity = 'days')), 1)
  expect_equal(grep("%H",
                    get_interval_date_criteria (granularity = 'hours')), 1)
})

test_that("slice_data_by_date_interval__by_days", {
  expected_num_rows <- 20849
  expected_num_unique_days <- 7
  
  test_lubina_16215_det <- read.csv2("data/test_lubina16215.csv")
  expected_num_cols <- ncol(test_lubina_16215_det)
  start <- "2020-12-28 00:00"
  end <- "2021-01-03 23:59"
  granularity <- 'days'
  results <- slide_data_by_date_interval(test_lubina_16215_det,
                                         start,
                                         end,
                                         granularity)
  
  # Check results
  expect_equal(ncol(test_lubina_16215_det), expected_num_cols)
  expect_equal(nrow(test_lubina_16215_det), expected_num_rows)
  expect_equal(length(results), expected_num_unique_days)
  expect_equal(rep(length(results[[1]]), length(results)),
               rep(expected_num_cols, expected_num_unique_days))
})


test_that("slice_data_by_date_interval__by_hours", {
  expected_num_rows <- 20849
  expected_num_unique_hours <- 48
  
  test_lubina_16215_det <- read.csv2("data/test_lubina16215.csv")
  expected_num_cols <- ncol(test_lubina_16215_det)
  start <- "2020-12-31 00:00"
  end <- "2021-01-01 23:59"
  granularity <- 'hours'
  results <- slide_data_by_date_interval(test_lubina_16215_det,
                                         start,
                                         end,
                                         granularity)
  
  # Check results
  expect_equal(ncol(test_lubina_16215_det), expected_num_cols)
  expect_equal(nrow(test_lubina_16215_det), expected_num_rows)
  expect_equal(length(results), expected_num_unique_hours)
  expect_equal(rep(length(results[[1]]), length(results)),
               rep(expected_num_cols, expected_num_unique_hours))
})

test_that("slice_data_by_date_interval__by_weeks", {
  expected_num_rows <- 20849
  expected_num_unique_weeks <- 10
  
  test_lubina_16215_det <- read.csv2("data/test_lubina16215.csv")
  expected_num_cols <- ncol(test_lubina_16215_det)
  start <- "2020-12-01 00:00"
  end <- "2021-01-31 23:59"
  granularity <- 'weeks'
  results <- slide_data_by_date_interval(test_lubina_16215_det,
                                         start,
                                         end,
                                         granularity)
  
  # Check results
  expect_equal(ncol(test_lubina_16215_det), expected_num_cols)
  expect_equal(nrow(test_lubina_16215_det), expected_num_rows)
  expect_equal(length(results), expected_num_unique_weeks)
  expect_equal(rep(length(results[[1]]), length(results)),
               rep(expected_num_cols, expected_num_unique_weeks))
})

test_that("slice_data_by_date_interval__by_months", {
  expected_num_rows <- 20849
  expected_num_unique_months <- 2
  
  test_lubina_16215_det <- read.csv2("data/test_lubina16215.csv")
  expected_num_cols <- ncol(test_lubina_16215_det)
  start <- "2020-12-01 00:00"
  end <- "2021-01-31 23:59"
  granularity <- 'months'
  results <- slide_data_by_date_interval(test_lubina_16215_det,
                                         start,
                                         end,
                                         granularity)
  
  # Check results
  expect_equal(ncol(test_lubina_16215_det), expected_num_cols)
  expect_equal(nrow(test_lubina_16215_det), expected_num_rows)
  expect_equal(length(results), expected_num_unique_months)
  expect_equal(rep(length(results[[1]]), length(results)),
               rep(expected_num_cols, expected_num_unique_months))
})

test_that("build_detections_sum_per_individual_per_interval_time__by_months",
          {
            expected_source_num_rows <- 4769
            expected_num_unique_months <- 2
            
            reduced_lubina_detection <- read.csv2("data/lubina-16214-16215-16225-2-weeks.csv")
            expected_results <-
              read.csv2("data/presence-absence-dataframe-results.csv")
            
            expected_num_cols <- ncol(reduced_lubina_detection)
            # let's go wide here
            start <- "2020-01-01 00:00"
            end <- "2021-01-31 23:59"
            granularity <- 'months'
            results <- build_detections_sum_per_individual_per_interval_time(reduced_lubina_detection,
                                                                             start,
                                                                             end,
                                                                             granularity)
            
            # Check results
            expect_equal(ncol(reduced_lubina_detection), expected_num_cols)
            expect_equal(nrow(reduced_lubina_detection), expected_source_num_rows)
            index_col = 1
            expect_equal(as.data.frame(results), expected_results[, c(-index_col)])
          })
d2gex/seabasstfm documentation built on July 29, 2022, 2:20 a.m.