TEST_F(IdfFixture, WorkspaceObject_Lights_Strictness_None) { Workspace workspace(StrictnessLevel::None,IddFileType::EnergyPlus); EXPECT_TRUE(workspace.isValid()); OptionalWorkspaceObject w = workspace.addObject(IdfObject(IddObjectType::Lights)); ASSERT_TRUE(w); OptionalWorkspaceObject light = workspace.getObject(w->handle()); ASSERT_TRUE(light); // can invalidate all we want EXPECT_TRUE(light->setString(LightsFields::Name, "")); EXPECT_TRUE(light->setDouble(LightsFields::Name, 0)); EXPECT_TRUE(light->setString(LightsFields::ZoneorZoneListName, "")); EXPECT_TRUE(light->setPointer(LightsFields::ZoneorZoneListName, Handle())); EXPECT_TRUE(light->setString(LightsFields::ScheduleName, "")); EXPECT_TRUE(light->setPointer(LightsFields::ScheduleName, Handle())); EXPECT_TRUE(light->setString(LightsFields::DesignLevelCalculationMethod, "")); EXPECT_TRUE(light->setDouble(LightsFields::DesignLevelCalculationMethod, 0)); EXPECT_TRUE(light->setString(LightsFields::LightingLevel, "Hi")); EXPECT_TRUE(light->setDouble(LightsFields::LightingLevel, -1)); EXPECT_TRUE(light->setDouble(LightsFields::LightingLevel, 0)); EXPECT_TRUE(light->setDouble(LightsFields::LightingLevel, 1)); EXPECT_TRUE(workspace.isValid(StrictnessLevel::None)); EXPECT_FALSE(workspace.isValid(StrictnessLevel::Draft)); EXPECT_FALSE(workspace.isValid(StrictnessLevel::Final)); }
TEST_F(IdfFixture, WorkspaceObject_Lights) { Workspace workspace(epIdfFile, StrictnessLevel::Draft); OptionalWorkspaceObject light = workspace.getObjectByTypeAndName(IddObjectType::Lights, "SPACE1-1 Lights 1"); ASSERT_TRUE(light); OptionalString lightsZoneName = light->getString(LightsFields::ZoneorZoneListName); ASSERT_TRUE(lightsZoneName); OptionalString lightsScheduleName = light->getString(LightsFields::ScheduleName); ASSERT_TRUE(lightsScheduleName); OptionalWorkspaceObject zone = light->getTarget(LightsFields::ZoneorZoneListName); ASSERT_TRUE(zone); OptionalString zoneName = zone->getString(ZoneFields::Name); ASSERT_TRUE(zoneName); EXPECT_EQ(*lightsZoneName, *zoneName); OptionalWorkspaceObject schedule = light->getTarget(LightsFields::ScheduleName); ASSERT_TRUE(schedule); EXPECT_EQ(IddObjectType::Schedule_Compact, schedule->iddObject().type().value()); OptionalString scheduleName = schedule->getString(Schedule_CompactFields::Name); ASSERT_TRUE(scheduleName); EXPECT_EQ(*lightsScheduleName, *scheduleName); // now change name of zone and schedule and make sure string reference in light change as well EXPECT_TRUE(zone->setString(ZoneFields::Name, "New Zone Name")); zoneName = zone->getString(ZoneFields::Name); ASSERT_TRUE(zoneName); EXPECT_EQ("New Zone Name", *zoneName); lightsZoneName = light->getString(LightsFields::ZoneorZoneListName); ASSERT_TRUE(lightsZoneName); EXPECT_EQ(*lightsZoneName, *zoneName); EXPECT_TRUE(zone->createName()); zoneName = zone->getString(ZoneFields::Name); ASSERT_TRUE(zoneName); EXPECT_EQ("Zone 1",*zoneName); lightsZoneName = light->getString(LightsFields::ZoneorZoneListName); ASSERT_TRUE(lightsZoneName); EXPECT_EQ(*lightsZoneName, *zoneName); EXPECT_TRUE(schedule->setString(Schedule_CompactFields::Name, "New Schedule Name")); scheduleName = schedule->getString(Schedule_CompactFields::Name); ASSERT_TRUE(scheduleName); EXPECT_EQ("New Schedule Name", *scheduleName); lightsScheduleName = light->getString(LightsFields::ScheduleName); ASSERT_TRUE(lightsScheduleName); EXPECT_EQ(*lightsScheduleName, *scheduleName); }
TEST_F(EnergyPlusFixture,ReverseTranslator_EmptyIdfFile) { Workspace inWorkspace(StrictnessLevel::Draft,IddFileType::EnergyPlus); ReverseTranslator reverseTranslator; Model model = reverseTranslator.translateWorkspace(inWorkspace); OptionalWorkspaceObject w = inWorkspace.addObject(IdfObject(IddObjectType::Version)); ASSERT_TRUE(w); EXPECT_TRUE(w->setString(VersionFields::VersionIdentifier, "7.0")); model = reverseTranslator.translateWorkspace(inWorkspace); EXPECT_TRUE(w->setString(VersionFields::VersionIdentifier, "5.0")); model = reverseTranslator.translateWorkspace(inWorkspace); }
TEST_F(IdfFixture, WorkspaceObject_Lights_Strictness_Draft) { Workspace workspace(StrictnessLevel::Draft,IddFileType::EnergyPlus); EXPECT_TRUE(workspace.isValid()); OptionalWorkspaceObject w = workspace.addObject(IdfObject(IddObjectType::Lights)); ASSERT_TRUE(w); OptionalWorkspaceObject light = workspace.getObject(w->handle()); ASSERT_TRUE(light); // certain things we can't invalidate EXPECT_TRUE(light->setString(LightsFields::Name, "")); EXPECT_TRUE(light->setDouble(LightsFields::Name, 0)); EXPECT_TRUE(light->setString(LightsFields::ZoneorZoneListName, "")); // PointerType error EXPECT_TRUE(light->setPointer(LightsFields::ZoneorZoneListName, Handle())); // PointerType error EXPECT_TRUE(light->setString(LightsFields::ScheduleName, "")); // PointerType error EXPECT_TRUE(light->setPointer(LightsFields::ScheduleName, Handle())); // PointerType error EXPECT_TRUE(light->setString(LightsFields::DesignLevelCalculationMethod, "")); // this is ok because there is a default EXPECT_FALSE(light->setString(LightsFields::DesignLevelCalculationMethod, "Hi")); // DataType error EXPECT_FALSE(light->setDouble(LightsFields::DesignLevelCalculationMethod, 0)); // DataType error EXPECT_FALSE(light->setString(LightsFields::LightingLevel, "Hi")); // DataType error EXPECT_FALSE(light->setDouble(LightsFields::LightingLevel, -1)); // NumericBound error EXPECT_TRUE(light->setDouble(LightsFields::LightingLevel, 0)); EXPECT_TRUE(light->setDouble(LightsFields::LightingLevel, 1)); EXPECT_TRUE(workspace.isValid(StrictnessLevel::None)); EXPECT_TRUE(workspace.isValid(StrictnessLevel::Draft)); EXPECT_FALSE(workspace.isValid(StrictnessLevel::Final)); }
TEST_F(IdfFixture, WorkspaceObject_GetStringAfterSetStringAddsFields) { // construct empty workspace, and set Idd to be EnergyPlusIdd StrictnessLevel level(StrictnessLevel::Draft); IddFileType fileType(IddFileType::EnergyPlus); Workspace ws(level,fileType); OptionalWorkspaceObject w; IdfObject idfObj(IddObjectType::SurfaceProperty_ConvectionCoefficients); w = ws.addObject(idfObj); EXPECT_TRUE(w->numNonextensibleFields()==3); EXPECT_TRUE(w->setString(w->iddObject().numFields()-1,"")); EXPECT_TRUE(w->numNonextensibleFields()==11); OptionalString s4 = w->getString(4,true); EXPECT_TRUE(s4); OptionalString s10 = w->getString(10,true); EXPECT_TRUE(s10); }