@@ -35,7 +35,7 @@ test_that("epi_slide_opt_archive_one_epikey works as expected", {
35
35
),
36
36
tibble(
37
37
version = 13 , time_value = 8 : 10 , value = c(9 , 9 , 10 ),
38
- slide_value = frollmean(c(6 , 7 , 9 , 9 , 10 ), 3 , algo = " exact" )[- (1 : 2 )]
38
+ slide_value = frollmean(c(6 , 7 , 9 , 9 , 10 ), 3 , algo = " exact" )[- (1 : 2 )]
39
39
),
40
40
tibble(
41
41
version = 14 , time_value = 11 : 13 , value = c(NA , 12 , 13 ), slide_value = rep(NA_real_ , 3L )
@@ -89,7 +89,6 @@ test_that("epi_slide_opt.epi_archive is not confused by unique(DT$version) unsor
89
89
})
90
90
91
91
test_that(" epi_slide_opt.epi_archive is not confused by unique(DT$time_value) unsorted" , {
92
-
93
92
start_date <- as.Date(" 2020-01-01" )
94
93
tibble(
95
94
geo_value = c(1 , 1 , 2 , 2 ),
@@ -109,26 +108,85 @@ test_that("epi_slide_opt.epi_archive is not confused by unique(DT$time_value) un
109
108
) %> %
110
109
as_epi_archive()
111
110
)
112
-
113
111
})
114
112
115
- test_that(" epi_slide_opt.epi_archive is equivalent to epix_slide reconversion on example data" , {
113
+ test_that(" epi_slide_opt.epi_archive gives expected results on example data" , {
114
+ # vs. built-in case_rate_7d_av column:
115
+
116
+ case_death_rate_archive_time <- system.time(
117
+ case_death_rate_archive_result <- case_death_rate_archive %> %
118
+ {
119
+ as_tibble(as.data.frame(. $ DT ))
120
+ } %> %
121
+ select(- case_rate_7d_av ) %> %
122
+ as_epi_archive() %> %
123
+ epi_slide_opt(case_rate , frollmean , algo = " exact" , .window_size = 7 , .suffix = " _{.n}d_av" )
124
+ )
125
+
126
+ case_death_rate_archive_expected <- case_death_rate_archive %> %
127
+ {
128
+ as_tibble(as.data.frame(. $ DT ))
129
+ } %> %
130
+ relocate(case_rate_7d_av , .after = last_col()) %> %
131
+ as_epi_archive() # ensure compact
132
+
133
+ expect_equal(case_death_rate_archive_result , case_death_rate_archive_expected )
134
+
135
+ tbl_diff2(
136
+ case_death_rate_archive_expected $ DT [geo_value == " ak" & time_value < = as.Date(" 2020-03-16" )] %> %
137
+ as.data.frame() %> % as_tibble(),
138
+ case_death_rate_archive_result $ DT [geo_value == " ak" & time_value < = as.Date(" 2020-03-16" )] %> %
139
+ as.data.frame() %> % as_tibble(),
140
+ c(" geo_value" , " time_value" , " version" )
141
+ )
142
+
143
+ case_death_rate_archive_result $ DT [geo_value == " ak" & time_value < = as.Date(" 2020-03-16" )]
144
+
145
+ # case_death_rate_archive_result %>%
146
+ case_death_rate_archive_expected %> %
147
+ epix_as_of(as.Date(" 2020-11-01" )) %> %
148
+ filter(geo_value == " ak" , time_value < = as.Date(" 2020-03-16" )) %> %
149
+ # filter(between(time_value, as.Date("2020-03-09"), as.Date("2020-03-15"))) %>%
150
+ mutate(d = c(NA , diff(case_rate_7d_av ))) %> %
151
+ {}
116
152
117
- case_death_rate_archive %> %
118
- epi_slide_opt(case_rate , frollmean , .window_size = 7
119
- # , algo = "exact"
120
- ) %> %
121
- . $ DT %> %
122
- as.data.frame() %> %
123
- as_tibble() %> %
124
- filter(! approx_equal(case_rate_7dav , case_rate_7d_av , 1e-6 , TRUE )) %> %
125
- dplyr :: transmute(version , geo_value , time_value , case_rate_7dav , case_rate_7d_av ,
126
- abs_diff = abs(case_rate_7dav - case_rate_7d_av )) %> %
127
- {}
153
+ # vs. computing via epix_slide:
128
154
129
- # TODO finish tests on example data sets
155
+ mini_case_death_rate_archive <- case_death_rate_archive %> %
156
+ {
157
+ as_tibble(as.data.frame(. $ DT ))
158
+ } %> %
159
+ filter(geo_value %in% head(unique(geo_value ), 4L )) %> %
160
+ as_epi_archive()
130
161
131
- })
162
+ mini_case_death_rate_archive_time_opt <- system.time(
163
+ mini_case_death_rate_archive_result <- mini_case_death_rate_archive %> %
164
+ epi_slide_opt(case_rate , frollmean , .window_size = 7 )
165
+ )
166
+
167
+ mini_case_death_rate_archive_time_gen <- system.time(
168
+ mini_case_death_rate_archive_expected <- mini_case_death_rate_archive %> %
169
+ epix_slide(~ .x %> % epi_slide_opt(case_rate , frollmean , .window_size = 7 )) %> %
170
+ select(names(mini_case_death_rate_archive $ DT ), everything()) %> %
171
+ as_epi_archive()
172
+ )
173
+
174
+ expect_equal(mini_case_death_rate_archive_result , mini_case_death_rate_archive_expected )
175
+
176
+ archive_cases_dv_subset_time_opt <- system.time(
177
+ archive_cases_dv_subset_result <- archive_cases_dv_subset %> %
178
+ epi_slide_opt(percent_cli , frollmean , .window_size = 7 )
179
+ )
180
+
181
+ archive_cases_dv_subset_time_gen <- system.time(
182
+ archive_cases_dv_subset_expected <- archive_cases_dv_subset %> %
183
+ epix_slide(~ .x %> % epi_slide_opt(percent_cli , frollmean , .window_size = 7 )) %> %
184
+ select(geo_value , time_value , version , everything()) %> %
185
+ as_epi_archive()
186
+ )
187
+
188
+ expect_equal(archive_cases_dv_subset_result , archive_cases_dv_subset_expected )
189
+ })
132
190
133
191
134
192
# TODO grouped behavior checks
0 commit comments