TEST_F(IdfFixture, IdfObject_DoubleFieldGetterWithReturnDefaultOption) { std::stringstream text; text << "Refrigeration:Condenser:AirCooled," << std::endl << " MyCondenser," << std::endl << " ," << std::endl << " ," << std::endl // default is 0.0 << " ," << std::endl // default is "Fixed" << " 125.0;"; // default is 250.0 // default is 0.2 // // default is "General" // default is 0.0 // default is 0.0 // default is 0.0 OptionalIdfObject oObj = IdfObject::load(text.str()); ASSERT_TRUE(oObj); IdfObject object = *oObj; // returns set values OptionalDouble dIdfField = object.getDouble(4,true); ASSERT_TRUE(dIdfField); EXPECT_NEAR(125.0,*dIdfField,tol); // is able to cast default value dIdfField = object.getDouble(8,true); ASSERT_TRUE(dIdfField); EXPECT_NEAR(0.0,*dIdfField,tol); }
TEST_F(EnergyPlusFixture,ForwardTranslatorTest_TranslateSite) { openstudio::model::Model model; openstudio::model::Site site = model.getUniqueModelObject<openstudio::model::Site>(); site.setName("Test Site"); site.setLatitude(39.6); site.setLongitude(105.2); site.setTimeZone(-7.0); site.setElevation(1729.74); ForwardTranslator trans; Workspace workspace = trans.translateModelObject(site); ASSERT_EQ(1u, workspace.numObjectsOfType(IddObjectType::Site_Location)); IdfObject siteIdf = workspace.getObjectsByType(IddObjectType::Site_Location)[0]; EXPECT_EQ(unsigned(5), siteIdf.numFields()); EXPECT_EQ( "Test Site", *(siteIdf.name()) ); EXPECT_EQ( 39.6, *(siteIdf.getDouble(1)) ); EXPECT_EQ( 105.2, *(siteIdf.getDouble(2)) ); EXPECT_EQ( -7.0, *(siteIdf.getDouble(3)) ); EXPECT_EQ( 1729.74, *(siteIdf.getDouble(4)) ); }
TEST_F(EnergyPlusFixture,ForwardTranslatorTest_TranslateSiteWaterMainsTemperature) { openstudio::model::Model model; openstudio::model::SiteWaterMainsTemperature watertemp = model.getUniqueModelObject<openstudio::model::SiteWaterMainsTemperature>(); watertemp.setAnnualAverageOutdoorAirTemperature(9.69); watertemp.setMaximumDifferenceInMonthlyAverageOutdoorAirTemperatures(28.1); ForwardTranslator trans; Workspace workspace = trans.translateModelObject(watertemp); ASSERT_EQ(1u, workspace.numObjectsOfType(IddObjectType::Site_WaterMainsTemperature)); IdfObject watertempIdf = workspace.getObjectsByType(IddObjectType::Site_WaterMainsTemperature)[0]; EXPECT_EQ(unsigned(4), watertempIdf.numFields()); EXPECT_EQ( "Correlation", *(watertempIdf.getString(0)) ); EXPECT_EQ( "", *(watertempIdf.getString(1)) ); EXPECT_EQ( 9.69, *(watertempIdf.getDouble(2)) ); EXPECT_EQ( 28.1, *(watertempIdf.getDouble(3)) ); }
TEST_F(EnergyPlusFixture,ForwardTranslatorTest_TranslateSiteGroundTemperatureBuildingSurface) { openstudio::model::Model model; openstudio::model::SiteGroundTemperatureBuildingSurface groundtemp = model.getUniqueModelObject<openstudio::model::SiteGroundTemperatureBuildingSurface>(); groundtemp.setJanuaryGroundTemperature(19.527); groundtemp.setFebruaryGroundTemperature(19.502); groundtemp.setMarchGroundTemperature(19.536); groundtemp.setAprilGroundTemperature(19.598); groundtemp.setMayGroundTemperature(20.002); groundtemp.setJuneGroundTemperature(21.64); groundtemp.setJulyGroundTemperature(22.225); groundtemp.setAugustGroundTemperature(22.375); groundtemp.setSeptemberGroundTemperature(21.449); groundtemp.setOctoberGroundTemperature(20.121); groundtemp.setNovemberGroundTemperature(19.802); groundtemp.setDecemberGroundTemperature(19.633); ForwardTranslator trans; Workspace workspace = trans.translateModelObject(groundtemp); ASSERT_EQ(1u, workspace.numObjectsOfType(IddObjectType::Site_GroundTemperature_BuildingSurface)); IdfObject groundtempIdf = workspace.getObjectsByType(IddObjectType::Site_GroundTemperature_BuildingSurface)[0]; EXPECT_EQ(unsigned(12), groundtempIdf.numFields()); EXPECT_EQ( 19.527, *(groundtempIdf.getDouble(0)) ); EXPECT_EQ( 19.502, *(groundtempIdf.getDouble(1)) ); EXPECT_EQ( 19.536, *(groundtempIdf.getDouble(2)) ); EXPECT_EQ( 19.598, *(groundtempIdf.getDouble(3)) ); EXPECT_EQ( 20.002, *(groundtempIdf.getDouble(4)) ); EXPECT_EQ( 21.64, *(groundtempIdf.getDouble(5)) ); EXPECT_EQ( 22.225, *(groundtempIdf.getDouble(6)) ); EXPECT_EQ( 22.375, *(groundtempIdf.getDouble(7)) ); EXPECT_EQ( 21.449, *(groundtempIdf.getDouble(8)) ); EXPECT_EQ( 20.121, *(groundtempIdf.getDouble(9)) ); EXPECT_EQ( 19.802, *(groundtempIdf.getDouble(10)) ); EXPECT_EQ( 19.633, *(groundtempIdf.getDouble(11)) ); }
TEST_F(EnergyPlusFixture,ForwardTranslatorTest_TranslateSiteGroundReflectance) { openstudio::model::Model model; openstudio::model::SiteGroundReflectance groundreflect = model.getUniqueModelObject<openstudio::model::SiteGroundReflectance>(); groundreflect.setJanuaryGroundReflectance(0.11); groundreflect.setFebruaryGroundReflectance(0.12); groundreflect.setMarchGroundReflectance(0.13); groundreflect.setAprilGroundReflectance(0.14); groundreflect.setMayGroundReflectance(0.15); groundreflect.setJuneGroundReflectance(0.16); groundreflect.setJulyGroundReflectance(0.17); groundreflect.setAugustGroundReflectance(0.18); groundreflect.setSeptemberGroundReflectance(0.19); groundreflect.setOctoberGroundReflectance(0.20); groundreflect.setNovemberGroundReflectance(0.21); groundreflect.setDecemberGroundReflectance(0.22); ForwardTranslator trans; Workspace workspace = trans.translateModelObject(groundreflect); ASSERT_EQ(1u, workspace.numObjectsOfType(IddObjectType::Site_GroundReflectance)); IdfObject groundreflectIdf = workspace.getObjectsByType(IddObjectType::Site_GroundReflectance)[0]; EXPECT_EQ(unsigned(12), groundreflectIdf.numFields()); EXPECT_EQ( 0.11, *(groundreflectIdf.getDouble(0)) ); EXPECT_EQ( 0.12, *(groundreflectIdf.getDouble(1)) ); EXPECT_EQ( 0.13, *(groundreflectIdf.getDouble(2)) ); EXPECT_EQ( 0.14, *(groundreflectIdf.getDouble(3)) ); EXPECT_EQ( 0.15, *(groundreflectIdf.getDouble(4)) ); EXPECT_EQ( 0.16, *(groundreflectIdf.getDouble(5)) ); EXPECT_EQ( 0.17, *(groundreflectIdf.getDouble(6)) ); EXPECT_EQ( 0.18, *(groundreflectIdf.getDouble(7)) ); EXPECT_EQ( 0.19, *(groundreflectIdf.getDouble(8)) ); EXPECT_EQ( 0.20, *(groundreflectIdf.getDouble(9)) ); EXPECT_EQ( 0.21, *(groundreflectIdf.getDouble(10)) ); EXPECT_EQ( 0.22, *(groundreflectIdf.getDouble(11)) ); }
TEST_F(IdfFixture, IdfObject_FieldSettingWithHiddenPushes) { // SHOULD BE VALID std::stringstream text; text << "ZoneHVAC:HighTemperatureRadiant," << std::endl << " MyRadiantSystem," << std::endl << " MyHVACSchedule," << std::endl << " MyCoreZone," << std::endl << " autosize," << std::endl << " Electric;"; OptionalIdfObject oObj = IdfObject::load(text.str()); ASSERT_TRUE(oObj); IdfObject object = *oObj; EXPECT_EQ(static_cast<unsigned>(5),object.numFields()); // hidden pushing for setting nonextensible string // hidden pushing for setting nonextensible double // hidden pushing for setting extensible string bool result = object.setString(13,"MyCoreZoneSurface1"); EXPECT_TRUE(result); // adds an extra field to keep groups together EXPECT_EQ(static_cast<unsigned>(15),object.numFields()); OptionalString sValue = object.getString(13); ASSERT_TRUE(sValue); EXPECT_EQ("MyCoreZoneSurface1",*sValue); sValue = object.getString(14); ASSERT_TRUE(sValue); EXPECT_EQ("",*sValue); // hidden pushing for setting extensible double result = object.setDouble(18,0.01); EXPECT_TRUE(result); EXPECT_EQ(static_cast<unsigned>(19),object.numFields()); OptionalDouble dValue = object.getDouble(18); ASSERT_TRUE(dValue); EXPECT_NEAR(0.01,*dValue,tol); dValue = object.getDouble(16); EXPECT_FALSE(dValue); // SHOULD NOT BE VALID text.str(""); text << "Lights," << std::endl << " MyLight," << std::endl << " MyZone," << std::endl << " MySchedule," << std::endl << " Watts/Person," << std::endl << " ," << std::endl << " ," << std::endl << " 10.0," << std::endl << " 0.2," << std::endl << " 0.6," << std::endl << " 0.8;"; oObj = IdfObject::load(text.str()); ASSERT_TRUE(oObj); object = *oObj; // impossible field index result = object.setString(20,"not a field"); EXPECT_FALSE(result); EXPECT_EQ(static_cast<unsigned>(10),object.numFields()); result = object.setUnsigned(20,1); EXPECT_FALSE(result); EXPECT_EQ(static_cast<unsigned>(10),object.numFields()); }