This is queuetest.m in view mode; [Download] [Up]
/* NAME: ** QueueTest.m ** ** COPYRIGHT 1992 BY ONYSCHUK AND ASSOCIATES ** ALL RIGHTS RESERVED. ** ** REVISION HISTORY: ** Sun Aug 23 21:10:26 EDT 1992 Mark Onyschuk ** Starting point ** ** DESCRIPTION: ** Program to demonstrate and put the MiscPriorityQueue class ** to the test. */ #define NELEM 10 #import <misckit/misckit.h> void prioritize(void) { int i; id queue; id obj; unsigned int priority; queue = [[MiscPriorityQueue alloc] init]; printf("Queueing and dequeueing Objects:\n\n"); for (i = NELEM; i > 0; i--) { obj = [[Object alloc] init]; priority = random() % NELEM; printf("Queueing object %p with priority %d\n", obj, priority); [queue addObject:obj withPriority:priority]; } printf("\n"); for (i = NELEM; i > 0; i--) { obj = [queue removeObject]; printf("Dequeued object %p\n", obj); } } void copyqueue(void) { int i; id queue; id copyA; id copyB; id copyC; id copyD; id obj; unsigned int priority; queue = [[MiscPriorityQueue alloc] init]; printf("Copying Objects:\n\n"); for (i = NELEM; i > 0; i--) { obj = [[Object alloc] init]; priority = random() % NELEM; printf("Queueing object %p with priority %d\n", obj, priority); [queue addObject:obj withPriority:priority]; } printf("Copying queue to copyA, copyB, copyC, and copyD.\n"); copyA = [queue copy]; copyB = [queue copy]; copyC = [queue copy]; copyD = [queue copy]; for (i = NELEM; i > 0; i--) { priority = [queue highestPriority]; obj = [queue removeObject]; printf("Dequeued object %p (orig.) with priority %d\n", obj, priority); } for (i = NELEM; i > 0; i--) { priority = [copyA highestPriority]; obj = [copyA removeObject]; printf("Dequeued object %p (copyA) with priority %d\n", obj, priority); } printf("copyB %s copyC\n", ([copyB isEqual:copyC]) ? "==" : "!="); printf("removing last item from copyD\n"); [copyD removeObject]; printf("copyC %s copyD\n", ([copyC isEqual:copyD]) ? "==" : "!="); } void main(void) { prioritize(); printf("\n"); copyqueue(); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.