Skip to content

Commit b7d7c53

Browse files
committed
test reftimevalue access on ungrouped epidf
1 parent 22b9b69 commit b7d7c53

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

tests/testthat/test-epi_slide.R

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ test_that("epi_slide alerts if the provided f doesn't take enough args", {
108108
})
109109

110110
test_that("basic grouped epi_slide computation produces expected output", {
111+
# Also checks that we correctly remove extra rows and columns (`.real`) used
112+
# to recover `ref_time_value`s.
111113
expected_output = dplyr::bind_rows(
112114
dplyr::tibble(geo_value = "ak", time_value = d + 1:5, value = 11:15, slide_value=cumsum(11:15)),
113115
dplyr::tibble(geo_value = "al", time_value = d + 1:5, value = -(1:5), slide_value=cumsum(-(1:5)))
@@ -150,6 +152,24 @@ test_that("basic ungrouped epi_slide computation produces expected output", {
150152
epi_slide(before = 50,
151153
slide_value = sum(.x$value))
152154
expect_identical(result1, expected_output)
155+
156+
# Ungrouped with multiple geos
157+
expected_output = dplyr::bind_rows(
158+
dplyr::tibble(
159+
geo_value = "ak", time_value = d + 1:5, value=11:15, slide_value=cumsum(11:15) + cumsum(-(1:5)
160+
)),
161+
dplyr::tibble(
162+
geo_value = "al", time_value = d + 1:5, value=-(1:5), slide_value=cumsum(11:15) + cumsum(-(1:5))
163+
)
164+
) %>%
165+
as_epi_df(as_of = d + 6) %>%
166+
arrange(time_value)
167+
168+
result2 <- small_x %>%
169+
ungroup() %>%
170+
epi_slide(before = 50,
171+
slide_value = sum(.x$value))
172+
expect_identical(result2, expected_output)
153173
})
154174

155175
test_that("epi_slide computation via formula can use ref_time_value", {
@@ -177,6 +197,20 @@ test_that("epi_slide computation via formula can use ref_time_value", {
177197
before = 50)
178198

179199
expect_identical(result3, expected_output)
200+
201+
# Ungrouped with multiple geos
202+
expected_output = dplyr::bind_rows(
203+
dplyr::tibble(geo_value = "ak", time_value = d + 1:5, value = 11:15, slide_value=as.double(d + 1:5)),
204+
dplyr::tibble(geo_value = "al", time_value = d + 1:5, value = -(1:5), slide_value=as.double(d + 1:5))
205+
) %>%
206+
as_epi_df(as_of = d + 6) %>%
207+
arrange(time_value)
208+
209+
result4 <- small_x %>%
210+
ungroup() %>%
211+
epi_slide(f = ~ .ref_time_value,
212+
before = 50)
213+
expect_identical(result4, expected_output)
180214
})
181215

182216
test_that("epi_slide computation via function can use ref_time_value", {
@@ -243,6 +277,20 @@ test_that("epi_slide computation via dots can use ref_time_value and group", {
243277
slide_value = nrow(.group_key))
244278

245279
expect_identical(result4, expected_output)
280+
281+
# Ungrouped with multiple geos
282+
expected_output = dplyr::bind_rows(
283+
dplyr::tibble(geo_value = "ak", time_value = d + 1:5, value = 11:15, slide_value=as.double(d + 1:5)),
284+
dplyr::tibble(geo_value = "al", time_value = d + 1:5, value = -(1:5), slide_value=as.double(d + 1:5))
285+
) %>%
286+
as_epi_df(as_of = d + 6) %>%
287+
arrange(time_value)
288+
289+
result5 <- small_x %>%
290+
ungroup() %>%
291+
epi_slide(before = 50,
292+
slide_value = .ref_time_value)
293+
expect_identical(result5, expected_output)
246294
})
247295

248296
test_that("epi_slide computation via dots outputs the same result using col names and the data var", {

0 commit comments

Comments
 (0)