diff --git a/Foundation/CPIndexSet.j b/Foundation/CPIndexSet.j index 91855dc9b..bd3be224e 100644 --- a/Foundation/CPIndexSet.j +++ b/Foundation/CPIndexSet.j @@ -160,6 +160,13 @@ return YES; } +- (BOOL)isEqual:(id)anObject +{ + return self === anObject || + [anObject isKindOfClass:[self class]] && + [self isEqualToIndexSet:anObject]; +} + /*! Returns \c YES if the index set contains the specified index. @param anIndex the index to check for in the set diff --git a/Tests/Foundation/CPIndexSetTest.j b/Tests/Foundation/CPIndexSetTest.j index b244b8e1d..fed4726b9 100644 --- a/Tests/Foundation/CPIndexSetTest.j +++ b/Tests/Foundation/CPIndexSetTest.j @@ -252,12 +252,26 @@ function descriptionWithoutEntity(aString) var set1 = [CPIndexSet indexSetWithIndex:7]; var set2 = [CPIndexSet indexSetWithIndex:7]; var set3 = [CPIndexSet indexSetWithIndexesInRange:CPMakeRange(7, 2)]; - + + [self assertFalse:[set1 isEqualToIndexSet:nil]]; [self assertTrue:[set1 isEqualToIndexSet:set2]]; [self assertTrue:[set1 isEqualToIndexSet:set1]]; [self assertFalse:[set1 isEqualToIndexSet:set3]]; } +- (void)testIsEqual +{ + var set1 = [CPIndexSet indexSetWithIndex:7]; + var set2 = [CPIndexSet indexSetWithIndex:7]; + var set3 = [CPIndexSet indexSetWithIndexesInRange:CPMakeRange(7, 2)]; + + [self assertFalse:[set1 isEqual:nil]]; + [self assertFalse:[set1 isEqual:7]]; + [self assertTrue:[set1 isEqual:set2]]; + [self assertTrue:[set1 isEqual:set1]]; + [self assertFalse:[set1 isEqual:set3]]; +} + - (void)testCount { var set = [CPIndexSet indexSetWithIndexesInRange:CPMakeRange(7, 2)];