Grafalgo
Library of useful data structures and algorithms
|
00001 00009 #include "Dheap.h" 00010 #include "Utest.h" 00011 00012 using namespace grafalgo; 00013 00014 void basicTests() { 00015 Dheap heap(10,2); string s; 00016 00017 cout << "writing initial heap: " << heap.toString(s) << endl; 00018 Utest::assertEqual(heap.toString(s), "", "initial heap not correct"); 00019 00020 heap.insert(1,5); heap.insert(3,4); heap.insert(5,6); 00021 Utest::assertTrue(heap.member(1), "inserted item not in heap"); 00022 Utest::assertTrue(heap.member(3), "inserted item not in heap"); 00023 Utest::assertTrue(heap.member(5), "inserted item not in heap"); 00024 Utest::assertTrue(heap.size() == 3, "size mismatch"); 00025 cout << "writing 3 item heap: " << heap.toString(s) << endl; 00026 00027 heap.insert(8,2); heap.insert(9,7); heap.insert(7,3); 00028 Utest::assertTrue(heap.member(8), "inserted item not in heap"); 00029 Utest::assertTrue(heap.member(9), "inserted item not in heap"); 00030 Utest::assertTrue(heap.member(7), "inserted item not in heap"); 00031 Utest::assertTrue(heap.size() == 6, "size mismatch"); 00032 cout << "writing 6 item heap: " << heap.toString(s) << endl; 00033 00034 int u = heap.deletemin(); 00035 Utest::assertTrue(u == 8, "deletemin returned wrong value"); 00036 Utest::assertTrue(!heap.member(u), "deleted item still in heap"); 00037 00038 u = heap.deletemin(); 00039 Utest::assertTrue(u == 7, "deletemin returned wrong value"); 00040 Utest::assertTrue(!heap.member(u), "deleted item still in heap"); 00041 } 00042 00046 int main() { 00047 cout << "running basic tests\n"; 00048 basicTests(); 00049 cout << "basic tests passed\n"; 00050 00051 // add more systematic tests for each individual method 00052 }