// -*- c++ -*- #include #include #include #include #include #include #include #include #include #include #include #include "test_tools.h" #include "heap_test.h" using namespace lemon; using namespace lemon::concept; int main() { typedef int Item; typedef int Prio; typedef IntIntMap ItemIntMap; typedef ListGraph Graph; typedef Graph::Edge Edge; typedef Graph::Node Node; typedef Graph::EdgeIt EdgeIt; typedef Graph::NodeIt NodeIt; typedef Graph::EdgeMap LengthMap; Graph graph; LengthMap length(graph); Node start; /// \todo create own test graph std::string f_name; if( getenv("srcdir") ) f_name = std::string(getenv("srcdir")); else f_name = "."; f_name += "/dijkstra_test.lgf"; std::ifstream input(f_name.c_str()); check(input, "Input file '" << f_name << "' not found."); readGraph(input, graph, length, start); { std::cerr << "Checking Bin Heap" << std::endl; typedef BinHeap IntHeap; checkConcept, IntHeap>(); heapSortTest(100); heapIncreaseTest(100); typedef FibHeap > NodeHeap; checkConcept >, NodeHeap>(); dijkstraHeapTest(graph, length, start); } { std::cerr << "Checking Fib Heap" << std::endl; typedef FibHeap IntHeap; checkConcept, IntHeap>(); heapSortTest(100); heapIncreaseTest(100); typedef FibHeap > NodeHeap; checkConcept >, NodeHeap>(); dijkstraHeapTest(graph, length, start); } { std::cerr << "Checking Radix Heap" << std::endl; typedef RadixHeap IntHeap; checkConcept, IntHeap>(); heapSortTest(100); heapIncreaseTest(100); typedef RadixHeap > NodeHeap; checkConcept >, NodeHeap>(); dijkstraHeapTest(graph, length, start); } std::cout << __FILE__ ": All tests passed.\n"; return 0; }