Added a new method to ranges

This commit is contained in:
Paul Ferrand 2019-12-29 23:09:34 +01:00
parent 6377451027
commit 2dbc870f9a
2 changed files with 31 additions and 1 deletions

View file

@ -125,6 +125,17 @@ public:
_end = end;
}
void expandTo(Type value)
{
if (containsWithEnd(value))
return;
if (value > _end)
_end = value;
else
_start = value;
}
private:
Type _start { static_cast<Type>(0.0) };
Type _end { static_cast<Type>(0.0) };

View file

@ -111,4 +111,23 @@ TEST_CASE("[Range] shrinkIfSmaller")
REQUIRE(intRange == sfz::Range<int>(4, 7));
intRange.shrinkIfSmaller(6, 5);
REQUIRE(intRange == sfz::Range<int>(5, 6));
}
}
TEST_CASE("[Range] expandTo")
{
sfz::Range<int> intRange { 2, 10 };
intRange.expandTo(5);
REQUIRE(intRange == sfz::Range<int>(2, 10));
intRange.expandTo(10);
REQUIRE(intRange == sfz::Range<int>(2, 10));
intRange.expandTo(2);
REQUIRE(intRange == sfz::Range<int>(2, 10));
intRange.expandTo(1);
REQUIRE(intRange == sfz::Range<int>(1, 10));
intRange.expandTo(-10);
REQUIRE(intRange == sfz::Range<int>(-10, 10));
intRange.expandTo(12);
REQUIRE(intRange == sfz::Range<int>(-10, 12));
intRange.expandTo(6);
REQUIRE(intRange == sfz::Range<int>(-10, 12));
}