Range ends default to range start.

This commit is contained in:
David Given
2021-05-18 21:09:31 +02:00
parent a6b2e932fa
commit 9d2a5fee86
2 changed files with 9 additions and 1 deletions

View File

@@ -172,7 +172,8 @@ void setProtoByString(google::protobuf::Message* message, const std::string& pat
std::set<unsigned> iterate(const RangeProto& range) std::set<unsigned> iterate(const RangeProto& range)
{ {
std::set<unsigned> set; std::set<unsigned> set;
for (unsigned i=range.start(); i<=range.end(); i+=range.step()) int end = range.has_end()? range.end() : range.start();
for (unsigned i=range.start(); i<=end; i+=range.step())
set.insert(i); set.insert(i);
return set; return set;
} }

View File

@@ -125,6 +125,13 @@ static void test_range(void)
AssertThat(iterate(r), Equals(std::set<unsigned>{1})); AssertThat(iterate(r), Equals(std::set<unsigned>{1}));
} }
{
RangeProto r;
r.set_start(1);
AssertThat(iterate(r), Equals(std::set<unsigned>{1}));
}
{ {
RangeProto r; RangeProto r;
setRange(&r, "1-3"); setRange(&r, "1-3");