From adde315e2d694fea57b8157782afc9731d3546b7 Mon Sep 17 00:00:00 2001 From: Ross Boucher Date: Sun, 21 Jun 2009 16:16:45 -0700 Subject: [PATCH] Fix a bug in [CPArray indexOfObject:sortedByDesciptors:], add a matching test. --- Foundation/CPArray.j | 2 +- Tests/Foundation/CPArrayTest.j | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Foundation/CPArray.j b/Foundation/CPArray.j index e5a69f72a..29139a5f5 100755 --- a/Foundation/CPArray.j +++ b/Foundation/CPArray.j @@ -488,7 +488,7 @@ */ - (unsigned)indexOfObject:(id)anObject sortedByDescriptors:(CPArray)descriptors { - [self indexOfObject:anObject sortedByFunction:function(lhs, rhs) + return [self indexOfObject:anObject sortedByFunction:function(lhs, rhs) { var i = 0, count = [descriptors count], diff --git a/Tests/Foundation/CPArrayTest.j b/Tests/Foundation/CPArrayTest.j index d14632902..eba367e5c 100644 --- a/Tests/Foundation/CPArrayTest.j +++ b/Tests/Foundation/CPArrayTest.j @@ -1,6 +1,7 @@ @import @import @import +@import @implementation CPArrayTest : OJTestCase @@ -92,4 +93,39 @@ [self assert:array equals:[@"one", @"two", @"four"]]; } + +- (void)testIndexOfObjectSortedByFunction +{ + var array = [0, 1, 2, 3, 4, 7]; + + [self assert:[array indexOfObject:3 sortedByFunction:function(a, b){ return a - b; }] equals:3]; + [self assert:[[array arrayByReversingArray] indexOfObject:3 sortedByFunction:function(a, b){ return b - a; }] equals:2]; +} + +- (void)testIndexOfObjectSortedByDescriptors +{ + var array = [0, 1, 2, 3, 4, 7]; + + [self assert:[array indexOfObject:3 + sortedByDescriptors:[[[CPSortDescriptor alloc] initWithKey:@"intValue" ascending:YES]]] + equals:3]; + + [self assert:[[array arrayByReversingArray] indexOfObject:3 + sortedByDescriptors:[[[CPSortDescriptor alloc] initWithKey:@"intValue" ascending:NO]]] + equals:2]; +} + +@end + +@implementation CPArray (reverse) + +- (CPArray)arrayByReversingArray +{ + var a = []; + for (i = length - 1; i>0; --i) + a.push(self[i]); + + return a; +} + @end