diff --git a/Tests/base/NSNumber/basic.m b/Tests/base/NSNumber/basic.m index b0242bbab..f2d5f69a5 100644 --- a/Tests/base/NSNumber/basic.m +++ b/Tests/base/NSNumber/basic.m @@ -12,7 +12,30 @@ int main() test_NSObject(@"NSNumber", [NSArray arrayWithObject:testObj]); test_NSCoding([NSArray arrayWithObject:testObj]); test_NSCopying(@"NSNumber", @"NSNumber", - [NSArray arrayWithObject:testObj],YES,NO); + [NSArray arrayWithObject:testObj],YES,NO); + { + // For more paranoid testing, you can change this to int or long long. + short i = 0; + int increment = 1; + while (i >= 0) + { + NSNumber *n = [[NSNumber alloc] initWithInt: i]; + PASS(i == [n intValue], "int -> NSNumber -> int is identity operation for %d", i); + [n release]; + i += increment; + if (i > 100) { increment++; } + } + i = -1; + increment = 1; + while (i <= 0) + { + NSNumber *n = [[NSNumber alloc] initWithInt: i]; + PASS(i == [n intValue], "int -> NSNumber -> int is identity operation for %d", i); + [n release]; + i -= increment; + if (i < -100) { increment++; } + } + } [arp release]; arp = nil; return 0; }