Grafalgo
Library of useful data structures and algorithms
/Users/jst/src/grafalgo/cpp/dataStructures/heaps/unit/testDheap.cpp
Go to the documentation of this file.
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 }
 All Classes Files Functions Variables Typedefs Friends