Skip to content

Commit 4c1f7c8

Browse files
authored
Merge branch 'main' into km-compactify_rectify
2 parents a71c3fe + 59b04b8 commit 4c1f7c8

File tree

2 files changed

+44
-87
lines changed

2 files changed

+44
-87
lines changed

R/archive.R

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,11 +407,17 @@ epi_archive =
407407
})
408408
}
409409
cat("----------\n")
410+
if (length(self$DT$time_value) == 0 || all(is.na(self$DT$time_value))) {
411+
min_time = max_time = NA
412+
} else {
413+
min_time = Min(self$DT$time_value)
414+
max_time = Max(self$DT$time_value)
415+
}
410416
cat(sprintf("* %-14s = %s\n", "min time value",
411-
min(self$DT$time_value)))
417+
min_time))
412418
cat(sprintf("* %-14s = %s\n", "max time value",
413-
max(self$DT$time_value)))
414-
cat(sprintf("* %-14s = %s\n", "first version with update",
419+
max_time))
420+
cat(sprintf("* %-14s = %s\n", "min version",
415421
min(self$DT$version)))
416422
cat(sprintf("* %-14s = %s\n", "last version with update",
417423
max(self$DT$version)))

tests/testthat/test-methods-epi_archive.R

Lines changed: 35 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,38 @@ test_that("Warning against max_version being same as edf's max version",{
2222
expect_warning(ea$as_of(max_version = min(ea$DT$version)),NA)
2323
})
2424

25-
test_that("as_of properly grabs the data and doesn't mutate key",{
26-
old_key = data.table::key(ea$DT)
27-
28-
df_as_of <- ea %>%
29-
epix_as_of(max_version = as.Date("2020-07-01")) %>%
30-
na.omit() %>%
31-
as.data.frame()
32-
33-
df_filter <- ea$DT %>%
34-
filter(version == as.Date("2020-07-01")) %>%
35-
na.omit() %>%
36-
select(-version) %>%
37-
as.data.frame()
25+
test_that("as_of properly grabs the data",{
26+
d <- as.Date("2020-06-01")
27+
28+
ea2 = tibble::tribble(
29+
~geo_value, ~time_value, ~version, ~cases,
30+
"ca", "2020-06-01", "2020-06-01", 1,
31+
"ca", "2020-06-01", "2020-06-02", 2,
32+
#
33+
"ca", "2020-06-02", "2020-06-02", 0,
34+
"ca", "2020-06-02", "2020-06-03", 1,
35+
"ca", "2020-06-02", "2020-06-04", 2,
36+
#
37+
"ca", "2020-06-03", "2020-06-03", 1,
38+
#
39+
"ca", "2020-06-04", "2020-06-04", 4,
40+
) %>%
41+
dplyr::mutate(dplyr::across(c(time_value, version), as.Date)) %>%
42+
as_epi_archive()
43+
44+
df_as_of <- ea2 %>%
45+
epix_as_of(max_version = as.Date("2020-06-03")) %>%
46+
as_tibble()
47+
48+
df_expected <- tibble(
49+
geo_value = "ca",
50+
time_value = d + 0:2,
51+
cases = c(2,1,1)
52+
)
3853

39-
expect_equal(df_as_of[1:4],df_filter)
40-
expect_equal(data.table::key(ea$DT), old_key)
54+
expect_identical(df_as_of[[1]],df_expected[[1]])
55+
expect_identical(df_as_of[[2]],df_expected[[2]])
56+
expect_identical(df_as_of[[3]],df_expected[[3]])
4157
})
4258

4359
test_that("quosure passing issue in epix_slide is resolved + other potential issues", {
@@ -66,76 +82,11 @@ test_that("quosure passing issue in epix_slide is resolved + other potential iss
6682
new_col_name = 'case_rate_3d_av')
6783
# test the passing-something-that-must-be-enquosed behavior:
6884
expect_identical(
69-
ea$slide(
70-
f = ~ mean(.x$case_rate_7d_av),
71-
n = 3,
72-
group_by = modulus,
73-
ref_time_values = time_values,
74-
new_col_name = 'case_rate_3d_av'
75-
),
76-
reference_by_modulus
77-
)
78-
# test the passing-string-literal behavior:
79-
expect_identical(
80-
epix_slide(x = ea,
81-
f = ~ mean(.x$case_rate_7d_av),
82-
n = 3,
83-
group_by = "modulus",
84-
ref_time_values = time_values,
85-
new_col_name = 'case_rate_3d_av'),
86-
reference_by_modulus
87-
)
88-
expect_identical(
89-
ea$slide(
90-
f = ~ mean(.x$case_rate_7d_av),
91-
n = 3,
92-
group_by = "modulus",
93-
ref_time_values = time_values,
94-
new_col_name = 'case_rate_3d_av'
95-
),
96-
reference_by_modulus
97-
)
98-
# Might also want to test the passing-string-var-without-all_of behavior, but
99-
# make sure to set, trigger, then reset (or restore to old value) the
100-
# tidyselect once-per-session message about the ambiguity
101-
#
102-
# test the passing-all-of-string-var behavior:
103-
my_group_by = "modulus"
104-
expect_identical(
105-
epix_slide(x = ea,
106-
f = ~ mean(.x$case_rate_7d_av),
107-
n = 3,
108-
group_by = tidyselect::all_of(my_group_by),
109-
ref_time_values = time_values,
110-
new_col_name = 'case_rate_3d_av'),
111-
reference_by_modulus
112-
)
113-
expect_identical(
114-
ea$slide(
115-
f = ~ mean(.x$case_rate_7d_av),
116-
n = 3,
117-
group_by = tidyselect::all_of(my_group_by),
118-
ref_time_values = time_values,
119-
new_col_name = 'case_rate_3d_av'
120-
),
121-
reference_by_modulus
122-
)
123-
# test the default behavior (default in this case should just be "geo_value"):
124-
expect_identical(
125-
epix_slide(x = ea,
126-
f = ~ mean(.x$case_rate_7d_av),
127-
n = 3,
128-
ref_time_values = time_values,
129-
new_col_name = 'case_rate_3d_av'),
130-
reference_by_both
85+
epix_merge(ea1,dt2),
86+
merge(dt1,dt2,all=TRUE)
13187
)
13288
expect_identical(
133-
ea$slide(
134-
f = ~ mean(.x$case_rate_7d_av),
135-
n = 3,
136-
ref_time_values = time_values,
137-
new_col_name = 'case_rate_3d_av'
138-
),
139-
reference_by_both
89+
as_epi_archive(ea$DT),
90+
as_epi_archive(merge(dt1,dt2,all=TRUE))
14091
)
14192
})

0 commit comments

Comments
 (0)