1.1 --- a/src/demo/kruskal_demo.cc Sat May 21 21:04:57 2005 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,95 +0,0 @@
1.4 -#include <iostream>
1.5 -#include <vector>
1.6 -
1.7 -#include <lemon/maps.h>
1.8 -#include <lemon/kruskal.h>
1.9 -#include <lemon/list_graph.h>
1.10 -
1.11 -
1.12 -using namespace std;
1.13 -using namespace lemon;
1.14 -
1.15 -
1.16 -int main() {
1.17 -
1.18 - typedef ListGraph::Node Node;
1.19 - typedef ListGraph::Edge Edge;
1.20 - typedef ListGraph::NodeIt NodeIt;
1.21 - typedef ListGraph::EdgeIt EdgeIt;
1.22 -
1.23 - ListGraph G;
1.24 -
1.25 - Node s=G.addNode();
1.26 - Node v1=G.addNode();
1.27 - Node v2=G.addNode();
1.28 - Node v3=G.addNode();
1.29 - Node v4=G.addNode();
1.30 - Node t=G.addNode();
1.31 -
1.32 - Edge e1 = G.addEdge(s, v1);
1.33 - Edge e2 = G.addEdge(s, v2);
1.34 - Edge e3 = G.addEdge(v1, v2);
1.35 - Edge e4 = G.addEdge(v2, v1);
1.36 - Edge e5 = G.addEdge(v1, v3);
1.37 - Edge e6 = G.addEdge(v3, v2);
1.38 - Edge e7 = G.addEdge(v2, v4);
1.39 - Edge e8 = G.addEdge(v4, v3);
1.40 - Edge e9 = G.addEdge(v3, t);
1.41 - Edge e10 = G.addEdge(v4, t);
1.42 -
1.43 - typedef ListGraph::EdgeMap<int> ECostMap;
1.44 - typedef ListGraph::EdgeMap<bool> EBoolMap;
1.45 -
1.46 - ECostMap edge_cost_map(G, 2);
1.47 - EBoolMap tree_map(G);
1.48 -
1.49 -
1.50 - //Test with const map.
1.51 - std::cout << "The weight of the minimum spanning tree is " << kruskalEdgeMap(G, ConstMap<ListGraph::Edge,int>(2), tree_map)<<std::endl;
1.52 -
1.53 -/*
1.54 - ==10,
1.55 - "Total cost should be 10");
1.56 - //Test with a edge map (filled with uniform costs).
1.57 - check(kruskalEdgeMap(G, edge_cost_map, tree_map)==10,
1.58 - "Total cost should be 10");
1.59 -
1.60 - edge_cost_map.set(e1, -10);
1.61 - edge_cost_map.set(e2, -9);
1.62 - edge_cost_map.set(e3, -8);
1.63 - edge_cost_map.set(e4, -7);
1.64 - edge_cost_map.set(e5, -6);
1.65 - edge_cost_map.set(e6, -5);
1.66 - edge_cost_map.set(e7, -4);
1.67 - edge_cost_map.set(e8, -3);
1.68 - edge_cost_map.set(e9, -2);
1.69 - edge_cost_map.set(e10, -1);
1.70 -
1.71 - vector<Edge> tree_edge_vec;
1.72 -
1.73 - //Test with a edge map and inserter.
1.74 - check(kruskalEdgeMap_IteratorOut(G, edge_cost_map,
1.75 - back_inserter(tree_edge_vec))
1.76 - ==-31,
1.77 - "Total cost should be -31.");
1.78 -
1.79 - tree_edge_vec.clear();
1.80 -
1.81 - //The above test could also be coded like this:
1.82 - check(kruskal(G,
1.83 - makeKruskalMapInput(G, edge_cost_map),
1.84 - makeKruskalSequenceOutput(back_inserter(tree_edge_vec)))
1.85 - ==-31,
1.86 - "Total cost should be -31.");
1.87 -
1.88 - check(tree_edge_vec.size()==5,"The tree should have 5 edges.");
1.89 -
1.90 - check(tree_edge_vec[0]==e1 &&
1.91 - tree_edge_vec[1]==e2 &&
1.92 - tree_edge_vec[2]==e5 &&
1.93 - tree_edge_vec[3]==e7 &&
1.94 - tree_edge_vec[4]==e9,
1.95 - "Wrong tree.");
1.96 -*/
1.97 - return 0;
1.98 -}