MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / getActiveRuleIndices

Method getActiveRuleIndices

src/model/ScheduleRuleset.cpp:592–640  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

590 }
591
592 std::vector<int> ScheduleRuleset_Impl::getActiveRuleIndices(const openstudio::Date& startDate, const openstudio::Date& endDate) const {
593
594 // need to check or adjust assumed base year on input date?
595
596 // populate dates to check
597 std::vector<openstudio::Date> dates;
598 if (startDate <= endDate) {
599 openstudio::Date date = startDate;
600 while (date <= endDate) {
601 dates.push_back(date);
602 date += Time(1);
603 }
604 } else {
605 openstudio::Date date = startDate;
606 openstudio::Date endOfYear(MonthOfYear::Dec, 31);
607 while (date <= endOfYear) {
608 dates.push_back(date);
609 date += Time(1);
610 }
611 date = openstudio::Date(MonthOfYear::Jan, 1);
612 while (date <= endDate) {
613 dates.push_back(date);
614 date += Time(1);
615 }
616 }
617
618 unsigned numDates = dates.size();
619
620 // check if each rule contains each date
621 std::vector<ScheduleRule> scheduleRules = this->scheduleRules();
622 unsigned numRules = scheduleRules.size();
623 std::vector<std::vector<bool>> test;
624 for (unsigned i = 0; i < numRules; ++i) {
625 test.push_back(scheduleRules[i].containsDates(dates));
626 }
627
628 // now create result
629 std::vector<int> result(numDates, -1);
630 for (unsigned j = 0; j < numDates; ++j) {
631 for (unsigned i = 0; i < numRules; ++i) {
632 if (test[i][j]) {
633 result[j] = i;
634 break;
635 }
636 }
637 }
638
639 return result;
640 }
641
642 std::vector<ScheduleDay> ScheduleRuleset_Impl::getDaySchedules(const openstudio::Date& startDate, const openstudio::Date& endDate) const {
643 std::vector<ScheduleDay> result;

Callers 2

getDaySchedulesMethod · 0.95
TEST_FFunction · 0.80

Calls 6

scheduleRulesMethod · 0.95
containsDatesMethod · 0.80
TimeClass · 0.70
DateClass · 0.70
push_backMethod · 0.45
sizeMethod · 0.45

Tested by 1

TEST_FFunction · 0.64