TEST_F(IdfFixture, WorkspaceObject_OS_DaylightingDevice_Shelf) { // defaults to IddFileType::OpenStudio Workspace ws; OptionalWorkspaceObject w1 = ws.addObject(IdfObject(IddObjectType::OS_DaylightingDevice_Shelf)); OptionalWorkspaceObject w2 = ws.addObject(IdfObject(IddObjectType::OS_InteriorPartitionSurface)); ASSERT_TRUE(w1); ASSERT_TRUE(w2); OptionalWorkspaceObject obj1 = ws.getObject(w1->handle()); ASSERT_TRUE(obj1); EXPECT_TRUE(obj1->setPointer(OS_DaylightingDevice_ShelfFields::InsideShelfName, w2->handle())); }
TEST_F(IdfFixture, WorkspaceObject_Filter_Sources) { Workspace ws; OptionalWorkspaceObject node = ws.addObject(IdfObject(IddObjectType::OS_Node)); OptionalWorkspaceObject node2 = ws.addObject(IdfObject(IddObjectType::OS_Node)); OptionalWorkspaceObject node3 = ws.addObject(IdfObject(IddObjectType::OS_Node)); OptionalWorkspaceObject spm = ws.addObject(IdfObject(IddObjectType::OS_SetpointManager_MixedAir)); EXPECT_TRUE(spm->setPointer(OS_SetpointManager_MixedAirFields::SetpointNodeorNodeListName, node->handle())); EXPECT_TRUE(spm->setPointer(OS_SetpointManager_MixedAirFields::FanInletNodeName,node->handle())); EXPECT_TRUE(spm->setPointer(OS_SetpointManager_MixedAirFields::FanOutletNodeName,node2->handle())); EXPECT_TRUE(spm->setPointer(OS_SetpointManager_MixedAirFields::ReferenceSetpointNodeName,node3->handle())); WorkspaceObjectVector sourcesVector = node->sources(); EXPECT_EQ(1, sourcesVector.size()); sourcesVector = node->getSources(IddObjectType::OS_SetpointManager_MixedAir); EXPECT_EQ(1, sourcesVector.size()); }
TEST_F(IdfFixture,ValidityReport_WithCustomIdd) { Workspace workspace; EXPECT_EQ(IddFileType::OpenStudio, workspace.iddFileType().value()); EXPECT_TRUE(workspace.isValid(StrictnessLevel::Draft)); workspace.addObject(IdfObject(IddObjectType::OS_Building)); EXPECT_TRUE(workspace.isValid(StrictnessLevel::Draft)); std::stringstream ss; workspace.iddFile().print(ss); boost::optional<IddFile> iddFile = IddFile::load(ss); ASSERT_TRUE(iddFile); Workspace workspace2(*iddFile, StrictnessLevel::None); EXPECT_EQ(IddFileType::UserCustom, workspace2.iddFileType().value()); workspace2.addObjects(workspace.toIdfFile().objects()); EXPECT_EQ(workspace.objects().size(), workspace2.objects().size()); EXPECT_TRUE(workspace2.isValid(StrictnessLevel::Draft)); ValidityReport report = workspace2.validityReport(StrictnessLevel::Draft); LOG(Debug,"Validity report for workspace2: " << std::endl << report); }
TEST_F(ModelFixture, ComponentWatcher_BadComponentDataFromWorkspace) { Workspace ws; OptionalWorkspaceObject owo = ws.addObject(IdfObject(IddObjectType::OS_ComponentData)); ASSERT_TRUE(owo); // make component data ok except points to non-existent object WorkspaceObject cd = *owo; OptionalString oName = cd.name(); // should have been set by constructor ASSERT_TRUE(oName); EXPECT_FALSE(oName->empty()); cd.setString(OS_ComponentDataFields::UUID,toString(createUUID())); cd.setString(OS_ComponentDataFields::VersionUUID,toString(createUUID())); StringVector values; values.push_back("My Material"); IdfExtensibleGroup eg = cd.pushExtensibleGroup(values); EXPECT_TRUE(eg.empty()); // Cannot register a bad pointer. EXPECT_EQ(1u,ws.numObjects()); Model model(ws); // expect ComponentWatcher creation to kick out ComponentData EXPECT_EQ(0u,model.numObjects()); }