mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Add Ranges::eraseUpTo
This commit is contained in:
parent
5b604e6d3c
commit
0dc97de993
2 changed files with 43 additions and 0 deletions
|
|
@ -663,6 +663,41 @@ public:
|
|||
expectRangedValuesItem (rangedValues.getItem (5), { 45, 60 }, 'd');
|
||||
}
|
||||
|
||||
beginTest ("RangedValues::eraseUpTo() - erasing before all ranges has no effect");
|
||||
{
|
||||
auto rangedValues = createRangedValuesObjectForErase();
|
||||
|
||||
rangedValues.eraseUpTo (rangedValues.getRanges().get (0).getStart());
|
||||
|
||||
expectRangedValuesItem (rangedValues.getItem (0), { 0, 10 }, 'a');
|
||||
expectRangedValuesItem (rangedValues.getItem (1), { 11, 20 }, 'b');
|
||||
expectRangedValuesItem (rangedValues.getItem (2), { 23, 30 }, 'c');
|
||||
expectRangedValuesItem (rangedValues.getItem (3), { 35, 45 }, 'c');
|
||||
expectRangedValuesItem (rangedValues.getItem (4), { 45, 60 }, 'd');
|
||||
}
|
||||
|
||||
beginTest ("RangedValues::eraseUpTo() - erasing values up to, not including 15");
|
||||
{
|
||||
auto rangedValues = createRangedValuesObjectForErase();
|
||||
|
||||
rangedValues.eraseUpTo (15);
|
||||
|
||||
expectRangedValuesItem (rangedValues.getItem (0), { 15, 20 }, 'b');
|
||||
expectRangedValuesItem (rangedValues.getItem (1), { 23, 30 }, 'c');
|
||||
expectRangedValuesItem (rangedValues.getItem (2), { 35, 45 }, 'c');
|
||||
expectRangedValuesItem (rangedValues.getItem (3), { 45, 60 }, 'd');
|
||||
}
|
||||
|
||||
beginTest ("RangedValues::eraseUpTo() - erasing up to the end of all ranges clears the container");
|
||||
{
|
||||
auto rangedValues = createRangedValuesObjectForErase();
|
||||
const auto ranges = rangedValues.getRanges();
|
||||
|
||||
rangedValues.eraseUpTo (ranges.get (ranges.size() - 1).getEnd());
|
||||
|
||||
expect (rangedValues.isEmpty());
|
||||
}
|
||||
|
||||
beginTest ("RangedValues::drop() - drop shifts ranges downward on the right side");
|
||||
{
|
||||
auto rangedValues = createRangedValuesObjectForErase();
|
||||
|
|
|
|||
|
|
@ -638,6 +638,14 @@ public:
|
|||
return erase ({ i, ranges.get (ranges.size() - 1).getEnd() });
|
||||
}
|
||||
|
||||
Ranges::Operations eraseUpTo (int64 i)
|
||||
{
|
||||
if (ranges.isEmpty())
|
||||
return {};
|
||||
|
||||
return erase ({ ranges.get (0).getStart(), i });
|
||||
}
|
||||
|
||||
/** Create a RangedValues object from non-overlapping ranges. */
|
||||
template<MergeEqualItems mergeEquals, typename Iterable>
|
||||
auto setForEach (Iterable begin, Iterable end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue