std::vector<ScheduleTypeKey> ZoneControlContaminantController_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ZoneControl_ContaminantControllerFields::CarbonDioxideControlAvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneControlContaminantController","Carbon Dioxide Control Availability"));
   }
   if (std::find(b,e,OS_ZoneControl_ContaminantControllerFields::CarbonDioxideSetpointScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneControlContaminantController","Carbon Dioxide Setpoint"));
   }
   if (std::find(b,e,OS_ZoneControl_ContaminantControllerFields::MinimumCarbonDioxideConcentrationScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneControlContaminantController","Minimum Carbon Dioxide Concentration"));
   }
   if (std::find(b,e,OS_ZoneControl_ContaminantControllerFields::GenericContaminantControlAvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneControlContaminantController","Generic Contaminant Control Availability"));
   }
   if (std::find(b,e,OS_ZoneControl_ContaminantControllerFields::GenericContaminantSetpointScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneControlContaminantController","Generic Contaminant Setpoint"));
   }
   return result;
 }
std::vector<unsigned> IdfExtensibleGroup::mf_indices() const {
  UnsignedVector result;
  if (!empty()) {
    for (unsigned i = 0, n = numFields(); i < n; ++i) {
      result.push_back(mf_toIndex(i));
    }
  }
  return result;
}
TEST_F(IddFixture,IddObject_URL)
{
OptionalIddObject object1 = 
  IddFactory::instance().getObject(IddObjectType::Schedule_File);
 ASSERT_TRUE(object1);
 EXPECT_TRUE(object1->hasURL());
 UnsignedVector vec  = object1->urlFields();
 EXPECT_TRUE(vec.size() == 1);
 EXPECT_TRUE(vec[0] == 2);
}
 std::vector<ScheduleTypeKey> ZoneHVACLowTempRadiantVarFlow_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ZoneHVAC_LowTemperatureRadiant_VariableFlowFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneHVACLowTempRadiantVarFlow","Availability"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> AvailabilityManagerScheduled_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_AvailabilityManager_ScheduledFields::ScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("AvailabilityManagerScheduled","Availability"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ExteriorLights_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_Exterior_LightsFields::ScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ExteriorLights","Exterior Lights"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> SpaceInfiltrationEffectiveLeakageArea_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_SpaceInfiltration_EffectiveLeakageAreaFields::ScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("SpaceInfiltrationEffectiveLeakageArea","Infiltration"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> AirTerminalSingleDuctUncontrolled_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_AirTerminal_SingleDuct_UncontrolledFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("AirTerminalSingleDuctUncontrolled","Availability"));
   }
   return result;
 }
std::vector<ScheduleTypeKey> SiteWaterMainsTemperature_Impl::getScheduleTypeKeys(const Schedule& schedule) const
{
    std::vector<ScheduleTypeKey> result;
    UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
    UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
    if (std::find(b,e,OS_Site_WaterMainsTemperatureFields::TemperatureScheduleName) != e)
    {
        result.push_back(ScheduleTypeKey("SiteWaterMainsTemperature","Temperature"));
    }
    return result;
}
 std::vector<ScheduleTypeKey> ThermalStorageIceDetailed_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ThermalStorage_Ice_DetailedFields::AvailabilitySchedule) != e)
   {
     result.push_back(ScheduleTypeKey("ThermalStorageIceDetailed","Availability Schedule"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> HeaderedPumpsVariableSpeed_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_HeaderedPumps_VariableSpeedFields::PumpFlowRateSchedule) != e)
   {
     result.push_back(ScheduleTypeKey("HeaderedPumpsVariableSpeed","Pump Flow Rate Schedule"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ZoneHVACEnergyRecoveryVentilator_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ZoneHVAC_EnergyRecoveryVentilatorFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneHVACEnergyRecoveryVentilator","Availability"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ZoneHVACBaseboardConvectiveElectric_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ZoneHVAC_Baseboard_Convective_ElectricFields::AvailabilitySchedule) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneHVACBaseboardConvectiveElectric","Availability"));
   }
   return result;
 }
 // Availability Schedule
 std::vector<ScheduleTypeKey> AirTerminalDualDuctVAVOutdoorAir_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_AirTerminal_DualDuct_VAV_OutdoorAirFields::AvailabilitySchedule) != e)
   {
     result.push_back(ScheduleTypeKey("AirTerminalDualDuctVAVOutdoorAir","Availability Schedule"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> HotWaterEquipment_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_HotWaterEquipmentFields::ScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("HotWaterEquipment","Hot Water Equipment"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> CoilHeatingElectric_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_Coil_Heating_ElectricFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("CoilHeatingElectric","Availability"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> EvaporativeFluidCoolerSingleSpeed_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_EvaporativeFluidCooler_SingleSpeedFields::BlowdownMakeupWaterUsageScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("EvaporativeFluidCoolerSingleSpeed","Blowdown Makeup Water Usage"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> CoilCoolingDXVariableRefrigerantFlow_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_Coil_Cooling_DX_VariableRefrigerantFlowFields::AvailabilitySchedule) != e)
   {
     result.push_back(ScheduleTypeKey("CoilCoolingDXVariableRefrigerantFlow","Availability Schedule"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> AirTerminalSingleDuctVAVHeatAndCoolNoReheat_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_AirTerminal_SingleDuct_VAV_HeatAndCool_NoReheatFields::AvailabilitySchedule) != e)
   {
     result.push_back(ScheduleTypeKey("AirTerminalSingleDuctVAVHeatAndCoolNoReheat","Availability Schedule"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ZoneAirContaminantBalance_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ZoneAirContaminantBalanceFields::OutdoorCarbonDioxideScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneAirContaminantBalance","Outdoor Carbon Dioxide"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ShadingSurface_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ShadingSurfaceFields::TransmittanceScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ShadingSurface","Transmittance"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> SolarCollectorPerformancePhotovoltaicThermalSimple_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b, e, OS_SolarCollectorPerformance_PhotovoltaicThermal_SimpleFields::ThermalConversionEfficiencyScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("SolarCollectorPerformancePhotovoltaicThermalSimple", "Thermal Conversion Efficiency"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> EvaporativeCoolerDirectResearchSpecial_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_EvaporativeCooler_Direct_ResearchSpecialFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("EvaporativeCoolerDirectResearchSpecial","Availability"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ZoneHVACEnergyRecoveryVentilatorController_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ZoneHVAC_EnergyRecoveryVentilator_ControllerFields::TimeofDayEconomizerFlowControlScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ZoneHVACEnergyRecoveryVentilatorController","Time of Day Economizer Flow Control"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> DesignSpecificationZoneAirDistribution_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_DesignSpecification_ZoneAirDistributionFields::ZoneAirDistributionEffectivenessSchedule) != e)
   {
     result.push_back(ScheduleTypeKey("DesignSpecificationZoneAirDistribution","Zone Air Distribution Effectiveness Schedule"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> ElectricLoadCenterInverterSimple_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   // TODO: Check schedule display names.
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_ElectricLoadCenter_Inverter_SimpleFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("ElectricLoadCenterInverterSimple","Availability"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> FanConstantVolume_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   // TODO: Check schedule display names.
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_Fan_ConstantVolumeFields::AvailabilityScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("FanConstantVolume","Availability"));
   }
   return result;
 }
std::vector<ScheduleTypeKey> CoilHeatingLowTempRadiantVarFlow_Impl::getScheduleTypeKeys(const Schedule& schedule) const
{
    std::vector<ScheduleTypeKey> result;
    UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
    UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());

    if (std::find(b,e,OS_Coil_Heating_LowTemperatureRadiant_VariableFlowFields::HeatingControlTemperatureScheduleName) != e)
    {
        result.push_back(ScheduleTypeKey("CoilHeatingLowTempRadiantVarFlow","Heating Control Temperature"));
    }
    return result;
}
 std::vector<ScheduleTypeKey> PhotovoltaicPerformanceSimple_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   // TODO: Check schedule display names.
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_PhotovoltaicPerformance_SimpleFields::EfficiencyScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("PhotovoltaicPerformanceSimple","Efficiency"));
   }
   return result;
 }
 std::vector<ScheduleTypeKey> SurfacePropertyOtherSideCoefficients_Impl::getScheduleTypeKeys(const Schedule& schedule) const
 {
   // TODO: Check schedule display names.
   std::vector<ScheduleTypeKey> result;
   UnsignedVector fieldIndices = getSourceIndices(schedule.handle());
   UnsignedVector::const_iterator b(fieldIndices.begin()), e(fieldIndices.end());
   if (std::find(b,e,OS_SurfaceProperty_OtherSideCoefficientsFields::ConstantTemperatureScheduleName) != e)
   {
     result.push_back(ScheduleTypeKey("SurfacePropertyOtherSideCoefficients","Constant Temperature"));
   }
   return result;
 }