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 PriorityQueue class ** to the test. ** ** DISCLAIMER: ** This is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as ** published by the Free Software Foundation; either version ** 1, or (at your option) any later version. ** ** This program is distributed in the hope that it will be ** useful, but WITHOUT ANY WARRANTY; without even the implied ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ** PURPOSE. See the GNU General Public License for more ** details. ** ** You should have received a copy of the GNU General Public ** License along with this program; if not, write to the Free ** Software Foundation, Inc., 675 Mass Ave, Cambridge, MA ** 02139, USA. */ #define NELEM 10 #import "PriorityQueue.h" void prioritize(void) { int i; id queue; id obj; unsigned int priority; queue = [[PriorityQueue 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 temp; id obj; unsigned int priority; queue = [[PriorityQueue 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.