|
| 1 | +library(dplyr) |
| 2 | + |
| 3 | +ea <- archive_cases_dv_subset$clone() |
| 4 | + |
| 5 | +# epix_as_of tests |
| 6 | +test_that("epix_as_of behaves identically to as_of method",{ |
| 7 | + expect_identical(epix_as_of(ea,max_version = min(ea$DT$version)), |
| 8 | + ea$as_of(max_version = min(ea$DT$version))) |
| 9 | +}) |
| 10 | + |
| 11 | +test_that("Errors are thrown due to bad as_of inputs",{ |
| 12 | + # max_version cannot be of string class rather than date class |
| 13 | + expect_error(ea$as_of("2020-01-01")) |
| 14 | + # max_version cannot be later than latest version |
| 15 | + expect_error(ea$as_of(as.Date("2025-01-01"))) |
| 16 | + # max_version cannot be a vector |
| 17 | + expect_error(ea$as_of(c(as.Date("2020-01-01"), as.Date("2020-01-02")))) |
| 18 | +}) |
| 19 | + |
| 20 | +test_that("Warning against max_version being same as edf's max version",{ |
| 21 | + expect_warning(ea$as_of(max_version = max(ea$DT$version))) |
| 22 | + expect_warning(ea$as_of(max_version = min(ea$DT$version)),NA) |
| 23 | +}) |
| 24 | + |
| 25 | +test_that("as_of properly grabs the data",{ |
| 26 | + df_as_of <- ea %>% |
| 27 | + epix_as_of(max_version = as.Date("2020-07-01")) %>% |
| 28 | + na.omit() %>% |
| 29 | + as.data.frame() |
| 30 | + |
| 31 | + df_filter <- ea$DT %>% |
| 32 | + filter(version == as.Date("2020-07-01")) %>% |
| 33 | + na.omit() %>% |
| 34 | + select(-version) %>% |
| 35 | + as.data.frame() |
| 36 | + |
| 37 | + expect_equal(df_as_of[1:4],df_filter) |
| 38 | +}) |
| 39 | + |
| 40 | +# epix_merge tests |
| 41 | +test_that("epix_merge requires second argument to be a data.table or |
| 42 | + epi_archive",{ |
| 43 | + expect_error(epix_merge(ea,data.frame(x=1))) |
| 44 | +}) |
| 45 | + |
| 46 | +test_that("data.table merging is utilized if second argument is a data.table",{ |
| 47 | + dt1 <- select(ea$DT , -case_rate_7d_av) |
| 48 | + ea1 <- as_epi_archive(dt1) |
| 49 | + dt2 <- select(ea$DT , -percent_cli) |
| 50 | + |
| 51 | + expect_identical( |
| 52 | + epix_merge(ea1,dt2), |
| 53 | + merge(dt1,dt2) |
| 54 | + ) |
| 55 | +}) |
| 56 | + |
| 57 | +test_that("data.table merging works as intended",{ |
| 58 | + ea <- archive_cases_dv_subset$clone() |
| 59 | + dt1 <- select(ea$DT , -case_rate_7d_av) |
| 60 | + ea1 <- as_epi_archive(dt1) |
| 61 | + dt2 <- select(ea$DT , -percent_cli) |
| 62 | + |
| 63 | + expect_identical( |
| 64 | + as_epi_archive(ea$DT), |
| 65 | + as_epi_archive(merge(dt1,dt2)) |
| 66 | + ) |
| 67 | +}) |
0 commit comments