/**** * * Implementation of intlist-test.h. * */ #include #include "intlist-test.h" void DoIt(); void DoSort(); void Dump(IntList* il); main() { IntListTest* ilt = new IntListTest(); ilt->DoIt(); delete ilt; } void IntListTest::DoIt() { /* * Do it twice to make sure that nothing gets clobbered the first time. */ DoItOnce(); DoSort(); DoItOnce(); DoSort(); } void IntListTest::DoItOnce() { IntList* il = new IntList(); int i,len; for (i=1; i<=10; i++) il->Put(new IntListElem(i)); for (i=1; i<=10; i++) il->Push(new IntListElem(i)); Dump(il); printf("%d %d", il->Pull()->GetData(), il->Pop()->GetData()); printf("\n"); Dump(il); il->RemoveNth(1); il->RemoveNth(il->Len()); Dump(il); il->RemoveNth(8); il->RemoveNth(8); Dump(il); for (i=1, len=il->Len(); i<=len+2; i++) il->RemoveNth(2); Dump(il); printf("%d\n", il->RemoveNth(1)->GetData()); Dump(il); printf("%d\n", il->RemoveNth(1)->GetData()); printf("%d\n", il->RemoveNth(1)->GetData()); printf("%d\n", il->Pull()->GetData()); printf("%d\n", il->Pop()->GetData()); Dump(il); } /* * Test sorting. */ void IntListTest::DoSort() { IntList* il = new IntList(); IntList* il1 = new IntList(); int i; for (i=5; i>=1; i--) il1->Put(new IntListElem(i)); il1->Sort(); Dump(il1); for (i=1; i<=10; i++) il->Put(new IntListElem(i)); for (i=1; i<=10; i++) il->Push(new IntListElem(i)); il->Sort(true); Dump(il); il->Sort(false); Dump(il); printf("\nFound 2: %d\nPosition of Found 2: %d\n", il->Find(2)->GetData(), il->FindPos(2)); delete il; } void IntListTest::Dump(IntList* il) { IntListElem* ie; int i,len; il->ResetEnum(); while ((ie = il->Enum())) ie->Print(); printf("\n"); for (i=1, len = il->Len(); i<=len; i++) printf("%d ", il->GetNth(i)->GetData()); printf("\n"); }