TEST_F(IddFixture,IddFactory_IddFile) { IddFile file = IddFactory::instance().getIddFile(IddFileType::OpenStudio); EXPECT_TRUE(file.getObject("OS:Building")); EXPECT_TRUE(file.getObject(IddObjectType::CommentOnly)); EXPECT_TRUE(file.getObject(IddObjectType::OS_ClimateZones)); // print out for visual inspection path outPath = resourcesPath()/toPath("utilities/RoundTrip_OpenStudio.idd"); file.save(outPath,true); // check against getIddObjects IddObjectVector objects = IddFactory::instance().getObjects(IddFileType::OpenStudio); EXPECT_TRUE(file.objects().size() == objects.size()); // required objects EXPECT_TRUE(file.requiredObjects().size() > 0); EXPECT_TRUE(file.requiredObjects().size() == IddFactory::instance().getRequiredObjects(IddFileType::OpenStudio).size()); EXPECT_TRUE(file.requiredObjects().size() <= IddFactory::instance().requiredObjects().size()); // unique objects EXPECT_TRUE(file.uniqueObjects().size() > 0); EXPECT_TRUE(file.uniqueObjects().size() == IddFactory::instance().getUniqueObjects(IddFileType::OpenStudio).size()); EXPECT_TRUE(file.uniqueObjects().size() <= IddFactory::instance().uniqueObjects().size()); file = IddFactory::instance().getIddFile(IddFileType::EnergyPlus); EXPECT_TRUE(file.getObject("Building")); EXPECT_TRUE(file.getObject(IddObjectType::CommentOnly)); EXPECT_FALSE(file.getObject(IddObjectType::OS_ClimateZones)); // print out for visual inspection outPath = resourcesPath()/toPath("energyplus/RoundTrip_ProposedEnergy+.idd"); file.save(outPath,true); // check against getIddObjects objects = IddFactory::instance().getObjects(IddFileType::EnergyPlus); EXPECT_TRUE(file.objects().size() == objects.size()); }
TEST_F(IddFixture,IddObjectVector_GetTypes) { IddObjectVector objects = IddFactory::instance().objects(); IddObjectTypeVector typeVector = getIddObjectTypeVector(objects); EXPECT_EQ(objects.size(),typeVector.size()); IddObjectVector roundtripObjects; for (const IddObjectType& type : typeVector) { roundtripObjects.push_back(IddFactory::instance().getObject(type).get()); } EXPECT_TRUE(roundtripObjects == objects); roundtripObjects.insert(roundtripObjects.end(),objects.begin(),objects.end()); typeVector = getIddObjectTypeVector(roundtripObjects); EXPECT_EQ(2*objects.size(),typeVector.size()); IddObjectTypeSet typeSet = getIddObjectTypeSet(roundtripObjects); EXPECT_EQ(objects.size(),typeSet.size()); }
boost::optional<IddObject> IddFile_Impl::versionObject() const { if (m_versionObject) { return m_versionObject; } OptionalIddObject result; IddObjectVector candidates = getObjects(iddRegex::versionObjectName()); if (candidates.size() == 1u) { result = candidates[0]; } m_versionObject = result; return result; }