@@ -65,19 +65,46 @@ test_that("epi_archives are correctly instantiated with a variety of data types"
6565 expect_equal(ea4 $ additional_metadata ,list (value = df $ value ))
6666
6767 # Keyed data.table
68- kdt <- 1
69- ea5 <- 1
68+ kdt <- data.table :: data.table(geo_value = " ca" ,
69+ time_value = as.Date(" 2020-01-01" ),
70+ version = as.Date(" 2020-01-01" ) + 0 : 19 ,
71+ value = 1 : 20 ,
72+ code = " CA" ,
73+ key = " code" )
74+
75+ ea5 <- as_epi_archive(kdt )
76+ expect_equal(key(ea5 $ DT ),c(" geo_value" ," time_value" ," version" )) # Key from data.table isn't absorbed
77+ expect_equal(ea5 $ additional_metadata ,list ())
78+
79+ ea6 <- as_epi_archive(kdt ,other_keys = " code" ,additional_metadata = list (value = df $ value ))
80+ expect_equal(key(ea6 $ DT ),c(" geo_value" ," time_value" ," code" ," version" ))
81+ expect_equal(ea6 $ additional_metadata ,list (value = df $ value ))
7082
7183 # Unkeyed data.table
72- udt <- 2
73- ea6 <- 2
84+ udt <- data.table :: data.table(geo_value = " ca" ,
85+ time_value = as.Date(" 2020-01-01" ),
86+ version = as.Date(" 2020-01-01" ) + 0 : 19 ,
87+ value = 1 : 20 ,
88+ code = " CA" )
89+
90+ ea7 <- as_epi_archive(udt )
91+ expect_equal(key(ea7 $ DT ),c(" geo_value" ," time_value" ," version" ))
92+ expect_equal(ea7 $ additional_metadata ,list ())
93+
94+ ea8 <- as_epi_archive(udt ,other_keys = " code" ,additional_metadata = list (value = df $ value ))
95+ expect_equal(key(ea8 $ DT ),c(" geo_value" ," time_value" ," code" ," version" ))
96+ expect_equal(ea8 $ additional_metadata ,list (value = df $ value ))
7497
7598 # epi_df
7699 edf <- jhu_csse_daily_subset %> %
77100 select(geo_value ,time_value ,cases ) %> %
78- mutate(version = max(time_value ))
101+ mutate(version = max(time_value ), code = " USA " )
79102
80- ea7 <- as_epi_archive(edf )
81- expect_equal(key(ea7 $ DT ),c(" geo_value" ," time_value" ," version" ))
82- expect_equal(ea7 $ additional_metadata ,list ())
103+ ea9 <- as_epi_archive(edf )
104+ expect_equal(key(ea9 $ DT ),c(" geo_value" ," time_value" ," version" ))
105+ expect_equal(ea9 $ additional_metadata ,list ())
106+
107+ ea10 <- as_epi_archive(edf ,other_keys = " code" ,additional_metadata = list (value = df $ value ))
108+ expect_equal(key(ea10 $ DT ),c(" geo_value" ," time_value" ," code" ," version" ))
109+ expect_equal(ea10 $ additional_metadata ,list (value = df $ value ))
83110})
0 commit comments