NewMapWin has become Dialog instead of Window. Therefore it is created dynamically, when there is need for it, instead of keeping one instance in memory. This solution is slower, but more correct than before.
8 #include <lemon/concept_check.h>
9 #include <lemon/concept/heap.h>
11 #include <lemon/smart_graph.h>
13 #include <lemon/graph_reader.h>
15 #include <lemon/bin_heap.h>
16 #include <lemon/fib_heap.h>
17 #include <lemon/radix_heap.h>
18 #include <lemon/linear_heap.h>
20 #include "test_tools.h"
22 #include "heap_test.h"
24 #include <lemon/time_measure.h>
26 using namespace lemon;
27 using namespace lemon::concept;
34 typedef IntIntMap ItemIntMap;
36 typedef ListGraph Graph;
38 typedef Graph::Edge Edge;
39 typedef Graph::Node Node;
40 typedef Graph::EdgeIt EdgeIt;
41 typedef Graph::NodeIt NodeIt;
42 typedef Graph::EdgeMap<int> LengthMap;
45 LengthMap length(graph);
48 /// \todo create own test graph
51 if( getenv("srcdir") )
52 f_name = std::string(getenv("srcdir"));
54 f_name += "/dijkstra_test.lgf";
56 std::ifstream input(f_name.c_str());
57 check(input, "Input file '" << f_name << "' not found.");
58 GraphReader<Graph>(input, graph).
59 readEdgeMap("length", length).
60 readNode("source", start).
64 std::cerr << "Checking Bin Heap" << std::endl;
66 typedef BinHeap<Item, Prio, ItemIntMap> IntHeap;
67 checkConcept<Heap<Item, Prio, ItemIntMap>, IntHeap>();
68 heapSortTest<IntHeap>(100);
69 heapIncreaseTest<IntHeap>(100);
71 typedef FibHeap<Node, Prio, Graph::NodeMap<int> > NodeHeap;
72 checkConcept<Heap<Node, Prio, Graph::NodeMap<int> >, NodeHeap>();
74 dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
75 std::cout << timer << std::endl;
78 std::cerr << "Checking Fib Heap" << std::endl;
80 typedef FibHeap<Item, Prio, ItemIntMap> IntHeap;
81 checkConcept<Heap<Item, Prio, ItemIntMap>, IntHeap>();
82 heapSortTest<IntHeap>(100);
83 heapIncreaseTest<IntHeap>(100);
85 typedef FibHeap<Node, Prio, Graph::NodeMap<int> > NodeHeap;
86 checkConcept<Heap<Node, Prio, Graph::NodeMap<int> >, NodeHeap>();
88 dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
89 std::cout << timer << std::endl;
92 std::cerr << "Checking Radix Heap" << std::endl;
94 typedef RadixHeap<Item, ItemIntMap> IntHeap;
95 checkConcept<Heap<Item, Prio, ItemIntMap>, IntHeap>();
96 heapSortTest<IntHeap>(100);
97 heapIncreaseTest<IntHeap>(100);
99 typedef RadixHeap<Node, Graph::NodeMap<int> > NodeHeap;
100 checkConcept<Heap<Node, Prio, Graph::NodeMap<int> >, NodeHeap>();
102 dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
103 std::cout << timer << std::endl;
107 std::cerr << "Checking Linear Heap" << std::endl;
109 typedef LinearHeap<Item, ItemIntMap> IntHeap;
110 checkConcept<Heap<Item, Prio, ItemIntMap>, IntHeap>();
111 heapSortTest<IntHeap>(100);
112 heapIncreaseTest<IntHeap>(100);
114 typedef LinearHeap<Node, Graph::NodeMap<int> > NodeHeap;
115 checkConcept<Heap<Node, Prio, Graph::NodeMap<int> >, NodeHeap>();
117 dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
118 std::cout << timer << std::endl;
121 std::cout << __FILE__ ": All tests passed.\n";