mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 01:31:08 +00:00
Add new test, fix replaceObjectsAtIndexes:withObjects:
This commit is contained in:
parent
0a2f885456
commit
3278eaa2ca
2 changed files with 48 additions and 7 deletions
|
@ -64,7 +64,6 @@ static Class NSOrderedSet_concrete_class;
|
|||
static Class NSMutableOrderedSet_concrete_class;
|
||||
|
||||
static SEL addSel;
|
||||
static SEL appSel;
|
||||
static SEL countSel;
|
||||
static SEL eqSel;
|
||||
static SEL oaiSel;
|
||||
|
@ -90,7 +89,6 @@ static SEL rlSel;
|
|||
[self setVersion: 1];
|
||||
|
||||
addSel = @selector(addObject:);
|
||||
appSel = @selector(appendString:);
|
||||
countSel = @selector(count);
|
||||
eqSel = @selector(isEqual:);
|
||||
oaiSel = @selector(objectAtIndex:);
|
||||
|
@ -1575,15 +1573,36 @@ static SEL rlSel;
|
|||
- (void) replaceObjectsAtIndexes: (NSIndexSet *)indexes
|
||||
withObjects: (NSArray *)objects
|
||||
{
|
||||
NSUInteger count = [indexes count];
|
||||
NSUInteger count = [indexes count], i = 0;
|
||||
NSUInteger indexArray[count];
|
||||
NSUInteger c = [self count];
|
||||
NSRange range = NSMakeRange(0,c);
|
||||
|
||||
GS_BEGINIDBUF(objs, count);
|
||||
|
||||
// Get the indexes
|
||||
[indexes getIndexes: indexArray
|
||||
maxCount: count
|
||||
inIndexRange: NULL];
|
||||
maxCount: count
|
||||
inIndexRange: NULL];
|
||||
|
||||
[self _removeObjectsFromIndices: indexArray
|
||||
numIndices: count];
|
||||
// Get the objects from this set
|
||||
[self getObjects: objs range: range];
|
||||
|
||||
// Iterate over the indexes and replace the objs
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
id obj = [objects objectAtIndex: i];
|
||||
NSUInteger indx = indexArray[i];
|
||||
objs[indx] = obj;
|
||||
}
|
||||
|
||||
// Remove all objects in this set...
|
||||
[self removeAllObjects];
|
||||
|
||||
// Rebuild set...
|
||||
[self addObjects: objs count: c];
|
||||
|
||||
GS_ENDIDBUF();
|
||||
}
|
||||
|
||||
- (void) replaceObjectsInRange: (NSRange)aRange
|
||||
|
|
|
@ -202,6 +202,28 @@ int main()
|
|||
[[mutableTest5 objectAtIndex: 2] isEqual:@"Now"] == YES,
|
||||
"Exchanges indexes properly");
|
||||
//NSLog(@"RESULT: %@",mutableTest4);
|
||||
|
||||
mutableTest4 = [NSMutableOrderedSet orderedSet];
|
||||
[mutableTest4 addObject:@"Now"];
|
||||
[mutableTest4 addObject:@"is"];
|
||||
[mutableTest4 addObject:@"the"];
|
||||
[mutableTest4 addObject:@"time"];
|
||||
[mutableTest4 addObject:@"for"];
|
||||
[mutableTest4 addObject:@"all"];
|
||||
[mutableTest4 addObject:@"Good"];
|
||||
[mutableTest4 addObject:@"men"];
|
||||
[mutableTest4 addObject:@"to"];
|
||||
[mutableTest4 addObject:@"come to"];
|
||||
[mutableTest4 addObject:@"the aid"];
|
||||
[mutableTest4 addObject:@"of their country"];
|
||||
NSMutableIndexSet *is = [NSMutableIndexSet indexSetWithIndex:6];
|
||||
[is addIndex: 9];
|
||||
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"Horrible", @"Flee From", nil];
|
||||
[mutableTest4 replaceObjectsAtIndexes: is
|
||||
withObjects: array];
|
||||
[testObjs addObject: mutableTest4];
|
||||
PASS([[mutableTest4 objectAtIndex: 9] isEqual:@"Flee From"] == YES,
|
||||
"replaceObjectsAtIndexes: adds to correct indexes");
|
||||
|
||||
test_NSObject(@"NSOrderedSet", testObjs);
|
||||
test_NSCoding(testObjs);
|
||||
|
|
Loading…
Reference in a new issue