Added CPArray -indexesOfObjectPassingTest methods

This commit is contained in:
Aparajita Fishman
2012-07-04 15:41:45 -04:00
parent 8651a59f43
commit 0f5a6b4e5e
2 changed files with 184 additions and 1 deletions
+105 -1
View File
@@ -198,7 +198,6 @@
} context:13] same:1];
}
- (void)test_indexOfObjectWithOptions_passingTest
{
var array = [[[self class] arrayClass] arrayWithObjects:
@@ -357,6 +356,111 @@
}
- (void)test_indexesOfObjectPassingTest_
{
var array = [[[self class] arrayClass] arrayWithObjects:
{ name:@"Tom", age:7 },
{ name:@"Dick", age:13 },
{ name:@"Harry", age:27 },
{ name:@"Zelda", age:7 }];
[self assert:[array indexesOfObjectPassingTest:function() { return YES; }] equals:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, 4)]];
[self assert:[array indexesOfObjectPassingTest:function() { return NO; }] equals:[CPIndexSet indexSet]];
[self assert:[array indexesOfObjectPassingTest:function() { return nil; }] equals:[CPIndexSet indexSet]];
[self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex)
{
return [anObject.name isEqual:@"Harry"];
}] equals:[CPIndexSet indexSetWithIndex:2]];
var indexSet = [CPIndexSet indexSetWithIndex:0];
[indexSet addIndex:3];
[self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex)
{
return anObject.age === 7;
}] equals:indexSet];
[self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex)
{
return [anObject.name isEqual:@"Horton"];
}] equals:[CPIndexSet indexSet]];
}
- (void)test_indexesOfObjectPassingTest_context_
{
var array = [[[self class] arrayClass] arrayWithObjects:
{ name:@"Tom", age:7 },
{ name:@"Dick", age:13 },
{ name:@"Harry", age:27 },
{ name:@"Zelda", age:7 }];
[self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex, aContext)
{
return [anObject.name isEqual:aContext];
} context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]];
var indexSet = [CPIndexSet indexSetWithIndex:0];
[indexSet addIndex:3];
[self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex, aContext)
{
return anObject.age === aContext;
} context:7] equals:indexSet];
}
- (void)test_indexesOfObjectWithOptions_passingTest
{
var array = [[[self class] arrayClass] arrayWithObjects:
{ name:@"Tom", age:7 },
{ name:@"Dick", age:13 },
{ name:@"Harry", age:27 },
{ name:@"Zelda", age:7 }],
namePredicate = function(anObject, anIndex)
{
return [anObject.name isEqual:@"Harry"];
},
agePredicate = function(anObject, anIndex)
{
return anObject.age === 7;
};
[self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]];
[self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]];
var indexSet = [CPIndexSet indexSetWithIndex:0];
[indexSet addIndex:3];
[self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:agePredicate] equals:indexSet];
[self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:agePredicate] equals:indexSet];
}
- (void)test_indexesOfObjectWithOptions_passingTest_context
{
var array = [[[self class] arrayClass] arrayWithObjects:
{ name:@"Tom", age:7 },
{ name:@"Dick", age:13 },
{ name:@"Harry", age:27 },
{ name:@"Zelda", age:7 }],
namePredicate = function(anObject, anIndex, aContext)
{
return [anObject.name isEqual:aContext];
},
agePredicate = function(anObject, anIndex, aContext)
{
return anObject.age === aContext;
};
[self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]];
[self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]];
var indexSet = [CPIndexSet indexSetWithIndex:0];
[indexSet addIndex:3];
[self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:agePredicate context:7] equals:indexSet];
[self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:agePredicate context:7] equals:indexSet];
}
- (void)test_isEqualToArray_
{
var arrayClass = [[self class] arrayClass],