Skip to content

Commit a3e8f5f

Browse files
committed
test helper function behavior
1 parent 6a85f42 commit a3e8f5f

File tree

3 files changed

+74
-4
lines changed

3 files changed

+74
-4
lines changed

R/model.R

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,14 @@ reformat_epirange <- function(epirange, to_type = c("day", "week")) {
6969

7070
# Day format -> week
7171
if (nchar(epirange$from) == 8 && to_type == "week") {
72-
epirange$from <- date_to_epiweek(epirange$from)
73-
epirange$to <- date_to_epiweek(epirange$to)
72+
return(
73+
epirange(date_to_epiweek(epirange$from), date_to_epiweek(epirange$to))
74+
)
7475
# Week format -> day
7576
} else if (nchar(epirange$from) == 6 && to_type == "day") {
76-
epirange$from <- parse_api_week(epirange$from)
77-
epirange$to <- parse_api_week(epirange$to)
77+
return(
78+
epirange(parse_api_week(epirange$from), parse_api_week(epirange$to))
79+
)
7880
}
7981

8082
return(epirange)

tests/testthat/test-model.R

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,47 @@ test_that("parse_api_date accepts YYYYMMDD and YYYY-MM-DD", {
113113
test_that("parse_api_date handles missing values appropriately", {
114114
expect_identical(parse_api_date(NA), as.Date(NA))
115115
})
116+
117+
test_that("date_to_epiweek accepts str and int input", {
118+
expect_identical(date_to_epiweek("20200101"), 202001)
119+
expect_identical(date_to_epiweek(20200101), 202001)
120+
})
121+
122+
test_that("date_to_epiweek accepts single and double-digit weeks", {
123+
expect_identical(date_to_epiweek(20201101), 202045)
124+
expect_identical(date_to_epiweek(20200109), 202002)
125+
})
126+
127+
test_that("reformat_epirange works in basic cases", {
128+
# Week to week
129+
result <- reformat_epirange(epirange(202002, 202013), "week")
130+
expect_identical(result, epirange(202002, 202013))
131+
132+
result <- reformat_epirange(epirange("202002", "202013"), "week")
133+
expect_identical(result, epirange("202002", "202013"))
134+
135+
# Week to day
136+
# Across year boundary
137+
result <- reformat_epirange(epirange(202001, 202013), "day")
138+
expect_identical(result, epirange(20191229, 20200322))
139+
140+
result <- reformat_epirange(epirange(202002, 202013), "day")
141+
expect_identical(result, epirange(20200105, 20200322))
142+
143+
result <- reformat_epirange(epirange("202002", "202013"), "day")
144+
expect_identical(result, epirange(20200105, 20200322))
145+
146+
# Day to week
147+
result <- reformat_epirange(epirange(20200201, 20201031), "week")
148+
expect_identical(result, epirange(202005, 202044))
149+
150+
result <- reformat_epirange(epirange("20200201", "20201031"), "week")
151+
expect_identical(result, epirange(202005, 202044))
152+
153+
# Day to day
154+
result <- reformat_epirange(epirange(20200201, 20201031), "day")
155+
expect_identical(result, epirange(20200201, 20201031))
156+
157+
result <- reformat_epirange(epirange("20200201", "20201031"), "day")
158+
expect_identical(result, epirange("20200201", "20201031"))
159+
})

tests/testthat/test-utils.R

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,27 @@ test_that("check_is_cachable can handle both str and date inputs of various leng
6464
epidata_call$params$issues <- epirange(as.Date("2022-01-01"), as.Date("2022-02-01"))
6565
expect_no_error(check_is_cachable(epidata_call, fetch_args))
6666
})
67+
68+
test_that("get_wildcard_equivalent_dates works in basic cases", {
69+
# Week date
70+
result <- get_wildcard_equivalent_dates(epirange(202002, 202013), "week")
71+
expect_identical(result, epirange(202002, 202013))
72+
73+
result <- get_wildcard_equivalent_dates(epirange("202002", "202013"), "week")
74+
expect_identical(result, epirange("202002", "202013"))
75+
76+
# Week wildcard
77+
result <- get_wildcard_equivalent_dates("*", "week")
78+
expect_identical(result, epirange(100001, 300001))
79+
80+
# Day date
81+
result <- get_wildcard_equivalent_dates(epirange(20200201, 20201031), "day")
82+
expect_identical(result, epirange(20200201, 20201031))
83+
84+
result <- get_wildcard_equivalent_dates(epirange("20200201", "20201031"), "day")
85+
expect_identical(result, epirange("20200201", "20201031"))
86+
87+
# Day wildcard
88+
result <- get_wildcard_equivalent_dates("*", "day")
89+
expect_identical(result, epirange(10000101, 30000101))
90+
})

0 commit comments

Comments
 (0)