mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-14 14:41:28 +00:00
Fixed: indexOfObject:inSortedRange: searched 1 index too far when a range was applied.
This commit is contained in:
@@ -418,7 +418,7 @@ CPBinarySearchingInsertionIndex = 1 << 10;
|
||||
return (options & CPBinarySearchingInsertionIndex) ? 0 : CPNotFound;
|
||||
|
||||
var first = aRange ? aRange.location : 0,
|
||||
last = aRange ? CPMaxRange(aRange) : [self count] - 1;
|
||||
last = (aRange ? CPMaxRange(aRange) : [self count]) - 1;
|
||||
|
||||
if (first < 0)
|
||||
_CPRaiseRangeException(self, _cmd, first, count);
|
||||
|
||||
@@ -238,6 +238,19 @@
|
||||
options:CPBinarySearchingLastEqual | CPBinarySearchingInsertionIndex
|
||||
usingComparator:numComparator]
|
||||
equals:6];
|
||||
|
||||
[self assert:[array indexOfObject:3
|
||||
inSortedRange:CPMakeRange(2, 6) // [ -, -, 1, 1, 2, 2, 3, 3, -, -, -]
|
||||
options:CPBinarySearchingLastEqual | CPBinarySearchingInsertionIndex
|
||||
usingComparator:numComparator]
|
||||
equals:8 message:"inserting index at end of range"];
|
||||
|
||||
[self assert:[[1, 2, 2] indexOfObject:2
|
||||
inSortedRange:CPMakeRange(0, 2) // [1, 2]
|
||||
options:CPBinarySearchingLastEqual | CPBinarySearchingInsertionIndex
|
||||
usingComparator:numComparator]
|
||||
equals:2 message:"insertion index should not be off by one when applying a range"];
|
||||
|
||||
}
|
||||
|
||||
- (void)testIndexOutOfBounds
|
||||
|
||||
Reference in New Issue
Block a user