This is test1.m in view mode; [Download] [Up]
#include <objc/Object.h> #include <coll/coll.h> int compareInts(elt e1, elt e2) { return (e1.int_t - e2.int_t); } @interface Collection (TestingExtras) - printCount; @end @implementation Collection (TestingExtras) - printCount { printf("%s: count=%d\n", [self name], [self count]); return self; } @end void checkSameContents(id colllist) { unsigned i, c = [colllist count]; for (i = 1; i < c; i++) if (![[colllist objectAtIndex:0] includesSameContents:[colllist objectAtIndex:i]]) printf("collection 0 does not have same contents as collection %d\n", i); } BOOL nonNullTest(elt e) { if (e.void_ptr_t == 0) return NO; else return YES; } main() { int i, j, e; char *s; id array = [[Array alloc] initDescription:"i"]; id sarray = [[SortedArray alloc] initDescription:"i" comparisonFunc:compareInts]; id llist = [[LinkedList alloc] initDescription:"i"]; id bag = [[Bag alloc] initDescription:"i"]; id stack = [[Stack alloc] initDescription:"i"]; id queue = [[Queue alloc] initDescription:"i"]; id gaparray = [[GapArray alloc] initDescription:"i"]; id collections = [DelegateList new]; [collections delegateListAddObject:array]; [collections delegateListAddObject:sarray]; [collections delegateListAddObject:llist]; [collections delegateListAddObject:bag]; [collections delegateListAddObject:stack]; [collections delegateListAddObject:queue]; [collections delegateListAddObject:gaparray]; printf("delegateList filled, count=%d\n", [[collections delegateListList] count]); [collections addElement:99]; [collections printCount]; printf("Adding numbers...\n"); for (i = 0; i < 17; i++) { e = random() % 99; printf("%2d ", e); [collections addElement:e]; } printf("\ncollections filled\n\n"); [collections printForDebugger]; if ([array trueForAllByCalling:nonNullTest]) printf("Array contains no zero's\n"); checkSameContents([collections delegateListList]); printf("\nremoving 99\n\n"); [collections removeElement:99]; [collections printForDebugger]; checkSameContents([collections delegateListList]); exit(0); /* if (![collections trueForAllByPerforming:@selector(includesSameContents:) with:array]) printf("error: collections not all the same\n"); */ }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.