@@ -36,6 +36,55 @@ test_that("schedule conversion writes resolvable week day references", {
3636 expect_true(all(unique(week_day_names ) %in% day_names ))
3737})
3838
39+ test_that(" schedule conversion ignores missing and zero references" , {
40+ ep <- ensure_empty_idf()
41+ dest <- DBI :: dbConnect(RSQLite :: SQLite(), " :memory:" )
42+ on.exit(DBI :: dbDisconnect(dest ), add = TRUE )
43+
44+ DBI :: dbWriteTable(dest , " SCHEDULE_YEAR" , data.frame (
45+ SCHEDULE_ID = 10L ,
46+ NAME = " Always On" ,
47+ TYPE = 1L ,
48+ DATA = I(list (destep_test_schedule_blob(rep(1 , 8760L ))))
49+ ))
50+ DBI :: dbWriteTable(dest , " DOOR" , data.frame (
51+ ID = 1 : 2 ,
52+ SCHEDULE = c(NA_integer_ , NA_integer_ )
53+ ))
54+ DBI :: dbWriteTable(dest , " SCHEDULE_USAGE" , data.frame (
55+ ID = 1 : 3 ,
56+ SCHEDULE_ID = c(10L , 0L , NA_integer_ )
57+ ))
58+
59+ schedule <- destep_conv_schedule(dest , ep )
60+
61+ expect_type(schedule , " list" )
62+ expect_equal(attr(schedule , " table" )$ SCHEDULE_ID , 10L )
63+ })
64+
65+ test_that(" schedule conversion returns null without valid references" , {
66+ ep <- ensure_empty_idf()
67+ dest <- DBI :: dbConnect(RSQLite :: SQLite(), " :memory:" )
68+ on.exit(DBI :: dbDisconnect(dest ), add = TRUE )
69+
70+ DBI :: dbWriteTable(dest , " SCHEDULE_YEAR" , data.frame (
71+ SCHEDULE_ID = 10L ,
72+ NAME = " Always On" ,
73+ TYPE = 1L ,
74+ DATA = I(list (destep_test_schedule_blob(rep(1 , 8760L ))))
75+ ))
76+ DBI :: dbWriteTable(dest , " DOOR" , data.frame (
77+ ID = 1 : 2 ,
78+ SCHEDULE = c(NA_integer_ , NA_integer_ )
79+ ))
80+ DBI :: dbWriteTable(dest , " WINDOW" , data.frame (
81+ ID = 1L ,
82+ SCHEDULE = 0L
83+ ))
84+
85+ expect_null(destep_conv_schedule(dest , ep ))
86+ })
87+
3988test_that(" real model schedule week and year references are resolvable" , {
4089 skip_on_cran()
4190
0 commit comments