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());
}
Exemplo n.º 2
0
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());
}
Exemplo n.º 3
0
  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;
  }