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()); }