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());
}
Example #2
0
 std::vector<IddObject> IddFile_Impl::getObjectsInGroup(const std::string& group) const {
   IddObjectVector result;
   for (const IddObject& object : m_objects){
     if(istringEqual(object.group(), group)){
       result.push_back(object);
     }
   }
   return result;
 }
Example #3
0
 std::vector<IddObject> IddFile_Impl::uniqueObjects() const
 {
   IddObjectVector result;
   for (const IddObject& object : m_objects){
     if(object.properties().unique){
       result.push_back(object);
     }
   }
   return result;
 }
Example #4
0
 std::vector<IddObject> IddFile_Impl::requiredObjects() const
 {
   IddObjectVector result;
   BOOST_FOREACH(const IddObject& object, m_objects){
     if(object.properties().required){
       result.push_back(object);
     }
   }
   return result;
 }
Example #5
0
  std::vector<IddObject> IddFile_Impl::getObjects(const boost::regex &objectRegex) const {
    IddObjectVector result;

    for (const IddObject& object : m_objects) {
      if (boost::regex_match(object.name(),objectRegex)) {
        result.push_back(object);
      }
    }

    return result;
  }
Example #6
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;
  }
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());
}