# HELPER {{{
test_that("Transition Helper", {
skip_on_cran()
idf <- read_idf(system.file("extdata/1ZoneUncontrolled.idf", package = "eplusr"))
# transition action {{{
expect_equal(
ignore_attr = TRUE,
trans_action(idf, "Construction",
offset = list(2L, 4L),
add = list(2L:3L, "No")
),
data.table(
id = rep(15:17, each = 4L),
name = rep(c("R13WALL", "FLOOR", "ROOF31"), each = 4L),
class = rep("Construction", 12L),
index = rep(c(1:4), 3L),
field = rep(c("Name", NA_character_, NA_character_, "Outside Layer"), 3L),
value = c(
"R13WALL", "No", "No", "R13LAYER",
"FLOOR", "No", "No", "C5 - 4 IN HW CONCRETE",
"ROOF31", "No", "No", "R31LAYER"
)
)
)
# can insert new extensible fields
expect_equal(
ignore_attr = TRUE,
trans_action(idf, "Construction",
insert = list(2:3, NA, step = 1)
),
data.table(
id = rep(15:17, each = 6L),
name = rep(c("R13WALL", "FLOOR", "ROOF31"), each = 6L),
class = rep("Construction", 18L),
index = rep(c(1:6), 3L),
field = rep(c("Name", NA_character_, NA_character_, "Outside Layer", NA_character_, NA_character_), 3L),
value = c(
"R13WALL", NA_character_, NA_character_, "R13LAYER", NA_character_, NA_character_,
"FLOOR", NA_character_, NA_character_, "C5 - 4 IN HW CONCRETE", NA_character_, NA_character_,
"ROOF31", NA_character_, NA_character_, "R31LAYER", NA_character_, NA_character_
)
)
)
# can insert multiple times
expect_equal(
ignore_attr = TRUE,
trans_action(idf, "RunPeriod",
insert = list(c(`Start Year` = 4)),
insert = list(c(`End Year` = 7))
),
data.table(
id = rep(8L, 13),
name = rep(NA_character_, 13),
class = rep("RunPeriod", 13),
index = 1:13,
field = c(
"Name", "Begin Month", "Begin Day of Month", "Start Year",
"End Month", "End Day of Month", "End Year",
"Day of Week for Start Day", "Use Weather File Holidays and Special Days",
"Use Weather File Daylight Saving Period", "Apply Weekend Holiday Rule",
"Use Weather File Rain Indicators", "Use Weather File Snow Indicators"
),
value = c(
NA_character_, "1", "1", NA_character_, "12", "31", NA_character_,
"Tuesday", "Yes", "Yes", "No", "Yes", "Yes"
)
)
)
# }}}
# preprocess {{{
expect_s3_class(new_idf <- trans_preprocess(idf, "8.9", "Construction"), "Idf")
expect_equal(new_idf$version(), numeric_version("8.9.0"))
expect_false(new_idf$is_valid_class("Construction"))
expect_false(get_priv_env(new_idf)$uuid() == get_priv_env(idf)$uuid())
# }}}
# versions {{{
expect_equal(
trans_upper_versions(idf, "9.1", patch = TRUE),
numeric_version(c("8.8.0", "8.9.0", "9.0.0", "9.0.1", "9.1.0"))
)
expect_equal(
trans_upper_versions(idf, "9.1"),
numeric_version(c("8.8.0", "8.9.0", "9.0.0", "9.1.0"))
)
# }}}
# transition functions {{{
expect_equal(
trans_fun_names(c("8.8.0", "8.9.0", "9.0.1", "9.1.0")),
c("f880t890", "f890t900", "f900t910")
)
# }}}
})
# }}}
# v7.2 --> v8.0 {{{
test_that("Transition v7.2 --> v8.0", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "7.2"
to <- "8.0"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf("7.2",
ShadowCalculation = list(),
"Coil:Heating:DX:MultiSpeed" = list("Coil"),
"EnergyManagementSystem:OutputVariable" = list("Variable [m]"),
"EnergyManagementSystem:MeteredOutputVariable" = list("Variable [m]"),
"Branch" = list("Branch", ..4 = "HeatExchanger:WatersideEconomizer"),
"PlantEquipmentList" = list("PlantEquip", ..2 = "HeatExchanger:WatersideEconomizer"),
"CondenserEquipmentList" = list("CondenserEquip", ..2 = "HeatExchanger:WatersideEconomizer"),
"HeatExchanger:WatersideEconomizer" = list("HE1", ..2 = "PlateFrame"),
"HeatExchanger:Hydronic" = list("HE2", ..8 = "UFactorTimesAreaEffectiveness"),
"HeatExchanger:Plate" = list("HE3", ..8 = "UFactorTimesAreaEffectiveness"),
"BuildingSurface:Detailed" = list("Surf"),
"Wall:Detailed" = list("Wall"),
"RoofCeiling:Detailed" = list("Roof"),
"Floor:Detailed" = list("Floor"),
"FenestrationSurface:Detailed" = list("Fene"),
"Shading:Site:Detailed" = list("SiteShade"),
"Shading:Building:Detailed" = list("BldgShade"),
"Shading:Zone:Detailed" = list("ZoneShade"),
"AirflowNetwork:Distribution:Component:ConstantVolumeFan" = list("Fan"),
"ZoneHVAC:HighTemperatureRadiant" := list(c("Rad1", "Rad2"), ..5 = c("Electric", "Gas")),
"AirConditioner:VariableRefrigerantFlow" = list("VRF", ..48 = 0, ..67 = "Electric"),
"ZoneHVAC:WaterToAirHeatPump" = list("HP"),
"AirLoopHVAC:UnitaryHeatPump:WaterToAir" = list("UHP"),
"Boiler:HotWater" = list("Boiler", ..15 = "VariableFlow"),
"Chiller:Electric" = list("Chiller1", ..27 = "VariableFlow"),
"Chiller:ConstantCOP" = list("Chiller2", ..11 = "VariableFlow"),
"Chiller:EngineDriven" = list("Chiller3", ..41 = "VariableFlow"),
"Chiller:CombustionTurbine" = list("Chiller4", ..54 = "VariableFlow"),
"Chiller:Electric:EIR" = list("Chiller5", ..23 = "VariableFlow"),
"Chiller:Absorption" = list("Chiller6", ..23 = "VariableFlow"),
"Chiller:Absorption:Indirect" = list("Chiller7", ..16 = "VariableFlow"),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
suppressWarnings(expect_warning(idfTR <- transition(idfOri, to)))
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$Coil$value()[1:40],
idfTR$"Coil:Heating:DX:MultiSpeed"$Coil$value()
)
expect_equal(
idfVU$"EnergyManagementSystem:OutputVariable"$Variable$value(),
idfTR$"EnergyManagementSystem:OutputVariable"$Variable$value()
)
expect_equal(
idfVU$"EnergyManagementSystem:MeteredOutputVariable"$Variable$value(),
idfTR$"EnergyManagementSystem:MeteredOutputVariable"$Variable$value()
)
expect_equal(
idfVU$"Branch"$Branch$value()[1:8],
idfTR$"Branch"$Branch$value()
)
expect_equal(
idfVU$"PlantEquipmentList"$PlantEquip$value()[1:2],
idfTR$"PlantEquipmentList"$PlantEquip$value()
)
expect_equal(
idfVU$"CondenserEquipmentList"$CondenserEquip$value()[1:2],
idfTR$"CondenserEquipmentList"$CondenserEquip$value()
)
expect_equal(
idfVU$"HeatExchanger:FluidToFluid"$HE1$value(),
idfTR$"HeatExchanger:FluidToFluid"$HE1$value()
)
expect_equal(
idfVU$"HeatExchanger:FluidToFluid"$HE2$value(),
idfTR$"HeatExchanger:FluidToFluid"$HE2$value()
)
expect_equal(
idfVU$"SetpointManager:Scheduled"$HE2$value()[-1],
idfTR$"SetpointManager:Scheduled"$"HE2 Setpoint Manager"$value()[-1]
)
expect_equal(
idfVU$"HeatExchanger:FluidToFluid"$HE3$value()[1:14],
idfTR$"HeatExchanger:FluidToFluid"$HE3$value()
)
expect_equal(
# VersionUpdater failed to change '11: Vertex 1 X-coordinate' to '0.0'
idfVU$"BuildingSurface:Detailed"$Surf$value()[-11],
idfTR$"BuildingSurface:Detailed"$Surf$value()[-11]
)
expect_equal(
# VersionUpdater adds an extra '11: Vertex 1 X-coordinate'
idfVU$"Wall:Detailed"$Wall$value()[1:39],
idfTR$"Wall:Detailed"$Wall$value()[1:39]
)
expect_equal(
# VersionUpdater adds an extra '11: Vertex 1 X-coordinate'
idfVU$"RoofCeiling:Detailed"$Roof$value()[1:39],
idfTR$"RoofCeiling:Detailed"$Roof$value()[1:39]
)
expect_equal(
idfVU$"Floor:Detailed"$Floor$value()[1:39],
idfTR$"Floor:Detailed"$Floor$value()[1:39]
)
expect_equal(
idfVU$"FenestrationSurface:Detailed"$Fene$value(),
idfTR$"FenestrationSurface:Detailed"$Fene$value()
)
expect_equal(
idfVU$"Shading:Site:Detailed"$SiteShade$value(),
idfTR$"Shading:Site:Detailed"$SiteShade$value()
)
expect_equal(
idfVU$"Shading:Building:Detailed"$BldgShade$value(),
idfTR$"Shading:Building:Detailed"$BldgShade$value()
)
expect_equal(
idfVU$"Shading:Zone:Detailed"$ZoneShade$value(),
idfTR$"Shading:Zone:Detailed"$ZoneShade$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Component:Fan"[[1]]$value(),
idfTR$"AirflowNetwork:Distribution:Component:Fan"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:HighTemperatureRadiant"$Rad1$value()[1:11],
idfTR$"ZoneHVAC:HighTemperatureRadiant"$Rad1$value()
)
expect_equal(
idfVU$"ZoneHVAC:HighTemperatureRadiant"$Rad2$value()[1:11],
idfTR$"ZoneHVAC:HighTemperatureRadiant"$Rad2$value()
)
expect_equal(
idfVU$"AirConditioner:VariableRefrigerantFlow"[[1]]$value(),
idfTR$"AirConditioner:VariableRefrigerantFlow"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:WaterToAirHeatPump"$HP$value()[1:28],
idfTR$"ZoneHVAC:WaterToAirHeatPump"$HP$value()
)
expect_equal(
idfVU$"AirLoopHVAC:UnitaryHeatPump:WaterToAir"$UHP$value(),
idfTR$"AirLoopHVAC:UnitaryHeatPump:WaterToAir"$UHP$value()
)
expect_equal(
idfVU$"Boiler:HotWater"$Boiler$value(),
idfTR$"Boiler:HotWater"$Boiler$value()
)
expect_equal(
idfVU$"Chiller:Electric"$Chiller1$value()[1:33],
idfTR$"Chiller:Electric"$Chiller1$value()
)
expect_equal(
idfVU$"Chiller:ConstantCOP"$Chiller2$value()[1:14],
idfTR$"Chiller:ConstantCOP"$Chiller2$value()
)
expect_equal(
idfVU$"Chiller:EngineDriven"$Chiller3$value()[1:45],
idfTR$"Chiller:EngineDriven"$Chiller3$value()
)
expect_equal(
idfVU$"Chiller:CombustionTurbine"$Chiller4$value()[1:59],
idfTR$"Chiller:CombustionTurbine"$Chiller4$value()
)
expect_equal(
idfVU$"Chiller:Electric:EIR"$Chiller5$value()[1:29],
idfTR$"Chiller:Electric:EIR"$Chiller5$value()
)
expect_equal(
idfVU$"Chiller:Absorption"$Chiller6$value(),
idfTR$"Chiller:Absorption"$Chiller6$value()
)
expect_equal(
idfVU$"Chiller:Absorption:Indirect"$Chiller7$value(),
idfTR$"Chiller:Absorption:Indirect"$Chiller7$value()
)
# can handle forkeq variables
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(
"7.2",
"Chiller:Electric:EIR" := list(paste0("Chiller", 1:2)),
"ChillerHeater:Absorption:DirectFired" := list(paste0("Heater", 1:2)),
"Output:Variable" := list(
"*",
c(
"Chiller Diesel Consumption",
"CondFD Nodal Temperature"
)
)
)
)
# can handle forkeq variables
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(
"7.2",
"Chiller:Electric:EIR" := list(paste0("Chiller", 1:2)),
"ChillerHeater:Absorption:DirectFired" := list(paste0("Heater", 1:2)),
"Output:Variable" := list("*", c(
"Chiller Diesel Consumption",
"Chiller Diesel Consumption Rate",
"CondFD Nodal Temperature",
"Inside Surface Relative Humidity"
))
)
)
# VersionUpdater does not create "Diesel" output variables for both Chiller
# and ChillerHeater
expect_warning(idfTR <- transition(idfOri, "8"), "Default values")
expect_equal(
idfTR$to_table(class = "Output:Variable")[index == 2, sort(value)],
c(
"Chiller Diesel Energy",
"Chiller Diesel Rate",
"Chiller Heater Diesel Energy",
"Chiller Heater Diesel Rate",
"CondFD Surface Temperature Node 1",
"CondFD Surface Temperature Node 10",
"CondFD Surface Temperature Node 2",
"CondFD Surface Temperature Node 3",
"CondFD Surface Temperature Node 4",
"CondFD Surface Temperature Node 5",
"CondFD Surface Temperature Node 6",
"CondFD Surface Temperature Node 7",
"CondFD Surface Temperature Node 8",
"CondFD Surface Temperature Node 9",
"EMPD Surface Inside Face Relative Humidity",
"HAMT Surface Inside Face Relative Humidity"
)
)
})
# }}}
# v8.0 --> v8.1 {{{
test_that("Transition v8.0 --> v8.1", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.0"
to <- "8.1"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"People" = list("People"),
"CoolingTower:SingleSpeed" = list("CT1", ..8 = "autosize", ..9 = "autosize"),
"CoolingTower:TwoSpeed" = list("CT2", ..8 = "autosize", ..9 = "autosize", ..11 = "autosize", ..12 = "autosize"),
"EvaporativeFluidCooler:SingleSpeed" = list("EFC1"),
"EvaporativeFluidCooler:TwoSpeed" = list("EFC2", ..6 = "autosize", ..7 = "autosize", ..14 = "autosize"),
"FluidCooler:TwoSpeed" = list("FluidCooler", ..6 = "autosize", ..15 = "autosize", ..16 = "autosize"),
"HeatPump:WaterToWater:EquationFit:Heating" = list("HP1"),
"HeatPump:WaterToWater:EquationFit:Cooling" = list("HP2"),
"HeatPump:WaterToWater:ParameterEstimation:Heating" = list("HP3"),
"HeatPump:WaterToWater:ParameterEstimation:Cooling" = list("HP4"),
"HVACTemplate:Zone:PTAC" = list(..13 = "Cycling"),
"HVACTemplate:Zone:PTAC" = list(..13 = "Continuous"),
"HVACTemplate:Zone:PTHP" = list(..13 = "Cycling"),
"HVACTemplate:Zone:PTHP" = list(..13 = "Continuous"),
"HVACTemplate:Zone:WaterToAirHeatPump" = list(..13 = "Cycling"),
"HVACTemplate:Zone:WaterToAirHeatPump" = list(..13 = "Continuous"),
"HVACTemplate:System:Unitary" = list("Sys1", ..5 = "Cycling"),
"HVACTemplate:System:Unitary" = list("Sys2", ..5 = "Continuous"),
"HVACTemplate:System:UnitaryHeatPump:AirToAir" = list("Sys3", ..7 = "Cycling"),
"HVACTemplate:System:UnitaryHeatPump:AirToAir" = list("Sys4", ..7 = "Continuous"),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"People"[[1]]$value()[1:16],
idfTR$"People"[[1]]$value()
)
# VersionUpdater gives "autocalculate" instead of "Autocalculate"
lower_autocal <- function(l) lapply(l, function(x) if (identical(x, "Autocalculate")) "autocalculate" else x)
expect_equal(
idfVU$"CoolingTower:SingleSpeed"$CT1$value(),
lower_autocal(idfTR$"CoolingTower:SingleSpeed"$CT1$value())
)
expect_equal(
idfVU$"CoolingTower:TwoSpeed"$CT2$value(),
lower_autocal(idfTR$"CoolingTower:TwoSpeed"$CT2$value())
)
expect_equal(
idfVU$"EvaporativeFluidCooler:SingleSpeed"$EFC1$value()[1:23],
idfTR$"EvaporativeFluidCooler:SingleSpeed"$EFC1$value()
)
expect_equal(
idfVU$"EvaporativeFluidCooler:TwoSpeed"$EFC2$value()[1:32],
lower_autocal(idfTR$"EvaporativeFluidCooler:TwoSpeed"$EFC2$value())
)
expect_equal(
idfVU$"FluidCooler:TwoSpeed"$FluidCooler$value()[1:20],
lower_autocal(idfTR$"FluidCooler:TwoSpeed"$FluidCooler$value())
)
expect_equal(
idfVU$"HeatPump:WaterToWater:EquationFit:Heating"$HP1$value(),
idfTR$"HeatPump:WaterToWater:EquationFit:Heating"$HP1$value()
)
expect_equal(
idfVU$"HeatPump:WaterToWater:EquationFit:Cooling"$HP2$value(),
idfTR$"HeatPump:WaterToWater:EquationFit:Cooling"$HP2$value()
)
expect_equal(
idfVU$"HeatPump:WaterToWater:ParameterEstimation:Heating"$HP3$value(),
idfTR$"HeatPump:WaterToWater:ParameterEstimation:Heating"$HP3$value()
)
expect_equal(
idfVU$"HeatPump:WaterToWater:ParameterEstimation:Cooling"$HP4$value(),
idfTR$"HeatPump:WaterToWater:ParameterEstimation:Cooling"$HP4$value()
)
# NOTE: VersionUpdater adds one "ScheduleTypeLimits" for each HVACTemplate
expect_equal(idfTR$"ScheduleTypeLimits"$"Any Number"$Name, "Any Number")
expect_equal(
idfVU$"HVACTemplate:Zone:PTAC"[[1]]$value(),
idfTR$"HVACTemplate:Zone:PTAC"[[1]]$value()
)
expect_equal(
idfVU$"HVACTemplate:Zone:PTAC"[[2]]$value(),
idfTR$"HVACTemplate:Zone:PTAC"[[2]]$value()
)
expect_equal(
idfVU$"HVACTemplate:Zone:PTHP"[[1]]$value(),
idfTR$"HVACTemplate:Zone:PTHP"[[1]]$value()
)
expect_equal(
idfVU$"HVACTemplate:Zone:PTHP"[[2]]$value(),
idfTR$"HVACTemplate:Zone:PTHP"[[2]]$value()
)
expect_equal(
idfVU$"HVACTemplate:Zone:WaterToAirHeatPump"[[1]]$value(),
idfTR$"HVACTemplate:Zone:WaterToAirHeatPump"[[1]]$value()
)
expect_equal(
idfVU$"HVACTemplate:Zone:WaterToAirHeatPump"[[2]]$value(),
idfTR$"HVACTemplate:Zone:WaterToAirHeatPump"[[2]]$value()
)
expect_equal(
idfVU$"HVACTemplate:System:Unitary"$Sys1$value(),
idfTR$"HVACTemplate:System:Unitary"$Sys1$value()
)
expect_equal(
idfVU$"HVACTemplate:System:Unitary"$Sys2$value(),
idfTR$"HVACTemplate:System:Unitary"$Sys2$value()
)
expect_equal(
idfVU$"HVACTemplate:System:UnitaryHeatPump:AirToAir"$Sys3$value(),
idfTR$"HVACTemplate:System:UnitaryHeatPump:AirToAir"$Sys3$value()
)
expect_equal(
idfVU$"HVACTemplate:System:UnitaryHeatPump:AirToAir"$Sys4$value(),
idfTR$"HVACTemplate:System:UnitaryHeatPump:AirToAir"$Sys4$value()
)
})
# }}}
# v8.1 --> v8.2 {{{
test_that("Transition v8.1 --> v8.2", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.1"
to <- "8.2"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"ZoneHVAC:UnitVentilator" = list("UV"),
"ZoneHVAC:UnitHeater" := list(paste0("UH", 1:2), ..8 = c("onoff", "continuous")),
"PlantLoop" := list(paste0("PL", 1:2), ..19 = c("Sequential", "Uniform")),
"CondenserLoop" = list("CL", ..19 = "Sequential"),
"HVACTemplate:Plant:ChilledWaterLoop" := list(paste0("CWL", 1:2), ..32 = c("Sequential", "Uniform"), ..33 = c("Sequential", "Uniform")),
"HVACTemplate:Plant:HotWaterLoop" := list(paste0("HWL", 1:2), ..21 = c("Sequential", "Uniform")),
"HVACTemplate:Plant:MixedWaterLoop" := list(paste0("MWL", 1:2), ..17 = c("Sequential", "Uniform")),
"Sizing:System" = list(),
"ZoneHVAC:Baseboard:RadiantConvective:Water" = list(),
"ZoneHVAC:HighTemperatureRadiant" = list(),
"ZoneHVAC:Baseboard:RadiantConvective:Steam" = list(),
"ZoneHVAC:Baseboard:RadiantConvective:Electric" = list(),
"ZoneHVAC:Baseboard:Convective:Water" = list(),
"ZoneHVAC:Baseboard:Convective:Electric" = list(),
"ZoneHVAC:LowTemperatureRadiant:VariableFlow" = list(),
"ZoneHVAC:LowTemperatureRadiant:Electric" = list(),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"ZoneHVAC:UnitVentilator"$UV$value(1:23),
idfTR$"ZoneHVAC:UnitVentilator"$UV$value()
)
expect_equal(
idfVU$"ZoneHVAC:UnitHeater"$UH1$value(1:14),
idfTR$"ZoneHVAC:UnitHeater"$UH1$value()
)
expect_equal(
idfVU$"ZoneHVAC:UnitHeater"$UH2$value(1:14),
idfTR$"ZoneHVAC:UnitHeater"$UH2$value()
)
expect_equal(
idfVU$"PlantLoop"$PL1$value(),
idfTR$"PlantLoop"$PL1$value()
)
expect_equal(
idfVU$"CondenserLoop"$CL$value(),
idfTR$"CondenserLoop"$CL$value()
)
expect_equal(
idfVU$object("CWL1", "HVACTemplate:Plant:ChilledWaterLoop")$value(),
idfTR$object("CWL1", "HVACTemplate:Plant:ChilledWaterLoop")$value()
)
expect_equal(
idfVU$object("CWL2", "HVACTemplate:Plant:ChilledWaterLoop")$value(),
idfTR$object("CWL2", "HVACTemplate:Plant:ChilledWaterLoop")$value()
)
expect_equal(
idfVU$object("HWL1", "HVACTemplate:Plant:HotWaterLoop")$value(),
idfTR$object("HWL1", "HVACTemplate:Plant:HotWaterLoop")$value()
)
expect_equal(
idfVU$object("HWL2", "HVACTemplate:Plant:HotWaterLoop")$value(),
idfTR$object("HWL2", "HVACTemplate:Plant:HotWaterLoop")$value()
)
expect_equal(
idfVU$object("MWL1", "HVACTemplate:Plant:MixedWaterLoop")$value(),
idfTR$object("MWL1", "HVACTemplate:Plant:MixedWaterLoop")$value()
)
expect_equal(
idfVU$object("MWL2", "HVACTemplate:Plant:MixedWaterLoop")$value(),
idfTR$object("MWL2", "HVACTemplate:Plant:MixedWaterLoop")$value()
)
expect_equal(
idfVU$"Sizing:System"[[1]]$value(),
idfTR$"Sizing:System"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Water"[[1]]$value(1:14),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Water"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:HighTemperatureRadiant"[[1]]$value(1:14),
idfTR$"ZoneHVAC:HighTemperatureRadiant"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Steam"[[1]]$value(1:13),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Steam"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Electric"[[1]]$value(1:9),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Electric"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:Convective:Water"[[1]]$value(),
idfTR$"ZoneHVAC:Baseboard:Convective:Water"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:Convective:Electric"[[1]]$value(),
idfTR$"ZoneHVAC:Baseboard:Convective:Electric"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"[[1]]$value(),
idfTR$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:Electric"[[1]]$value(1:10),
idfTR$"ZoneHVAC:LowTemperatureRadiant:Electric"[[1]]$value()
)
})
# }}}
# v8.2 --> v8.3 {{{
test_that("Transition v8.2 --> v8.3", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.2"
to <- "8.3"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Chiller:Electric:ReformulatedEIR" = list(),
"Site:GroundDomain" = list(),
"GroundHeatExchanger:Vertical" = list(),
"EvaporativeCooler:Indirect:ResearchSpecial" = list(
..3 = 0.75, ..4 = 0.5, ..5 = 30.0, ..6 = "autosize",
..7 = 0.8, ..8 = 1000, ..12 = 0.9, ..17 = 0.2, ..18 = 3
),
"EvaporativeCooler:Direct:ResearchSpecial" = list(
..3 = 0.7, ..4 = 30.0, ..9 = 0.0, ..10 = 3
),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"Chiller:Electric:ReformulatedEIR"[[1]]$value(1:26),
idfTR$"Chiller:Electric:ReformulatedEIR"[[1]]$value()
)
expect_equal(
idfVU$"Site:GroundDomain:Slab"[[1]]$value(),
idfTR$"Site:GroundDomain:Slab"[[1]]$value()
)
expect_equal(
idfVU$"EvaporativeCooler:Indirect:ResearchSpecial"[[1]]$value(),
idfTR$"EvaporativeCooler:Indirect:ResearchSpecial"[[1]]$value()
)
expect_equal(
idfVU$"EvaporativeCooler:Direct:ResearchSpecial"[[1]]$value(),
idfTR$"EvaporativeCooler:Direct:ResearchSpecial"[[1]]$value()
)
})
# }}}
# v8.3 --> v8.4 {{{
test_that("Transition v8.3 --> v8.4", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.3"
to <- "8.4"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Coil:WaterHeating:AirToWaterHeatPump" = list(),
"WaterHeater:Stratified" := list(paste0("Stratified", 1:2)),
"WaterHeater:HeatPump" := list(paste0("HP", 1:2),
..17 = "WaterHeater:Stratified",
..18 = paste0("Stratified", 1:2),
..21 = "Coil:WaterHeating:AirToWaterHeatPump",
..35 = c("HEATER1", "HEATER2")
),
"Branch" = list(..4 = "WaterHeater:HeatPump", ..9 = "WaterHeater:HeatPump"),
"ZoneHVAC:EquipmentList" = list(..2 = "WaterHeater:HeatPump", ..6 = "WaterHeater:HeatPump"),
"PlantEquipmentList" = list(..2 = "WaterHeater:HeatPump", ..4 = "WaterHeater:HeatPump"),
"EvaporativeCooler:Direct:ResearchSpecial" = list(),
"Controller:MechanicalVentilation" = list(..4 = "ProportionalControl"),
"Site:GroundDomain:Slab" := list(paste0("Slab", 1:2)),
"Site:GroundDomain:Basement" := list(paste0("Base", 1:2)),
"PipingSystem:Underground:Domain" := list(paste0("PipeSys", 1:2)),
"Pipe:Underground" := list(paste0("Pipe", 1:2)),
"GroundHeatExchanger:HorizontalTrench" := list(paste0("HEH", 1:2)),
"GroundHeatExchanger:Slinky" := list(paste0("HES", 1:2)),
"HVACTemplate:Plant:ChilledWaterLoop" := list(
..32 = c("Sequential", "Uniform"),
..33 = c("Sequential", "Uniform")
),
"HVACTemplate:Plant:HotWaterLoop" := list(..21 = c("Sequential", "Uniform")),
"HVACTemplate:Plant:MixedWaterLoop" := list(..17 = c("Sequential", "Uniform")),
"ZoneAirMassFlowConservation" = list("No"),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"Coil:WaterHeating:AirToWaterHeatPump:Pumped"[[1]]$value(1:21),
idfTR$"Coil:WaterHeating:AirToWaterHeatPump:Pumped"[[1]]$value()
)
expect_equal(
idfVU$"WaterHeater:Stratified"$Stratified1$value(1:66),
idfTR$"WaterHeater:Stratified"$Stratified1$value()
)
expect_equal(
idfVU$"WaterHeater:Stratified"$Stratified2$value(1:66),
idfTR$"WaterHeater:Stratified"$Stratified2$value()
)
expect_equal(
idfVU$"WaterHeater:HeatPump:PumpedCondenser"$HP1$value(1:32),
{
val <- idfTR$"WaterHeater:HeatPump:PumpedCondenser"$HP1$value()
val[[21]] <- toupper(val[[21]])
val
}
)
expect_equal(
idfVU$"WaterHeater:HeatPump:PumpedCondenser"$HP2$value(1:32),
{
val <- idfTR$"WaterHeater:HeatPump:PumpedCondenser"$HP2$value()
val[[21]] <- toupper(val[[21]])
val
}
)
expect_equal(
idfVU$"Branch"[[1]]$value(1:13),
idfTR$"Branch"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"[[1]]$value(1:9),
idfTR$"ZoneHVAC:EquipmentList"[[1]]$value()
)
expect_equal(
idfVU$"PlantEquipmentList"[[1]]$value(1:4),
idfTR$"PlantEquipmentList"[[1]]$value()
)
expect_equal(
idfVU$"EvaporativeCooler:Direct:ResearchSpecial"[[1]]$value(1:11),
idfTR$"EvaporativeCooler:Direct:ResearchSpecial"[[1]]$value()
)
expect_equal(
idfVU$"Controller:MechanicalVentilation"[[1]]$value(1:8),
idfTR$"Controller:MechanicalVentilation"[[1]]$value()
)
expect_equal(
idfVU$"Site:GroundDomain:Slab"$Slab1$value(1:23),
idfTR$"Site:GroundDomain:Slab"$Slab1$value()
)
expect_equal(
idfVU$"Site:GroundDomain:Slab"$Slab2$value(1:23),
idfTR$"Site:GroundDomain:Slab"$Slab2$value()
)
expect_equal(
idfVU$"Site:GroundDomain:Basement"$Base1$value(),
idfTR$"Site:GroundDomain:Basement"$Base1$value()
)
expect_equal(
idfVU$"Site:GroundDomain:Basement"$Base2$value(),
idfTR$"Site:GroundDomain:Basement"$Base2$value()
)
# VersionUpdater does not follow the actual class order
expect_equal(
idfVU$"PipingSystem:Underground:Domain"$PipeSys1$value(1:36)[-20],
idfTR$"PipingSystem:Underground:Domain"$PipeSys1$value()[-20]
)
expect_equal(
idfVU$"PipingSystem:Underground:Domain"$PipeSys2$value(1:36)[-20],
idfTR$"PipingSystem:Underground:Domain"$PipeSys2$value()[-20]
)
expect_equal(
idfTR$"PipingSystem:Underground:Domain"$PipeSys1$value("Undisturbed Ground Temperature Model Name")[[1]],
"KATemp 5"
)
expect_equal(
idfTR$"PipingSystem:Underground:Domain"$PipeSys2$value("Undisturbed Ground Temperature Model Name")[[1]],
"KATemp 6"
)
expect_equal(
idfVU$"Pipe:Underground"$Pipe1$value()[-10],
idfTR$"Pipe:Underground"$Pipe1$value()[-10]
)
expect_equal(
idfVU$"Pipe:Underground"$Pipe2$value()[-10],
idfTR$"Pipe:Underground"$Pipe2$value()[-10]
)
expect_equal(idfTR$"Pipe:Underground"$Pipe1$value(10)[[1]], "KATemp 7")
expect_equal(idfTR$"Pipe:Underground"$Pipe2$value(10)[[1]], "KATemp 8")
expect_equal(
idfVU$"GroundHeatExchanger:HorizontalTrench"$HEH1$value()[-20],
idfTR$"GroundHeatExchanger:HorizontalTrench"$HEH1$value()[-20]
)
expect_equal(
idfVU$"GroundHeatExchanger:HorizontalTrench"$HEH2$value()[-20],
idfTR$"GroundHeatExchanger:HorizontalTrench"$HEH2$value()[-20]
)
expect_equal(idfTR$"GroundHeatExchanger:HorizontalTrench"$HEH1$value(20)[[1]], "KATemp 9")
expect_equal(idfTR$"GroundHeatExchanger:HorizontalTrench"$HEH2$value(20)[[1]], "KATemp 10")
expect_equal(
idfVU$"GroundHeatExchanger:Slinky"$HES1$value()[-21],
idfTR$"GroundHeatExchanger:Slinky"$HES1$value()[-21]
)
expect_equal(
idfVU$"GroundHeatExchanger:Slinky"$HES2$value()[-21],
idfTR$"GroundHeatExchanger:Slinky"$HES2$value()[-21]
)
expect_equal(idfTR$"GroundHeatExchanger:Slinky"$HES1$value(21)[[1]], "KATemp 11")
expect_equal(idfTR$"GroundHeatExchanger:Slinky"$HES2$value(21)[[1]], "KATemp 12")
expect_equal(idfVU$object(11)$value(), idfTR$object(36)$value())
expect_equal(idfVU$object(12)$value(), idfTR$object(37)$value())
expect_equal(idfVU$object(13)$value(), idfTR$object(38)$value())
expect_equal(idfVU$object(14)$value(), idfTR$object(39)$value())
expect_equal(idfVU$object(15)$value(), idfTR$object(40)$value())
expect_equal(idfVU$object(16)$value(), idfTR$object(41)$value())
expect_equal(
idfVU$"ZoneAirMassFlowConservation"$value(),
idfTR$"ZoneAirMassFlowConservation"$value()
)
})
# }}}
# v8.4 --> v8.5 {{{
test_that("Transition v8.4 --> v8.5", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.4"
to <- "8.5"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"EnergyManagementSystem:Actuator" := list(
..4 = sprintf("outdoor air %sblub temperature", c("dry", "wet"))
),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"EnergyManagementSystem:Actuator"[[1]]$value(),
idfTR$"EnergyManagementSystem:Actuator"[[1]]$value()
)
expect_equal(
idfVU$"EnergyManagementSystem:Actuator"[[2]]$value(),
idfTR$"EnergyManagementSystem:Actuator"[[2]]$value()
)
})
# }}}
# v8.5 --> v8.6 {{{
test_that("Transition v8.5 --> v8.6", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.5"
to <- "8.6"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Building" = list(),
"GlobalGeometryRules" = list("UpperLeftCorner", "Counterclockwise", "Relative", "Relative", "Relative"),
"Exterior:FuelEquipment" = list("Equip"),
"HVACTemplate:System:UnitarySystem" = list("Uni"),
"HVACTemplate:System:Unitary" = list("Sys", "On", "Zone1", ..16 = "Gas"),
"ChillerHeater:Absorption:DirectFired" = list("Chiller", "Autosize",
..8 = "In", ..9 = "Out", ..10 = "CInlet", ..11 = "COut",
..12 = "HIn", ..13 = "Hout", ..20 = "Autosize"
),
"SetpointManager:SingleZone:Humidity:Minimum" = list("SP1", ..4 = "Node", ..5 = "Zone1"),
"SetpointManager:SingleZone:Humidity:Maximum" = list("SP2", ..4 = "Node", ..5 = "Zone1"),
"AirTerminal:SingleDuct:VAV:Reheat" = list("VAV",
..3 = "Damper", ..4 = "Inlet", ..5 = "Autosize", ..6 = "Constant",
..10 = "Coil:Heating:Gas", ..11 = "HtgCoil",
..14 = "Outlet", ..16 = "Reverse", ..17 = "Autocalculate",
..18 = "Autocalculate"
),
"Branch" = list("Branch", "autosize", NULL, "Type", "Name", "In", "Out", "Passive"),
"AirTerminal:SingleDuct:InletSideMixer" = list("Term1", "ZoneHVAC:FourPipeFanCoil", "FanCoil", "Outlet", "Primary", "Second"),
"AirTerminal:SingleDuct:SupplySideMixer" = list("Term2", "ZoneHVAC:FourPipeFanCoil", "FanCoil", "Outlet", "Primary", "Second"),
"OtherEquipment" = list("Equip", "Zone1", "On"),
"Coil:Heating:Gas" = list("Coil", ..5 = "Inlet", ..6 = "Outlet"),
"Zone" := list(paste0("Zone", 1:2)),
"Daylighting:Controls" := list(paste0("Zone", 1:3),
c(1:2, 2), 1:3, 1:3, 4:6, 4:6, 4:6,
..11 = 300, ..12 = 500, ..13 = 1:3, ..14 = 90
),
"Daylighting:DELight:Controls" := list(
paste0("DELight", 1:3), paste0("Zone", 1:3),
1:3, 0.3, 0.2, 2, 1.0, 0.5
),
"Daylighting:DELight:ReferencePoint" := list(
paste0("RefPt", 1:2), paste0("DELight", 1:2), 1:2, 1:2, 1:2, 0.5, 400
),
"MaterialProperty:MoisturePenetrationDepth:Settings" := list(
"Mat1", 0.004, 0.07, 0.40, 0.07, 10.0
),
"Material" = list("Mat1", "Rough", 0.12, 0.16, 800, 800, 0.9, 0.6, 0.6),
"EnergyManagementSystem:Actuator" := list(c("Act1", "Act2"), "Name", "Type",
..4 = sprintf("outdoor air %sblub temperature", c("dry", "wet"))
),
"Output:Variable" := list(
paste0("Zone", 1:3), "Daylighting Reference Point 1 Illuminance"
),
"Output:Variable" := list(
paste0("Zone", 1:3), "Daylighting Lighting Power Multiplier"
),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"Building"$value(),
idfTR$"Building"$value()
)
expect_equal(
idfVU$"GlobalGeometryRules"$value(),
idfTR$"GlobalGeometryRules"$value()
)
expect_equal(
idfVU$"Exterior:FuelEquipment"[[1]]$value(),
idfTR$"Exterior:FuelEquipment"[[1]]$value()
)
expect_equal(
idfVU$"HVACTemplate:System:UnitarySystem"[[1]]$value(),
idfTR$"HVACTemplate:System:UnitarySystem"[[1]]$value()
)
expect_equal(
idfVU$"HVACTemplate:System:Unitary"[[1]]$value(),
idfTR$"HVACTemplate:System:Unitary"[[1]]$value()
)
expect_equal(
idfVU$"ChillerHeater:Absorption:DirectFired"[[1]]$value(),
idfTR$"ChillerHeater:Absorption:DirectFired"[[1]]$value()
)
expect_equal(
idfVU$"SetpointManager:SingleZone:Humidity:Minimum"[[1]]$value(),
idfTR$"SetpointManager:SingleZone:Humidity:Minimum"[[1]]$value()
)
expect_equal(
idfVU$"SetpointManager:SingleZone:Humidity:Maximum"[[1]]$value(),
idfTR$"SetpointManager:SingleZone:Humidity:Maximum"[[1]]$value()
)
expect_equal(
idfVU$"AirTerminal:SingleDuct:VAV:Reheat"[[1]]$value(1:18),
idfTR$"AirTerminal:SingleDuct:VAV:Reheat"[[1]]$value()
)
expect_equal(
idfVU$"Branch"[[1]]$value(1:6),
idfTR$"Branch"[[1]]$value()
)
expect_equal(
idfVU$"AirTerminal:SingleDuct:Mixer"$Term1$value(),
idfTR$"AirTerminal:SingleDuct:Mixer"$Term1$value()
)
expect_equal(
idfVU$"AirTerminal:SingleDuct:Mixer"$Term2$value(),
idfTR$"AirTerminal:SingleDuct:Mixer"$Term2$value()
)
expect_equal(
idfVU$"OtherEquipment"[[1]]$value(),
idfTR$"OtherEquipment"[[1]]$value()
)
expect_equal(
idfVU$"Coil:Heating:Fuel"[[1]]$value(1:7),
idfTR$"Coil:Heating:Fuel"[[1]]$value()
)
expect_equal(
idfVU$"Daylighting:Controls"$Zone1_DaylCtrl$value(),
idfTR$"Daylighting:Controls"$Zone1_DaylCtrl$value()
)
expect_equal(
idfVU$"Daylighting:Controls"$Zone2_DaylCtrl$value(),
idfTR$"Daylighting:Controls"$Zone2_DaylCtrl$value()
)
expect_equal(
idfVU$"Daylighting:Controls"$Zone3_DaylCtrl$value(),
idfTR$"Daylighting:Controls"$Zone3_DaylCtrl$value()
)
expect_equal(
idfVU$"Daylighting:Controls"$DELight1$value(),
idfTR$"Daylighting:Controls"$DELight1$value()
)
expect_equal(
# NOTE: VersionUpdater failed to update `Lighting Control Type` and always
# returned "Continuous"
idfVU$"Daylighting:Controls"$DELight2$value()[-5],
idfTR$"Daylighting:Controls"$DELight2$value()[-5]
)
expect_equal(
idfTR$"Daylighting:Controls"$DELight2$value("Lighting Control Type")[[1]],
"Stepped"
)
expect_equal(
# NOTE: VersionUpdater failed to update `Lighting Control Type` and always
# returned "Continuous"
idfVU$"Daylighting:Controls"$DELight3$value()[-5],
idfTR$"Daylighting:Controls"$DELight3$value()[-5]
)
expect_equal(
idfTR$"Daylighting:Controls"$DELight3$value("Lighting Control Type")[[1]],
"ContinuousOff"
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$Zone1_DaylRefPt1$value(),
idfTR$"Daylighting:ReferencePoint"$Zone1_DaylRefPt1$value()
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$Zone2_DaylRefPt1$value(),
idfTR$"Daylighting:ReferencePoint"$Zone2_DaylRefPt1$value()
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$Zone2_DaylRefPt2$value(),
idfTR$"Daylighting:ReferencePoint"$Zone2_DaylRefPt2$value()
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$Zone3_DaylRefPt1$value(),
idfTR$"Daylighting:ReferencePoint"$Zone3_DaylRefPt1$value()
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$Zone3_DaylRefPt2$value(),
idfTR$"Daylighting:ReferencePoint"$Zone3_DaylRefPt2$value()
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$RefPt1$value(),
idfTR$"Daylighting:ReferencePoint"$RefPt1$value()
)
expect_equal(
idfVU$"Daylighting:ReferencePoint"$RefPt2$value(),
idfTR$"Daylighting:ReferencePoint"$RefPt2$value()
)
expect_equal(
idfVU$"EnergyManagementSystem:Actuator"[[1]]$value(),
idfTR$"EnergyManagementSystem:Actuator"[[1]]$value()
)
expect_equal(
tolerance = 1e-4,
idfVU$"MaterialProperty:MoisturePenetrationDepth:Settings"[[1]]$value(),
idfTR$"MaterialProperty:MoisturePenetrationDepth:Settings"[[1]]$value()
)
# NOTE: VersionUpdater will crash if no matched material found for
# "MaterialProperty:MoisturePenetrationDepth:Settings"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"MaterialProperty:MoisturePenetrationDepth:Settings" := list(
paste0("Mat", 1:2), 0.004, 0.07, 0.40, 0.07, 10.0
),
"Material" = list("Mat1", "Rough", 0.12, 0.16, 800, 800, 0.9, 0.6, 0.6),
.all = TRUE
)
)
expect_warning(idfTR <- transition(idfOri, to), "Material match issue")
})
# }}}
# v8.6 --> v8.7 {{{
test_that("Transition v8.6 --> v8.7", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.6"
to <- "8.7"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Coil:Cooling:DX:MultiSpeed" = list("ClgCoil1", ..16 = NULL),
"Coil:Cooling:DX:MultiSpeed" = list("ClgCoil2", ..16 = "PropaneGas"),
"Coil:Heating:DX:MultiSpeed" = list("HtgCoil1", ..16 = NULL),
"Coil:Heating:DX:MultiSpeed" = list("HtgCoil2", ..16 = "PropaneGas"),
"CoolingTower:SingleSpeed" = list("Tower1"),
"CoolingTower:TwoSpeed" = list("Tower2"),
"CoolingTower:VariableSpeed:Merkel" = list("Tower3"),
"AirflowNetwork:SimulationControl" = list("Ctrl"),
"ZoneCapacitanceMultiplier:ResearchSpecial" = list(),
"WaterHeater:HeatPump:WrappedCondenser" = list("HP", ..35 = "MutuallyExlcusive"),
"AirflowNetwork:Distribution:Component:Duct" = list("Duct", ..7 = 0.772, ..8 = 0.0001),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$ClgCoil1$value(1:91),
idfTR$"Coil:Cooling:DX:MultiSpeed"$ClgCoil1$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$ClgCoil2$value(1:91),
idfTR$"Coil:Cooling:DX:MultiSpeed"$ClgCoil2$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$HtgCoil1$value(1:80),
idfTR$"Coil:Heating:DX:MultiSpeed"$HtgCoil1$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$HtgCoil2$value(1:80),
idfTR$"Coil:Heating:DX:MultiSpeed"$HtgCoil2$value()
)
expect_equal(
idfVU$"CoolingTower:SingleSpeed"$Tower1$value(),
idfTR$"CoolingTower:SingleSpeed"$Tower1$value()
)
expect_equal(
idfVU$"CoolingTower:TwoSpeed"$Tower2$value(),
idfTR$"CoolingTower:TwoSpeed"$Tower2$value()
)
expect_equal(
idfVU$"CoolingTower:VariableSpeed:Merkel"$Tower3$value(),
idfTR$"CoolingTower:VariableSpeed:Merkel"$Tower3$value()
)
expect_equal(
idfVU$"AirflowNetwork:SimulationControl"$value(),
idfTR$"AirflowNetwork:SimulationControl"$value()
)
expect_equal(
idfVU$"ZoneCapacitanceMultiplier:ResearchSpecial"[[1]]$value(),
idfTR$"ZoneCapacitanceMultiplier:ResearchSpecial"[[1]]$value()
)
expect_equal(
idfVU$"WaterHeater:HeatPump:WrappedCondenser"[[1]]$value(1:37),
idfTR$"WaterHeater:HeatPump:WrappedCondenser"[[1]]$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Component:Duct"$Duct$value(),
idfTR$"AirflowNetwork:Distribution:Component:Duct"$Duct$value()
)
})
# }}}
# v8.7 --> v8.8 {{{
test_that("Transition v8.7 --> v8.8", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.7"
to <- "8.8"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Output:Surfaces:List" = list("DecayCurvesfromZoneComponentLoads"),
"Table:TwoIndependentVariables" = list("Table"),
"BuildingSurface:Detailed" = list(
"Surf1", "Floor", "Const", "Zone",
"Foundation", "Slab Foundation", "NoSun", "NoWind", "AutoCalculate",
4,
45, 28, 0,
45, 4, 0,
4, 4, 0,
4, 28, 0
),
"Floor:Detailed" = list(
"Surf2", "Const", "Zone",
"Foundation", "Slab Foundation", "NoSun", "NoWind", "AutoCalculate",
4,
45, 28, 0,
45, 4, 0,
4, 4, 0,
4, 28, 0
),
"UnitarySystemPerformance:Multispeed" = list("Unitary"),
"Coil:Cooling:DX:SingleSpeed" = list("Coil1"),
"Coil:Cooling:DX:TwoSpeed" = list("Coil2"),
"Coil:Cooling:DX:MultiSpeed" = list("Coil3"),
"Coil:Cooling:DX:VariableSpeed" = list("Coil4"),
"Coil:Cooling:DX:TwoStageWithHumidityControlMode" = list("Coil5"),
"ZoneHVAC:PackagedTerminalHeatPump" = list("HP"),
"ZoneHVAC:IdealLoadsAirSystem" = list("Ideal"),
"ZoneControl:ContaminantController" = list("Cont"),
"AvailabilityManager:NightCycle" = list("Night"),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_warning(expect_warning(idfTR <- transition(idfOri, to), "'SurfaceProperty:ExposedFoundationPerimeter'"))
expect_equal(
idfVU$"Output:Surfaces:List"[[1]]$value(1),
idfTR$"Output:Surfaces:List"[[1]]$value()
)
expect_equal(
idfVU$"Table:TwoIndependentVariables"$Table$value(1:14),
idfTR$"Table:TwoIndependentVariables"$Table$value()
)
expect_equal(
idfVU$"BuildingSurface:Detailed"$Surf1$value(),
idfTR$"BuildingSurface:Detailed"$Surf1$value(1:22)
)
# XXX:Detailed transition breaks in EnergyPlus v9.6
# See: https://github.com/NREL/EnergyPlus/issues/9172
# expect_equal(
# idfVU$"Floor:Detailed"$Surf2$value(1:21),
# idfTR$"Floor:Detailed"$Surf2$value(1:21)
# )
expect_equal(
idfVU$"SurfaceProperty:ExposedFoundationPerimeter"[[1]]$value(1:14),
idfTR$"SurfaceProperty:ExposedFoundationPerimeter"[[1]]$value(1:14)
)
expect_equal(
idfVU$"SurfaceProperty:ExposedFoundationPerimeter"[[2]]$value(1:14),
idfTR$"SurfaceProperty:ExposedFoundationPerimeter"[[2]]$value(1:14)
)
expect_equal(
idfVU$"UnitarySystemPerformance:Multispeed"$Unitary$value(1:7),
idfTR$"UnitarySystemPerformance:Multispeed"$Unitary$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:SingleSpeed"$Coil1$value(1:34),
idfTR$"Coil:Cooling:DX:SingleSpeed"$Coil1$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:TwoSpeed"$Coil2$value(1:33),
idfTR$"Coil:Cooling:DX:TwoSpeed"$Coil2$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$Coil3$value(1:92),
idfTR$"Coil:Cooling:DX:MultiSpeed"$Coil3$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:VariableSpeed"$Coil4$value(1:31),
idfTR$"Coil:Cooling:DX:VariableSpeed"$Coil4$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:TwoStageWithHumidityControlMode"$Coil5$value(1:21),
idfTR$"Coil:Cooling:DX:TwoStageWithHumidityControlMode"$Coil5$value()
)
expect_equal(
idfVU$"ZoneHVAC:PackagedTerminalHeatPump"$HP$value(1:26),
idfTR$"ZoneHVAC:PackagedTerminalHeatPump"$HP$value()
)
expect_equal(
idfVU$"ZoneHVAC:IdealLoadsAirSystem"$Ideal$value(1:27),
idfTR$"ZoneHVAC:IdealLoadsAirSystem"$Ideal$value()
)
expect_equal(
idfVU$"ZoneControl:ContaminantController"$Cont$value(1:4),
idfTR$"ZoneControl:ContaminantController"$Cont$value()
)
expect_equal(
idfVU$"AvailabilityManager:NightCycle"$Night$value(1:7),
idfTR$"AvailabilityManager:NightCycle"$Night$value()
)
})
# }}}
# v8.8 --> v8.9 {{{
test_that("Transition v8.8 --> v8.9", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.8"
to <- "8.9"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"ZoneHVAC:EquipmentList" = list("Equip"),
"GroundHeatExchanger:Vertical" = list(
"GHP", "Inlet", "Outlet",
3.3e-4, 24,
76.2, 0.06, 0.70, 2.34e6, 13.40, 0.70,
0.39, 0.03, 0.02, 0.002, 2, 0.0005,
3, -15.2996, -0.348322, -14.201, 0.022208, -13.2202, 0.412345
),
"Branch" = list("Branch", NULL, "GroundHeatExchanger:Vertical", "GHP", "Inlet", "Outlet"),
"CondenserEquipmentList" = list("CondEquip", "GroundHeatExchanger:Vertical", "GHP"),
"ElectricEquipment:ITE:AirCooled" = list(),
"Schedule:Day:Interval" = list(..3 = "yes"),
"Schedule:Day:List" = list(..3 = "yes"),
"Schedule:Compact" = list(..3 = "Interpolate: yes"),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"[[1]]$value(1:6),
idfTR$"ZoneHVAC:EquipmentList"[[1]]$value()
)
expect_equal(
idfVU$"GroundHeatExchanger:System"[[1]]$value(),
idfTR$"GroundHeatExchanger:System"[[1]]$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"GroundHeatExchanger:Vertical:Properties"[[1]]$value(),
idfTR$"GroundHeatExchanger:Vertical:Properties"[[1]]$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"GroundHeatExchanger:ResponseFactors"[[1]]$value(1:74),
idfTR$"GroundHeatExchanger:ResponseFactors"[[1]]$value(1:74)
)
expect_equal(
idfVU$"Branch"[[1]]$value(1:6),
idfTR$"Branch"[[1]]$value()
)
expect_equal(
idfVU$"CondenserEquipmentList"[[1]]$value(1:3),
idfTR$"CondenserEquipmentList"[[1]]$value()
)
expect_equal(
idfVU$"ElectricEquipment:ITE:AirCooled"[[1]]$value(),
idfTR$"ElectricEquipment:ITE:AirCooled"[[1]]$value()
)
expect_equal(
idfVU$"Schedule:Day:Interval"[[1]]$value(1:5),
idfTR$"Schedule:Day:Interval"[[1]]$value()
)
expect_equal(
idfVU$"Schedule:Day:List"[[1]]$value(1:5),
idfTR$"Schedule:Day:List"[[1]]$value()
)
expect_equal(
idfVU$"Schedule:Compact"[[1]]$value(1:5),
idfTR$"Schedule:Compact"[[1]]$value()
)
})
# }}}
# v8.9 --> v9.0 {{{
test_that("Transition v8.9 --> v9.0", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "8.9"
to <- "9.0"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"OutdoorAir:Mixer" = list("OAMixer"),
"AirflowNetwork:Distribution:Component:OutdoorAirFlow" = list("OA"),
"AirflowNetwork:Distribution:Component:ReliefAirFlow" = list("RA"),
"Boiler:HotWater" = list("Boiler"),
"GlazedDoor" = list("GD"),
"RunPeriod:CustomRange" = list("RP1", 1, 1, 2020, 1, 2, 2020, "UseWeatherFile"),
"RunPeriod" = list("RP2", 1, 1, 1, 2, "UseWeatherFile", ..12 = 3, ..14 = 2020),
"RunPeriod" = list("RP3", 1, 1, 1, 2, "Monday", ..12 = 2),
"RunPeriod" = list("RP4", 1, 1, 1, 2, "Sunday", ..12 = 2),
"Table:OneIndependentVariable" = list("Table", "Exponent"),
"WindowMaterial:ComplexShade" = list("Mat", "Venetian"),
"FenestrationSurface:Detailed" = list("Fene", "Window", "ConstNoShade", "Surf", ..7 = "Ctrl"),
"BuildingSurface:Detailed" = list("Surf", "Wall", "Wall", "Zone", "Outdoors"),
"Zone" = list("Zone"),
"Window" = list("Win"),
"WindowProperty:ShadingControl" = list(
"Ctrl", "ExteriorScreen",
"Const", "OnIfScheduleAllows", "ScreenSchedule", 20, "Yes", "No"
),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_warning(expect_warning(idfTR <- transition(idfOri, to), "UseWeatherFile"))
expect_equal(
idfVU$"AirflowNetwork:Distribution:Component:OutdoorAirFlow"[[1]]$value(1:4),
idfTR$"AirflowNetwork:Distribution:Component:OutdoorAirFlow"[[1]]$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Component:ReliefAirFlow"[[1]]$value(1:4),
idfTR$"AirflowNetwork:Distribution:Component:ReliefAirFlow"[[1]]$value()
)
expect_equal(
idfVU$"Boiler:HotWater"[[1]]$value(),
idfTR$"Boiler:HotWater"[[1]]$value()
)
expect_equal(
idfVU$"FenestrationSurface:Detailed"[[1]]$value(1:18),
idfTR$"FenestrationSurface:Detailed"[[1]]$value()
)
expect_equal(
idfVU$"GlazedDoor"[[1]]$value(1:5),
idfTR$"GlazedDoor"[[1]]$value()
)
expect_equal(
idfVU$"RunPeriod"$RP1$value(1:13),
idfTR$"RunPeriod"$RP1$value()
)
expect_equal(
idfVU$"RunPeriod"$RP2$value(1:13),
idfTR$"RunPeriod"$RP2$value()
)
expect_equal(
idfVU$"RunPeriod"$RP3$value(1:13),
idfTR$"RunPeriod"$RP3$value()
)
expect_equal(
idfVU$"RunPeriod"$RP4$value(1:13),
idfTR$"RunPeriod"$RP4$value()
)
expect_equal(
idfVU$"Table:OneIndependentVariable"[[1]]$value(1:14),
idfTR$"Table:OneIndependentVariable"[[1]]$value()
)
expect_equal(
idfVU$"WindowMaterial:ComplexShade"[[1]]$value(),
idfTR$"WindowMaterial:ComplexShade"[[1]]$value()
)
expect_equal(
idfVU$"Window"[[1]]$value(1:5),
idfTR$"Window"[[1]]$value()
)
expect_equal(
idfVU$"WindowShadingControl"[[1]]$value(),
idfTR$"WindowShadingControl"[[1]]$value()
)
})
# }}}
# v9.0 --> v9.1 {{{
test_that("Transition v9.0 --> v9.1", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "9.0"
to <- "9.1"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"HybridModel:Zone" = list("HM", "Zone", "no", "no", "sch", 1, 1, 12, 31),
"ZoneHVAC:EquipmentList" = list("EquipList", NULL, "ZoneHVAC:IdealLoadsAirSystem", "Ideal", 1, 1),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"HybridModel:Zone"[[1]]$value(),
idfTR$"HybridModel:Zone"[[1]]$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"[[1]]$value(1:8),
idfTR$"ZoneHVAC:EquipmentList"[[1]]$value()
)
})
# }}}
# v9.1 --> v9.2 {{{
test_that("Transition v9.1 --> v9.2", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "9.1"
to <- "9.2"
unlink(file.path(tempdir(), "test.csv"))
writeLines("", file.path(tempdir(), "test.csv"))
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Foundation:Kiva" = list(),
"RunPeriod" := list(c(paste0("runperiod", c("", 1:5), "rp"))),
"RunPeriod" := list(..2 = rep(1:5)),
"Schedule:File" = list(..3 = file.path(tempdir(), "test.csv"), ..7 = "fixed"),
"Table:OneIndependentVariable" = list(
"One", "Quadratic", "EvaluateCurveToLimits", 0.0, 1.0, 0.85,
1.0, "Dimensionless", "Dimensionless", NULL, 0.0, 0.85, 0.5,
0.925, 1.0, 1.0
),
"Table:TwoIndependentVariables" = list(
"Two1", "BiQuadratic", "LagrangeInterpolationLinearExtrapolation",
12, 24, 18, 47, 0, 40000, "Temperature", "Temperature",
"Dimensionless", 25000, NULL,
12.77778, 36, 19524.15032,
12.77778, 41, 18178.81244,
12.77778, 46.11111, 16810.36004,
15, 18, 25997.3589,
15, 30, 22716.4017,
12.77778, 30, 21147.21662,
12.77778, 35, 19794.00525,
15, 24, 24352.1562,
12.77778, 18, 24421.69383,
12.77778, 24, 22779.73113,
15, 35, 21360.49033,
15, 36, 21090.0954,
15, 41, 19742.05753,
15, 46.11111, 18370.84513,
18, 18, 28392.31868,
23.88889, 41, 27683.36592,
23.88889, 46.11111, 26301.11353,
18, 24, 26742.74198,
18, 30, 25102.61348,
23.88889, 35, 29314.75872,
23.88889, 36, 29042.2038,
19.44448943, 24, 28003.546,
19.44448943, 30, 26361.31143,
18, 35, 23743.0571,
18, 36, 23471.93318,
18, 41, 22120.2503,
18, 46.11111, 20745.3119,
21, 18, 31094.97495,
21, 24, 29441.02425,
19.44448943, 18, 29655.22876,
21, 30, 27796.52175,
21, 35, 26433.32038,
21, 36, 26161.46745,
21, 41, 24806.13958,
21, 46.11111, 23427.47518,
23.88889, 18, 33988.3473,
23.88889, 24, 32330.1846,
23.88889, 30, 30681.4701,
19.44448943, 35, 25000,
19.44448943, 36, 24728.52506,
19.44448943, 41, 23375.08713,
19.44448943, 46.11111, 21998.35468
),
"Table:TwoIndependentVariables" = list(
"Two2", "BiQuadratic", "LagrangeinterpolationLinearExtrapolation",
12, 24, 18, 47, NULL, NULL, "Temperature", "Temperature",
"Dimensionless", NULL, NULL,
12.77778, 36, 19524.15032,
12.77778, 41, 18178.81244,
12.77778, 46.11111, 16810.36004,
15, 18, 25997.3589,
15, 30, 22716.4017,
12.77778, 30, 21147.21662,
12.77778, 35, 19794.00525,
15, 24, 24352.1562,
12.77778, 18, 24421.69383,
12.77778, 24, 22779.73113,
15, 35, 21360.49033,
15, 36, 21090.0954,
15, 41, 19742.05753,
15, 46.11111, 18370.84513,
18, 18, 28392.31868,
23.88889, 41, 27683.36592,
23.88889, 46.11111, 26301.11353,
18, 24, 26742.74198,
18, 30, 25102.61348,
23.88889, 35, 29314.75872,
23.88889, 36, 29042.2038,
19.44448943, 24, 28003.546,
19.44448943, 30, 26361.31143,
18, 35, 23743.0571,
18, 36, 23471.93318,
18, 41, 22120.2503,
18, 46.11111, 20745.3119,
21, 18, 31094.97495,
21, 24, 29441.02425,
19.44448943, 18, 29655.22876,
21, 30, 27796.52175,
21, 35, 26433.32038,
21, 36, 26161.46745,
21, 41, 24806.13958,
21, 46.11111, 23427.47518,
23.88889, 18, 33988.3473,
23.88889, 24, 32330.1846,
23.88889, 30, 30681.4701,
19.44448943, 35, 25000,
19.44448943, 36, 24728.52506,
19.44448943, 41, 23375.08713,
19.44448943, 46.11111, 21998.35468
),
"Table:MultiVariableLookup" = list(
"Multi1", "EvaluateCurveToLimits", 3, "Quadratic",
"SingleLineIndependentVariableWithMatrix", NULL, "ASCENDING",
NULL, NULL, 0.5, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, 0.8, 1.5, "Dimensionless", NULL, NULL, NULL,
NULL, NULL, "Dimensionless", 1, 3, 0.0, 1.0, 1.5, 0.8, 1.0, 1.1
),
"Table:MultiVariableLookup" = list(
"Multi2", "EvaluateCurveToLimits", 3, "Quadratic",
"SingleLineIndependentVariableWithMatrix", NULL, "ASCENDING",
NULL, NULL, 0.5, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, 0.0, 1.5, "Dimensionless", NULL, NULL, NULL,
NULL, NULL, "Dimensionless", 1, 4, 0.0, 0.5, 1.0, 1.5, 1.1552,
1.0712, 1.0, 0.9416
),
"Coil:Cooling:DX:SingleSpeed" = list(
"Coil", "Sch", "autosize",
"autosize", 3.0, "autosize", NULL, "Inlet", "Outlet",
"Two1", "Multi1", "Two2", "Multi2", "One"
),
"ThermalStorage:Ice:Detailed" := list(c("Ice1", "Ice2"), ..6 = c("quadraticlinear", "cubiclinear"), ..8 = c("quadraticlinear", "cubiclinear")),
"ZoneHVAC:EquipmentList" = list("Equip1"),
"ZoneHVAC:EquipmentList" = list("Equip2", NULL, "ZoneHVAC:PackagedTerminalHeatPump", "HP", 1, 1),
"ZoneHVAC:EquipmentList" = list(
"Equip3", NULL,
"ZoneHVAC:PackagedTerminalHeatPump", "HP1", 1, 1, 1, 1,
"ZoneHVAC:PackagedTerminalHeatPump", "HP2", 1, 1, 1, 1,
"ZoneHVAC:PackagedTerminalHeatPump", "HP3", 1, 1, 1, 1
),
.all = FALSE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
suppressWarnings(expect_warning(idfTR <- transition(idfOri, to), "comments"))
expect_equal(
idfVU$"Foundation:Kiva"[[1]]$value(1),
idfTR$"Foundation:Kiva"[[1]]$value()
)
expect_equal(
idfVU$"RunPeriod"[[1]]$value(),
idfTR$"RunPeriod"[[1]]$value()
)
expect_equal(
idfVU$"Schedule:File"[[1]]$value()[-3],
idfTR$"Schedule:File"[[1]]$value()[-3]
)
expect_equal(
idfVU$"Table:IndependentVariable"$One_IndependentVariable1$value(),
idfTR$"Table:IndependentVariable"$One_IndependentVariable1$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:IndependentVariable"$Two1_IndependentVariable1$value(),
idfTR$"Table:IndependentVariable"$Two1_IndependentVariable1$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:IndependentVariable"$Two1_IndependentVariable2$value(),
idfTR$"Table:IndependentVariable"$Two1_IndependentVariable2$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:IndependentVariable"$Two2_IndependentVariable1$value(),
idfTR$"Table:IndependentVariable"$Two2_IndependentVariable1$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:IndependentVariable"$Two2_IndependentVariable2$value(),
idfTR$"Table:IndependentVariable"$Two2_IndependentVariable2$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:IndependentVariable"$Multi1_IndependentVariable1$value(),
idfTR$"Table:IndependentVariable"$Multi1_IndependentVariable1$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:IndependentVariable"$Multi2_IndependentVariable1$value(),
idfTR$"Table:IndependentVariable"$Multi2_IndependentVariable1$value()
)
expect_equal(
idfVU$"Table:IndependentVariableList"$One_IndependentVariableList$value(),
idfTR$"Table:IndependentVariableList"$One_IndependentVariableList$value()
)
expect_equal(
idfVU$"Table:IndependentVariableList"$Two1_IndependentVariableList$value(),
idfTR$"Table:IndependentVariableList"$Two1_IndependentVariableList$value()
)
expect_equal(
idfVU$"Table:IndependentVariableList"$Two2_IndependentVariableList$value(),
idfTR$"Table:IndependentVariableList"$Two2_IndependentVariableList$value()
)
expect_equal(
idfVU$"Table:IndependentVariableList"$Multi1_IndependentVariableList$value(),
idfTR$"Table:IndependentVariableList"$Multi1_IndependentVariableList$value()
)
expect_equal(
idfVU$"Table:IndependentVariableList"$Multi2_IndependentVariableList$value(),
idfTR$"Table:IndependentVariableList"$Multi2_IndependentVariableList$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:Lookup"$One$value(),
idfTR$"Table:Lookup"$One$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:Lookup"$Two1$value(),
idfTR$"Table:Lookup"$Two1$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:Lookup"$Two2$value(),
idfTR$"Table:Lookup"$Two2$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:Lookup"$Multi1$value(),
idfTR$"Table:Lookup"$Multi1$value()
)
expect_equal(
tolerance = 1e-5,
idfVU$"Table:Lookup"$Multi2$value(),
idfTR$"Table:Lookup"$Multi2$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"$Equip1$value(),
idfTR$"ZoneHVAC:EquipmentList"$Equip1$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"$Equip2$value(),
idfTR$"ZoneHVAC:EquipmentList"$Equip2$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"$Equip3$value(),
idfTR$"ZoneHVAC:EquipmentList"$Equip3$value()
)
expect_equal(
idfVU$"ScheduleTypeLimits"[[1]]$value()[-1],
idfTR$"ScheduleTypeLimits"[[1]]$value()[-1]
)
expect_equal(
{
dt_vu <- idfVU$to_table(class = "Schedule:Constant", wide = TRUE, string_value = FALSE)[, -"id"]
},
{
dt_tr <- idfTR$to_table(class = "Schedule:Constant", wide = TRUE, string_value = FALSE)[, -"id"]
dt_tr[J(unique(dt_vu$name)), on = "name"][, `Schedule Type Limits Name` := gsub("Limits", "Limts", `Schedule Type Limits Name`)]
}
)
})
# }}}
# v9.2 --> v9.3 {{{
test_that("Transition v9.2 --> v9.3", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "9.2"
to <- "9.3"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"AirConditioner:VariableRefrigerantFlow" = list("VRF", ..67 = "propanegas"),
"AirTerminal:SingleDuct:Uncontrolled" := list(
c("ATDUC1", "ATDUC2"), NULL, c("Node1", "Node2"), "Autosize"
),
"ZoneHVAC:EquipmentList" := list(
c("EquipList1", "EquipList2"), NULL,
"AirTerminal:SingleDuct:Uncontrolled",
c("ATDUC1", "ATDUC2"), 1, 1
),
"AirLoopHVAC:ZoneSplitter" = list("ZS", "ZS Node", "Node1"),
"AirLoopHVAC:SupplyPlenum" = list("SP", "Zone", "Zone Node", ..5 = "NodeList"),
"NodeList" = list("NodeList", "Node2"),
"AirLoopHVAC" := list(c("Loop1", "Loop2"), ..9 = c("Node1", "NodeList")),
# VersionUpdater cannot handle
# 'RoomAir:Node:AirflowNetwork:HVACEquipment' correctly
# See: https://github.com/NREL/EnergyPlus/issues/8372
# "RoomAir:Node:AirflowNetwork:HVACEquipment" := list(
# "AN",
# ..2 = "AirTerminal:SingleDuct:Uncontrolled",
# ..3 = "ATDUC1",
# ..6 = "AirTerminal:SingleDuct:Uncontrolled",
# ..7 = "ATDUC2"
# ),
"AirflowNetwork:Distribution:Node" := list(
c("ANDN1", "ANDN2"), c("Node1", "Node2")
),
"AirflowNetwork:Distribution:Linkage" := list(
c("ANDL1", "ANDL2"), ..3 = c("ANDN1", "ANDN2"),
..4 = c("ANDCD1", "ANDCD2")
),
"AirflowNetwork:Distribution:Component:Duct" = list("ANDCD1"),
"Boiler:HotWater" = list("Boiler", "FuelOil#1"),
"GlobalGeometryRules" = list(..3 = "Absolute"),
"HeatPump:WaterToWater:EIR:Heating" = list("HPH"),
"HeatPump:WaterToWater:EIR:Cooling" = list("HPC"),
"ShadowCalculation" = list(
"averageoverdaysinfrequency",
..6 = "scheduledshading"
),
.all = TRUE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_warning(idfTR <- transition(idfOri, to), "ANDCD2")
expect_equal(
idfVU$"AirConditioner:VariableRefrigerantFlow"$VRF$value(),
idfTR$"AirConditioner:VariableRefrigerantFlow"$VRF$value()
)
expect_equal(
idfVU$"AirTerminal:SingleDuct:ConstantVolume:NoReheat"$ATDUC1$value(1:5),
idfTR$"AirTerminal:SingleDuct:ConstantVolume:NoReheat"$ATDUC1$value()
)
expect_equal(
idfVU$"AirTerminal:SingleDuct:ConstantVolume:NoReheat"$ATDUC2$value(1:5),
idfTR$"AirTerminal:SingleDuct:ConstantVolume:NoReheat"$ATDUC2$value()
)
expect_equal(
idfVU$"ZoneHVAC:AirDistributionUnit"$"ATDUC1 ADU"$value(),
idfTR$"ZoneHVAC:AirDistributionUnit"$"ATDUC1 ADU"$value()
)
expect_equal(
idfVU$"ZoneHVAC:AirDistributionUnit"$"ATDUC2 ADU"$value(),
idfTR$"ZoneHVAC:AirDistributionUnit"$"ATDUC2 ADU"$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"$EquipList1$value(1:8),
idfTR$"ZoneHVAC:EquipmentList"$EquipList1$value()
)
expect_equal(
idfVU$"ZoneHVAC:EquipmentList"$EquipList2$value(1:8),
idfTR$"ZoneHVAC:EquipmentList"$EquipList2$value()
)
expect_equal(
idfVU$"AirLoopHVAC:ZoneSplitter"$ZS$value(1:3),
idfTR$"AirLoopHVAC:ZoneSplitter"$ZS$value()
)
expect_equal(
idfVU$"AirLoopHVAC:SupplyPlenum"$SP$value(1:5),
idfTR$"AirLoopHVAC:SupplyPlenum"$SP$value()
)
expect_equal(
idfVU$NodeList$NodeList$value(1:2),
idfTR$NodeList$NodeList$value(1:2)
)
expect_equal(
idfVU$NodeList$"NodeList ATInlet"$value(1:2),
idfTR$NodeList$"NodeList ATInlet"$value(1:2)
)
expect_equal(
idfVU$AirLoopHVAC$Loop1$value(),
idfTR$AirLoopHVAC$Loop1$value()
)
expect_equal(
idfVU$AirLoopHVAC$Loop2$value(),
idfTR$AirLoopHVAC$Loop2$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Node"$ANDN1$value(),
idfTR$"AirflowNetwork:Distribution:Node"$ANDN1$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Node"$ANDN2$value(),
idfTR$"AirflowNetwork:Distribution:Node"$ANDN2$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Node"$"ANDN1 ATInlet"$value(),
idfTR$"AirflowNetwork:Distribution:Node"$"ANDN1 ATInlet"$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Node"$"ANDN2 ATInlet"$value(),
idfTR$"AirflowNetwork:Distribution:Node"$"ANDN2 ATInlet"$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Linkage"$ANDL1$value(1:4),
idfTR$"AirflowNetwork:Distribution:Linkage"$ANDL1$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Linkage"$ANDL2$value(1:4),
idfTR$"AirflowNetwork:Distribution:Linkage"$ANDL2$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Linkage"$"ANDL1 ATInlet"$value(1:4),
idfTR$"AirflowNetwork:Distribution:Linkage"$"ANDL1 ATInlet"$value()
)
# NOTE: VersionUpdater always creates a new duct even the original one
# references an non-existing distribution duct
expect_equal(
idfVU$"AirflowNetwork:Distribution:Linkage"$"ANDL2 ATInlet"$value(1:3),
idfTR$"AirflowNetwork:Distribution:Linkage"$"ANDL2 ATInlet"$value(1:3)
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Component:Duct"$ANDCD1$value(),
idfTR$"AirflowNetwork:Distribution:Component:Duct"$ANDCD1$value()
)
expect_equal(
idfVU$"AirflowNetwork:Distribution:Component:Duct"$"ANDL1 ATInlet Duct"$value(1:8),
idfTR$"AirflowNetwork:Distribution:Component:Duct"$"ANDL1 ATInlet Duct"$value()
)
# NOTE: VersionUpdater always creates a new duct even the original one
# references an non-existing distribution duct
expect_equal(
# idfVU$"AirflowNetwork:Distribution:Component:Duct"$"ANDL2 ATInlet Duct",
idfTR$"AirflowNetwork:Distribution:Component:Duct"$"ANDL2 ATInlet Duct",
NULL
)
expect_equal(
idfVU$"Boiler:HotWater"$Boiler$value(),
idfTR$"Boiler:HotWater"$Boiler$value()
)
expect_equal(
idfVU$GlobalGeometryRules$value(),
idfTR$GlobalGeometryRules$value()
)
expect_equal(
idfVU$"HeatPump:PlantLoop:EIR:Heating"$HPH$value(),
idfTR$"HeatPump:PlantLoop:EIR:Heating"$HPH$value()
)
expect_equal(
idfVU$"HeatPump:PlantLoop:EIR:Cooling"$HPC$value(),
idfTR$"HeatPump:PlantLoop:EIR:Cooling"$HPC$value()
)
expect_equal(
idfVU$ShadowCalculation$value(1:10),
idfTR$ShadowCalculation$value()
)
})
# }}}
# v9.3 --> v9.4 {{{
test_that("Transition v9.3 --> v9.4", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "9.3"
to <- "9.4"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Construction:InternalSource" = list("IS", ..6 = "Mat"),
"EnergyManagementSystem:Actuator" := list(
c("Act1", "Act2"),
..4 = c("Electric Power Level", "Gas Power Level")
),
"Output:DebuggingData" = list(-1, 1),
"Output:Diagnostics" := list(
c("DisplayAllWarnings", "DisplayExtraWarnings"),
"DisplayUnusedObjects"
),
"PerformancePrecisionTradeoffs" = list(..3 = "Mode05"),
"ZoneHVAC:LowTemperatureRadiant:VariableFlow" = list(
"VF", ..5 = 0.013, ..8 = "HeatingDesignCapacity",
..10 = 30, ..12 = 1.0),
"ZoneHVAC:LowTemperatureRadiant:Electric" = list("Elec", ..10 = 2),
"ZoneHVAC:LowTemperatureRadiant:ConstantFlow" = list(
"CF", ..5 = 0.013, ..8 = 1.0, ..10 = 170000, ..12 = 0.9),
"ZoneHVAC:HybridUnitaryHVAC" = list("HU", ..17 = 10),
"PythonPlugin:Instance" = list("Py"),
.all = FALSE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_warning(expect_warning(idfTR <- transition(idfOri, to), "Python"))
expect_equal(
idfVU$"Construction:InternalSource"$IS$value(),
idfTR$"Construction:InternalSource"$IS$value()
)
expect_equal(
idfVU$"EnergyManagementSystem:Actuator"$Act1$value(),
idfTR$"EnergyManagementSystem:Actuator"$Act1$value()
)
expect_equal(
idfVU$"EnergyManagementSystem:Actuator"$Act2$value(),
idfTR$"EnergyManagementSystem:Actuator"$Act2$value()
)
expect_equal(
idfVU$"Output:DebuggingData"$value(),
idfTR$"Output:DebuggingData"$value()
)
# NOTE: VersionUpdater converted all options to upper case
expect_equal(
lapply(idfVU$"Output:Diagnostics"$value(), tolower),
lapply(idfTR$"Output:Diagnostics"$value(), tolower)
)
expect_equal(
idfVU$"PerformancePrecisionTradeoffs"$value(),
idfTR$"PerformancePrecisionTradeoffs"$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"$VF$value(),
idfTR$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"$VF$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:Electric"$Elec$value(),
idfTR$"ZoneHVAC:LowTemperatureRadiant:Electric"$Elec$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:ConstantFlow"$CF$value(),
idfTR$"ZoneHVAC:LowTemperatureRadiant:ConstantFlow"$CF$value()
)
expect_equal(
idfVU$"ZoneHVAC:HybridUnitaryHVAC"$HU$value(),
idfTR$"ZoneHVAC:HybridUnitaryHVAC"$HU$value()
)
})
# }}}
# v9.4 --> v9.5 {{{
test_that("Transition v9.4 --> v9.5", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "9.4"
to <- "9.5"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Construction:AirBoundary" := list(
c("CAB1", "CAB2"),
c("InteriorWindow", "GroupedZones"),
c("GroupedZones", "IRTSurface")
),
"Coil:Cooling:WaterToAirHeatPump:EquationFit" = list(
"ClgEF1", "WaterInlet", "WaterOutlet", "AirInlet", "AirOutlet",
"Autosize", "Autosize", "Autosize", "Autosize", 5.0,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5, 6,
1, 2, 3, 4, 5,
0, 0
),
"Coil:Heating:WaterToAirHeatPump:EquationFit" := list(
"HtgEF1", "WaterInlet", "WaterOutlet", "AirInlet", "AirOutlet",
"Autosize", "Autosize", "Autosize", 5.0,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5
),
"Coil:Cooling:WaterToAirHeatPump:EquationFit" = list("ClgEF2"),
"Coil:Heating:WaterToAirHeatPump:EquationFit" = list("HtgEF2"),
"Construction:InternalSource" = list(
"CIS", 2, 2, 1, 0.1, 0, "layer1", "layer2"
),
"Construction:InternalSource" = list("CIS2"),
"HeatPump:WaterToWater:EquationFit:Cooling" = list(
"WWClgEF1", "Inlet1", "Outlet1", "Inlet2", "Outlet2",
"Autosize", "Autosize", "Autosize", "Autosize",
1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 8.0, 1.0, "Pump"
),
"HeatPump:WaterToWater:EquationFit:Heating" = list(
"WWHtgEF1", "Inlet1", "Outlet1", "Inlet2", "Outlet2",
"Autosize", "Autosize", "Autosize", "Autosize",
1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 8.0, 1.0, "Pump"
),
"HeatPump:WaterToWater:EquationFit:Cooling" = list("WWClgEF2"),
"HeatPump:WaterToWater:EquationFit:Heating" = list("WWHtgEF2"),
"ZoneAirMassFlowConservation" = list("Yes"),
"ZoneHVAC:LowTemperatureRadiant:VariableFlow" = list(
"RadVF1", "Avail", "Zone", "Surface", "ConvectionOnly",
0.01, 0.01, "Autosize", 0.35, "MeanAirTemperature", "HalfFlowPower",
"HeatingDesignCapacity", "Autosize", NULL, NULL, "Autosize", "Inlet1", "Outlet1", 2.0, "HtgSp",
"CoolingDesignCapacity", "Autosize", NULL, NULL, "Autosize", "Inlet2", "Outlet2", 2.0, "ClgSp",
"Off", NULL, NULL, NULL
),
"ZoneHVAC:LowTemperatureRadiant:VariableFlow" = list("RadVF2"),
"ZoneHVAC:LowTemperatureRadiant:ConstantFlow" = list(
"RadCF1", "Avail", "Zone", "Surface", "ConvectionOnly",
0.01, 0.01, 400, 0.35, "MeanAirTemperature", 0.8, 8e-05, NULL, 8e5, 10, 0.8, 0.1,
"Inlet1", "Outlet1", "HighWSch", "LowWSch", "HighCSch", "LowCSch"
),
"ZoneHVAC:LowTemperatureRadiant:ConstantFlow" = list("RadCF2"),
"ZoneHVAC:Baseboard:RadiantConvective:Water" = list(
"BoardC1", "Avial", "Inlet", "Outlet", 80, 0.01, "HeatingDesignCapacity",
"Autosize", NULL, NULL, "Autosize", 0.001, 0.3, 0.3,
"Surface1", 0.4, "Surface2", 0.2, "Surface3", 0.1
),
"ZoneHVAC:Baseboard:RadiantConvective:Water" = list("BoardC2"),
"ZoneHVAC:Baseboard:RadiantConvective:Steam" = list(
"Steam1", "Avail", "Inlet", "Outlet", "HeatingDesignCapacity",
"Autosize", NULL, NULL, 5, "Autosize", 0.001, 0.3, 0.3,
"Surface1", 0.4, "Surface2", 0.2, "Surface3", 0.1
),
"ZoneHVAC:Baseboard:RadiantConvective:Steam" = list("Steam2"),
.all = FALSE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_warning(expect_warning(idfTR <- transition(idfOri, to), "Construction:AirBoundary"))
expect_equal(
idfVU$"Construction:AirBoundary"$CAB1$value(),
idfTR$"Construction:AirBoundary"$CAB1$value()
)
expect_equal(
idfVU$"Construction:AirBoundary"$CAB2$value(),
idfTR$"Construction:AirBoundary"$CAB2$value()
)
expect_equal(
idfVU$"Coil:Cooling:WaterToAirHeatPump:EquationFit"$ClgEF1$value(),
idfTR$"Coil:Cooling:WaterToAirHeatPump:EquationFit"$ClgEF1$value()
)
# version updater remove trailing empty fields
expect_equal(
idfVU$"Coil:Cooling:WaterToAirHeatPump:EquationFit"$ClgEF2$value(),
idfTR$"Coil:Cooling:WaterToAirHeatPump:EquationFit"$ClgEF2$value()[1:13]
)
expect_equal(
idfVU$"Coil:Heating:WaterToAirHeatPump:EquationFit"$HtgEF1$value(),
idfTR$"Coil:Heating:WaterToAirHeatPump:EquationFit"$HtgEF1$value()
)
# version updater removes trailing empty fields
expect_equal(
idfVU$"Coil:Heating:WaterToAirHeatPump:EquationFit"$HtgEF2$value(),
idfTR$"Coil:Heating:WaterToAirHeatPump:EquationFit"$HtgEF2$value()[1:11]
)
expect_equal(
idfVU$"ConstructionProperty:InternalHeatSource"$"CIS Heat Source"$value(),
idfTR$"ConstructionProperty:InternalHeatSource"$"CIS Heat Source"$value()
)
expect_equal(
idfVU$"ConstructionProperty:InternalHeatSource"$"CIS2 Heat Source"$value(),
idfTR$"ConstructionProperty:InternalHeatSource"$"CIS2 Heat Source"$value()
)
expect_equal(
idfVU$"HeatPump:WaterToWater:EquationFit:Cooling"$"WWClgEF1"$value(),
idfTR$"HeatPump:WaterToWater:EquationFit:Cooling"$"WWClgEF1"$value()
)
# version updater removes trailing empty fields
expect_equal(
idfVU$"HeatPump:WaterToWater:EquationFit:Cooling"$"WWClgEF2"$value(),
idfTR$"HeatPump:WaterToWater:EquationFit:Cooling"$"WWClgEF2"$value()[1:11]
)
expect_equal(
idfVU$"HeatPump:WaterToWater:EquationFit:Heating"$"WWHtgEF1"$value(),
idfTR$"HeatPump:WaterToWater:EquationFit:Heating"$"WWHtgEF1"$value()
)
# version updater removes trailing empty fields
expect_equal(
idfVU$"HeatPump:WaterToWater:EquationFit:Heating"$"WWHtgEF2"$value(),
idfTR$"HeatPump:WaterToWater:EquationFit:Heating"$"WWHtgEF2"$value()[1:11]
)
expect_equal(
idfVU$"ZoneAirMassFlowConservation"$value(),
idfTR$"ZoneAirMassFlowConservation"$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"$RadVF1$value(),
idfTR$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"$RadVF1$value()
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"$RadVF2$value(),
idfTR$"ZoneHVAC:LowTemperatureRadiant:VariableFlow"$RadVF2$value()
)
# version updater fails to keep the "Hydronnic Tubing Length"
# see: https://github.com/NREL/EnergyPlus/issues/9171
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:ConstantFlow"$RadCF1$value()[-6],
idfTR$"ZoneHVAC:LowTemperatureRadiant:ConstantFlow"$RadCF1$value()[-6]
)
expect_equal(
idfVU$"ZoneHVAC:LowTemperatureRadiant:ConstantFlow"$RadCF2$value()[-6],
idfTR$"ZoneHVAC:LowTemperatureRadiant:ConstantFlow"$RadCF2$value()[-6]
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Water"$BoardC1$value(),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Water"$BoardC1$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Water"$BoardC2$value(),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Water"$BoardC2$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Steam"$Steam1$value(),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Steam"$Steam1$value()
)
expect_equal(
idfVU$"ZoneHVAC:Baseboard:RadiantConvective:Steam"$Steam2$value(),
idfTR$"ZoneHVAC:Baseboard:RadiantConvective:Steam"$Steam2$value()
)
})
# }}}
# v9.5 --> v9.6 {{{
test_that("Transition v9.5 --> v9.6", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
# do not install EnergyPlus if not on CI
skip_if_not(testthat:::on_ci())
# Only install EnergyPlus v9.6 for testing v9.5 to v9.6 transition, because
# this version of transition breaks `Wall:Detailed`, `Floor:Detailed`, etc.
# See: https://github.com/NREL/EnergyPlus/issues/9172
if (!is_avail_eplus(9.6)) install_eplus(9.6, local = TRUE)
expect_true(is_avail_eplus(9.6))
from <- "9.5"
to <- "9.6"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"AirflowNetwork:MultiZone:ReferenceCrackConditions" = list("AN", NULL),
"AirLoopHVAC:OutdoorAirSystem" = list(
"OAS", "OAS Ctrl", "OAS Equip", "OAS Avail"
),
"BuildingSurface:Detailed" = list(
"Surface", "Wall", "Const", "Zone", "Outdoors", NULL,
"SunExposed", "WindExposed", 0.5, 3,
0, 0, 0, 1, 1, 1, 2, 2, 2
),
"Ceiling:Interzone" = list(
"CI", "Const", "Zone", "Outdoors", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Ceiling:Adiabatic" = list(
"CA", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Controller:MechanicalVentilation" = list(
"CMV", "Avail", "Yes", "VentilationRateProcedure", 1.0, "Zone", "OASpec", "AirDistSpec"
),
"Floor:Detailed" = list(
"FD", "Const", "Zone", "Outdoors", NULL,
"SunExposed", "WindExposed", 0.5, 3,
0, 0, 0, 1, 1, 1, 2, 2, 2
),
"Floor:GroundContact" = list(
"FG", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Floor:Adiabatic" = list(
"FA", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Floor:Interzone" = list(
"FI", "Const", "Zone", "Outdoors", 0, 90, 0, 0, 0, 0.5, 0.5
),
"GroundHeatExchanger:System" = list(
"GHES1", "Inlet", "Outlet", 0.0003,
"Site:GroundTemperature:Undisturbed:KusudaAchenbach",
"Vertical Ground Heat Exchanger Ground Temps",
0.7, 2347000,
"Vertical Ground Heat Exchanger g-functions"
),
"GroundHeatExchanger:System" = list(
"GHES2", "Inlet", "Outlet", 0.0003,
"Site:GroundTemperature:Undisturbed:KusudaAchenbach",
"Vertical Ground Heat Exchanger Ground Temps",
0.7, 2347000, NULL,
"Array1", "Single1", "Array2", "Single2"
),
"InternalMass" = list("IM", "Const", "Zone", 50),
"RoofCeiling:Detailed" = list(
"RD", "Const", "Zone", "Outdoors", NULL,
"SunExposed", "WindExposed", 0.5, 3,
0, 0, 0, 1, 1, 1, 2, 2, 2
),
"Sizing:System" = list("SS", ..27 = "VentilationRateProcedure"),
"Roof" = list(
"CI", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"PerformancePrecisionTradeoffs" = list("Yes", "ScriptF", "Mode06"),
"Wall:Detailed" = list(
"WD", "Const", "Zone", "Outdoors", NULL,
"SunExposed", "WindExposed", 0.5, 3,
0, 0, 0, 1, 1, 1, 2, 2, 2
),
"Wall:Exterior" = list(
"WE", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Wall:Adiabatic" = list(
"WA", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Wall:Underground" = list(
"WU", "Const", "Zone", 0, 90, 0, 0, 0, 0.5, 0.5
),
"Wall:Interzone" = list(
"WI", "Const", "Zone", "Outdoors", 0, 90, 0, 0, 0, 0.5, 0.5
),
.all = FALSE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"AirflowNetwork:MultiZone:ReferenceCrackConditions"$AN$value(),
idfTR$"AirflowNetwork:MultiZone:ReferenceCrackConditions"$AN$value()
)
expect_equal(
idfVU$"AirLoopHVAC:OutdoorAirSystem"$OAS$value(),
idfTR$"AirLoopHVAC:OutdoorAirSystem"$OAS$value()
)
expect_equal(
idfVU$"BuildingSurface:Detailed"$Surface$value(),
idfTR$"BuildingSurface:Detailed"$Surface$value()
)
expect_equal(
idfVU$"Ceiling:Interzone"$CI$value(),
idfTR$"Ceiling:Interzone"$CI$value()
)
expect_equal(
idfVU$"Ceiling:Adiabatic"$CA$value(),
idfTR$"Ceiling:Adiabatic"$CA$value()
)
expect_equal(
idfVU$"Controller:MechanicalVentilation"$CMV$value(),
idfTR$"Controller:MechanicalVentilation"$CMV$value()
)
expect_equal(
idfVU$"Floor:Detailed"$FD$value(),
idfTR$"Floor:Detailed"$FD$value()
)
expect_equal(
idfVU$"Floor:GroundContact"$FG$value(),
idfTR$"Floor:GroundContact"$FG$value()
)
expect_equal(
idfVU$"Floor:Adiabatic"$FA$value(),
idfTR$"Floor:Adiabatic"$FA$value()
)
expect_equal(
idfVU$"Floor:Interzone"$FI$value(),
idfTR$"Floor:Interzone"$FI$value()
)
expect_equal(
idfVU$"GroundHeatExchanger:System"$GHES1$value(),
idfTR$"GroundHeatExchanger:System"$GHES1$value()
)
expect_equal(
tolower(idfVU$"GroundHeatExchanger:System"$GHES2$value()),
tolower(idfTR$"GroundHeatExchanger:System"$GHES2$value())
)
expect_equal(
idfVU$"InternalMass"$IM$value(),
idfTR$"InternalMass"$IM$value()
)
expect_equal(
idfVU$"RoofCeiling:Detailed"$RD$value(),
idfTR$"RoofCeiling:Detailed"$RD$value()
)
expect_equal(
idfVU$"Sizing:System"[[1]]$value(),
idfTR$"Sizing:System"[[1]]$value()
)
expect_equal(
idfVU$"PerformancePrecisionTradeoffs"$value(),
idfTR$"PerformancePrecisionTradeoffs"$value()
)
expect_equal(
idfVU$"Wall:Detailed"$WD$value(),
idfTR$"Wall:Detailed"$WD$value()
)
expect_equal(
idfVU$"Wall:Exterior"$WE$value(),
idfTR$"Wall:Exterior"$WE$value()
)
expect_equal(
idfVU$"Wall:Adiabatic"$WA$value(),
idfTR$"Wall:Adiabatic"$WA$value()
)
expect_equal(
idfVU$"Wall:Underground"$WU$value(),
idfTR$"Wall:Underground"$WU$value()
)
expect_equal(
idfVU$"Wall:Interzone"$WI$value(),
idfTR$"Wall:Interzone"$WI$value()
)
})
# }}}
# v9.6 --> v22.1 {{{
test_that("Transition v9.6 --> v22.1", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "9.6"
to <- "22.1"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"PythonPlugin:SearchPaths" = list("Py", "Yes", "Yes", "Yes"),
.all = FALSE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(
idfVU$"PythonPlugin:SearchPaths"$value(),
idfTR$"PythonPlugin:SearchPaths"$value()
)
})
# }}}
# v22.1 --> v22.2 {{{
test_that("Transition v22.1 --> v22.2", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "22.1"
to <- "22.2"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from,
"Coil:Cooling:DX:CurveFit:Speed" = list(
"CDXCF", 1.0, 1.0, 1.0, "autosize", 3.5, 1.0, NULL, 1.0, NULL
),
"Coil:Cooling:DX:SingleSpeed" = list(
"CDXS", "Schedule", 100000, 0.8, 4.5, 8.5, NULL, "Inlet", "Outlet",
"Curve1", "Curve2", "Curve3", "Curve4", "Curve5"
),
"Coil:Cooling:DX:MultiSpeed" = list(
"CDXM1", "Schedule", "Inlet", "Outlet", "AirNode", "AirCooled",
NULL, NULL, NULL, "No", "No", 200, 10, NULL, NULL, NULL,
"Electricity", 2,
10000, 0.8, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve1-6", 0.9, 1.2, 44
),
"Coil:Cooling:DX:MultiSpeed" = list(
"CDXM2", "Schedule", "Inlet", "Outlet", "AirNode", "AirCooled",
NULL, NULL, NULL, "No", "No", 200, 10, NULL, NULL, NULL,
"Electricity", 2,
10000, 0.8, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve1-6", 0.9, 1.2, 44,
10000, 0.8, 4.5, 0.6, 500, "Curve2-1", "Curve2-2", "Curve2-3", "Curve2-4", "Curve2-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve2-6", 0.9, 1.2, 44
),
"Coil:Cooling:DX:MultiSpeed" = list(
"CDXM3", "Schedule", "Inlet", "Outlet", "AirNode", "AirCooled",
NULL, NULL, NULL, "No", "No", 200, 10, NULL, NULL, NULL,
"Electricity", 3,
10000, 0.8, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve1-6", 0.9, 1.2, 44,
10000, 0.8, 4.5, 0.6, 500, "Curve2-1", "Curve2-2", "Curve2-3", "Curve2-4", "Curve2-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve2-6", 0.9, 1.2, 44,
10000, 0.8, 4.5, 0.6, 500, "Curve3-1", "Curve3-2", "Curve3-3", "Curve3-4", "Curve3-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve3-6", 0.9, 1.2, 44
),
"Coil:Cooling:DX:MultiSpeed" = list(
"CDXM4", "Schedule", "Inlet", "Outlet", "AirNode", "AirCooled",
NULL, NULL, NULL, "No", "No", 200, 10, NULL, NULL, NULL,
"Electricity", 4,
10000, 0.8, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve1-6", 0.9, 1.2, 44,
10000, 0.8, 4.5, 0.6, 500, "Curve2-1", "Curve2-2", "Curve2-3", "Curve2-4", "Curve2-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve2-6", 0.9, 1.2, 44,
10000, 0.8, 4.5, 0.6, 500, "Curve3-1", "Curve3-2", "Curve3-3", "Curve3-4", "Curve3-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve3-6", 0.9, 1.2, 44,
10000, 0.8, 4.5, 0.6, 500, "Curve4-1", "Curve4-2", "Curve4-3", "Curve4-4", "Curve4-5",
1000, 1.5, 3.0, 45.0, 0.2, "Curve4-6", 0.9, 1.2, 44
),
"Coil:Heating:DX:SingleSpeed" = list(
"HDXS", "Schedule", "autosize", 2.75, "autosize", NULL, "Inlet", "Outlet",
NULL, "Curve1", "Curve2", "Curve3", "Curve4", "Curve5"
),
"Coil:Heating:DX:MultiSpeed" = list(
"HDXM1", "Schedule", "Inlet", "Outlet",
-15, -8.8, 200, 10, "HPACDefrostCAPFT", 7.2, "ReverseCycle", "timed", 0.06, 2000, "No",
"Electricity", 4, 2,
10000, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5", 0.2, "Curve1-6"
),
"Coil:Heating:DX:MultiSpeed" = list(
"HDXM2", "Schedule", "Inlet", "Outlet",
-15, -8.8, 200, 10, "HPACDefrostCAPFT", 7.2, "ReverseCycle", "timed", 0.06, 2000, "No",
"Electricity", 4, 2,
10000, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5", 0.2, "Curve1-6",
10000, 4.5, 0.6, 500, "Curve2-1", "Curve2-2", "Curve2-3", "Curve2-4", "Curve2-5", 0.2, "Curve2-6"
),
"Coil:Heating:DX:MultiSpeed" = list(
"HDXM3", "Schedule", "Inlet", "Outlet",
-15, -8.8, 200, 10, "HPACDefrostCAPFT", 7.2, "ReverseCycle", "timed", 0.06, 2000, "No",
"Electricity", 4, 3,
10000, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5", 0.2, "Curve1-6",
10000, 4.5, 0.6, 500, "Curve2-1", "Curve2-2", "Curve2-3", "Curve2-4", "Curve2-5", 0.2, "Curve2-6",
10000, 4.5, 0.6, 500, "Curve3-1", "Curve3-2", "Curve3-3", "Curve3-4", "Curve3-5", 0.2, "Curve3-6"
),
"Coil:Heating:DX:MultiSpeed" = list(
"HDXM4", "Schedule", "Inlet", "Outlet",
-15, -8.8, 200, 10, "HPACDefrostCAPFT", 7.2, "ReverseCycle", "timed", 0.06, 2000, "No",
"Electricity", 4, 4,
10000, 4.5, 0.6, 500, "Curve1-1", "Curve1-2", "Curve1-3", "Curve1-4", "Curve1-5", 0.2, "Curve1-6",
10000, 4.5, 0.6, 500, "Curve2-1", "Curve2-2", "Curve2-3", "Curve2-4", "Curve2-5", 0.2, "Curve2-6",
10000, 4.5, 0.6, 500, "Curve3-1", "Curve3-2", "Curve3-3", "Curve3-4", "Curve3-5", 0.2, "Curve3-6",
10000, 4.5, 0.6, 500, "Curve4-1", "Curve4-2", "Curve4-3", "Curve4-4", "Curve4-5", 0.2, "Curve4-6"
),
"FuelFactors" = list("NaturalGas", "m3", NULL, 0.01, "natgasTDVfromCZ06com"),
"Space" = list("Space", "Zone", NULL, "Office"),
"Coil:Cooling:WaterToAirHeatPump:EquationFit" = list(
"CWAHP", "WaterInlet", "WaterOutlet", "AirInlet", "AirOutlet",
"Autosize", "Autosize", "Autosize", "Autosize", 5.0,
"Curve1", "Curve2", "Curve3", 0
),
"Coil:Heating:WaterToAirHeatPump:EquationFit" = list(
"HWAHP", "WaterInlet", "WaterOutlet", "AirInlet", "AirOutlet",
"Autosize", "Autosize", "Autosize", 5., "Curve1", "Curve2"
),
.all = FALSE
)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
suppressWarnings(expect_warning(expect_s3_class(idfTR <- transition(idfOri, to), "Idf")))
expect_equal(
idfVU$"Coil:Cooling:DX:CurveFit:Speed"$CDXCF$value(),
idfTR$"Coil:Cooling:DX:CurveFit:Speed"$CDXCF$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:SingleSpeed"$CDXS$value(),
idfTR$"Coil:Cooling:DX:SingleSpeed"$CDXS$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$CDXM1$value(),
idfTR$"Coil:Cooling:DX:MultiSpeed"$CDXM1$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$CDXM2$value(),
idfTR$"Coil:Cooling:DX:MultiSpeed"$CDXM2$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$CDXM3$value(),
idfTR$"Coil:Cooling:DX:MultiSpeed"$CDXM3$value()
)
expect_equal(
idfVU$"Coil:Cooling:DX:MultiSpeed"$CDXM4$value(),
idfTR$"Coil:Cooling:DX:MultiSpeed"$CDXM4$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:SingleSpeed"$HDXS$value(),
idfTR$"Coil:Heating:DX:SingleSpeed"$HDXS$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$HDXM1$value(),
idfTR$"Coil:Heating:DX:MultiSpeed"$HDXM1$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$HDXM2$value(),
idfTR$"Coil:Heating:DX:MultiSpeed"$HDXM2$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$HDXM3$value(),
idfTR$"Coil:Heating:DX:MultiSpeed"$HDXM3$value()
)
expect_equal(
idfVU$"Coil:Heating:DX:MultiSpeed"$HDXM4$value(),
idfTR$"Coil:Heating:DX:MultiSpeed"$HDXM4$value()
)
expect_equal(
idfVU$FuelFactors[[1]]$value(),
idfTR$FuelFactors[[1]]$value()
)
expect_equal(
idfVU$Space$Space$value(),
idfTR$Space$Space$value()
)
expect_equal(
idfVU$"Coil:Cooling:WaterToAirHeatPump:EquationFit"$CWAHP$value(),
idfTR$"Coil:Cooling:WaterToAirHeatPump:EquationFit"$CWAHP$value()
)
expect_equal(
idfVU$"Coil:Heating:WaterToAirHeatPump:EquationFit"$HWAHP$value(),
idfTR$"Coil:Heating:WaterToAirHeatPump:EquationFit"$HWAHP$value()
)
})
# }}}
# v22.2 --> v23.1 {{{
test_that("Transition v22.2 --> v23.1", {
skip_on_cran()
skip_if(Sys.getenv("_EPLUSR_SKIP_TESTS_TRANSITION_") != "")
from <- "22.2"
to <- "23.1"
expect_s3_class(
class = "Idf",
idfOri <- temp_idf(from)
)
expect_s3_class(idfVU <- version_updater(idfOri, to), "Idf")
expect_s3_class(idfTR <- transition(idfOri, to), "Idf")
expect_equal(idfVU$to_string(), idfTR$to_string())
})
# }}}
# vim: set fdm=marker:
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.