This is TestArchive.m in view mode; [Download] [Up]
// // TestArchive // // This program tests the archiving abilities of the Random System. // #import "Random.h" #import "StandardEngine.h" #import "ElkinsEngine.h" #import "R250Engine.h" #import <objc/typedstream.h> #import <stdio.h> // // test_archive() // void test_archive(id myRand) { double buffer[1000]; double foo; int i; NXTypedStream *myStream; id myNewRand; // // Skip 1000 numbers // printf(" Generating 1000 percentages...\n"); for(i = 0; i < 1000; i++) { foo = [myRand percent]; } // // Archive the random: // printf(" Archiving the random object to the file 'ArchivedRandom.rand'...\n"); myStream = NXOpenTypedStreamForFile("ArchivedRandom.rand", NX_WRITEONLY); [myRand write:myStream]; NXCloseTypedStream(myStream); // // Generate and save a bunch of numbers: // printf(" Generating and saving 1000 percentages...\n"); for(i = 0; i < 1000; i++) { buffer[i] = [myRand percent]; } // // De-archive the random: // printf(" Reading a copy of the archive from the file 'ArchivedRandom.rand'...\n"); myStream = NXOpenTypedStreamForFile("ArchivedRandom.rand", NX_READONLY); myNewRand = [[Random alloc] read:myStream]; NXCloseTypedStream(myStream); // // Create 1000 more numbers, and compare them: // printf(" Creating and comparing 1000 percentages to previous results...\n"); for(i = 0; i < 1000; i++) { if(buffer[i] != [myNewRand percent]) { printf(">> Sequence diverged at %d!\n", i); break; } } // // Free data objects: // printf(" Freeing temporary random number generator...\n"); [myNewRand free]; return; } // // main() // int main(int argc, char *argv[]) { id myRand; printf("TestPercent: Testing StandardEngine class:\n"); myRand = [[Random alloc] initEngineClass:[StandardEngine class]]; test_archive(myRand); printf("\n\n"); [myRand free]; printf("TestPercent: Testing ElkinsEngine class:\n"); myRand = [[Random alloc] initEngineClass:[ElkinsEngine class]]; test_archive(myRand); printf("\n\n"); [myRand free]; printf("TestPercent: Testing R250Engine class:\n"); myRand = [[Random alloc] initEngineClass:[R250Engine class]]; test_archive(myRand); printf("\n\n"); [myRand free]; return 0; } // // End of file. //
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.