From cea663f4eb56e3561eda31b3cbb8d96d120b2dab Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Wed, 28 Jul 2010 16:16:37 -0700 Subject: [PATCH] Fix for isEqual: not being implemented in CPIndexSet. Closes #785. Reviewed by rossco. --- Foundation/CPIndexSet.j | 7 +++++++ Tests/Foundation/CPIndexSetTest.j | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) 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)];