Index: test/Makefile.am
===================================================================
--- test/Makefile.am	(revision 2604)
+++ test/Makefile.am	(revision 2647)
@@ -1,62 +1,51 @@
-EXTRA_DIST += \
-	test/Makefile \
-	test/preflow_graph.dim \
-	test/dijkstra_test.lgf \
-	test/min_cost_flow_test.lgf \
-	test/min_cost_flow_test.net
+#EXTRA_DIST += \
+#	test/preflow_graph.dim \
+#	test/dijkstra_test.lgf
 
-noinst_HEADERS += \
-	test/test_tools.h \
-	test/graph_test.h \
-	test/map_test.h \
-	test/graph_utils_test.h \
-	test/heap_test.h
+#noinst_HEADERS += \
+#	test/test_tools.h \
+#	test/graph_test.h \
+#	test/map_test.h \
+#	test/graph_utils_test.h \
+#	test/heap_test.h
 
-check_PROGRAMS += \
-	test/all_pairs_shortest_path_test \
-	test/arborescence_test \
-	test/bfs_test \
-	test/bipartite_matching_test \
-	test/bpugraph_test \
-	test/counter_test \
-	test/dfs_test \
-	test/dijkstra_test \
-	test/dim_test \
-	test/edge_set_test \
-	test/graph_adaptor_test \
-	test/graph_copy_test \
-	test/graph_test \
-	test/graph_utils_test \
-	test/heap_test \
-	test/kruskal_test \
-	test/maps_test \
-	test/matrix_maps_test \
-	test/max_matching_test \
-	test/max_weighted_matching_test \
-	test/min_cost_flow_test \
-	test/path_test \
-	test/polynomial_test \
-	test/preflow_test \
-	test/radix_sort_test \
-	test/refptr_test \
-	test/random_test \
-	test/simann_test \
-	test/suurballe_test \
-	test/test_tools_fail \
-	test/test_tools_pass \
-	test/time_measure_test \
-	test/ugraph_test \
-	test/unionfind_test
+#check_PROGRAMS += \
+#	test/all_pairs_shortest_path_test \
+#	test/arborescence_test \
+#	test/bfs_test \
+#	test/bipartite_matching_test \
+#	test/counter_test \
+#	test/dfs_test \
+#	test/dijkstra_test \
+#	test/edge_set_test \
+#	test/graph_adaptor_test \
+#	test/graph_test \
+#	test/graph_utils_test \
+#	test/heap_test \
+#	test/kruskal_test \
+#	test/maps_test \
+#	test/matrix_maps_test \
+#	test/max_matching_test \
+#	test/min_cost_flow_test \
+#	test/path_test \
+#	test/polynomial_test \
+#	test/preflow_test \
+#	test/radix_sort_test \
+#	test/refptr_test \
+#	test/simann_test \
+#	test/suurballe_test \
+#	test/test_tools_fail \
+#	test/test_tools_pass \
+#	test/time_measure_test \
+#	test/ugraph_test \
+#	test/unionfind_test \
+#	test/xy_test
 
 if HAVE_GLPK
-check_PROGRAMS += test/lp_test test/mip_test
+#check_PROGRAMS += test/lp_test
 else !HAVE_GLPK
 if HAVE_CPLEX
-check_PROGRAMS += test/lp_test test/mip_test
-else !HAVE_CPLEX
-if HAVE_SOPLEX
-check_PROGRAMS += test/lp_test
-endif HAVE_SOPLEX
-endif !HAVE_CPLEX
+#check_PROGRAMS += test/lp_test
+endif HAVE_CPLEX
 endif !HAVE_GLPK
 
@@ -64,41 +53,35 @@
 XFAIL_TESTS += test/test_tools_fail$(EXEEXT)
 
-test_all_pairs_shortest_path_test_SOURCES = test/all_pairs_shortest_path_test.cc
-test_arborescence_test_SOURCES = test/arborescence_test.cc
-test_bfs_test_SOURCES = test/bfs_test.cc
-test_bipartite_matching_test_SOURCES = test/bipartite_matching_test.cc
-test_bpugraph_test_SOURCES = test/bpugraph_test.cc
-test_counter_test_SOURCES = test/counter_test.cc
-test_dfs_test_SOURCES = test/dfs_test.cc
-test_dijkstra_test_SOURCES = test/dijkstra_test.cc
-test_dim_test_SOURCES = test/dim_test.cc
-test_edge_set_test_SOURCES = test/edge_set_test.cc
-test_graph_adaptor_test_SOURCES = test/graph_adaptor_test.cc
-test_graph_copy_test_SOURCES = test/graph_copy_test.cc
-test_graph_test_SOURCES = test/graph_test.cc
-test_graph_utils_test_SOURCES = test/graph_utils_test.cc
-test_heap_test_SOURCES = test/heap_test.cc
-test_kruskal_test_SOURCES = test/kruskal_test.cc
-test_maps_test_SOURCES = test/maps_test.cc
-test_matrix_maps_test_SOURCES = test/matrix_maps_test.cc
-test_max_matching_test_SOURCES = test/max_matching_test.cc
-test_max_weighted_matching_test_SOURCES = test/max_weighted_matching_test.cc
-test_min_cost_flow_test_SOURCES = test/min_cost_flow_test.cc
-test_path_test_SOURCES = test/path_test.cc
-test_polynomial_test_SOURCES = test/polynomial_test.cc
-test_preflow_test_SOURCES = test/preflow_test.cc
-test_radix_sort_test_SOURCES = test/radix_sort_test.cc
-test_refptr_test_SOURCES = test/refptr_test.cc
-test_random_test_SOURCES = test/random_test.cc
-test_simann_test_SOURCES = test/simann_test.cc
-test_suurballe_test_SOURCES = test/suurballe_test.cc
-test_test_tools_fail_SOURCES = test/test_tools_fail.cc
-test_test_tools_pass_SOURCES = test/test_tools_pass.cc
-test_time_measure_test_SOURCES = test/time_measure_test.cc
-test_ugraph_test_SOURCES = test/ugraph_test.cc
-test_unionfind_test_SOURCES = test/unionfind_test.cc
+#test_all_pairs_shortest_path_test_SOURCES = test/all_pairs_shortest_path_test.cc
+#test_arborescence_test_SOURCES = test/arborescence_test.cc
+#test_bfs_test_SOURCES = test/bfs_test.cc
+#test_bipartite_matching_test_SOURCES = test/bipartite_matching_test.cc
+#test_counter_test_SOURCES = test/counter_test.cc
+#test_dfs_test_SOURCES = test/dfs_test.cc
+#test_dijkstra_test_SOURCES = test/dijkstra_test.cc
+#test_edge_set_test_SOURCES = test/edge_set_test.cc
+#test_graph_adaptor_test_SOURCES = test/graph_adaptor_test.cc
+#test_graph_test_SOURCES = test/graph_test.cc
+#test_graph_utils_test_SOURCES = test/graph_utils_test.cc
+#test_heap_test_SOURCES = test/heap_test.cc
+#test_kruskal_test_SOURCES = test/kruskal_test.cc
+#test_maps_test_SOURCES = test/maps_test.cc
+#test_matrix_maps_test_SOURCES = test/matrix_maps_test.cc
+#test_max_matching_test_SOURCES = test/max_matching_test.cc
+#test_min_cost_flow_test_SOURCES = test/min_cost_flow_test.cc
+#test_path_test_SOURCES = test/path_test.cc
+#test_polynomial_test_SOURCES = test/polynomial_test.cc
+#test_preflow_test_SOURCES = test/preflow_test.cc
+#test_radix_sort_test_SOURCES = test/radix_sort_test.cc
+#test_refptr_test_SOURCES = test/refptr_test.cc
+#test_simann_test_SOURCES = test/simann_test.cc
+#test_suurballe_test_SOURCES = test/suurballe_test.cc
+#test_test_tools_fail_SOURCES = test/test_tools_fail.cc
+#test_test_tools_pass_SOURCES = test/test_tools_pass.cc
+#test_time_measure_test_SOURCES = test/time_measure_test.cc
+#test_ugraph_test_SOURCES = test/ugraph_test.cc
+#test_unionfind_test_SOURCES = test/unionfind_test.cc
+#test_xy_test_SOURCES = test/xy_test.cc
 
-test_lp_test_SOURCES = test/lp_test.cc
-test_lp_test_CXXFLAGS = $(GLPK_CFLAGS) $(CPLEX_CFLAGS) $(SOPLEX_CXXFLAGS)
-test_mip_test_SOURCES = test/mip_test.cc
-test_mip_test_CXXFLAGS = $(GLPK_CFLAGS) $(CPLEX_CFLAGS) $(SOPLEX_CXXFLAGS)
+#test_lp_test_SOURCES = test/lp_test.cc
+#test_lp_test_CXXFLAGS = $(GLPK_CFLAGS) $(CPLEX_CFLAGS)
Index: test/all_pairs_shortest_path_test.cc
===================================================================
--- test/all_pairs_shortest_path_test.cc	(revision 2569)
+++ 	(revision )
@@ -1,143 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-
-#include <lemon/math.h>
-#include <cstdlib>
-
-#include <lemon/smart_graph.h>
-#include <lemon/dijkstra.h>
-#include <lemon/floyd_warshall.h>
-#include <lemon/johnson.h>
-
-#include <lemon/fib_heap.h>
-
-#include <lemon/path.h>
-
-#include <lemon/time_measure.h>
-#include "test_tools.h"
-
-using namespace lemon;
-using namespace std;
-
-int main(int argc, const char *argv[]) {
-  typedef SmartGraph Graph;
-  typedef Graph::Node Node;
-  typedef Graph::Edge Edge;
-  typedef Graph::NodeIt NodeIt;
-  typedef Graph::EdgeIt EdgeIt;
-
-  typedef Graph::EdgeMap<int> LengthMap;
-  typedef Graph::NodeMap<int> DistMap;
-
-  const int n = argc > 1 ? atoi(argv[1]) : 20;
-  const int e = argc > 2 ? atoi(argv[2]) : int(n * log(double(n)));
-  const int m = argc > 3 ? atoi(argv[3]) : 100;
-
-  Graph graph;
-  LengthMap length(graph);
-  vector<Node> nodes;
-  
-  DistMap shift(graph);
-  for (int i = 0; i < n; ++i) {
-    Node node = graph.addNode();
-    nodes.push_back(node);
-    shift[node] = rnd[m];
-  }
-
-  for (int i = 0; i < e; ++i) {
-    int s = rnd[n];
-    int t = rnd[n];
-    Edge edge = graph.addEdge(nodes[s], nodes[t]);
-    length[edge] = rnd[m] - shift[nodes[s]] + shift[nodes[t]];
-  }
-
-  Johnson<Graph, LengthMap> johnson(graph, length);
-  {
-    Timer timer;
-    johnson.run();
-    cout << "Johnson: " << timer << endl;
-  }
-
-  typedef FibHeap<int, Graph::NodeMap<int> > IntFibHeap;
-  Johnson<Graph, LengthMap>::DefStandardHeap<IntFibHeap>
-    ::Create fibJohnson(graph, length);
-  {
-    Timer timer;
-    fibJohnson.run();
-    cout << "Johnson with fibonacci heap: " << timer << endl;
-  }
-
-  FloydWarshall<Graph, LengthMap> floyd(graph, length);
-  {
-    Timer timer;
-    floyd.run();
-    cout << "FloydWarshall: " << timer << endl;
-  }    
-
-  bool checked_path = false;
-
-  for (NodeIt it(graph); it != INVALID; ++it) {
-    for (NodeIt jt(graph); jt != INVALID; ++jt) {
-      check(johnson.connected(it, jt) == floyd.connected(it, jt),
-	    "Wrong connection in all pairs shortest path");
-      check(johnson.connected(it, jt) == fibJohnson.connected(it, jt),
-	    "Wrong connection in all pairs shortest path");
-      if (johnson.connected(it, jt)) {
-        if (it != jt && !checked_path) {
-          {
-            Path<Graph> path = johnson.path(it, jt);
-            check(checkPath(graph, path), "Wrong path.");
-            check(pathSource(graph, path) == it, "Wrong path.");
-            check(pathTarget(graph, path) == jt, "Wrong path.");
-          }
-          {
-            Path<Graph> path = floyd.path(it, jt);
-            check(checkPath(graph, path), "Wrong path.");
-            check(pathSource(graph, path) == it, "Wrong path.");
-            check(pathTarget(graph, path) == jt, "Wrong path.");
-          }
-          checked_path = true;
-          std::cout << "Path checked" << std::endl;
-        }
-	check(johnson.dist(it, jt) == floyd.dist(it, jt),
-	      "Wrong distance in all pairs shortest path");
-	check(johnson.dist(it, jt) == fibJohnson.dist(it, jt),
-	      "Wrong distance in all pairs shortest path");
-	if (it != jt) {
- 	  check(johnson.dist(it, jt) == 
-		johnson.dist(it, johnson.predNode(it, jt)) +
-		length[johnson.predEdge(it, jt)],
-		"Wrong edge in all pairs shortest path");
- 	  check(fibJohnson.dist(it, jt) == 
-		fibJohnson.dist(it, fibJohnson.predNode(it, jt)) +
-		length[fibJohnson.predEdge(it, jt)],
-		"Wrong edge in all pairs shortest path");
-	  check(floyd.dist(it, jt) == 
-		floyd.dist(it, floyd.predNode(it, jt)) +
-		length[floyd.predEdge(it, jt)],
-		"Wrong edge in all pairs shortest path");
-	}
-      }
-    }
-  }
-
-  return 0;
-}
Index: test/arborescence_test.cc
===================================================================
--- test/arborescence_test.cc	(revision 2569)
+++ 	(revision )
@@ -1,144 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <set>
-#include <vector>
-#include <iterator>
-
-#include <lemon/math.h>
-#include <cstdlib>
-
-#include <lemon/smart_graph.h>
-#include <lemon/min_cost_arborescence.h>
-
-#include <lemon/graph_utils.h>
-#include <lemon/time_measure.h>
-
-#include <lemon/tolerance.h>
-
-#include "test_tools.h"
-
-using namespace lemon;
-using namespace std;
-
-const int NODES = 10;
-const int EDGES = 22;
-
-int sourceNode = 0;
-
-int sources[EDGES] = {
-  1, 0, 2, 4, 4, 3, 9, 8, 9, 8,
-  4, 2, 0, 6, 4, 1, 7, 2, 8, 6,
-  1, 0
-};
-
-int targets[EDGES] = {
-  8, 3, 1, 1, 4, 9, 8, 1, 8, 0,
-  3, 2, 1, 3, 1, 1, 2, 6, 3, 9,
-  1, 3
-};
-
-double costs[EDGES] = {
-  107.444, 70.3069, 46.0496, 28.3962, 91.4325,
-  76.9443, 61.986, 39.3754, 74.9575, 39.3153,
-  45.7094, 34.6184, 100.156, 95.726, 22.3429,
-  31.587, 51.6972, 29.6773, 115.038, 32.4137,
-  60.0038, 40.1237
-};
-
-
-
-int main() {
-  typedef SmartGraph Graph;
-  GRAPH_TYPEDEFS(Graph);
-
-  typedef Graph::EdgeMap<double> CostMap;
-
-  Graph graph;
-  CostMap cost(graph);
-  vector<Node> nodes;
-  
-  for (int i = 0; i < NODES; ++i) {
-    nodes.push_back(graph.addNode());
-  }
-
-  for (int i = 0; i < EDGES; ++i) {
-    Edge edge = graph.addEdge(nodes[sources[i]], nodes[targets[i]]);
-    cost[edge] = costs[i];
-  }
-
-  Node source = nodes[sourceNode];
-
-  MinCostArborescence<Graph, CostMap> mca(graph, cost);
-  mca.run(source);
-
-  vector<pair<double, set<Node> > > dualSolution(mca.dualSize());
-
-  for (int i = 0; i < mca.dualSize(); ++i) {
-    dualSolution[i].first = mca.dualValue(i);
-    for (MinCostArborescence<Graph, CostMap>::DualIt it(mca, i); 
-         it != INVALID; ++it) {
-      dualSolution[i].second.insert(it);
-    }
-  }
-
-  Tolerance<double> tolerance;
-
-  for (EdgeIt it(graph); it != INVALID; ++it) {
-    if (mca.reached(graph.source(it))) {
-      double sum = 0.0;
-      for (int i = 0; i < int(dualSolution.size()); ++i) {
-        if (dualSolution[i].second.find(graph.target(it)) 
-            != dualSolution[i].second.end() &&
-            dualSolution[i].second.find(graph.source(it)) 
-            == dualSolution[i].second.end()) {
-          sum += dualSolution[i].first;
-        }
-      }
-      if (mca.arborescence(it)) {
-        check(!tolerance.less(sum, cost[it]), "INVALID DUAL");
-      }
-      check(!tolerance.less(cost[it], sum), "INVALID DUAL");
-    }
-  }
-
-
-  check(!tolerance.different(mca.dualValue(), mca.arborescenceValue()),
-               "INVALID DUAL");
-
-
-  check(mca.reached(source), "INVALID ARBORESCENCE");
-  for (EdgeIt it(graph); it != INVALID; ++it) {
-    check(!mca.reached(graph.source(it)) || 
-                 mca.reached(graph.target(it)), "INVALID ARBORESCENCE");
-  }
-
-  for (NodeIt it(graph); it != INVALID; ++it) {
-    if (!mca.reached(it)) continue;
-    int cnt = 0;
-    for (InEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-      if (mca.arborescence(jt)) {
-        ++cnt;
-      }
-    }
-    check((it == source ? cnt == 0 : cnt == 1), "INVALID ARBORESCENCE");
-  }
-  
-  return 0;
-}
Index: test/bfs_test.cc
===================================================================
--- test/bfs_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,139 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include "test_tools.h"
-#include <lemon/smart_graph.h>
-#include <lemon/bfs.h>
-#include <lemon/path.h>
-#include<lemon/concepts/graph.h>
-
-using namespace lemon;
-
-const int PET_SIZE =5;
-
-
-void check_Bfs_Compile() 
-{
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
- 
-  typedef Bfs<Graph> BType;
-  
-  Graph G;
-  Node n;
-  Edge e;
-  int l;
-  bool b;
-  BType::DistMap d(G);
-  BType::PredMap p(G);
-  //  BType::PredNodeMap pn(G);
-  
-  BType bfs_test(G);
-  
-  bfs_test.run(n);
-  
-  l  = bfs_test.dist(n);
-  e  = bfs_test.predEdge(n);
-  n  = bfs_test.predNode(n);
-  d  = bfs_test.distMap();
-  p  = bfs_test.predMap();
-  //  pn = bfs_test.predNodeMap();
-  b  = bfs_test.reached(n);
-
-  Path<Graph> pp = bfs_test.path(n);
-}
-
-void check_Bfs_Function_Compile() 
-{
-  typedef int VType;
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef concepts::ReadMap<Edge,VType> LengthMap;
-   
-  Graph g;
-  bfs(g,Node()).run();
-  bfs(g).source(Node()).run();
-  bfs(g)
-    .predMap(concepts::WriteMap<Node,Edge>())
-    .distMap(concepts::WriteMap<Node,VType>())
-    .reachedMap(concepts::ReadWriteMap<Node,bool>())
-    .processedMap(concepts::WriteMap<Node,bool>())
-    .run(Node());
-  
-}
-
-int main()
-{
-    
-  typedef SmartGraph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef Graph::EdgeMap<int> LengthMap;
-
-  Graph G;
-  Node s, t;
-  PetStruct<Graph> ps = addPetersen(G,PET_SIZE);
-   
-  s=ps.outer[2];
-  t=ps.inner[0];
-  
-  Bfs<Graph> bfs_test(G);
-  bfs_test.run(s);
-  
-  check(bfs_test.dist(t)==3,"Bfs found a wrong path. " << bfs_test.dist(t));
-
-  Path<Graph> p = bfs_test.path(t);
-  check(p.length()==3,"getPath() found a wrong path.");
-  check(checkPath(G, p),"path() found a wrong path.");
-  check(pathSource(G, p) == s,"path() found a wrong path.");
-  check(pathTarget(G, p) == t,"path() found a wrong path.");
-  
-
-  for(EdgeIt e(G); e==INVALID; ++e) {
-    Node u=G.source(e);
-    Node v=G.target(e);
-    check( !bfs_test.reached(u) ||
-	   (bfs_test.dist(v) > bfs_test.dist(u)+1),
-	   "Wrong output.");
-  }
-
-  for(NodeIt v(G); v==INVALID; ++v) {
-    check(bfs_test.reached(v),"Each node should be reached.");
-    if ( bfs_test.predEdge(v)!=INVALID ) {
-      Edge e=bfs_test.predEdge(v);
-      Node u=G.source(e);
-      check(u==bfs_test.predNode(v),"Wrong tree.");
-      check(bfs_test.dist(v) - bfs_test.dist(u) == 1,
-	    "Wrong distance. Difference: " 
-	    << std::abs(bfs_test.dist(v) - bfs_test.dist(u) 
-			- 1));
-    }
-  }
-}
-
Index: test/bipartite_matching_test.cc
===================================================================
--- test/bipartite_matching_test.cc	(revision 2618)
+++ 	(revision )
@@ -1,411 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <cstdlib>
-#include <iostream>
-#include <sstream>
-
-#include <lemon/smart_graph.h>
-
-#include <lemon/bpugraph_adaptor.h>
-#include <lemon/bipartite_matching.h>
-#include <lemon/pr_bipartite_matching.h>
-
-#include <lemon/graph_utils.h>
-
-#include <lemon/maps.h>
-
-#include "test_tools.h"
-
-using namespace std;
-using namespace lemon;
-
-typedef SmartBpUGraph Graph;
-BPUGRAPH_TYPEDEFS(Graph);
-
-const int NN = 10;
-const int MM = 10;
-const int EE = 52;
-const int CC = 100;
-
-const int sa[EE] = { 6, 5, 6, 4, 1, 0, 9, 5, 2, 4, 4, 3, 5,
-                    2, 3, 8, 3, 4, 9, 6, 9, 4, 3, 1, 5, 8,
-                    4, 8, 9, 2, 2, 3, 0, 5, 2, 3, 6, 3, 8,
-                    8, 4, 0, 9, 9, 6, 2, 1, 2, 7, 1, 9, 4};
-
-const int ta[EE] = { 2, 7, 4, 8, 6, 3, 4, 1, 7, 7, 0, 1, 6,
-                    3, 2, 6, 8, 3, 5, 6, 3, 1, 8, 7, 2, 0,
-                    6, 9, 6, 7, 8, 3, 3, 4, 5, 8, 6, 4, 1,
-                    4, 3, 3, 8, 7, 7, 3, 7, 7, 3, 5, 1, 6};
-
-const int wa[EE] = { 3, 99, 85, 16, 79, 52, 83, 99, 62, 6, 42, 6, 95,
-                    13, 34, 9, 5, 38, 39, 75, 99, 12, 73, 35, 93, 43,
-                    54, 91, 45, 26, 77, 47, 11, 22, 50, 74, 37, 64, 91,
-                    60, 6, 92, 29, 46, 34, 84, 67, 34, 45, 0, 39, 47};
-
-
-int main() {
-  Graph graph;
-  vector<Node> aNodes;
-  vector<Node> bNodes;
-
-  Graph::UEdgeMap<int> weight(graph);
-
-  int max_cardinality;
-  int max_weight;
-  int max_cardinality_max_weight;
-  int min_cost_matching;
-
-  for (int i = 0; i < NN; ++i) {
-    Node node = graph.addANode();
-    aNodes.push_back(node);
-  }
-  for (int i = 0; i < MM; ++i) {
-    Node node = graph.addBNode();
-    bNodes.push_back(node);
-  }
-  for (int i = 0; i < EE; ++i) {
-    Node aNode = aNodes[sa[i]];
-    Node bNode = bNodes[ta[i]];
-    UEdge uedge = graph.addEdge(aNode, bNode);
-    weight[uedge] = wa[i];
-  }
-
-
-  {
-    MaxBipartiteMatching<Graph> bpmatch(graph);
-
-    bpmatch.run();
-
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<bool> cs(graph);
-    
-    check(bpmatch.coverSet(cs) == bpmatch.matching(mm), "INVALID PRIMAL-DUAL");
-    
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      check(cs[graph.aNode(it)] || cs[graph.bNode(it)], "INVALID DUAL");
-    }
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-    max_cardinality = bpmatch.matchingSize();
-  }
-
-  {
-    PrBipartiteMatching<Graph> bpmatch(graph);
-
-    bpmatch.run();
-
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<bool> cs(graph);
-    
-    check(bpmatch.coverSet(cs) == bpmatch.matching(mm), "INVALID PRIMAL-DUAL");
-    
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      check(cs[graph.aNode(it)] || cs[graph.bNode(it)], "INVALID DUAL");
-    }
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-    max_cardinality = bpmatch.matchingSize();
-  }
-
-  {
-    Graph::ANodeMap<UEdge> mm(graph);
-
-    check(max_cardinality == maxBipartiteMatching(graph, mm),
-          "WRONG MATCHING");
-    
-    for (BNodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[graph.aNode(jt)] == jt) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  {
-    Graph::ANodeMap<UEdge> mm(graph);
-
-    check(max_cardinality == prBipartiteMatching(graph, mm),
-          "WRONG MATCHING");
-    
-    for (BNodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[graph.aNode(jt)] == jt) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  {
-    MaxBipartiteMatching<Graph> bpmatch(graph);
-
-    bpmatch.greedyInit();
-    bpmatch.start();
-
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<bool> cs(graph);
-
-    check(bpmatch.coverSet(cs) == bpmatch.matching(mm), "INVALID PRIMAL-DUAL");
-    
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      check(cs[graph.aNode(it)] || cs[graph.bNode(it)], "INVALID DUAL");
-    }
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-    }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  {
-    MaxBipartiteMatching<Graph> bpmatch(graph);
-
-    bpmatch.greedyInit();
-    while (bpmatch.simpleAugment()) { }
-    
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<bool> cs(graph);
-    
-    check(bpmatch.coverSet(cs) == bpmatch.matching(mm), "INVALID PRIMAL-DUAL");
-    
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      check(cs[graph.aNode(it)] || cs[graph.bNode(it)], "INVALID DUAL");
-    }
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-    }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  {
-    MaxWeightedBipartiteMatching<Graph> bpmatch(graph, weight);
-
-    bpmatch.init();
-
-    max_weight = 0;
-    while (bpmatch.augment(true)) {
-    
-      Graph::UEdgeMap<bool> mm(graph);
-      Graph::NodeMap<int> pm(graph);
-      
-      bpmatch.matching(mm);
-      bpmatch.potential(pm);
-      
-      for (UEdgeIt it(graph); it != INVALID; ++it) {
-        if (mm[it]) {
-          check(pm[graph.aNode(it)] + pm[graph.bNode(it)] - weight[it] == 0,
-                "INVALID DUAL");
-        } else {
-          check(pm[graph.aNode(it)] + pm[graph.bNode(it)] - weight[it] >= 0,
-                "INVALID DUAL");
-        }
-      }
-
-      for (ANodeIt it(graph); it != INVALID; ++it) {
-        int num = 0;
-        for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-          if (mm[jt]) ++num;
-        }
-        check(num <= 1, "INVALID PRIMAL");
-      }
-      if (bpmatch.matchingValue() > max_weight) {
-        max_weight = bpmatch.matchingValue();
-      }
-    }
-  }
-
-  {
-    Graph::UEdgeMap<bool> mm(graph);
-
-    check(max_weight == maxWeightedBipartiteMatching(graph, weight, mm),
-          "WRONG MATCHING");
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  {
-    MaxWeightedBipartiteMatching<Graph> bpmatch(graph, weight);
-
-    bpmatch.run();
-    
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<int> pm(graph);
-
-    bpmatch.matching(mm);
-    bpmatch.potential(pm);
-    
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      if (mm[it]) {
-        check(pm[graph.aNode(it)] + pm[graph.bNode(it)] - weight[it] == 0,
-              "INVALID DUAL");
-      } else {
-        check(pm[graph.aNode(it)] + pm[graph.bNode(it)] - weight[it] >= 0,
-              "INVALID DUAL");
-      }
-    }
-
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-    }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-    check(max_weight == bpmatch.matchingValue(), "WRONG WEIGHT");
-  }
-
-  {
-    MaxWeightedBipartiteMatching<Graph> bpmatch(graph, weight);
-
-    bpmatch.run(true);
-    
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<int> pm(graph);
-
-    bpmatch.matching(mm);
-    bpmatch.potential(pm);
-    
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      if (mm[it]) {
-        check(pm[graph.aNode(it)] + pm[graph.bNode(it)] - weight[it] == 0,
-              "INVALID DUAL");
-      } else {
-        check(pm[graph.aNode(it)] + pm[graph.bNode(it)] - weight[it] >= 0,
-              "INVALID DUAL");
-      }
-    }
-
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-    }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-    check(max_cardinality == bpmatch.matchingSize(), "WRONG SIZE");
-    max_cardinality_max_weight = bpmatch.matchingValue();
-
-  }
-
-  {
-    Graph::UEdgeMap<bool> mm(graph);
-
-    check(max_cardinality_max_weight == 
-          maxWeightedMaxBipartiteMatching(graph, weight, mm),
-          "WRONG MATCHING");
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  Graph::UEdgeMap<int> cost(graph);
-  cost = subMap(constMap<UEdge>(CC), weight);
-  {
-
-    MinCostMaxBipartiteMatching<Graph> bpmatch(graph, cost);
-
-    bpmatch.run();
-    
-    Graph::UEdgeMap<bool> mm(graph);
-    Graph::NodeMap<int> pm(graph);
-
-    bpmatch.matching(mm);
-    bpmatch.potential(pm);
-    
-    min_cost_matching = bpmatch.matchingCost();
-    check(max_cardinality == bpmatch.matchingSize(), "WRONG SIZE");
-    check(max_cardinality * CC - max_cardinality_max_weight 
-          == bpmatch.matchingCost(), "WRONG SIZE");
-
-    for (UEdgeIt it(graph); it != INVALID; ++it) {
-      if (mm[it]) {
-        check(pm[graph.aNode(it)] + cost[it] - pm[graph.bNode(it)] == 0,
-              "INVALID DUAL");
-      } else {
-        check(pm[graph.aNode(it)] + cost[it] - pm[graph.bNode(it)] >= 0,
-              "INVALID DUAL");
-      }
-    }
-
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-    }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-
-    min_cost_matching = bpmatch.matchingCost();
-    check(max_cardinality == bpmatch.matchingSize(), "WRONG SIZE");
-    check(max_cardinality * CC - max_cardinality_max_weight 
-          == bpmatch.matchingCost(), "WRONG SIZE");
-
-  }
-
-  {
-    Graph::UEdgeMap<bool> mm(graph);
-
-    check(min_cost_matching == 
-          minCostMaxBipartiteMatching(graph, cost, mm),
-          "WRONG MATCHING");
-    
-    for (ANodeIt it(graph); it != INVALID; ++it) {
-      int num = 0;
-      for (IncEdgeIt jt(graph, it); jt != INVALID; ++jt) {
-        if (mm[jt]) ++num;
-      }
-      check(num <= 1, "INVALID PRIMAL");
-    }
-  }
-
-  return 0;
-}
Index: test/bpugraph_test.cc
===================================================================
--- test/bpugraph_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,146 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/concepts/bpugraph.h>
-#include <lemon/list_graph.h>
-#include <lemon/smart_graph.h>
-#include <lemon/full_graph.h>
-#include <lemon/grid_ugraph.h>
-
-#include <lemon/graph_utils.h>
-
-#include "test_tools.h"
-
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-void check_concepts() {
-
-  { // checking graph components
-    checkConcept<BaseBpUGraphComponent, BaseBpUGraphComponent >();
-
-    checkConcept<IDableBpUGraphComponent<>, 
-      IDableBpUGraphComponent<> >();
-
-    checkConcept<IterableBpUGraphComponent<>, 
-      IterableBpUGraphComponent<> >();
-
-    checkConcept<MappableBpUGraphComponent<>, 
-      MappableBpUGraphComponent<> >();
-
-  }
-  {
-    checkConcept<BpUGraph, ListBpUGraph>();
-    
-    checkConcept<BpUGraph, SmartBpUGraph>();
-    
-    checkConcept<BpUGraph, FullBpUGraph>();
-    
-    checkConcept<BpUGraph, BpUGraph>();
-    
-  }
-}
-
-template <typename Graph>
-void check_item_counts(Graph &g, int an, int bn, int e) {
-  int nn = 0;
-  for (typename Graph::NodeIt it(g); it != INVALID; ++it) {
-    ++nn;
-  }
-
-  check(nn == an + bn, "Wrong node number.");
-  check(countNodes(g) == an + bn, "Wrong node number.");
-
-  int ann = 0;
-  for (typename Graph::ANodeIt it(g); it != INVALID; ++it) {
-    ++ann;
-  }
-
-  check(ann == an, "Wrong node number.");
-  check(countANodes(g) == an, "Wrong node number.");
-
-  int bnn = 0;
-  for (typename Graph::BNodeIt it(g); it != INVALID; ++it) {
-    ++bnn;
-  }
-
-  check(bnn == bn, "Wrong node number.");
-  check(countBNodes(g) == bn, "Wrong node number.");
-
-  int ee = 0;
-  for (typename Graph::EdgeIt it(g); it != INVALID; ++it) {
-    ++ee;
-  }
-
-  check(ee == 2*e, "Wrong edge number.");
-  check(countEdges(g) == 2*e, "Wrong edge number.");
-
-  int uee = 0;
-  for (typename Graph::UEdgeIt it(g); it != INVALID; ++it) {
-    ++uee;
-  }
-
-  check(uee == e, "Wrong uedge number.");
-  check(countUEdges(g) == e, "Wrong uedge number.");
-}
-
-template <typename Graph>
-void check_graph() {
-
-  typedef typename Graph::Node Node;
-  typedef typename Graph::UEdge UEdge;
-  typedef typename Graph::Edge Edge;
-  typedef typename Graph::NodeIt NodeIt;
-  typedef typename Graph::UEdgeIt UEdgeIt;
-  typedef typename Graph::EdgeIt EdgeIt;
-
-  Graph g;
-
-  check_item_counts(g, 0, 0, 0);
-
-  Node
-    an1 = g.addANode(),
-    an2 = g.addANode(),
-    an3 = g.addANode(),
-    bn1 = g.addBNode(),
-    bn2 = g.addBNode();
-
-  UEdge
-    e1 = g.addEdge(an1, bn1),
-    e2 = g.addEdge(an2, bn1),
-    e3 = g.addEdge(an3, bn2);
-
-  check_item_counts(g, 3, 2, 3);
-}
-
-int main() {
-  check_concepts();
-
-  check_graph<ListBpUGraph>();
-  check_graph<SmartBpUGraph>();
-
-  {
-    FullBpUGraph g(5, 10);
-    check_item_counts(g, 5, 10, 50);
-  }
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/counter_test.cc
===================================================================
--- test/counter_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,66 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/counter.h>
-
-///\file \brief Test cases for time_measure.h
-///
-///\todo To be extended
-
-
-int fibonacci(int f) 
-{
-  static lemon::Counter count("Fibonacci steps: ");
-  count++;
-  if(f<1) return 0;
-  else if(f==1) return 1;
-  else return fibonacci(f-1)+fibonacci(f-2);
-}
-
-int main()
-{
-  fibonacci(10);
-  
-  {  
-    typedef lemon::Counter MyCounter;
-    MyCounter c("Main counter: ");
-    c++;
-    c++;
-    MyCounter::SubCounter d(c,"Subcounter: ");
-    d++;
-    d++;
-    MyCounter::SubCounter::SubCounter e(d,"SubSubCounter: ");
-    e++;
-    e++;
-  }
-  
-  {
-    typedef lemon::NoCounter MyCounter;
-    MyCounter c("Main counter: ");
-    c++;
-    c++;
-    MyCounter::SubCounter d(c,"Subcounter: ");
-    d++;
-    d++;
-    MyCounter::SubCounter::SubCounter e(d,"SubSubCounter: ");
-    e++;
-    e++;
-  }
-
-  return 0;
-}
Index: test/dfs_test.cc
===================================================================
--- test/dfs_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,128 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include "test_tools.h"
-#include <lemon/smart_graph.h>
-#include <lemon/dfs.h>
-#include <lemon/path.h>
-#include <lemon/concepts/graph.h>
-
-using namespace lemon;
-
-const int PET_SIZE =5;
-
-
-void check_Dfs_SmartGraph_Compile() 
-{
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
- 
-  typedef Dfs<Graph> DType;
-  
-  Graph G;
-  Node n;
-  Edge e;
-  int l;
-  bool b;
-  DType::DistMap d(G);
-  DType::PredMap p(G);
-  //  DType::PredNodeMap pn(G);
-  
-  DType dfs_test(G);
-  
-  dfs_test.run(n);
-  
-  l  = dfs_test.dist(n);
-  e  = dfs_test.predEdge(n);
-  n  = dfs_test.predNode(n);
-  d  = dfs_test.distMap();
-  p  = dfs_test.predMap();
-  //  pn = dfs_test.predNodeMap();
-  b  = dfs_test.reached(n);
-
-  Path<Graph> pp = dfs_test.path(n);
-}
-
-
-void check_Dfs_Function_Compile() 
-{
-  typedef int VType;
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef concepts::ReadMap<Edge,VType> LengthMap;
-   
-  Graph g;
-  dfs(g,Node()).run();
-  dfs(g).source(Node()).run();
-  dfs(g)
-    .predMap(concepts::WriteMap<Node,Edge>())
-    .distMap(concepts::WriteMap<Node,VType>())
-    .reachedMap(concepts::ReadWriteMap<Node,bool>())
-    .processedMap(concepts::WriteMap<Node,bool>())
-    .run(Node());
-  
-}
-
-int main()
-{
-    
-  typedef SmartGraph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef Graph::EdgeMap<int> LengthMap;
-
-  Graph G;
-  Node s, t;
-  PetStruct<Graph> ps = addPetersen(G,PET_SIZE);
-   
-  s=ps.outer[2];
-  t=ps.inner[0];
-  
-  Dfs<Graph> dfs_test(G);
-  dfs_test.run(s);  
-  
-  Path<Graph> p = dfs_test.path(t);
-  check(p.length()==dfs_test.dist(t),"path() found a wrong path.");
-  check(checkPath(G, p),"path() found a wrong path.");
-  check(pathSource(G, p) == s,"path() found a wrong path.");
-  check(pathTarget(G, p) == t,"path() found a wrong path.");
-  
-  for(NodeIt v(G); v!=INVALID; ++v) {
-    check(dfs_test.reached(v),"Each node should be reached.");
-    if ( dfs_test.predEdge(v)!=INVALID ) {
-      Edge e=dfs_test.predEdge(v);
-      Node u=G.source(e);
-      check(u==dfs_test.predNode(v),"Wrong tree.");
-      check(dfs_test.dist(v) - dfs_test.dist(u) == 1,
-	    "Wrong distance. (" << dfs_test.dist(u) << "->" 
-	    <<dfs_test.dist(v) << ')');
-    }
-  }
-}
-
Index: test/dijkstra_test.cc
===================================================================
--- test/dijkstra_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,159 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include "test_tools.h"
-#include <lemon/smart_graph.h>
-#include <lemon/dijkstra.h>
-#include <lemon/path.h>
-#include <lemon/maps.h>
-#include <lemon/concepts/graph.h>
-#include <lemon/concepts/maps.h>
-using namespace lemon;
-
-const int PET_SIZE =5;
-
-
-void check_Dijkstra_BinHeap_Compile() 
-{
-  typedef int VType;
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef concepts::ReadMap<Edge,VType> LengthMap;
- 
-  typedef Dijkstra<Graph, LengthMap> DType;
-  
-  Graph G;
-  Node n;
-  Edge e;
-  VType l;
-  bool b;
-  DType::DistMap d(G);
-  DType::PredMap p(G);
-  //  DType::PredNodeMap pn(G);
-  LengthMap cap;
-
-  DType dijkstra_test(G,cap);
-
-  dijkstra_test.run(n);
-
-  l  = dijkstra_test.dist(n);
-  e  = dijkstra_test.predEdge(n);
-  n  = dijkstra_test.predNode(n);
-  d  = dijkstra_test.distMap();
-  p  = dijkstra_test.predMap();
-  //  pn = dijkstra_test.predNodeMap();
-  b  = dijkstra_test.reached(n);
-
-  Path<Graph> pp = dijkstra_test.path(n);
-}
-
-void check_Dijkstra_Function_Compile() 
-{
-  typedef int VType;
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef concepts::ReadMap<Edge,VType> LengthMap;
-   
-  Graph g;
-  dijkstra(g,LengthMap(),Node()).run();
-  dijkstra(g,LengthMap()).source(Node()).run();
-  dijkstra(g,LengthMap())
-    .predMap(concepts::WriteMap<Node,Edge>())
-    .distMap(concepts::WriteMap<Node,VType>())
-    .run(Node());
-  
-}
-
-
-int main()
-{
-    
-  typedef SmartGraph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::Node Node;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef Graph::EdgeMap<int> LengthMap;
-
-  Graph G;
-  Node s, t;
-  LengthMap cap(G);
-  PetStruct<Graph> ps = addPetersen(G,PET_SIZE);
-   
-  for(int i=0;i<PET_SIZE;i++) {
-    cap[ps.outcir[i]]=4;
-    cap[ps.incir[i]]=1;
-    cap[ps.chords[i]]=10;
-  }
-  s=ps.outer[0];
-  t=ps.inner[1];
-  
-  Dijkstra<Graph, LengthMap> 
-	dijkstra_test(G, cap);
-  dijkstra_test.run(s);
-  
-  check(dijkstra_test.dist(t)==13,"Dijkstra found a wrong path.");
-
-
-  Path<Graph> p = dijkstra_test.path(t);
-  check(p.length()==4,"getPath() found a wrong path.");
-  check(checkPath(G, p),"path() found a wrong path.");
-  check(pathSource(G, p) == s,"path() found a wrong path.");
-  check(pathTarget(G, p) == t,"path() found a wrong path.");
-  
-
-  for(EdgeIt e(G); e!=INVALID; ++e) {
-    Node u=G.source(e);
-    Node v=G.target(e);
-    check( !dijkstra_test.reached(u) ||
-	   (dijkstra_test.dist(v) - dijkstra_test.dist(u) <= cap[e]),
-	   "dist(target)-dist(source)- edge_length= " 
-	   << dijkstra_test.dist(v) - dijkstra_test.dist(u) 
-	   - cap[e]);
-  }
-
-  ///\bug This works only for integer lengths
-  for(NodeIt v(G); v!=INVALID; ++v){
-    check(dijkstra_test.reached(v),"Each node should be reached.");
-    if ( dijkstra_test.predEdge(v)!=INVALID ) {
-      Edge e=dijkstra_test.predEdge(v);
-      Node u=G.source(e);
-      check(u==dijkstra_test.predNode(v),"Wrong tree.");
-      check(dijkstra_test.dist(v) - dijkstra_test.dist(u) == cap[e],
-	    "Wrong distance! Difference: " 
-	    << std::abs(dijkstra_test.dist(v) - dijkstra_test.dist(u) 
-			    - cap[e]));
-    }
-  }
-
-  
-  {
-    NullMap<Node,Edge> myPredMap;
-    dijkstra(G,cap).predMap(myPredMap).run(s);
-  }
-  return 0;
-}
Index: test/dijkstra_test.lgf
===================================================================
--- test/dijkstra_test.lgf	(revision 2000)
+++ 	(revision )
@@ -1,7914 +1,0 @@
-@nodeset
-label	
-999	
-998	
-997	
-996	
-995	
-994	
-993	
-992	
-991	
-990	
-989	
-988	
-987	
-986	
-985	
-984	
-983	
-982	
-981	
-980	
-979	
-978	
-977	
-976	
-975	
-974	
-973	
-972	
-971	
-970	
-969	
-968	
-967	
-966	
-965	
-964	
-963	
-962	
-961	
-960	
-959	
-958	
-957	
-956	
-955	
-954	
-953	
-952	
-951	
-950	
-949	
-948	
-947	
-946	
-945	
-944	
-943	
-942	
-941	
-940	
-939	
-938	
-937	
-936	
-935	
-934	
-933	
-932	
-931	
-930	
-929	
-928	
-927	
-926	
-925	
-924	
-923	
-922	
-921	
-920	
-919	
-918	
-917	
-916	
-915	
-914	
-913	
-912	
-911	
-910	
-909	
-908	
-907	
-906	
-905	
-904	
-903	
-902	
-901	
-900	
-899	
-898	
-897	
-896	
-895	
-894	
-893	
-892	
-891	
-890	
-889	
-888	
-887	
-886	
-885	
-884	
-883	
-882	
-881	
-880	
-879	
-878	
-877	
-876	
-875	
-874	
-873	
-872	
-871	
-870	
-869	
-868	
-867	
-866	
-865	
-864	
-863	
-862	
-861	
-860	
-859	
-858	
-857	
-856	
-855	
-854	
-853	
-852	
-851	
-850	
-849	
-848	
-847	
-846	
-845	
-844	
-843	
-842	
-841	
-840	
-839	
-838	
-837	
-836	
-835	
-834	
-833	
-832	
-831	
-830	
-829	
-828	
-827	
-826	
-825	
-824	
-823	
-822	
-821	
-820	
-819	
-818	
-817	
-816	
-815	
-814	
-813	
-812	
-811	
-810	
-809	
-808	
-807	
-806	
-805	
-804	
-803	
-802	
-801	
-800	
-799	
-798	
-797	
-796	
-795	
-794	
-793	
-792	
-791	
-790	
-789	
-788	
-787	
-786	
-785	
-784	
-783	
-782	
-781	
-780	
-779	
-778	
-777	
-776	
-775	
-774	
-773	
-772	
-771	
-770	
-769	
-768	
-767	
-766	
-765	
-764	
-763	
-762	
-761	
-760	
-759	
-758	
-757	
-756	
-755	
-754	
-753	
-752	
-751	
-750	
-749	
-748	
-747	
-746	
-745	
-744	
-743	
-742	
-741	
-740	
-739	
-738	
-737	
-736	
-735	
-734	
-733	
-732	
-731	
-730	
-729	
-728	
-727	
-726	
-725	
-724	
-723	
-722	
-721	
-720	
-719	
-718	
-717	
-716	
-715	
-714	
-713	
-712	
-711	
-710	
-709	
-708	
-707	
-706	
-705	
-704	
-703	
-702	
-701	
-700	
-699	
-698	
-697	
-696	
-695	
-694	
-693	
-692	
-691	
-690	
-689	
-688	
-687	
-686	
-685	
-684	
-683	
-682	
-681	
-680	
-679	
-678	
-677	
-676	
-675	
-674	
-673	
-672	
-671	
-670	
-669	
-668	
-667	
-666	
-665	
-664	
-663	
-662	
-661	
-660	
-659	
-658	
-657	
-656	
-655	
-654	
-653	
-652	
-651	
-650	
-649	
-648	
-647	
-646	
-645	
-644	
-643	
-642	
-641	
-640	
-639	
-638	
-637	
-636	
-635	
-634	
-633	
-632	
-631	
-630	
-629	
-628	
-627	
-626	
-625	
-624	
-623	
-622	
-621	
-620	
-619	
-618	
-617	
-616	
-615	
-614	
-613	
-612	
-611	
-610	
-609	
-608	
-607	
-606	
-605	
-604	
-603	
-602	
-601	
-600	
-599	
-598	
-597	
-596	
-595	
-594	
-593	
-592	
-591	
-590	
-589	
-588	
-587	
-586	
-585	
-584	
-583	
-582	
-581	
-580	
-579	
-578	
-577	
-576	
-575	
-574	
-573	
-572	
-571	
-570	
-569	
-568	
-567	
-566	
-565	
-564	
-563	
-562	
-561	
-560	
-559	
-558	
-557	
-556	
-555	
-554	
-553	
-552	
-551	
-550	
-549	
-548	
-547	
-546	
-545	
-544	
-543	
-542	
-541	
-540	
-539	
-538	
-537	
-536	
-535	
-534	
-533	
-532	
-531	
-530	
-529	
-528	
-527	
-526	
-525	
-524	
-523	
-522	
-521	
-520	
-519	
-518	
-517	
-516	
-515	
-514	
-513	
-512	
-511	
-510	
-509	
-508	
-507	
-506	
-505	
-504	
-503	
-502	
-501	
-500	
-499	
-498	
-497	
-496	
-495	
-494	
-493	
-492	
-491	
-490	
-489	
-488	
-487	
-486	
-485	
-484	
-483	
-482	
-481	
-480	
-479	
-478	
-477	
-476	
-475	
-474	
-473	
-472	
-471	
-470	
-469	
-468	
-467	
-466	
-465	
-464	
-463	
-462	
-461	
-460	
-459	
-458	
-457	
-456	
-455	
-454	
-453	
-452	
-451	
-450	
-449	
-448	
-447	
-446	
-445	
-444	
-443	
-442	
-441	
-440	
-439	
-438	
-437	
-436	
-435	
-434	
-433	
-432	
-431	
-430	
-429	
-428	
-427	
-426	
-425	
-424	
-423	
-422	
-421	
-420	
-419	
-418	
-417	
-416	
-415	
-414	
-413	
-412	
-411	
-410	
-409	
-408	
-407	
-406	
-405	
-404	
-403	
-402	
-401	
-400	
-399	
-398	
-397	
-396	
-395	
-394	
-393	
-392	
-391	
-390	
-389	
-388	
-387	
-386	
-385	
-384	
-383	
-382	
-381	
-380	
-379	
-378	
-377	
-376	
-375	
-374	
-373	
-372	
-371	
-370	
-369	
-368	
-367	
-366	
-365	
-364	
-363	
-362	
-361	
-360	
-359	
-358	
-357	
-356	
-355	
-354	
-353	
-352	
-351	
-350	
-349	
-348	
-347	
-346	
-345	
-344	
-343	
-342	
-341	
-340	
-339	
-338	
-337	
-336	
-335	
-334	
-333	
-332	
-331	
-330	
-329	
-328	
-327	
-326	
-325	
-324	
-323	
-322	
-321	
-320	
-319	
-318	
-317	
-316	
-315	
-314	
-313	
-312	
-311	
-310	
-309	
-308	
-307	
-306	
-305	
-304	
-303	
-302	
-301	
-300	
-299	
-298	
-297	
-296	
-295	
-294	
-293	
-292	
-291	
-290	
-289	
-288	
-287	
-286	
-285	
-284	
-283	
-282	
-281	
-280	
-279	
-278	
-277	
-276	
-275	
-274	
-273	
-272	
-271	
-270	
-269	
-268	
-267	
-266	
-265	
-264	
-263	
-262	
-261	
-260	
-259	
-258	
-257	
-256	
-255	
-254	
-253	
-252	
-251	
-250	
-249	
-248	
-247	
-246	
-245	
-244	
-243	
-242	
-241	
-240	
-239	
-238	
-237	
-236	
-235	
-234	
-233	
-232	
-231	
-230	
-229	
-228	
-227	
-226	
-225	
-224	
-223	
-222	
-221	
-220	
-219	
-218	
-217	
-216	
-215	
-214	
-213	
-212	
-211	
-210	
-209	
-208	
-207	
-206	
-205	
-204	
-203	
-202	
-201	
-200	
-199	
-198	
-197	
-196	
-195	
-194	
-193	
-192	
-191	
-190	
-189	
-188	
-187	
-186	
-185	
-184	
-183	
-182	
-181	
-180	
-179	
-178	
-177	
-176	
-175	
-174	
-173	
-172	
-171	
-170	
-169	
-168	
-167	
-166	
-165	
-164	
-163	
-162	
-161	
-160	
-159	
-158	
-157	
-156	
-155	
-154	
-153	
-152	
-151	
-150	
-149	
-148	
-147	
-146	
-145	
-144	
-143	
-142	
-141	
-140	
-139	
-138	
-137	
-136	
-135	
-134	
-133	
-132	
-131	
-130	
-129	
-128	
-127	
-126	
-125	
-124	
-123	
-122	
-121	
-120	
-119	
-118	
-117	
-116	
-115	
-114	
-113	
-112	
-111	
-110	
-109	
-108	
-107	
-106	
-105	
-104	
-103	
-102	
-101	
-100	
-99	
-98	
-97	
-96	
-95	
-94	
-93	
-92	
-91	
-90	
-89	
-88	
-87	
-86	
-85	
-84	
-83	
-82	
-81	
-80	
-79	
-78	
-77	
-76	
-75	
-74	
-73	
-72	
-71	
-70	
-69	
-68	
-67	
-66	
-65	
-64	
-63	
-62	
-61	
-60	
-59	
-58	
-57	
-56	
-55	
-54	
-53	
-52	
-51	
-50	
-49	
-48	
-47	
-46	
-45	
-44	
-43	
-42	
-41	
-40	
-39	
-38	
-37	
-36	
-35	
-34	
-33	
-32	
-31	
-30	
-29	
-28	
-27	
-26	
-25	
-24	
-23	
-22	
-21	
-20	
-19	
-18	
-17	
-16	
-15	
-14	
-13	
-12	
-11	
-10	
-9	
-8	
-7	
-6	
-5	
-4	
-3	
-2	
-1	
-0	
-@edgeset 
-		label	capacity	
-75	377	6906	27	
-417	515	6905	69	
-603	249	6904	80	
-246	344	6903	69	
-382	827	6902	19	
-714	879	6901	76	
-13	481	6900	22	
-863	754	6899	97	
-19	530	6898	64	
-122	597	6897	78	
-861	579	6896	17	
-266	888	6895	65	
-905	105	6894	81	
-516	501	6893	35	
-948	430	6892	86	
-398	535	6891	66	
-727	258	6890	70	
-223	322	6889	15	
-933	864	6888	84	
-17	604	6887	89	
-691	520	6886	26	
-782	843	6885	59	
-604	457	6884	36	
-70	492	6883	38	
-895	195	6882	56	
-277	968	6881	55	
-935	550	6880	67	
-457	306	6879	50	
-260	946	6878	29	
-84	636	6877	91	
-677	665	6876	32	
-385	234	6875	90	
-964	972	6874	17	
-296	819	6873	53	
-227	18	6872	17	
-418	879	6871	61	
-243	167	6870	34	
-359	212	6869	47	
-310	374	6868	19	
-970	590	6867	17	
-431	416	6866	40	
-261	730	6865	29	
-152	643	6864	42	
-800	358	6863	66	
-139	557	6862	6	
-711	276	6861	80	
-954	863	6860	17	
-838	279	6859	88	
-784	22	6858	4	
-173	767	6857	33	
-686	116	6856	53	
-87	870	6855	16	
-284	753	6854	10	
-801	599	6853	35	
-281	259	6852	66	
-412	635	6851	42	
-583	291	6850	75	
-257	833	6849	11	
-254	710	6848	5	
-651	799	6847	61	
-245	370	6846	48	
-117	60	6845	59	
-153	757	6844	80	
-339	690	6843	48	
-624	232	6842	52	
-343	671	6841	86	
-457	639	6840	82	
-123	62	6839	32	
-910	442	6838	0	
-429	124	6837	60	
-310	888	6836	40	
-303	796	6835	12	
-66	319	6834	96	
-457	963	6833	81	
-560	651	6832	71	
-32	39	6831	28	
-577	502	6830	88	
-620	323	6829	33	
-318	400	6828	21	
-235	196	6827	48	
-92	277	6826	11	
-477	164	6825	0	
-356	149	6824	23	
-311	98	6823	60	
-612	435	6822	89	
-537	394	6821	52	
-179	552	6820	45	
-923	121	6819	95	
-203	731	6818	30	
-918	362	6817	8	
-112	111	6816	14	
-15	770	6815	61	
-51	628	6814	12	
-663	711	6813	4	
-41	368	6812	69	
-841	73	6811	7	
-431	497	6810	35	
-389	655	6809	25	
-369	218	6808	71	
-250	939	6807	28	
-341	528	6806	80	
-141	493	6805	9	
-916	76	6804	96	
-343	345	6803	38	
-294	623	6802	62	
-575	717	6801	19	
-842	102	6800	41	
-437	535	6799	4	
-279	435	6798	2	
-410	478	6797	11	
-35	709	6796	90	
-417	132	6795	20	
-730	576	6794	22	
-722	766	6793	57	
-906	422	6792	4	
-615	788	6791	71	
-566	369	6790	73	
-100	21	6789	40	
-957	901	6788	15	
-769	209	6787	86	
-576	708	6786	37	
-556	975	6785	61	
-810	651	6784	68	
-343	524	6783	0	
-634	330	6782	81	
-418	984	6781	29	
-348	328	6780	4	
-119	246	6779	46	
-691	289	6778	14	
-501	492	6777	18	
-733	758	6776	19	
-324	930	6775	1	
-126	679	6774	74	
-194	192	6773	46	
-345	524	6772	70	
-656	242	6771	21	
-82	582	6770	7	
-956	322	6769	22	
-797	955	6768	42	
-734	994	6767	19	
-827	173	6766	76	
-251	273	6765	40	
-487	279	6764	19	
-667	757	6763	93	
-282	492	6762	84	
-659	145	6761	68	
-260	840	6760	57	
-366	801	6759	12	
-960	236	6758	15	
-821	422	6757	6	
-900	358	6756	90	
-993	211	6755	57	
-521	265	6754	76	
-265	83	6753	81	
-346	159	6752	38	
-304	114	6751	62	
-39	448	6750	39	
-565	965	6749	89	
-813	96	6748	40	
-64	155	6747	13	
-147	330	6746	92	
-945	812	6745	90	
-182	943	6744	47	
-923	434	6743	25	
-44	763	6742	91	
-666	222	6741	4	
-482	505	6740	26	
-869	487	6739	47	
-941	266	6738	75	
-825	217	6737	74	
-517	14	6736	91	
-868	435	6735	20	
-509	214	6734	76	
-671	338	6733	25	
-540	876	6732	87	
-717	776	6731	37	
-17	791	6730	18	
-221	721	6729	61	
-49	2	6728	92	
-202	831	6727	11	
-579	716	6726	30	
-220	437	6725	64	
-876	505	6724	35	
-462	379	6723	83	
-99	500	6722	13	
-984	195	6721	82	
-70	569	6720	69	
-719	685	6719	79	
-170	812	6718	17	
-115	806	6717	84	
-278	660	6716	62	
-932	288	6715	35	
-125	521	6714	34	
-879	707	6713	41	
-304	308	6712	36	
-626	123	6711	11	
-883	903	6710	91	
-873	624	6709	35	
-5	325	6708	54	
-146	223	6707	5	
-371	264	6706	83	
-767	14	6705	34	
-814	929	6704	80	
-399	52	6703	24	
-184	246	6702	57	
-219	201	6701	67	
-279	563	6700	74	
-298	801	6699	0	
-102	494	6698	86	
-959	217	6697	85	
-249	491	6696	77	
-84	538	6695	60	
-877	560	6694	95	
-805	671	6693	41	
-45	896	6692	21	
-637	935	6691	96	
-761	733	6690	94	
-307	142	6689	98	
-276	7	6688	19	
-725	85	6687	14	
-953	169	6686	70	
-977	650	6685	16	
-889	538	6684	20	
-775	200	6683	7	
-960	248	6682	75	
-202	24	6681	40	
-591	959	6680	87	
-134	785	6679	45	
-922	51	6678	3	
-915	433	6677	55	
-519	545	6676	77	
-112	957	6675	97	
-337	134	6674	8	
-952	312	6673	11	
-224	351	6672	81	
-64	532	6671	75	
-174	421	6670	61	
-733	422	6669	45	
-618	479	6668	21	
-888	778	6667	0	
-588	797	6666	39	
-822	886	6665	40	
-822	974	6664	77	
-960	299	6663	38	
-819	55	6662	72	
-110	147	6661	15	
-998	154	6660	89	
-943	244	6659	44	
-700	204	6658	11	
-981	610	6657	73	
-910	989	6656	29	
-912	631	6655	76	
-675	389	6654	0	
-243	657	6653	86	
-908	567	6652	14	
-993	268	6651	70	
-909	450	6650	11	
-39	324	6649	5	
-594	385	6648	24	
-620	430	6647	71	
-358	533	6646	7	
-242	765	6645	99	
-731	138	6644	23	
-89	720	6643	43	
-299	433	6642	33	
-818	596	6641	91	
-125	56	6640	8	
-939	813	6639	86	
-954	523	6638	44	
-896	647	6637	97	
-768	73	6636	26	
-627	760	6635	11	
-417	805	6634	51	
-287	96	6633	64	
-836	420	6632	79	
-539	831	6631	48	
-243	213	6630	69	
-290	423	6629	18	
-875	472	6628	98	
-574	710	6627	5	
-312	146	6626	12	
-955	605	6625	14	
-708	868	6624	20	
-676	850	6623	13	
-588	310	6622	45	
-617	787	6621	29	
-790	507	6620	29	
-951	201	6619	95	
-762	926	6618	41	
-563	930	6617	30	
-541	987	6616	26	
-736	930	6615	35	
-18	78	6614	24	
-540	680	6613	3	
-522	153	6612	8	
-280	0	6611	97	
-306	343	6610	82	
-274	538	6609	83	
-996	114	6608	18	
-942	38	6607	19	
-56	904	6606	2	
-851	111	6605	80	
-398	213	6604	71	
-526	944	6603	47	
-153	116	6602	1	
-657	143	6601	24	
-805	988	6600	97	
-423	650	6599	3	
-75	990	6598	27	
-133	175	6597	5	
-793	218	6596	88	
-897	86	6595	20	
-268	240	6594	45	
-828	459	6593	87	
-972	776	6592	37	
-155	266	6591	49	
-338	943	6590	85	
-660	753	6589	38	
-814	223	6588	34	
-957	169	6587	94	
-131	680	6586	34	
-845	751	6585	89	
-781	580	6584	62	
-683	498	6583	44	
-509	877	6582	85	
-323	644	6581	81	
-189	470	6580	81	
-529	33	6579	67	
-54	406	6578	84	
-488	601	6577	85	
-928	444	6576	82	
-171	267	6575	28	
-81	188	6574	6	
-621	585	6573	9	
-233	37	6572	17	
-173	0	6571	18	
-437	138	6570	13	
-627	832	6569	66	
-804	989	6568	47	
-157	30	6567	56	
-176	539	6566	56	
-79	222	6565	75	
-602	966	6564	8	
-547	923	6563	46	
-36	988	6562	38	
-861	51	6561	5	
-306	473	6560	73	
-842	185	6559	81	
-959	908	6558	82	
-490	5	6557	64	
-317	802	6556	98	
-255	668	6555	9	
-42	628	6554	47	
-935	72	6553	5	
-936	328	6552	51	
-578	323	6551	17	
-287	925	6550	55	
-277	987	6549	46	
-902	176	6548	88	
-203	665	6547	46	
-134	883	6546	17	
-39	621	6545	6	
-556	420	6544	21	
-743	544	6543	10	
-4	335	6542	99	
-398	619	6541	35	
-937	91	6540	29	
-811	580	6539	1	
-510	414	6538	37	
-782	295	6537	69	
-261	111	6536	6	
-200	848	6535	9	
-875	105	6534	48	
-209	107	6533	81	
-715	641	6532	73	
-528	67	6531	60	
-511	280	6530	46	
-165	635	6529	12	
-119	675	6528	30	
-183	630	6527	72	
-262	973	6526	52	
-743	612	6525	6	
-998	669	6524	32	
-466	74	6523	66	
-574	132	6522	49	
-786	145	6521	18	
-645	334	6520	1	
-959	824	6519	34	
-44	573	6518	4	
-657	206	6517	93	
-361	459	6516	92	
-942	736	6515	51	
-595	658	6514	74	
-941	172	6513	53	
-986	305	6512	89	
-810	170	6511	78	
-510	671	6510	14	
-250	299	6509	68	
-367	109	6508	91	
-746	15	6507	38	
-723	401	6506	29	
-77	774	6505	41	
-485	212	6504	34	
-866	640	6503	65	
-135	103	6502	95	
-499	647	6501	17	
-371	454	6500	30	
-190	771	6499	25	
-93	526	6498	88	
-614	92	6497	62	
-626	876	6496	2	
-562	71	6495	64	
-571	693	6494	59	
-537	698	6493	61	
-455	779	6492	73	
-193	875	6491	63	
-682	40	6490	12	
-245	376	6489	18	
-434	262	6488	9	
-215	597	6487	47	
-804	376	6486	98	
-378	54	6485	6	
-995	973	6484	99	
-919	886	6483	3	
-903	95	6482	8	
-834	508	6481	26	
-664	946	6480	51	
-113	84	6479	43	
-664	618	6478	81	
-221	490	6477	21	
-322	924	6476	41	
-80	72	6475	42	
-86	956	6474	38	
-791	952	6473	7	
-587	820	6472	1	
-562	750	6471	6	
-862	74	6470	16	
-465	626	6469	55	
-128	592	6468	44	
-565	806	6467	44	
-852	985	6466	89	
-116	42	6465	24	
-4	307	6464	99	
-132	60	6463	29	
-69	946	6462	20	
-676	899	6461	2	
-448	619	6460	70	
-33	101	6459	39	
-786	6	6458	33	
-821	544	6457	56	
-942	656	6456	71	
-735	246	6455	73	
-246	699	6454	11	
-114	90	6453	87	
-46	179	6452	6	
-279	324	6451	39	
-518	303	6450	22	
-94	58	6449	41	
-461	774	6448	24	
-887	849	6447	96	
-410	976	6446	87	
-546	624	6445	20	
-609	239	6444	48	
-911	810	6443	13	
-855	668	6442	6	
-20	165	6441	76	
-244	812	6440	76	
-283	168	6439	42	
-924	281	6438	63	
-872	86	6437	57	
-352	671	6436	47	
-384	718	6435	86	
-429	355	6434	93	
-141	65	6433	69	
-502	300	6432	5	
-352	5	6431	83	
-644	338	6430	77	
-886	790	6429	96	
-195	59	6428	35	
-415	96	6427	5	
-952	614	6426	51	
-363	925	6425	96	
-290	239	6424	95	
-765	642	6423	28	
-294	221	6422	63	
-667	58	6421	15	
-547	814	6420	70	
-731	601	6419	75	
-962	307	6418	69	
-481	532	6417	78	
-689	551	6416	46	
-685	14	6415	58	
-597	666	6414	7	
-420	649	6413	52	
-163	488	6412	47	
-243	441	6411	62	
-213	950	6410	11	
-294	66	6409	81	
-775	911	6408	76	
-980	317	6407	48	
-536	873	6406	79	
-347	516	6405	0	
-17	548	6404	8	
-160	54	6403	17	
-46	842	6402	25	
-491	508	6401	91	
-884	302	6400	3	
-154	48	6399	91	
-593	287	6398	51	
-444	688	6397	79	
-356	789	6396	44	
-968	915	6395	18	
-493	911	6394	33	
-212	920	6393	85	
-333	337	6392	11	
-205	889	6391	55	
-254	112	6390	60	
-760	398	6389	72	
-598	725	6388	56	
-899	350	6387	14	
-874	254	6386	8	
-4	858	6385	38	
-990	474	6384	47	
-583	742	6383	28	
-447	558	6382	87	
-777	947	6381	12	
-713	878	6380	95	
-673	168	6379	49	
-375	411	6378	16	
-95	61	6377	69	
-396	699	6376	2	
-384	913	6375	87	
-731	193	6374	1	
-183	403	6373	40	
-611	750	6372	13	
-69	177	6371	67	
-710	456	6370	6	
-756	332	6369	4	
-350	461	6368	29	
-362	675	6367	27	
-785	154	6366	69	
-720	856	6365	1	
-790	605	6364	65	
-652	272	6363	54	
-572	464	6362	57	
-720	607	6361	54	
-124	22	6360	35	
-870	742	6359	95	
-786	17	6358	40	
-520	580	6357	98	
-297	686	6356	57	
-251	359	6355	6	
-333	104	6354	93	
-807	975	6353	13	
-857	30	6352	8	
-584	182	6351	85	
-280	405	6350	59	
-724	547	6349	25	
-437	418	6348	8	
-893	410	6347	26	
-327	512	6346	22	
-254	133	6345	4	
-129	793	6344	91	
-945	56	6343	52	
-847	227	6342	94	
-777	256	6341	27	
-857	342	6340	30	
-129	169	6339	55	
-7	817	6338	28	
-897	43	6337	54	
-379	176	6336	56	
-339	128	6335	7	
-736	392	6334	12	
-828	576	6333	18	
-971	676	6332	9	
-913	969	6331	7	
-172	749	6330	91	
-352	267	6329	72	
-774	744	6328	12	
-867	977	6327	11	
-47	493	6326	51	
-736	947	6325	3	
-815	941	6324	60	
-899	85	6323	90	
-706	27	6322	85	
-220	150	6321	5	
-481	191	6320	74	
-522	607	6319	82	
-767	11	6318	57	
-483	592	6317	90	
-545	478	6316	81	
-5	436	6315	31	
-856	695	6314	92	
-58	50	6313	91	
-876	798	6312	19	
-959	317	6311	48	
-583	920	6310	73	
-595	242	6309	95	
-419	671	6308	75	
-113	86	6307	28	
-42	508	6306	93	
-740	390	6305	54	
-644	4	6304	14	
-251	722	6303	79	
-481	706	6302	18	
-396	747	6301	91	
-677	779	6300	37	
-571	203	6299	98	
-584	471	6298	17	
-578	345	6297	30	
-118	397	6296	7	
-386	391	6295	30	
-281	350	6294	9	
-16	617	6293	39	
-958	263	6292	77	
-968	541	6291	8	
-575	387	6290	71	
-732	811	6289	10	
-125	870	6288	98	
-948	235	6287	0	
-5	768	6286	45	
-40	205	6285	73	
-733	703	6284	10	
-353	622	6283	26	
-722	685	6282	5	
-154	365	6281	99	
-576	612	6280	39	
-940	120	6279	84	
-635	979	6278	60	
-466	546	6277	17	
-563	727	6276	94	
-501	627	6275	96	
-80	838	6274	30	
-937	208	6273	38	
-319	67	6272	63	
-753	597	6271	56	
-492	549	6270	57	
-140	235	6269	63	
-433	430	6268	30	
-818	233	6267	16	
-100	977	6266	90	
-789	658	6265	6	
-630	925	6264	42	
-141	749	6263	14	
-469	62	6262	61	
-47	990	6261	56	
-313	941	6260	26	
-805	331	6259	35	
-196	135	6258	70	
-256	266	6257	61	
-318	841	6256	71	
-732	640	6255	31	
-176	277	6254	15	
-687	526	6253	48	
-72	50	6252	67	
-48	305	6251	42	
-610	909	6250	73	
-196	644	6249	50	
-868	92	6248	60	
-424	895	6247	93	
-201	407	6246	93	
-362	152	6245	58	
-750	669	6244	55	
-475	817	6243	48	
-745	249	6242	61	
-395	688	6241	2	
-264	225	6240	43	
-551	898	6239	41	
-197	669	6238	32	
-487	2	6237	44	
-255	351	6236	22	
-483	29	6235	83	
-851	67	6234	61	
-568	874	6233	27	
-560	591	6232	73	
-463	584	6231	34	
-326	25	6230	13	
-228	86	6229	71	
-667	883	6228	35	
-651	220	6227	70	
-321	385	6226	23	
-961	226	6225	77	
-193	336	6224	63	
-282	544	6223	28	
-7	380	6222	0	
-559	219	6221	9	
-939	417	6220	13	
-202	358	6219	9	
-663	645	6218	56	
-834	477	6217	1	
-158	459	6216	32	
-889	140	6215	36	
-792	349	6214	76	
-164	274	6213	91	
-161	911	6212	27	
-801	960	6211	44	
-59	38	6210	61	
-712	536	6209	73	
-167	545	6208	53	
-18	686	6207	82	
-318	969	6206	67	
-791	591	6205	26	
-74	857	6204	9	
-362	635	6203	62	
-951	827	6202	0	
-921	828	6201	36	
-502	882	6200	74	
-990	198	6199	34	
-858	709	6198	54	
-717	153	6197	14	
-377	406	6196	69	
-734	172	6195	52	
-222	469	6194	71	
-808	625	6193	71	
-998	642	6192	41	
-945	618	6191	3	
-684	394	6190	41	
-489	801	6189	51	
-556	396	6188	13	
-747	449	6187	14	
-233	172	6186	34	
-703	810	6185	64	
-843	4	6184	51	
-982	300	6183	41	
-24	381	6182	80	
-223	612	6181	5	
-593	906	6180	26	
-405	380	6179	19	
-946	990	6178	93	
-276	800	6177	80	
-362	697	6176	51	
-805	131	6175	53	
-704	97	6174	85	
-919	604	6173	86	
-768	757	6172	95	
-705	790	6171	80	
-525	66	6170	63	
-389	262	6169	18	
-190	123	6168	45	
-103	295	6167	67	
-566	983	6166	91	
-33	670	6165	55	
-493	998	6164	10	
-847	902	6163	78	
-966	157	6162	15	
-724	170	6161	6	
-804	441	6160	17	
-138	729	6159	13	
-828	788	6158	19	
-312	756	6157	8	
-312	356	6156	53	
-671	455	6155	53	
-96	316	6154	53	
-744	633	6153	64	
-987	87	6152	88	
-728	882	6151	24	
-712	43	6150	91	
-941	936	6149	66	
-31	112	6148	30	
-399	550	6147	51	
-900	3	6146	99	
-139	993	6145	64	
-682	893	6144	57	
-546	765	6143	35	
-204	638	6142	75	
-839	322	6141	25	
-106	253	6140	1	
-824	356	6139	77	
-562	793	6138	90	
-546	516	6137	63	
-9	359	6136	49	
-100	65	6135	76	
-127	223	6134	45	
-126	595	6133	13	
-316	497	6132	34	
-69	242	6131	36	
-896	246	6130	73	
-562	860	6129	28	
-277	277	6128	26	
-156	132	6127	1	
-293	737	6126	53	
-842	305	6125	90	
-628	319	6124	97	
-97	795	6123	0	
-255	976	6122	81	
-996	632	6121	24	
-385	450	6120	17	
-582	20	6119	33	
-145	245	6118	28	
-395	478	6117	12	
-432	626	6116	86	
-985	937	6115	45	
-524	971	6114	21	
-819	190	6113	53	
-343	563	6112	84	
-182	73	6111	25	
-429	839	6110	61	
-774	48	6109	80	
-767	164	6108	43	
-852	257	6107	75	
-689	411	6106	96	
-966	237	6105	44	
-780	683	6104	46	
-626	688	6103	70	
-490	583	6102	47	
-234	647	6101	16	
-791	807	6100	75	
-883	365	6099	65	
-906	687	6098	0	
-845	787	6097	91	
-174	515	6096	16	
-554	986	6095	72	
-994	755	6094	18	
-104	229	6093	15	
-935	315	6092	13	
-839	407	6091	25	
-442	99	6090	44	
-678	646	6089	90	
-899	92	6088	97	
-272	752	6087	6	
-528	439	6086	67	
-231	537	6085	62	
-525	31	6084	55	
-914	18	6083	88	
-908	880	6082	16	
-307	812	6081	9	
-452	536	6080	39	
-553	929	6079	76	
-340	916	6078	77	
-312	389	6077	62	
-902	51	6076	74	
-506	60	6075	29	
-13	669	6074	70	
-137	720	6073	61	
-67	72	6072	0	
-276	698	6071	60	
-606	633	6070	85	
-13	985	6069	89	
-526	151	6068	21	
-337	882	6067	2	
-991	447	6066	41	
-390	590	6065	39	
-948	95	6064	49	
-648	604	6063	87	
-374	405	6062	7	
-64	744	6061	79	
-648	956	6060	66	
-833	685	6059	59	
-269	185	6058	48	
-434	617	6057	18	
-857	13	6056	34	
-494	903	6055	60	
-490	617	6054	44	
-198	805	6053	30	
-661	278	6052	27	
-787	121	6051	30	
-271	76	6050	41	
-500	105	6049	81	
-567	298	6048	56	
-604	842	6047	83	
-110	746	6046	57	
-285	157	6045	36	
-812	141	6044	0	
-526	26	6043	29	
-156	965	6042	53	
-44	893	6041	87	
-971	600	6040	51	
-807	251	6039	77	
-456	729	6038	93	
-95	257	6037	96	
-588	213	6036	49	
-15	359	6035	82	
-115	712	6034	47	
-61	753	6033	28	
-71	664	6032	36	
-292	356	6031	11	
-349	745	6030	7	
-521	837	6029	16	
-472	970	6028	35	
-43	469	6027	36	
-854	667	6026	50	
-646	352	6025	57	
-958	186	6024	90	
-89	915	6023	5	
-307	257	6022	98	
-611	38	6021	77	
-907	910	6020	94	
-867	811	6019	82	
-500	991	6018	4	
-802	854	6017	42	
-314	933	6016	18	
-166	672	6015	20	
-271	845	6014	68	
-657	65	6013	86	
-219	209	6012	78	
-127	836	6011	69	
-99	114	6010	70	
-820	778	6009	3	
-136	621	6008	36	
-920	238	6007	69	
-260	981	6006	48	
-827	519	6005	14	
-779	819	6004	89	
-855	87	6003	61	
-373	85	6002	43	
-721	991	6001	9	
-336	664	6000	2	
-157	671	5999	27	
-382	669	5998	68	
-256	210	5997	21	
-462	338	5996	66	
-699	253	5995	43	
-731	281	5994	4	
-1	174	5993	92	
-94	346	5992	48	
-326	63	5991	65	
-993	749	5990	38	
-2	595	5989	17	
-459	467	5988	77	
-871	555	5987	12	
-85	226	5986	79	
-971	385	5985	76	
-106	123	5984	96	
-828	441	5983	73	
-283	831	5982	90	
-313	265	5981	76	
-153	206	5980	33	
-128	403	5979	99	
-911	649	5978	54	
-329	331	5977	58	
-840	31	5976	78	
-262	794	5975	11	
-682	237	5974	86	
-609	823	5973	27	
-565	139	5972	54	
-58	434	5971	96	
-803	342	5970	15	
-754	447	5969	2	
-317	955	5968	21	
-300	801	5967	58	
-236	672	5966	48	
-557	248	5965	57	
-414	586	5964	57	
-684	733	5963	7	
-704	575	5962	4	
-91	809	5961	50	
-894	133	5960	25	
-492	809	5959	4	
-153	634	5958	43	
-129	93	5957	1	
-424	909	5956	6	
-661	998	5955	67	
-853	506	5954	14	
-157	29	5953	73	
-765	536	5952	97	
-676	251	5951	61	
-324	207	5950	19	
-175	611	5949	40	
-540	419	5948	33	
-184	953	5947	2	
-911	384	5946	70	
-492	536	5945	76	
-477	412	5944	80	
-492	750	5943	69	
-285	367	5942	39	
-43	415	5941	8	
-595	795	5940	35	
-192	62	5939	14	
-465	315	5938	63	
-569	319	5937	35	
-847	941	5936	27	
-123	955	5935	41	
-662	111	5934	1	
-383	305	5933	98	
-951	301	5932	20	
-619	737	5931	24	
-733	202	5930	44	
-746	513	5929	40	
-995	279	5928	72	
-378	82	5927	89	
-986	854	5926	72	
-844	403	5925	72	
-806	30	5924	46	
-3	776	5923	27	
-563	965	5922	43	
-534	793	5921	33	
-689	44	5920	88	
-234	677	5919	98	
-196	829	5918	75	
-228	175	5917	61	
-450	997	5916	39	
-373	262	5915	14	
-253	182	5914	3	
-810	847	5913	80	
-172	99	5912	43	
-748	445	5911	2	
-367	899	5910	84	
-848	236	5909	45	
-654	132	5908	3	
-177	225	5907	96	
-735	250	5906	77	
-80	103	5905	7	
-334	235	5904	11	
-748	363	5903	44	
-653	410	5902	63	
-546	183	5901	42	
-662	390	5900	38	
-103	417	5899	51	
-907	70	5898	19	
-975	189	5897	47	
-146	701	5896	44	
-868	957	5895	65	
-871	676	5894	74	
-952	804	5893	58	
-227	214	5892	9	
-792	41	5891	10	
-972	862	5890	88	
-347	325	5889	55	
-880	716	5888	19	
-487	34	5887	93	
-743	786	5886	82	
-280	909	5885	27	
-872	159	5884	99	
-590	492	5883	91	
-172	987	5882	72	
-179	223	5881	43	
-537	324	5880	81	
-608	363	5879	62	
-681	264	5878	46	
-248	101	5877	39	
-877	552	5876	74	
-750	280	5875	46	
-667	77	5874	40	
-505	193	5873	28	
-763	290	5872	41	
-899	614	5871	99	
-961	194	5870	64	
-98	158	5869	92	
-162	73	5868	92	
-549	648	5867	43	
-271	280	5866	37	
-203	54	5865	12	
-883	126	5864	8	
-902	864	5863	16	
-676	424	5862	74	
-420	351	5861	86	
-35	712	5860	93	
-85	2	5859	86	
-424	493	5858	93	
-368	62	5857	61	
-226	244	5856	27	
-928	42	5855	6	
-261	921	5854	31	
-440	420	5853	98	
-72	877	5852	22	
-639	925	5851	25	
-710	75	5850	38	
-508	927	5849	95	
-431	322	5848	66	
-817	334	5847	5	
-202	210	5846	14	
-121	748	5845	29	
-501	338	5844	66	
-542	754	5843	82	
-952	970	5842	36	
-849	871	5841	43	
-148	434	5840	92	
-604	289	5839	20	
-988	603	5838	7	
-123	914	5837	61	
-462	844	5836	61	
-409	631	5835	8	
-584	845	5834	61	
-783	453	5833	95	
-99	935	5832	58	
-436	504	5831	10	
-144	726	5830	70	
-686	124	5829	54	
-689	464	5828	61	
-70	998	5827	86	
-212	534	5826	66	
-786	461	5825	5	
-392	660	5824	82	
-517	369	5823	80	
-431	487	5822	68	
-777	401	5821	66	
-602	157	5820	29	
-659	927	5819	45	
-465	751	5818	99	
-464	203	5817	61	
-72	608	5816	85	
-800	227	5815	42	
-291	23	5814	39	
-881	117	5813	87	
-85	21	5812	8	
-243	370	5811	65	
-230	833	5810	17	
-175	461	5809	94	
-548	378	5808	19	
-594	760	5807	0	
-380	432	5806	39	
-204	31	5805	27	
-905	519	5804	50	
-96	787	5803	40	
-650	432	5802	79	
-536	479	5801	84	
-372	231	5800	1	
-82	748	5799	5	
-618	192	5798	62	
-328	609	5797	95	
-400	120	5796	21	
-512	762	5795	17	
-731	99	5794	29	
-354	613	5793	80	
-953	954	5792	44	
-247	829	5791	11	
-482	958	5790	16	
-555	427	5789	28	
-583	673	5788	46	
-489	740	5787	29	
-357	37	5786	92	
-662	877	5785	88	
-486	489	5784	78	
-659	364	5783	37	
-124	331	5782	40	
-871	949	5781	70	
-530	874	5780	76	
-754	826	5779	92	
-933	173	5778	97	
-702	362	5777	9	
-160	40	5776	13	
-387	107	5775	69	
-124	403	5774	17	
-33	975	5773	82	
-381	695	5772	53	
-74	940	5771	25	
-48	838	5770	34	
-652	953	5769	77	
-810	879	5768	82	
-322	961	5767	23	
-932	436	5766	54	
-704	519	5765	77	
-427	348	5764	26	
-279	293	5763	9	
-755	280	5762	65	
-101	913	5761	30	
-884	564	5760	2	
-74	955	5759	39	
-917	590	5758	84	
-525	688	5757	48	
-916	768	5756	38	
-170	510	5755	22	
-55	171	5754	27	
-12	439	5753	14	
-366	345	5752	52	
-349	280	5751	65	
-609	630	5750	21	
-364	553	5749	81	
-901	354	5748	15	
-919	98	5747	39	
-258	161	5746	60	
-339	951	5745	74	
-731	129	5744	11	
-94	623	5743	4	
-64	870	5742	64	
-649	436	5741	1	
-77	406	5740	73	
-198	653	5739	24	
-256	764	5738	46	
-936	784	5737	98	
-210	862	5736	66	
-822	631	5735	91	
-505	72	5734	60	
-753	396	5733	63	
-433	627	5732	2	
-29	278	5731	41	
-753	495	5730	57	
-889	781	5729	87	
-980	481	5728	94	
-921	320	5727	31	
-231	741	5726	72	
-558	312	5725	38	
-675	970	5724	31	
-769	607	5723	75	
-349	614	5722	31	
-782	842	5721	40	
-713	693	5720	27	
-300	936	5719	86	
-160	623	5718	90	
-578	592	5717	5	
-429	338	5716	69	
-341	70	5715	67	
-363	565	5714	88	
-992	432	5713	90	
-771	914	5712	41	
-149	128	5711	56	
-757	411	5710	6	
-313	955	5709	41	
-30	850	5708	13	
-253	367	5707	58	
-268	18	5706	14	
-505	788	5705	8	
-132	976	5704	97	
-517	487	5703	37	
-786	852	5702	22	
-716	498	5701	62	
-456	655	5700	39	
-104	274	5699	44	
-483	557	5698	28	
-348	433	5697	77	
-229	60	5696	98	
-811	109	5695	76	
-489	608	5694	37	
-635	149	5693	61	
-354	598	5692	73	
-842	229	5691	6	
-380	948	5690	26	
-717	161	5689	35	
-123	505	5688	62	
-372	791	5687	13	
-950	222	5686	11	
-501	389	5685	41	
-459	758	5684	32	
-550	883	5683	85	
-368	661	5682	28	
-281	809	5681	51	
-787	908	5680	46	
-655	730	5679	66	
-713	486	5678	59	
-569	15	5677	75	
-833	701	5676	42	
-630	95	5675	44	
-875	467	5674	4	
-221	573	5673	90	
-851	769	5672	18	
-901	49	5671	8	
-177	798	5670	49	
-244	69	5669	13	
-471	842	5668	94	
-314	329	5667	14	
-606	972	5666	73	
-627	406	5665	20	
-894	133	5664	75	
-803	727	5663	65	
-720	93	5662	37	
-250	593	5661	94	
-729	361	5660	72	
-227	190	5659	93	
-512	797	5658	77	
-357	409	5657	15	
-565	532	5656	70	
-272	448	5655	97	
-405	101	5654	73	
-634	283	5653	9	
-499	420	5652	8	
-231	225	5651	46	
-171	791	5650	52	
-392	160	5649	50	
-387	615	5648	71	
-876	448	5647	15	
-84	729	5646	79	
-346	244	5645	29	
-817	642	5644	86	
-862	7	5643	77	
-195	613	5642	13	
-433	947	5641	26	
-631	19	5640	5	
-544	787	5639	77	
-166	558	5638	0	
-719	364	5637	51	
-484	498	5636	79	
-602	425	5635	73	
-634	95	5634	52	
-394	637	5633	95	
-665	866	5632	66	
-928	208	5631	76	
-232	280	5630	80	
-228	773	5629	8	
-194	494	5628	37	
-866	718	5627	44	
-72	55	5626	23	
-330	208	5625	88	
-458	573	5624	96	
-770	287	5623	23	
-658	905	5622	72	
-927	958	5621	73	
-506	716	5620	69	
-279	709	5619	0	
-776	929	5618	3	
-662	213	5617	32	
-846	351	5616	79	
-634	914	5615	74	
-285	727	5614	87	
-382	510	5613	68	
-946	992	5612	11	
-242	41	5611	73	
-6	691	5610	42	
-779	969	5609	22	
-715	706	5608	50	
-861	534	5607	11	
-437	52	5606	81	
-186	869	5605	21	
-217	183	5604	34	
-518	576	5603	90	
-950	380	5602	43	
-349	311	5601	70	
-722	192	5600	23	
-263	724	5599	22	
-172	389	5598	6	
-481	297	5597	85	
-182	604	5596	42	
-686	863	5595	25	
-607	445	5594	96	
-196	468	5593	69	
-69	731	5592	56	
-118	467	5591	60	
-468	9	5590	62	
-334	163	5589	45	
-92	209	5588	9	
-693	429	5587	69	
-740	174	5586	29	
-417	280	5585	49	
-977	270	5584	7	
-736	131	5583	41	
-263	967	5582	12	
-458	972	5581	95	
-845	169	5580	65	
-953	367	5579	13	
-780	401	5578	24	
-254	390	5577	39	
-893	803	5576	95	
-10	417	5575	32	
-139	667	5574	44	
-163	284	5573	24	
-994	176	5572	47	
-803	300	5571	80	
-802	516	5570	61	
-966	891	5569	89	
-10	842	5568	17	
-586	446	5567	52	
-386	629	5566	36	
-749	882	5565	88	
-383	200	5564	87	
-107	767	5563	97	
-875	668	5562	16	
-784	191	5561	19	
-624	720	5560	0	
-48	720	5559	83	
-395	646	5558	95	
-817	165	5557	42	
-747	477	5556	20	
-682	12	5555	63	
-432	895	5554	36	
-99	806	5553	27	
-476	977	5552	23	
-471	190	5551	9	
-0	165	5550	15	
-73	880	5549	57	
-481	531	5548	65	
-687	223	5547	57	
-465	563	5546	7	
-116	271	5545	6	
-89	89	5544	24	
-828	44	5543	33	
-787	140	5542	62	
-24	932	5541	0	
-284	583	5540	47	
-349	922	5539	92	
-307	75	5538	59	
-660	507	5537	79	
-291	5	5536	22	
-181	815	5535	34	
-45	917	5534	2	
-903	708	5533	26	
-208	619	5532	4	
-348	533	5531	76	
-661	544	5530	74	
-847	334	5529	93	
-567	798	5528	4	
-502	571	5527	64	
-189	872	5526	36	
-897	323	5525	11	
-208	765	5524	13	
-89	220	5523	14	
-86	277	5522	69	
-988	22	5521	85	
-209	805	5520	68	
-536	892	5519	81	
-226	395	5518	28	
-699	277	5517	6	
-549	258	5516	31	
-557	974	5515	29	
-544	993	5514	68	
-942	446	5513	11	
-254	835	5512	0	
-217	173	5511	9	
-912	873	5510	77	
-497	533	5509	67	
-117	216	5508	31	
-19	751	5507	52	
-283	21	5506	14	
-981	603	5505	99	
-546	569	5504	1	
-611	116	5503	60	
-662	905	5502	68	
-300	319	5501	3	
-339	104	5500	30	
-317	363	5499	41	
-465	783	5498	37	
-729	377	5497	9	
-417	157	5496	73	
-33	978	5495	30	
-452	411	5494	43	
-211	913	5493	93	
-585	650	5492	94	
-214	732	5491	36	
-741	889	5490	96	
-580	35	5489	2	
-405	281	5488	85	
-219	362	5487	73	
-179	434	5486	31	
-566	867	5485	38	
-497	499	5484	58	
-263	986	5483	24	
-918	586	5482	62	
-842	402	5481	37	
-854	938	5480	47	
-754	170	5479	16	
-919	116	5478	17	
-928	423	5477	18	
-566	928	5476	4	
-367	803	5475	61	
-512	338	5474	6	
-400	616	5473	23	
-184	254	5472	34	
-464	898	5471	7	
-767	311	5470	98	
-53	986	5469	9	
-693	988	5468	83	
-494	145	5467	99	
-125	427	5466	36	
-464	543	5465	19	
-722	834	5464	85	
-362	889	5463	11	
-355	268	5462	21	
-586	88	5461	71	
-324	887	5460	69	
-998	264	5459	71	
-843	844	5458	35	
-717	629	5457	19	
-884	162	5456	36	
-708	343	5455	66	
-945	744	5454	74	
-621	894	5453	35	
-179	496	5452	0	
-200	23	5451	76	
-623	982	5450	26	
-419	354	5449	32	
-215	161	5448	15	
-466	828	5447	12	
-819	708	5446	83	
-598	919	5445	17	
-849	381	5444	76	
-397	353	5443	32	
-473	237	5442	44	
-41	506	5441	97	
-628	936	5440	57	
-192	171	5439	20	
-332	29	5438	20	
-119	291	5437	74	
-789	658	5436	64	
-537	411	5435	22	
-28	439	5434	74	
-115	882	5433	45	
-731	462	5432	92	
-569	401	5431	43	
-765	374	5430	41	
-141	998	5429	43	
-737	456	5428	86	
-633	100	5427	21	
-246	427	5426	33	
-971	471	5425	25	
-557	296	5424	50	
-419	527	5423	91	
-61	492	5422	38	
-27	19	5421	16	
-375	977	5420	80	
-542	574	5419	62	
-355	648	5418	40	
-673	882	5417	10	
-956	77	5416	38	
-174	743	5415	27	
-769	595	5414	41	
-35	528	5413	13	
-472	222	5412	35	
-41	357	5411	3	
-402	181	5410	65	
-926	219	5409	83	
-765	299	5408	18	
-804	717	5407	68	
-333	112	5406	71	
-148	860	5405	78	
-66	275	5404	40	
-306	780	5403	73	
-865	323	5402	56	
-176	381	5401	43	
-961	819	5400	63	
-919	646	5399	47	
-582	504	5398	16	
-604	965	5397	96	
-251	934	5396	47	
-585	376	5395	18	
-494	671	5394	8	
-456	170	5393	76	
-941	131	5392	44	
-562	791	5391	68	
-172	163	5390	21	
-142	315	5389	4	
-538	199	5388	33	
-30	490	5387	97	
-558	285	5386	35	
-704	103	5385	66	
-501	320	5384	9	
-38	320	5383	3	
-339	751	5382	51	
-628	474	5381	37	
-848	172	5380	38	
-115	704	5379	3	
-709	360	5378	60	
-204	624	5377	50	
-181	686	5376	47	
-783	575	5375	85	
-0	52	5374	20	
-569	523	5373	46	
-276	135	5372	69	
-302	989	5371	71	
-468	359	5370	78	
-343	427	5369	73	
-736	96	5368	40	
-937	35	5367	50	
-110	619	5366	2	
-523	649	5365	39	
-529	741	5364	78	
-387	762	5363	43	
-146	988	5362	29	
-630	930	5361	97	
-932	47	5360	83	
-330	326	5359	12	
-61	901	5358	60	
-415	481	5357	79	
-969	624	5356	82	
-907	614	5355	58	
-978	352	5354	99	
-774	138	5353	14	
-57	318	5352	24	
-882	140	5351	51	
-721	708	5350	69	
-425	516	5349	60	
-419	809	5348	26	
-857	971	5347	64	
-10	239	5346	44	
-262	592	5345	6	
-214	853	5344	92	
-819	899	5343	20	
-178	725	5342	71	
-431	818	5341	17	
-192	96	5340	16	
-707	331	5339	29	
-838	624	5338	0	
-731	199	5337	56	
-647	384	5336	84	
-739	132	5335	74	
-953	725	5334	4	
-174	486	5333	39	
-907	542	5332	64	
-721	13	5331	74	
-765	865	5330	23	
-707	289	5329	48	
-425	443	5328	86	
-814	715	5327	10	
-252	99	5326	8	
-406	699	5325	90	
-239	653	5324	78	
-943	752	5323	77	
-529	894	5322	26	
-147	507	5321	18	
-575	754	5320	95	
-846	615	5319	5	
-728	762	5318	28	
-615	22	5317	61	
-399	176	5316	56	
-45	121	5315	84	
-900	8	5314	16	
-857	511	5313	29	
-387	81	5312	41	
-752	230	5311	38	
-138	897	5310	57	
-852	776	5309	72	
-740	670	5308	11	
-845	48	5307	11	
-55	717	5306	21	
-113	677	5305	35	
-496	871	5304	14	
-429	882	5303	4	
-850	31	5302	47	
-332	810	5301	63	
-120	842	5300	61	
-105	612	5299	28	
-622	3	5298	11	
-330	897	5297	89	
-39	861	5296	78	
-806	209	5295	94	
-989	101	5294	61	
-851	572	5293	6	
-220	835	5292	57	
-968	21	5291	51	
-229	327	5290	21	
-608	174	5289	1	
-106	216	5288	48	
-36	105	5287	29	
-651	847	5286	29	
-108	326	5285	23	
-528	549	5284	81	
-737	487	5283	13	
-813	60	5282	63	
-694	305	5281	25	
-153	197	5280	73	
-957	532	5279	62	
-111	190	5278	50	
-257	1	5277	7	
-521	57	5276	38	
-777	416	5275	54	
-61	679	5274	57	
-426	506	5273	79	
-754	379	5272	92	
-108	512	5271	11	
-664	117	5270	54	
-341	119	5269	19	
-188	431	5268	84	
-944	685	5267	85	
-640	840	5266	73	
-736	964	5265	74	
-173	788	5264	71	
-126	866	5263	63	
-866	804	5262	67	
-394	578	5261	64	
-998	344	5260	44	
-687	349	5259	32	
-745	992	5258	15	
-845	116	5257	24	
-876	992	5256	30	
-175	28	5255	90	
-922	81	5254	56	
-61	962	5253	4	
-225	25	5252	26	
-233	201	5251	47	
-995	120	5250	39	
-357	170	5249	31	
-875	908	5248	94	
-124	940	5247	90	
-964	399	5246	96	
-946	340	5245	70	
-119	517	5244	25	
-936	786	5243	86	
-823	788	5242	83	
-80	75	5241	99	
-950	86	5240	23	
-261	368	5239	63	
-968	41	5238	48	
-540	932	5237	75	
-59	266	5236	15	
-822	448	5235	1	
-731	392	5234	82	
-997	24	5233	18	
-712	843	5232	11	
-988	753	5231	74	
-717	601	5230	13	
-326	155	5229	68	
-109	730	5228	29	
-665	592	5227	42	
-818	142	5226	48	
-55	189	5225	23	
-368	644	5224	9	
-180	70	5223	73	
-90	369	5222	28	
-151	612	5221	72	
-445	440	5220	27	
-425	396	5219	39	
-137	865	5218	21	
-449	946	5217	44	
-952	244	5216	84	
-544	145	5215	76	
-574	357	5214	68	
-700	448	5213	18	
-756	561	5212	8	
-172	452	5211	93	
-43	880	5210	70	
-531	173	5209	1	
-918	773	5208	28	
-702	597	5207	68	
-98	83	5206	49	
-788	76	5205	40	
-909	499	5204	97	
-887	97	5203	87	
-108	151	5202	94	
-572	232	5201	58	
-707	686	5200	12	
-399	731	5199	51	
-176	599	5198	61	
-513	190	5197	21	
-6	90	5196	60	
-577	436	5195	31	
-401	96	5194	87	
-946	929	5193	2	
-919	360	5192	77	
-545	455	5191	53	
-954	617	5190	86	
-132	898	5189	30	
-409	397	5188	22	
-99	611	5187	66	
-653	294	5186	50	
-340	431	5185	42	
-167	856	5184	17	
-569	242	5183	45	
-905	243	5182	2	
-837	669	5181	37	
-718	557	5180	59	
-501	85	5179	82	
-785	559	5178	72	
-317	155	5177	30	
-862	77	5176	44	
-574	253	5175	31	
-614	721	5174	17	
-999	427	5173	59	
-573	653	5172	66	
-111	783	5171	6	
-472	768	5170	11	
-525	100	5169	21	
-404	412	5168	71	
-78	863	5167	46	
-824	133	5166	45	
-531	140	5165	28	
-294	575	5164	96	
-774	933	5163	61	
-870	597	5162	42	
-14	947	5161	46	
-667	903	5160	63	
-687	499	5159	94	
-549	249	5158	12	
-730	12	5157	32	
-992	166	5156	25	
-564	328	5155	29	
-641	345	5154	23	
-336	188	5153	52	
-649	963	5152	90	
-44	822	5151	85	
-403	692	5150	34	
-250	825	5149	98	
-237	795	5148	13	
-845	71	5147	81	
-838	961	5146	73	
-982	54	5145	42	
-156	717	5144	92	
-225	616	5143	30	
-141	48	5142	68	
-130	508	5141	60	
-866	366	5140	64	
-30	842	5139	15	
-723	318	5138	1	
-109	82	5137	39	
-907	309	5136	0	
-336	505	5135	85	
-101	617	5134	82	
-568	618	5133	93	
-539	82	5132	8	
-141	964	5131	1	
-523	487	5130	26	
-524	140	5129	83	
-236	620	5128	30	
-772	384	5127	61	
-803	150	5126	20	
-887	30	5125	57	
-998	893	5124	23	
-536	848	5123	53	
-118	72	5122	2	
-476	748	5121	39	
-347	426	5120	61	
-519	530	5119	99	
-236	692	5118	28	
-234	411	5117	46	
-120	630	5116	96	
-136	336	5115	91	
-45	701	5114	88	
-776	505	5113	46	
-323	630	5112	41	
-321	779	5111	64	
-896	618	5110	12	
-837	711	5109	82	
-281	824	5108	28	
-780	494	5107	0	
-294	53	5106	11	
-634	26	5105	98	
-196	426	5104	9	
-875	44	5103	26	
-850	776	5102	45	
-160	512	5101	0	
-907	301	5100	42	
-887	544	5099	5	
-329	281	5098	55	
-441	888	5097	50	
-26	129	5096	48	
-600	893	5095	65	
-382	821	5094	43	
-267	817	5093	32	
-264	450	5092	2	
-211	576	5091	68	
-757	367	5090	25	
-262	502	5089	1	
-393	55	5088	55	
-758	14	5087	88	
-236	826	5086	41	
-72	220	5085	42	
-3	118	5084	21	
-366	295	5083	11	
-874	335	5082	0	
-208	435	5081	5	
-864	233	5080	45	
-446	461	5079	49	
-41	670	5078	86	
-187	472	5077	63	
-606	989	5076	52	
-102	208	5075	16	
-822	102	5074	6	
-959	112	5073	63	
-900	949	5072	49	
-201	599	5071	66	
-772	959	5070	34	
-791	624	5069	41	
-197	235	5068	40	
-483	111	5067	85	
-780	359	5066	58	
-106	95	5065	50	
-990	431	5064	27	
-162	144	5063	86	
-350	826	5062	5	
-639	321	5061	69	
-335	926	5060	42	
-388	12	5059	98	
-124	551	5058	59	
-752	272	5057	71	
-264	77	5056	70	
-663	223	5055	67	
-287	417	5054	11	
-317	803	5053	82	
-505	360	5052	81	
-395	269	5051	71	
-913	448	5050	30	
-460	387	5049	94	
-279	879	5048	26	
-194	11	5047	37	
-854	29	5046	48	
-806	557	5045	60	
-613	288	5044	37	
-442	16	5043	96	
-91	100	5042	81	
-821	407	5041	11	
-60	357	5040	48	
-508	681	5039	45	
-867	892	5038	18	
-982	884	5037	8	
-471	886	5036	34	
-269	225	5035	4	
-272	406	5034	19	
-915	157	5033	17	
-692	701	5032	35	
-50	628	5031	26	
-675	28	5030	76	
-789	272	5029	55	
-8	95	5028	64	
-997	745	5027	88	
-661	292	5026	51	
-819	855	5025	20	
-248	21	5024	99	
-455	819	5023	35	
-73	81	5022	22	
-600	508	5021	64	
-756	209	5020	37	
-176	911	5019	88	
-350	755	5018	78	
-453	374	5017	1	
-437	308	5016	33	
-833	205	5015	84	
-202	640	5014	57	
-737	133	5013	79	
-572	580	5012	38	
-299	268	5011	47	
-297	487	5010	84	
-155	105	5009	57	
-380	770	5008	82	
-65	674	5007	89	
-103	493	5006	1	
-565	272	5005	60	
-506	777	5004	63	
-552	410	5003	46	
-312	909	5002	16	
-780	628	5001	27	
-382	264	5000	0	
-335	752	4999	14	
-95	929	4998	77	
-181	881	4997	31	
-220	412	4996	96	
-494	972	4995	53	
-366	167	4994	5	
-500	299	4993	95	
-281	891	4992	23	
-363	271	4991	53	
-512	859	4990	39	
-823	366	4989	4	
-48	459	4988	23	
-468	353	4987	91	
-440	424	4986	96	
-804	479	4985	72	
-867	104	4984	12	
-407	714	4983	86	
-620	708	4982	21	
-411	133	4981	91	
-492	351	4980	85	
-907	807	4979	68	
-106	325	4978	77	
-929	953	4977	57	
-944	234	4976	2	
-375	598	4975	63	
-389	261	4974	93	
-6	646	4973	46	
-575	302	4972	78	
-781	66	4971	20	
-543	162	4970	91	
-482	914	4969	58	
-372	195	4968	80	
-718	550	4967	17	
-635	393	4966	98	
-336	698	4965	56	
-615	476	4964	98	
-343	673	4963	38	
-236	577	4962	43	
-903	290	4961	79	
-248	332	4960	23	
-718	785	4959	6	
-644	622	4958	11	
-157	192	4957	65	
-695	415	4956	8	
-221	582	4955	29	
-803	602	4954	72	
-95	951	4953	27	
-286	637	4952	10	
-958	556	4951	33	
-547	175	4950	65	
-162	951	4949	52	
-429	456	4948	7	
-777	570	4947	48	
-833	783	4946	46	
-979	577	4945	47	
-651	449	4944	41	
-314	164	4943	70	
-81	775	4942	80	
-380	676	4941	32	
-224	125	4940	41	
-495	455	4939	38	
-885	586	4938	73	
-787	25	4937	65	
-206	988	4936	94	
-127	55	4935	85	
-285	710	4934	32	
-388	898	4933	33	
-98	479	4932	23	
-550	918	4931	70	
-669	26	4930	15	
-869	651	4929	72	
-560	80	4928	60	
-37	708	4927	9	
-932	90	4926	58	
-345	524	4925	7	
-811	991	4924	84	
-419	103	4923	89	
-561	532	4922	29	
-892	543	4921	54	
-374	427	4920	88	
-571	119	4919	80	
-372	511	4918	30	
-617	517	4917	52	
-566	502	4916	10	
-532	235	4915	58	
-888	945	4914	53	
-570	606	4913	39	
-988	742	4912	85	
-116	666	4911	66	
-307	80	4910	51	
-608	491	4909	80	
-993	784	4908	19	
-14	418	4907	75	
-266	517	4906	5	
-290	53	4905	3	
-339	141	4904	64	
-863	534	4903	31	
-75	188	4902	58	
-586	151	4901	87	
-588	714	4900	80	
-706	604	4899	69	
-366	443	4898	61	
-901	704	4897	97	
-463	16	4896	74	
-912	390	4895	97	
-606	325	4894	95	
-346	736	4893	47	
-36	709	4892	78	
-437	63	4891	48	
-109	109	4890	99	
-160	85	4889	88	
-739	635	4888	34	
-687	230	4887	46	
-626	771	4886	43	
-64	26	4885	55	
-589	474	4884	30	
-27	687	4883	26	
-646	298	4882	31	
-953	492	4881	59	
-24	114	4880	32	
-449	541	4879	94	
-404	875	4878	42	
-459	27	4877	5	
-745	885	4876	6	
-551	246	4875	56	
-787	45	4874	47	
-388	949	4873	56	
-806	711	4872	38	
-377	269	4871	69	
-573	379	4870	92	
-666	527	4869	57	
-848	367	4868	4	
-141	992	4867	94	
-639	498	4866	71	
-200	87	4865	19	
-95	913	4864	76	
-237	179	4863	39	
-441	689	4862	58	
-889	763	4861	42	
-852	354	4860	80	
-159	529	4859	90	
-375	99	4858	81	
-494	231	4857	70	
-411	518	4856	50	
-173	430	4855	43	
-734	365	4854	10	
-490	817	4853	85	
-925	151	4852	79	
-409	625	4851	55	
-824	896	4850	3	
-429	89	4849	69	
-867	111	4848	78	
-712	203	4847	88	
-88	63	4846	8	
-65	334	4845	23	
-548	246	4844	43	
-665	61	4843	24	
-525	243	4842	56	
-729	514	4841	51	
-807	345	4840	58	
-977	908	4839	39	
-907	902	4838	56	
-140	798	4837	15	
-728	844	4836	62	
-87	798	4835	2	
-185	195	4834	51	
-818	678	4833	88	
-729	49	4832	13	
-168	930	4831	79	
-437	190	4830	92	
-5	833	4829	82	
-103	406	4828	6	
-953	530	4827	76	
-46	601	4826	41	
-603	506	4825	64	
-517	634	4824	90	
-628	743	4823	36	
-118	343	4822	8	
-740	874	4821	56	
-357	92	4820	73	
-426	759	4819	43	
-876	302	4818	90	
-929	355	4817	15	
-94	770	4816	90	
-871	738	4815	44	
-891	535	4814	8	
-400	278	4813	88	
-468	527	4812	51	
-781	829	4811	37	
-332	299	4810	38	
-457	529	4809	93	
-947	751	4808	55	
-584	242	4807	94	
-31	464	4806	83	
-203	357	4805	22	
-256	196	4804	98	
-750	377	4803	49	
-698	133	4802	93	
-529	993	4801	68	
-769	452	4800	44	
-778	380	4799	87	
-509	603	4798	50	
-777	112	4797	36	
-107	611	4796	55	
-160	243	4795	82	
-818	488	4794	94	
-244	560	4793	50	
-139	244	4792	5	
-541	237	4791	16	
-71	573	4790	75	
-777	366	4789	99	
-490	145	4788	26	
-501	810	4787	73	
-367	724	4786	67	
-754	881	4785	94	
-928	440	4784	34	
-315	454	4783	57	
-7	882	4782	10	
-663	410	4781	59	
-207	767	4780	46	
-220	722	4779	29	
-334	538	4778	28	
-86	60	4777	98	
-842	724	4776	13	
-441	604	4775	61	
-985	767	4774	82	
-572	468	4773	61	
-471	507	4772	30	
-642	128	4771	34	
-45	175	4770	45	
-184	7	4769	98	
-477	296	4768	88	
-335	856	4767	24	
-119	519	4766	24	
-836	787	4765	40	
-298	212	4764	45	
-961	305	4763	41	
-378	964	4762	10	
-952	888	4761	82	
-167	468	4760	59	
-710	101	4759	86	
-440	637	4758	70	
-336	4	4757	14	
-731	841	4756	21	
-575	946	4755	28	
-906	41	4754	53	
-341	313	4753	33	
-75	270	4752	58	
-419	232	4751	42	
-367	735	4750	78	
-464	155	4749	45	
-632	564	4748	27	
-162	925	4747	10	
-895	933	4746	60	
-905	745	4745	15	
-728	200	4744	66	
-42	754	4743	56	
-38	157	4742	26	
-497	640	4741	65	
-580	327	4740	5	
-591	187	4739	90	
-638	166	4738	83	
-992	498	4737	46	
-187	448	4736	26	
-545	487	4735	99	
-445	103	4734	17	
-597	300	4733	68	
-516	608	4732	0	
-313	605	4731	54	
-140	148	4730	91	
-20	71	4729	98	
-667	362	4728	95	
-50	201	4727	64	
-960	277	4726	80	
-384	813	4725	64	
-802	491	4724	9	
-691	681	4723	84	
-3	462	4722	8	
-456	624	4721	20	
-76	927	4720	17	
-709	36	4719	12	
-160	306	4718	35	
-924	840	4717	61	
-464	162	4716	8	
-321	543	4715	57	
-809	250	4714	58	
-219	767	4713	11	
-838	878	4712	68	
-697	30	4711	54	
-890	52	4710	38	
-729	767	4709	36	
-466	735	4708	54	
-677	527	4707	23	
-619	513	4706	45	
-292	994	4705	14	
-483	471	4704	51	
-888	422	4703	58	
-848	141	4702	38	
-977	166	4701	14	
-285	13	4700	80	
-31	817	4699	16	
-208	312	4698	26	
-13	776	4697	78	
-519	316	4696	5	
-523	629	4695	32	
-48	922	4694	80	
-280	208	4693	59	
-975	240	4692	4	
-152	334	4691	87	
-196	645	4690	69	
-504	897	4689	25	
-535	474	4688	82	
-460	731	4687	19	
-686	729	4686	49	
-706	519	4685	99	
-714	213	4684	47	
-968	554	4683	76	
-905	169	4682	30	
-689	179	4681	82	
-747	438	4680	95	
-423	429	4679	69	
-743	629	4678	96	
-1	701	4677	7	
-210	496	4676	77	
-305	522	4675	97	
-659	706	4674	99	
-384	462	4673	74	
-990	481	4672	6	
-740	868	4671	21	
-8	263	4670	94	
-800	723	4669	32	
-927	892	4668	67	
-204	302	4667	74	
-974	793	4666	79	
-815	987	4665	90	
-244	246	4664	64	
-981	682	4663	27	
-613	846	4662	39	
-604	274	4661	24	
-540	617	4660	73	
-830	644	4659	20	
-590	937	4658	87	
-509	951	4657	72	
-805	885	4656	22	
-740	259	4655	15	
-563	371	4654	57	
-836	880	4653	26	
-572	144	4652	36	
-656	517	4651	0	
-973	523	4650	6	
-706	335	4649	71	
-986	148	4648	24	
-66	494	4647	8	
-626	70	4646	70	
-887	588	4645	6	
-491	307	4644	17	
-735	895	4643	72	
-627	358	4642	26	
-993	945	4641	91	
-188	353	4640	68	
-186	469	4639	26	
-654	159	4638	72	
-424	377	4637	91	
-481	637	4636	44	
-280	889	4635	73	
-412	448	4634	39	
-536	464	4633	75	
-413	347	4632	10	
-591	232	4631	63	
-883	417	4630	80	
-310	545	4629	0	
-782	800	4628	53	
-739	479	4627	23	
-748	701	4626	94	
-440	341	4625	20	
-984	640	4624	86	
-117	648	4623	87	
-114	473	4622	12	
-815	828	4621	82	
-871	803	4620	70	
-744	470	4619	57	
-320	300	4618	52	
-778	288	4617	4	
-359	742	4616	99	
-701	332	4615	30	
-992	992	4614	45	
-174	752	4613	86	
-645	301	4612	0	
-24	114	4611	29	
-333	134	4610	94	
-169	45	4609	12	
-12	485	4608	42	
-545	51	4607	54	
-410	683	4606	41	
-339	851	4605	65	
-239	590	4604	70	
-451	863	4603	81	
-187	704	4602	52	
-979	355	4601	62	
-89	816	4600	69	
-559	702	4599	16	
-434	881	4598	15	
-368	123	4597	46	
-832	760	4596	13	
-261	948	4595	7	
-726	891	4594	10	
-159	288	4593	78	
-349	907	4592	26	
-538	930	4591	20	
-114	526	4590	89	
-821	7	4589	52	
-757	689	4588	12	
-363	331	4587	6	
-812	64	4586	53	
-56	970	4585	57	
-603	312	4584	53	
-380	523	4583	56	
-977	56	4582	81	
-403	317	4581	81	
-518	360	4580	42	
-318	404	4579	29	
-358	59	4578	6	
-266	529	4577	39	
-94	964	4576	55	
-658	36	4575	75	
-788	967	4574	45	
-467	757	4573	22	
-739	999	4572	40	
-956	386	4571	57	
-956	131	4570	88	
-344	229	4569	20	
-529	669	4568	95	
-564	843	4567	9	
-928	795	4566	17	
-69	301	4565	43	
-210	231	4564	86	
-757	819	4563	32	
-612	829	4562	72	
-255	688	4561	78	
-902	685	4560	0	
-559	240	4559	61	
-826	867	4558	81	
-47	920	4557	96	
-494	735	4556	63	
-70	566	4555	85	
-412	548	4554	85	
-989	593	4553	45	
-140	945	4552	14	
-3	781	4551	35	
-444	389	4550	35	
-372	796	4549	34	
-947	850	4548	73	
-184	328	4547	77	
-168	778	4546	55	
-18	999	4545	42	
-955	407	4544	65	
-647	307	4543	42	
-163	787	4542	84	
-392	5	4541	13	
-593	9	4540	55	
-946	609	4539	7	
-521	954	4538	42	
-550	226	4537	76	
-778	128	4536	1	
-592	766	4535	14	
-99	235	4534	6	
-520	573	4533	30	
-781	711	4532	48	
-995	579	4531	77	
-400	485	4530	79	
-655	647	4529	64	
-728	661	4528	42	
-97	746	4527	97	
-362	866	4526	77	
-530	86	4525	18	
-662	756	4524	49	
-861	823	4523	57	
-132	713	4522	73	
-93	971	4521	78	
-838	152	4520	59	
-986	222	4519	74	
-914	452	4518	92	
-880	200	4517	63	
-780	584	4516	73	
-329	694	4515	83	
-933	913	4514	86	
-110	840	4513	80	
-741	952	4512	72	
-819	190	4511	3	
-929	850	4510	25	
-770	817	4509	85	
-251	296	4508	7	
-616	896	4507	3	
-889	902	4506	9	
-780	963	4505	45	
-73	67	4504	39	
-888	71	4503	82	
-761	690	4502	36	
-340	782	4501	92	
-32	403	4500	88	
-521	780	4499	15	
-399	37	4498	51	
-994	934	4497	63	
-938	648	4496	72	
-896	54	4495	10	
-995	573	4494	70	
-380	454	4493	18	
-908	446	4492	12	
-378	32	4491	42	
-623	730	4490	30	
-743	640	4489	51	
-102	883	4488	12	
-285	908	4487	40	
-594	617	4486	5	
-480	401	4485	4	
-119	522	4484	90	
-8	58	4483	61	
-413	705	4482	47	
-301	113	4481	52	
-90	796	4480	75	
-756	388	4479	87	
-974	717	4478	64	
-291	349	4477	81	
-215	12	4476	69	
-878	142	4475	11	
-464	285	4474	36	
-353	141	4473	11	
-591	943	4472	59	
-317	773	4471	11	
-407	875	4470	21	
-671	238	4469	33	
-368	824	4468	78	
-336	125	4467	68	
-870	576	4466	7	
-856	753	4465	33	
-143	249	4464	41	
-198	516	4463	11	
-169	482	4462	76	
-898	901	4461	27	
-636	877	4460	90	
-414	551	4459	73	
-698	99	4458	30	
-549	606	4457	3	
-822	738	4456	46	
-503	922	4455	1	
-733	303	4454	71	
-33	349	4453	94	
-581	486	4452	2	
-24	365	4451	27	
-326	172	4450	26	
-451	433	4449	22	
-492	271	4448	71	
-868	565	4447	14	
-816	452	4446	72	
-619	300	4445	31	
-953	768	4444	77	
-863	916	4443	69	
-121	757	4442	45	
-192	10	4441	55	
-739	39	4440	69	
-161	506	4439	87	
-706	566	4438	95	
-112	422	4437	62	
-152	407	4436	5	
-532	548	4435	19	
-851	70	4434	66	
-159	246	4433	9	
-746	896	4432	74	
-970	858	4431	92	
-533	823	4430	45	
-939	915	4429	57	
-144	334	4428	45	
-14	573	4427	59	
-858	854	4426	96	
-478	531	4425	62	
-823	575	4424	68	
-350	348	4423	69	
-37	813	4422	41	
-35	475	4421	77	
-907	875	4420	43	
-581	122	4419	59	
-760	862	4418	79	
-718	632	4417	12	
-323	340	4416	15	
-955	939	4415	38	
-227	989	4414	65	
-534	279	4413	47	
-337	636	4412	31	
-600	338	4411	0	
-752	844	4410	12	
-260	798	4409	32	
-229	666	4408	82	
-292	973	4407	4	
-401	776	4406	39	
-950	725	4405	36	
-710	181	4404	72	
-642	159	4403	69	
-298	311	4402	19	
-494	875	4401	73	
-46	801	4400	84	
-131	505	4399	49	
-693	778	4398	3	
-196	647	4397	93	
-50	26	4396	89	
-543	640	4395	45	
-22	35	4394	24	
-848	495	4393	6	
-436	459	4392	34	
-73	889	4391	80	
-295	356	4390	44	
-727	460	4389	91	
-130	94	4388	43	
-621	45	4387	49	
-385	440	4386	14	
-605	210	4385	50	
-540	172	4384	52	
-35	722	4383	17	
-569	540	4382	41	
-533	355	4381	36	
-895	533	4380	77	
-366	475	4379	56	
-48	942	4378	59	
-605	350	4377	50	
-229	638	4376	23	
-38	985	4375	78	
-449	347	4374	6	
-182	761	4373	50	
-184	50	4372	46	
-822	583	4371	3	
-57	209	4370	63	
-533	971	4369	52	
-592	87	4368	31	
-711	273	4367	44	
-653	455	4366	37	
-637	715	4365	19	
-586	560	4364	58	
-710	38	4363	26	
-466	429	4362	99	
-374	397	4361	36	
-237	109	4360	76	
-884	210	4359	52	
-814	875	4358	94	
-818	66	4357	88	
-739	184	4356	5	
-154	603	4355	1	
-522	320	4354	5	
-608	269	4353	87	
-31	635	4352	24	
-288	597	4351	9	
-898	240	4350	13	
-334	583	4349	35	
-809	59	4348	6	
-882	822	4347	99	
-581	43	4346	7	
-282	963	4345	58	
-51	175	4344	63	
-634	631	4343	91	
-37	152	4342	57	
-357	954	4341	74	
-656	783	4340	38	
-524	284	4339	56	
-236	72	4338	52	
-779	918	4337	92	
-79	494	4336	30	
-788	952	4335	29	
-543	718	4334	23	
-479	337	4333	41	
-197	833	4332	59	
-171	353	4331	68	
-499	825	4330	70	
-211	38	4329	13	
-154	598	4328	28	
-423	626	4327	45	
-542	2	4326	70	
-233	67	4325	29	
-380	814	4324	24	
-504	819	4323	6	
-479	916	4322	28	
-528	978	4321	2	
-786	569	4320	67	
-440	845	4319	28	
-971	829	4318	5	
-623	757	4317	73	
-934	409	4316	88	
-252	46	4315	30	
-995	180	4314	85	
-902	782	4313	87	
-937	255	4312	2	
-409	355	4311	95	
-724	383	4310	74	
-15	229	4309	34	
-72	327	4308	46	
-348	848	4307	34	
-362	573	4306	68	
-865	455	4305	68	
-397	977	4304	25	
-527	850	4303	9	
-900	73	4302	96	
-971	209	4301	52	
-153	396	4300	68	
-902	876	4299	70	
-478	120	4298	94	
-275	659	4297	72	
-118	6	4296	98	
-478	424	4295	49	
-126	164	4294	46	
-777	127	4293	87	
-864	437	4292	62	
-813	842	4291	92	
-519	976	4290	81	
-755	765	4289	25	
-461	218	4288	42	
-652	738	4287	20	
-582	488	4286	15	
-259	28	4285	64	
-37	597	4284	35	
-690	243	4283	34	
-594	697	4282	91	
-865	111	4281	5	
-210	566	4280	29	
-547	826	4279	76	
-480	221	4278	29	
-250	45	4277	80	
-459	517	4276	7	
-431	288	4275	32	
-353	2	4274	22	
-546	436	4273	34	
-585	861	4272	9	
-545	757	4271	72	
-739	530	4270	65	
-605	469	4269	66	
-176	484	4268	6	
-527	739	4267	23	
-229	747	4266	79	
-285	100	4265	2	
-565	874	4264	7	
-575	252	4263	80	
-104	365	4262	96	
-226	75	4261	3	
-60	990	4260	80	
-985	596	4259	13	
-744	837	4258	42	
-991	439	4257	64	
-647	762	4256	29	
-225	949	4255	94	
-622	271	4254	71	
-886	846	4253	99	
-290	920	4252	47	
-84	233	4251	87	
-393	672	4250	16	
-759	704	4249	7	
-397	781	4248	24	
-677	349	4247	75	
-812	354	4246	34	
-678	224	4245	42	
-424	728	4244	60	
-925	520	4243	73	
-687	592	4242	59	
-560	712	4241	20	
-967	90	4240	69	
-923	834	4239	63	
-431	487	4238	36	
-994	409	4237	71	
-130	921	4236	86	
-495	819	4235	13	
-208	868	4234	25	
-927	138	4233	49	
-880	391	4232	23	
-621	514	4231	12	
-255	56	4230	59	
-347	272	4229	4	
-77	642	4228	49	
-488	854	4227	43	
-101	731	4226	86	
-951	879	4225	63	
-729	754	4224	28	
-747	260	4223	28	
-876	112	4222	4	
-458	533	4221	25	
-783	548	4220	36	
-630	552	4219	90	
-788	55	4218	26	
-122	572	4217	58	
-852	228	4216	38	
-124	348	4215	15	
-494	4	4214	22	
-148	235	4213	98	
-578	786	4212	87	
-984	892	4211	41	
-996	458	4210	67	
-497	638	4209	15	
-482	680	4208	84	
-344	202	4207	66	
-879	236	4206	27	
-344	928	4205	72	
-769	239	4204	63	
-448	111	4203	34	
-894	452	4202	56	
-434	743	4201	59	
-820	520	4200	98	
-957	311	4199	49	
-478	176	4198	1	
-966	395	4197	13	
-307	543	4196	46	
-689	97	4195	53	
-127	283	4194	57	
-659	777	4193	32	
-708	975	4192	55	
-222	604	4191	45	
-208	489	4190	61	
-135	484	4189	86	
-780	877	4188	47	
-852	672	4187	51	
-446	929	4186	65	
-813	960	4185	61	
-506	253	4184	56	
-801	766	4183	46	
-370	94	4182	95	
-115	845	4181	48	
-5	750	4180	1	
-607	383	4179	7	
-204	967	4178	35	
-742	852	4177	92	
-969	41	4176	40	
-706	54	4175	63	
-487	95	4174	30	
-671	516	4173	70	
-248	465	4172	43	
-95	471	4171	25	
-366	940	4170	11	
-416	717	4169	39	
-114	426	4168	40	
-810	522	4167	46	
-986	773	4166	77	
-959	325	4165	26	
-578	602	4164	21	
-50	273	4163	81	
-993	175	4162	42	
-531	144	4161	15	
-222	712	4160	72	
-291	994	4159	95	
-904	941	4158	30	
-749	687	4157	30	
-447	511	4156	82	
-722	42	4155	2	
-328	403	4154	38	
-98	392	4153	52	
-30	269	4152	5	
-432	425	4151	46	
-717	777	4150	30	
-53	648	4149	93	
-253	998	4148	38	
-176	479	4147	15	
-468	796	4146	30	
-639	646	4145	72	
-11	852	4144	39	
-122	472	4143	23	
-844	593	4142	6	
-647	154	4141	59	
-129	376	4140	71	
-650	544	4139	66	
-518	232	4138	79	
-683	853	4137	7	
-150	576	4136	70	
-794	330	4135	82	
-380	163	4134	62	
-878	162	4133	88	
-439	469	4132	27	
-777	883	4131	19	
-832	49	4130	51	
-311	864	4129	47	
-378	722	4128	13	
-277	369	4127	83	
-245	878	4126	53	
-167	201	4125	35	
-0	739	4124	41	
-693	610	4123	50	
-585	81	4122	43	
-833	678	4121	66	
-185	38	4120	94	
-141	347	4119	52	
-353	296	4118	93	
-490	302	4117	10	
-677	176	4116	3	
-461	942	4115	7	
-129	912	4114	16	
-528	62	4113	30	
-403	777	4112	10	
-639	715	4111	75	
-691	424	4110	64	
-50	587	4109	4	
-994	831	4108	78	
-125	69	4107	86	
-234	953	4106	81	
-30	911	4105	21	
-849	858	4104	33	
-284	200	4103	60	
-62	355	4102	12	
-291	103	4101	76	
-837	604	4100	94	
-756	255	4099	64	
-761	925	4098	5	
-115	48	4097	86	
-42	598	4096	89	
-52	882	4095	20	
-658	731	4094	18	
-844	475	4093	56	
-251	361	4092	22	
-499	815	4091	77	
-349	307	4090	45	
-329	584	4089	8	
-877	187	4088	99	
-450	977	4087	64	
-715	687	4086	7	
-151	23	4085	98	
-255	615	4084	39	
-114	343	4083	81	
-545	451	4082	59	
-507	316	4081	75	
-723	373	4080	14	
-396	86	4079	2	
-209	348	4078	45	
-289	571	4077	42	
-664	84	4076	73	
-408	594	4075	56	
-271	580	4074	89	
-891	220	4073	14	
-134	841	4072	56	
-943	602	4071	3	
-286	129	4070	78	
-737	568	4069	32	
-777	24	4068	18	
-487	692	4067	92	
-489	169	4066	62	
-13	668	4065	25	
-360	755	4064	13	
-379	571	4063	38	
-238	530	4062	75	
-473	254	4061	19	
-561	456	4060	65	
-543	139	4059	54	
-331	267	4058	96	
-522	294	4057	28	
-501	369	4056	99	
-912	119	4055	47	
-183	756	4054	65	
-41	623	4053	98	
-275	566	4052	14	
-797	534	4051	76	
-317	107	4050	91	
-872	589	4049	1	
-972	670	4048	21	
-925	292	4047	80	
-249	521	4046	2	
-363	822	4045	58	
-132	671	4044	72	
-57	841	4043	14	
-32	375	4042	76	
-426	852	4041	47	
-517	894	4040	48	
-919	805	4039	44	
-377	403	4038	90	
-771	787	4037	4	
-698	432	4036	67	
-150	859	4035	88	
-830	587	4034	23	
-465	375	4033	7	
-522	288	4032	2	
-958	997	4031	60	
-89	35	4030	90	
-402	544	4029	59	
-615	853	4028	54	
-354	370	4027	60	
-573	790	4026	7	
-271	655	4025	54	
-211	154	4024	31	
-87	50	4023	36	
-290	419	4022	94	
-961	696	4021	56	
-491	310	4020	86	
-690	56	4019	68	
-482	935	4018	78	
-580	533	4017	26	
-134	524	4016	78	
-500	228	4015	30	
-104	954	4014	5	
-630	421	4013	12	
-723	378	4012	79	
-385	695	4011	32	
-253	182	4010	46	
-121	899	4009	80	
-401	526	4008	20	
-9	478	4007	90	
-295	479	4006	44	
-273	242	4005	63	
-533	935	4004	39	
-42	327	4003	47	
-683	467	4002	90	
-513	859	4001	33	
-282	669	4000	13	
-372	592	3999	13	
-47	305	3998	72	
-999	457	3997	39	
-237	811	3996	71	
-307	238	3995	2	
-608	922	3994	74	
-859	566	3993	49	
-608	568	3992	35	
-189	206	3991	17	
-77	999	3990	23	
-287	411	3989	91	
-848	328	3988	32	
-645	678	3987	4	
-572	691	3986	76	
-315	282	3985	93	
-356	250	3984	69	
-998	131	3983	74	
-361	188	3982	25	
-206	940	3981	41	
-588	320	3980	11	
-82	584	3979	78	
-650	277	3978	43	
-986	286	3977	20	
-409	831	3976	7	
-31	230	3975	25	
-118	950	3974	95	
-942	496	3973	35	
-248	833	3972	63	
-620	305	3971	15	
-735	322	3970	61	
-307	351	3969	50	
-990	236	3968	43	
-454	129	3967	66	
-600	815	3966	57	
-280	297	3965	37	
-454	601	3964	91	
-663	721	3963	17	
-528	480	3962	69	
-982	537	3961	62	
-971	111	3960	88	
-115	74	3959	42	
-106	767	3958	31	
-314	86	3957	53	
-517	200	3956	85	
-696	464	3955	32	
-879	736	3954	82	
-240	483	3953	79	
-943	65	3952	13	
-425	743	3951	54	
-36	456	3950	1	
-307	110	3949	85	
-681	781	3948	0	
-886	681	3947	79	
-736	533	3946	79	
-728	495	3945	82	
-253	34	3944	81	
-418	656	3943	63	
-321	588	3942	29	
-286	535	3941	51	
-345	154	3940	38	
-329	847	3939	72	
-99	216	3938	62	
-148	996	3937	79	
-38	975	3936	14	
-460	4	3935	0	
-377	178	3934	47	
-68	341	3933	83	
-52	779	3932	9	
-381	129	3931	3	
-306	658	3930	94	
-631	104	3929	1	
-220	830	3928	23	
-20	645	3927	95	
-970	141	3926	11	
-826	533	3925	57	
-837	640	3924	8	
-561	738	3923	30	
-650	62	3922	1	
-470	93	3921	67	
-554	924	3920	7	
-273	785	3919	67	
-185	280	3918	41	
-503	839	3917	19	
-608	533	3916	5	
-893	494	3915	14	
-901	773	3914	98	
-676	292	3913	27	
-968	346	3912	91	
-168	594	3911	18	
-139	400	3910	91	
-505	263	3909	28	
-441	211	3908	8	
-305	148	3907	68	
-39	905	3906	89	
-720	155	3905	71	
-481	713	3904	99	
-946	364	3903	22	
-751	730	3902	70	
-194	264	3901	80	
-136	634	3900	2	
-52	193	3899	63	
-62	405	3898	6	
-243	787	3897	13	
-750	179	3896	26	
-441	724	3895	31	
-349	766	3894	23	
-633	518	3893	53	
-466	906	3892	19	
-630	771	3891	55	
-440	395	3890	5	
-788	569	3889	8	
-618	929	3888	98	
-608	868	3887	81	
-454	947	3886	49	
-958	79	3885	30	
-247	703	3884	9	
-611	340	3883	71	
-135	637	3882	16	
-376	499	3881	83	
-825	973	3880	19	
-640	95	3879	65	
-60	169	3878	16	
-920	326	3877	0	
-867	184	3876	15	
-376	216	3875	49	
-362	376	3874	71	
-703	548	3873	63	
-137	331	3872	47	
-526	645	3871	75	
-877	538	3870	55	
-925	482	3869	18	
-842	159	3868	58	
-142	856	3867	13	
-968	657	3866	5	
-840	786	3865	49	
-827	74	3864	1	
-217	160	3863	65	
-686	717	3862	56	
-107	207	3861	61	
-55	366	3860	64	
-322	604	3859	95	
-303	440	3858	8	
-199	86	3857	70	
-870	561	3856	17	
-712	477	3855	12	
-913	354	3854	1	
-443	92	3853	61	
-509	955	3852	53	
-841	962	3851	57	
-762	696	3850	5	
-163	869	3849	73	
-353	381	3848	1	
-525	527	3847	10	
-83	45	3846	32	
-122	115	3845	15	
-262	402	3844	79	
-137	79	3843	47	
-992	951	3842	93	
-265	527	3841	66	
-827	318	3840	7	
-487	713	3839	59	
-854	914	3838	80	
-481	775	3837	82	
-930	169	3836	44	
-713	360	3835	96	
-322	327	3834	86	
-127	536	3833	12	
-424	266	3832	14	
-208	588	3831	72	
-605	479	3830	43	
-798	789	3829	33	
-138	981	3828	63	
-606	385	3827	37	
-809	481	3826	55	
-32	100	3825	21	
-791	735	3824	39	
-269	980	3823	19	
-677	417	3822	70	
-108	288	3821	21	
-690	98	3820	60	
-807	707	3819	80	
-595	259	3818	65	
-903	822	3817	53	
-381	334	3816	79	
-364	826	3815	77	
-755	195	3814	24	
-562	492	3813	52	
-128	486	3812	59	
-190	613	3811	56	
-391	796	3810	41	
-448	146	3809	88	
-437	127	3808	21	
-487	735	3807	69	
-508	20	3806	52	
-631	535	3805	1	
-703	719	3804	60	
-5	930	3803	19	
-873	22	3802	43	
-816	150	3801	93	
-650	535	3800	79	
-19	670	3799	94	
-391	519	3798	1	
-715	169	3797	94	
-484	504	3796	97	
-816	408	3795	87	
-789	416	3794	92	
-907	758	3793	69	
-872	496	3792	13	
-614	139	3791	5	
-865	855	3790	16	
-151	932	3789	63	
-350	61	3788	62	
-664	969	3787	67	
-96	102	3786	23	
-992	949	3785	66	
-658	229	3784	2	
-262	566	3783	88	
-356	74	3782	3	
-283	890	3781	25	
-923	534	3780	74	
-870	3	3779	71	
-92	952	3778	80	
-866	444	3777	68	
-153	563	3776	56	
-719	640	3775	10	
-663	145	3774	33	
-491	846	3773	39	
-183	778	3772	90	
-356	507	3771	7	
-531	35	3770	35	
-51	913	3769	5	
-507	115	3768	77	
-881	116	3767	22	
-922	464	3766	71	
-494	769	3765	43	
-299	938	3764	5	
-68	490	3763	17	
-270	832	3762	30	
-471	713	3761	82	
-122	306	3760	82	
-797	275	3759	48	
-999	552	3758	54	
-651	512	3757	62	
-695	279	3756	95	
-830	378	3755	42	
-447	883	3754	19	
-658	864	3753	23	
-118	479	3752	79	
-407	2	3751	79	
-30	344	3750	34	
-722	937	3749	32	
-40	916	3748	79	
-232	668	3747	34	
-900	530	3746	95	
-494	232	3745	86	
-18	963	3744	38	
-385	434	3743	78	
-477	998	3742	53	
-658	449	3741	71	
-407	23	3740	37	
-20	527	3739	30	
-248	450	3738	68	
-137	391	3737	80	
-297	91	3736	33	
-268	481	3735	40	
-529	593	3734	47	
-435	249	3733	63	
-548	828	3732	90	
-425	334	3731	81	
-496	68	3730	25	
-76	626	3729	38	
-59	873	3728	77	
-300	475	3727	11	
-609	925	3726	83	
-888	930	3725	2	
-343	841	3724	73	
-421	725	3723	9	
-494	88	3722	88	
-265	568	3721	12	
-441	863	3720	92	
-752	614	3719	42	
-397	662	3718	1	
-550	270	3717	75	
-994	811	3716	69	
-88	289	3715	72	
-116	645	3714	54	
-637	207	3713	92	
-520	764	3712	92	
-704	193	3711	22	
-249	508	3710	82	
-952	403	3709	68	
-391	258	3708	35	
-459	67	3707	84	
-521	970	3706	55	
-644	175	3705	90	
-437	622	3704	97	
-443	995	3703	47	
-570	698	3702	11	
-685	404	3701	81	
-105	135	3700	45	
-144	333	3699	29	
-191	507	3698	56	
-96	291	3697	93	
-794	649	3696	93	
-553	933	3695	87	
-626	493	3694	20	
-297	362	3693	99	
-294	301	3692	87	
-268	359	3691	88	
-801	158	3690	57	
-826	736	3689	96	
-215	628	3688	95	
-642	994	3687	9	
-715	60	3686	30	
-440	670	3685	24	
-131	212	3684	92	
-60	121	3683	32	
-941	988	3682	0	
-201	305	3681	2	
-421	618	3680	46	
-107	7	3679	97	
-634	859	3678	61	
-933	791	3677	57	
-390	60	3676	92	
-458	315	3675	27	
-90	596	3674	30	
-133	327	3673	7	
-683	976	3672	11	
-686	558	3671	74	
-611	491	3670	77	
-147	364	3669	31	
-67	37	3668	47	
-731	646	3667	70	
-745	651	3666	54	
-718	966	3665	93	
-269	238	3664	36	
-350	951	3663	95	
-418	379	3662	45	
-66	960	3661	99	
-127	465	3660	7	
-326	840	3659	46	
-391	772	3658	8	
-995	157	3657	33	
-684	610	3656	98	
-728	564	3655	2	
-287	409	3654	44	
-572	507	3653	91	
-418	453	3652	93	
-494	922	3651	35	
-625	610	3650	93	
-67	383	3649	80	
-614	744	3648	93	
-546	349	3647	39	
-45	959	3646	31	
-155	577	3645	95	
-901	529	3644	44	
-54	987	3643	71	
-531	580	3642	15	
-311	411	3641	92	
-227	138	3640	86	
-639	866	3639	55	
-394	537	3638	45	
-390	85	3637	6	
-382	355	3636	50	
-47	513	3635	89	
-542	726	3634	25	
-406	561	3633	84	
-168	229	3632	52	
-273	54	3631	21	
-271	312	3630	8	
-328	104	3629	58	
-451	385	3628	24	
-730	566	3627	0	
-841	610	3626	0	
-787	636	3625	33	
-165	406	3624	50	
-331	323	3623	13	
-175	303	3622	23	
-742	135	3621	89	
-207	496	3620	0	
-719	342	3619	94	
-818	241	3618	87	
-956	995	3617	72	
-973	673	3616	88	
-230	828	3615	5	
-82	370	3614	62	
-20	897	3613	83	
-167	342	3612	15	
-639	894	3611	43	
-154	58	3610	53	
-100	65	3609	48	
-245	155	3608	90	
-321	832	3607	86	
-845	834	3606	98	
-457	431	3605	74	
-473	789	3604	14	
-554	676	3603	6	
-448	723	3602	85	
-835	898	3601	52	
-992	45	3600	48	
-910	587	3599	5	
-322	39	3598	85	
-998	878	3597	92	
-403	239	3596	47	
-642	595	3595	38	
-112	85	3594	98	
-953	209	3593	91	
-824	324	3592	10	
-853	42	3591	61	
-458	431	3590	84	
-548	198	3589	8	
-160	930	3588	58	
-639	447	3587	32	
-643	89	3586	59	
-509	403	3585	76	
-876	65	3584	53	
-884	812	3583	15	
-281	493	3582	12	
-611	769	3581	97	
-233	760	3580	39	
-267	494	3579	90	
-483	262	3578	38	
-358	729	3577	52	
-686	834	3576	99	
-337	229	3575	13	
-253	372	3574	63	
-318	28	3573	99	
-723	158	3572	60	
-9	576	3571	67	
-265	485	3570	37	
-232	522	3569	96	
-533	866	3568	78	
-895	525	3567	12	
-604	861	3566	67	
-857	500	3565	34	
-343	641	3564	8	
-870	387	3563	93	
-582	933	3562	59	
-91	292	3561	71	
-962	412	3560	74	
-655	181	3559	3	
-341	658	3558	69	
-663	453	3557	63	
-360	323	3556	29	
-858	265	3555	74	
-253	148	3554	51	
-454	340	3553	47	
-641	880	3552	28	
-879	970	3551	49	
-231	710	3550	12	
-522	334	3549	30	
-205	61	3548	31	
-129	347	3547	67	
-58	543	3546	30	
-117	232	3545	50	
-807	40	3544	60	
-460	185	3543	79	
-909	796	3542	81	
-259	362	3541	76	
-376	821	3540	64	
-273	992	3539	70	
-713	636	3538	31	
-803	374	3537	7	
-311	801	3536	7	
-192	897	3535	94	
-854	805	3534	30	
-389	985	3533	34	
-433	51	3532	55	
-541	114	3531	65	
-828	937	3530	88	
-356	393	3529	10	
-262	240	3528	55	
-572	4	3527	91	
-904	130	3526	49	
-91	631	3525	11	
-820	963	3524	33	
-933	795	3523	46	
-937	900	3522	95	
-176	766	3521	89	
-544	780	3520	71	
-153	543	3519	47	
-235	648	3518	9	
-873	418	3517	69	
-499	373	3516	66	
-667	781	3515	81	
-167	872	3514	27	
-895	508	3513	88	
-133	64	3512	99	
-986	178	3511	76	
-237	241	3510	63	
-894	378	3509	39	
-230	403	3508	91	
-45	21	3507	36	
-592	855	3506	37	
-908	541	3505	83	
-364	384	3504	50	
-444	890	3503	27	
-886	235	3502	76	
-936	128	3501	14	
-862	240	3500	74	
-975	474	3499	34	
-381	555	3498	66	
-165	987	3497	18	
-313	543	3496	45	
-157	330	3495	68	
-494	228	3494	54	
-654	510	3493	91	
-107	614	3492	55	
-887	399	3491	94	
-766	405	3490	7	
-918	679	3489	88	
-568	478	3488	59	
-444	732	3487	21	
-212	769	3486	85	
-102	139	3485	15	
-718	624	3484	66	
-895	361	3483	83	
-215	608	3482	54	
-993	875	3481	21	
-726	187	3480	12	
-200	292	3479	84	
-745	378	3478	35	
-963	364	3477	12	
-629	695	3476	23	
-515	493	3475	10	
-262	823	3474	38	
-752	292	3473	82	
-733	327	3472	68	
-687	99	3471	22	
-895	272	3470	26	
-914	498	3469	52	
-14	226	3468	45	
-668	892	3467	78	
-201	122	3466	33	
-670	726	3465	11	
-530	560	3464	25	
-965	142	3463	50	
-227	458	3462	1	
-827	954	3461	4	
-773	742	3460	79	
-271	70	3459	98	
-334	672	3458	90	
-769	448	3457	34	
-395	221	3456	46	
-165	860	3455	53	
-418	743	3454	13	
-683	490	3453	56	
-504	973	3452	73	
-211	253	3451	40	
-672	811	3450	5	
-397	80	3449	50	
-224	554	3448	93	
-226	878	3447	56	
-360	934	3446	37	
-116	392	3445	23	
-253	573	3444	74	
-517	828	3443	73	
-719	337	3442	17	
-442	346	3441	29	
-730	551	3440	53	
-526	564	3439	27	
-676	373	3438	17	
-943	190	3437	99	
-542	143	3436	86	
-819	483	3435	24	
-745	11	3434	86	
-490	556	3433	73	
-990	885	3432	79	
-795	753	3431	27	
-987	265	3430	71	
-190	101	3429	20	
-183	175	3428	84	
-46	131	3427	73	
-660	621	3426	40	
-472	380	3425	72	
-454	127	3424	7	
-671	938	3423	25	
-132	520	3422	50	
-488	564	3421	19	
-163	507	3420	80	
-925	354	3419	79	
-43	117	3418	0	
-510	330	3417	13	
-240	679	3416	38	
-253	648	3415	18	
-189	819	3414	1	
-417	753	3413	78	
-956	305	3412	53	
-57	386	3411	64	
-153	11	3410	32	
-236	789	3409	23	
-787	869	3408	88	
-651	750	3407	53	
-30	198	3406	26	
-829	170	3405	98	
-65	234	3404	6	
-448	244	3403	77	
-919	894	3402	46	
-374	320	3401	89	
-222	86	3400	90	
-919	355	3399	91	
-119	348	3398	44	
-552	264	3397	13	
-28	281	3396	62	
-936	924	3395	20	
-989	291	3394	76	
-349	310	3393	61	
-574	562	3392	52	
-233	994	3391	54	
-730	988	3390	15	
-7	466	3389	30	
-83	314	3388	80	
-983	514	3387	56	
-357	420	3386	52	
-632	436	3385	9	
-980	146	3384	94	
-748	88	3383	63	
-567	984	3382	77	
-6	392	3381	34	
-521	849	3380	50	
-151	501	3379	72	
-799	233	3378	92	
-94	42	3377	10	
-983	431	3376	62	
-290	145	3375	72	
-58	307	3374	65	
-104	864	3373	23	
-592	434	3372	18	
-542	837	3371	56	
-347	780	3370	48	
-268	798	3369	36	
-190	823	3368	35	
-610	474	3367	70	
-286	901	3366	11	
-837	72	3365	69	
-443	418	3364	23	
-429	52	3363	95	
-596	618	3362	51	
-57	76	3361	4	
-981	114	3360	19	
-975	17	3359	7	
-349	647	3358	7	
-572	593	3357	58	
-828	418	3356	32	
-654	460	3355	44	
-366	278	3354	39	
-433	441	3353	1	
-542	462	3352	83	
-962	855	3351	53	
-97	114	3350	7	
-370	2	3349	0	
-53	497	3348	62	
-174	255	3347	77	
-958	875	3346	74	
-182	54	3345	17	
-836	380	3344	28	
-979	181	3343	93	
-606	292	3342	89	
-741	464	3341	58	
-111	68	3340	86	
-505	380	3339	72	
-241	848	3338	31	
-380	33	3337	87	
-820	569	3336	21	
-673	886	3335	77	
-199	355	3334	34	
-888	41	3333	85	
-828	311	3332	37	
-395	715	3331	86	
-687	138	3330	62	
-532	410	3329	60	
-815	437	3328	26	
-464	662	3327	86	
-682	441	3326	55	
-531	429	3325	14	
-313	488	3324	47	
-730	483	3323	31	
-595	507	3322	6	
-577	236	3321	43	
-727	22	3320	70	
-973	342	3319	15	
-775	403	3318	71	
-221	301	3317	35	
-11	412	3316	78	
-941	672	3315	15	
-5	164	3314	21	
-975	249	3313	58	
-271	627	3312	13	
-213	725	3311	1	
-680	552	3310	84	
-938	438	3309	75	
-102	366	3308	19	
-888	569	3307	55	
-739	630	3306	20	
-508	933	3305	7	
-914	634	3304	93	
-621	448	3303	2	
-902	115	3302	70	
-172	169	3301	5	
-113	94	3300	53	
-72	557	3299	74	
-796	643	3298	83	
-939	344	3297	21	
-696	139	3296	14	
-298	134	3295	23	
-186	906	3294	59	
-332	325	3293	29	
-946	646	3292	71	
-74	524	3291	72	
-537	791	3290	5	
-913	904	3289	4	
-299	623	3288	27	
-204	64	3287	85	
-5	917	3286	24	
-228	637	3285	39	
-580	301	3284	11	
-679	573	3283	85	
-121	988	3282	38	
-732	670	3281	87	
-887	17	3280	53	
-281	765	3279	62	
-558	419	3278	61	
-147	613	3277	9	
-279	844	3276	19	
-336	285	3275	77	
-727	259	3274	64	
-584	467	3273	90	
-318	514	3272	55	
-653	334	3271	38	
-251	912	3270	84	
-346	9	3269	60	
-805	519	3268	72	
-769	896	3267	41	
-559	421	3266	86	
-26	129	3265	94	
-792	746	3264	60	
-953	343	3263	14	
-179	169	3262	26	
-422	543	3261	66	
-903	239	3260	40	
-489	882	3259	90	
-623	312	3258	54	
-474	542	3257	3	
-291	925	3256	21	
-383	334	3255	53	
-403	465	3254	23	
-173	876	3253	83	
-626	601	3252	77	
-303	263	3251	75	
-356	496	3250	51	
-570	364	3249	41	
-769	505	3248	86	
-617	825	3247	14	
-590	677	3246	18	
-869	299	3245	90	
-588	394	3244	98	
-275	65	3243	22	
-338	16	3242	54	
-767	238	3241	32	
-131	104	3240	94	
-859	547	3239	78	
-679	716	3238	80	
-147	965	3237	15	
-378	275	3236	2	
-904	927	3235	72	
-329	750	3234	28	
-48	682	3233	31	
-777	224	3232	93	
-133	376	3231	57	
-557	160	3230	63	
-831	985	3229	27	
-750	649	3228	17	
-690	124	3227	53	
-347	306	3226	76	
-177	439	3225	47	
-67	968	3224	57	
-458	376	3223	28	
-847	365	3222	27	
-216	935	3221	64	
-175	363	3220	57	
-335	92	3219	72	
-525	648	3218	8	
-818	762	3217	6	
-866	295	3216	34	
-471	899	3215	17	
-591	293	3214	10	
-11	10	3213	60	
-429	626	3212	61	
-572	67	3211	63	
-271	850	3210	4	
-443	645	3209	83	
-886	19	3208	81	
-466	717	3207	70	
-395	172	3206	95	
-605	60	3205	39	
-283	500	3204	87	
-383	998	3203	58	
-559	978	3202	58	
-216	590	3201	85	
-204	201	3200	30	
-626	29	3199	82	
-301	103	3198	55	
-545	755	3197	41	
-111	556	3196	7	
-559	515	3195	78	
-502	299	3194	32	
-19	997	3193	90	
-388	725	3192	82	
-389	555	3191	34	
-172	474	3190	1	
-925	269	3189	57	
-348	138	3188	32	
-198	348	3187	75	
-41	280	3186	43	
-215	467	3185	55	
-301	422	3184	5	
-272	75	3183	48	
-170	481	3182	63	
-81	330	3181	99	
-204	433	3180	21	
-131	254	3179	24	
-789	568	3178	57	
-67	322	3177	15	
-813	882	3176	15	
-45	494	3175	82	
-346	573	3174	91	
-594	852	3173	2	
-150	632	3172	10	
-897	781	3171	8	
-178	970	3170	87	
-685	670	3169	7	
-246	426	3168	34	
-439	993	3167	72	
-388	330	3166	25	
-920	913	3165	76	
-721	883	3164	69	
-219	928	3163	75	
-850	12	3162	44	
-810	212	3161	25	
-300	803	3160	71	
-243	731	3159	49	
-432	620	3158	43	
-663	467	3157	80	
-417	485	3156	5	
-29	70	3155	46	
-955	945	3154	19	
-915	309	3153	50	
-799	190	3152	36	
-409	533	3151	4	
-72	226	3150	51	
-110	53	3149	5	
-153	632	3148	81	
-981	755	3147	76	
-415	584	3146	24	
-124	268	3145	38	
-636	697	3144	7	
-118	132	3143	3	
-656	328	3142	11	
-307	529	3141	39	
-172	453	3140	33	
-420	245	3139	96	
-877	42	3138	95	
-171	522	3137	17	
-315	858	3136	56	
-571	312	3135	29	
-564	35	3134	48	
-803	922	3133	51	
-798	726	3132	46	
-76	53	3131	34	
-208	374	3130	13	
-203	5	3129	75	
-519	783	3128	54	
-663	607	3127	70	
-546	273	3126	85	
-277	804	3125	74	
-112	969	3124	0	
-196	55	3123	76	
-673	113	3122	0	
-678	213	3121	72	
-369	383	3120	86	
-221	208	3119	0	
-176	837	3118	68	
-334	850	3117	85	
-469	112	3116	11	
-834	736	3115	26	
-914	246	3114	16	
-942	755	3113	91	
-899	282	3112	52	
-829	854	3111	99	
-175	862	3110	30	
-371	321	3109	14	
-986	828	3108	4	
-738	737	3107	84	
-375	848	3106	86	
-489	104	3105	63	
-490	248	3104	92	
-473	393	3103	97	
-427	528	3102	4	
-992	685	3101	7	
-541	161	3100	65	
-492	102	3099	80	
-90	202	3098	38	
-889	976	3097	24	
-744	230	3096	36	
-856	714	3095	88	
-855	948	3094	99	
-864	929	3093	1	
-842	971	3092	4	
-524	416	3091	43	
-58	849	3090	45	
-899	420	3089	4	
-226	135	3088	40	
-746	886	3087	20	
-516	476	3086	14	
-765	887	3085	88	
-18	981	3084	0	
-958	971	3083	99	
-555	610	3082	2	
-566	984	3081	31	
-429	401	3080	46	
-284	646	3079	15	
-249	200	3078	67	
-410	56	3077	47	
-588	257	3076	22	
-906	886	3075	75	
-9	10	3074	74	
-360	968	3073	6	
-626	704	3072	40	
-582	851	3071	98	
-755	307	3070	13	
-445	484	3069	14	
-144	193	3068	3	
-798	250	3067	83	
-370	478	3066	82	
-876	3	3065	68	
-41	686	3064	89	
-264	658	3063	64	
-852	413	3062	73	
-543	851	3061	4	
-822	992	3060	82	
-291	110	3059	30	
-943	195	3058	30	
-771	17	3057	34	
-474	138	3056	42	
-317	786	3055	49	
-28	248	3054	83	
-244	913	3053	77	
-561	690	3052	41	
-859	216	3051	30	
-881	517	3050	72	
-915	8	3049	53	
-177	954	3048	34	
-879	917	3047	17	
-352	934	3046	29	
-537	659	3045	15	
-334	57	3044	28	
-222	366	3043	78	
-474	102	3042	68	
-698	588	3041	70	
-508	189	3040	97	
-53	183	3039	96	
-37	176	3038	73	
-982	874	3037	29	
-275	139	3036	52	
-602	869	3035	81	
-691	504	3034	20	
-263	100	3033	11	
-514	980	3032	74	
-398	725	3031	77	
-5	10	3030	19	
-7	228	3029	45	
-301	439	3028	1	
-734	771	3027	5	
-270	711	3026	70	
-364	611	3025	67	
-403	91	3024	91	
-120	363	3023	42	
-254	972	3022	74	
-714	585	3021	11	
-781	734	3020	39	
-788	439	3019	99	
-668	960	3018	70	
-59	348	3017	56	
-100	33	3016	46	
-519	762	3015	90	
-728	483	3014	96	
-390	678	3013	28	
-387	633	3012	86	
-850	722	3011	54	
-295	395	3010	93	
-478	291	3009	99	
-611	138	3008	12	
-315	103	3007	60	
-271	557	3006	95	
-278	945	3005	58	
-805	677	3004	79	
-44	418	3003	33	
-910	325	3002	0	
-327	607	3001	53	
-103	940	3000	55	
-153	872	2999	81	
-34	512	2998	86	
-546	648	2997	29	
-611	379	2996	4	
-268	788	2995	99	
-258	453	2994	47	
-92	334	2993	76	
-717	466	2992	13	
-667	981	2991	58	
-67	737	2990	22	
-359	950	2989	95	
-863	570	2988	11	
-269	252	2987	48	
-590	51	2986	93	
-335	519	2985	34	
-118	712	2984	0	
-868	626	2983	16	
-484	550	2982	37	
-244	360	2981	5	
-786	272	2980	59	
-380	832	2979	70	
-317	630	2978	49	
-200	553	2977	59	
-532	591	2976	67	
-807	333	2975	25	
-85	843	2974	21	
-76	790	2973	25	
-189	324	2972	38	
-88	451	2971	23	
-440	891	2970	45	
-201	212	2969	40	
-76	902	2968	6	
-962	915	2967	11	
-257	423	2966	66	
-489	38	2965	72	
-52	966	2964	72	
-466	866	2963	0	
-873	144	2962	88	
-560	781	2961	10	
-679	52	2960	64	
-310	342	2959	23	
-986	946	2958	12	
-491	448	2957	11	
-385	943	2956	70	
-72	3	2955	76	
-99	713	2954	43	
-722	120	2953	58	
-362	786	2952	59	
-729	452	2951	31	
-709	409	2950	88	
-396	112	2949	36	
-497	11	2948	32	
-505	408	2947	49	
-940	937	2946	10	
-289	331	2945	31	
-592	850	2944	97	
-334	993	2943	37	
-333	279	2942	35	
-43	432	2941	63	
-297	511	2940	1	
-101	45	2939	31	
-602	827	2938	89	
-471	390	2937	99	
-605	792	2936	56	
-480	340	2935	65	
-857	594	2934	69	
-713	17	2933	25	
-847	726	2932	0	
-920	613	2931	29	
-466	706	2930	74	
-218	413	2929	19	
-436	907	2928	49	
-598	427	2927	13	
-451	914	2926	86	
-746	954	2925	12	
-576	437	2924	62	
-291	257	2923	14	
-112	710	2922	86	
-906	544	2921	92	
-292	549	2920	45	
-506	697	2919	24	
-479	368	2918	78	
-513	264	2917	83	
-959	740	2916	14	
-516	501	2915	70	
-180	479	2914	16	
-547	278	2913	28	
-166	938	2912	17	
-994	472	2911	20	
-852	207	2910	61	
-329	465	2909	78	
-103	943	2908	2	
-524	691	2907	96	
-238	441	2906	55	
-22	535	2905	44	
-201	884	2904	33	
-339	106	2903	63	
-465	972	2902	38	
-265	591	2901	17	
-741	828	2900	14	
-522	758	2899	52	
-251	60	2898	22	
-250	413	2897	57	
-906	109	2896	28	
-651	107	2895	21	
-777	703	2894	82	
-134	251	2893	86	
-380	209	2892	87	
-763	29	2891	19	
-69	618	2890	52	
-698	297	2889	21	
-647	646	2888	27	
-303	294	2887	0	
-2	68	2886	34	
-404	396	2885	25	
-451	958	2884	87	
-42	987	2883	64	
-179	674	2882	75	
-411	675	2881	61	
-321	304	2880	69	
-650	948	2879	37	
-352	269	2878	5	
-225	656	2877	34	
-672	89	2876	30	
-437	380	2875	59	
-970	231	2874	95	
-313	888	2873	40	
-999	136	2872	86	
-370	922	2871	76	
-355	323	2870	9	
-679	319	2869	67	
-613	707	2868	29	
-566	43	2867	12	
-709	701	2866	55	
-148	646	2865	23	
-342	543	2864	46	
-751	546	2863	65	
-214	93	2862	31	
-598	678	2861	62	
-4	419	2860	1	
-612	372	2859	67	
-663	171	2858	6	
-341	573	2857	4	
-55	318	2856	85	
-102	767	2855	56	
-996	809	2854	80	
-453	343	2853	59	
-415	686	2852	53	
-258	612	2851	61	
-47	338	2850	59	
-200	610	2849	39	
-598	19	2848	94	
-254	188	2847	32	
-550	296	2846	28	
-958	754	2845	95	
-466	214	2844	10	
-657	53	2843	54	
-73	921	2842	3	
-274	22	2841	15	
-728	201	2840	21	
-590	444	2839	84	
-831	626	2838	60	
-891	35	2837	34	
-541	333	2836	70	
-540	846	2835	59	
-160	563	2834	49	
-132	505	2833	80	
-899	881	2832	58	
-820	945	2831	79	
-757	363	2830	54	
-817	245	2829	13	
-590	258	2828	75	
-702	639	2827	93	
-486	111	2826	34	
-283	99	2825	0	
-57	683	2824	37	
-623	224	2823	2	
-936	785	2822	23	
-581	253	2821	7	
-118	407	2820	6	
-986	378	2819	93	
-618	819	2818	22	
-528	589	2817	88	
-12	348	2816	21	
-416	621	2815	20	
-458	351	2814	22	
-439	794	2813	43	
-532	154	2812	68	
-845	15	2811	35	
-29	123	2810	46	
-559	712	2809	13	
-229	339	2808	36	
-241	671	2807	9	
-726	13	2806	51	
-270	977	2805	59	
-557	791	2804	95	
-639	746	2803	1	
-139	332	2802	90	
-892	891	2801	68	
-410	331	2800	81	
-372	763	2799	47	
-668	278	2798	32	
-658	574	2797	98	
-35	920	2796	51	
-185	638	2795	45	
-44	938	2794	71	
-413	111	2793	91	
-441	220	2792	50	
-559	871	2791	24	
-568	345	2790	48	
-484	141	2789	3	
-703	340	2788	70	
-654	473	2787	0	
-281	59	2786	62	
-700	743	2785	85	
-826	793	2784	14	
-891	418	2783	63	
-349	253	2782	97	
-525	764	2781	88	
-204	443	2780	99	
-800	333	2779	8	
-867	694	2778	78	
-414	387	2777	4	
-315	772	2776	37	
-949	708	2775	58	
-375	510	2774	87	
-164	658	2773	93	
-489	89	2772	54	
-320	892	2771	82	
-110	906	2770	32	
-639	302	2769	40	
-307	731	2768	93	
-615	677	2767	45	
-63	792	2766	9	
-198	706	2765	36	
-852	939	2764	57	
-568	393	2763	21	
-197	718	2762	67	
-985	502	2761	16	
-603	917	2760	21	
-571	470	2759	47	
-54	479	2758	33	
-885	354	2757	69	
-85	733	2756	55	
-767	791	2755	86	
-545	363	2754	34	
-674	535	2753	28	
-215	505	2752	37	
-585	959	2751	21	
-446	739	2750	38	
-990	138	2749	3	
-125	639	2748	51	
-620	140	2747	16	
-942	686	2746	79	
-427	518	2745	31	
-828	62	2744	22	
-29	912	2743	87	
-546	159	2742	45	
-219	830	2741	63	
-600	350	2740	13	
-498	514	2739	45	
-499	348	2738	86	
-453	369	2737	50	
-167	481	2736	67	
-456	96	2735	51	
-150	350	2734	59	
-753	412	2733	79	
-328	828	2732	48	
-480	492	2731	32	
-835	682	2730	61	
-165	590	2729	10	
-979	360	2728	99	
-887	826	2727	4	
-384	163	2726	28	
-746	915	2725	71	
-937	801	2724	30	
-584	314	2723	39	
-336	156	2722	42	
-809	708	2721	84	
-91	516	2720	64	
-230	102	2719	67	
-534	954	2718	18	
-662	758	2717	9	
-247	574	2716	50	
-114	405	2715	63	
-486	908	2714	80	
-158	972	2713	35	
-447	575	2712	24	
-191	204	2711	52	
-414	973	2710	71	
-147	483	2709	86	
-195	95	2708	69	
-184	588	2707	87	
-169	864	2706	41	
-496	830	2705	13	
-935	454	2704	62	
-397	105	2703	32	
-370	721	2702	71	
-230	809	2701	25	
-490	856	2700	77	
-388	165	2699	26	
-507	824	2698	95	
-723	457	2697	1	
-34	281	2696	1	
-375	504	2695	67	
-348	300	2694	56	
-384	617	2693	53	
-912	454	2692	2	
-953	478	2691	14	
-690	510	2690	74	
-341	314	2689	10	
-366	940	2688	88	
-176	996	2687	78	
-776	342	2686	68	
-203	111	2685	65	
-683	22	2684	2	
-162	512	2683	96	
-975	886	2682	47	
-968	399	2681	95	
-196	639	2680	26	
-373	220	2679	34	
-943	98	2678	97	
-654	93	2677	19	
-230	31	2676	39	
-89	631	2675	57	
-510	63	2674	51	
-625	491	2673	52	
-487	513	2672	18	
-760	696	2671	0	
-419	912	2670	77	
-122	375	2669	82	
-4	783	2668	42	
-62	791	2667	28	
-400	826	2666	42	
-567	53	2665	14	
-571	998	2664	57	
-978	334	2663	88	
-816	178	2662	13	
-783	235	2661	72	
-537	949	2660	34	
-591	392	2659	29	
-992	140	2658	11	
-964	864	2657	94	
-773	283	2656	66	
-54	561	2655	83	
-663	694	2654	99	
-156	745	2653	59	
-943	411	2652	16	
-285	386	2651	3	
-557	43	2650	24	
-251	179	2649	94	
-276	176	2648	59	
-581	279	2647	2	
-721	829	2646	19	
-866	836	2645	71	
-949	402	2644	39	
-334	431	2643	50	
-25	128	2642	21	
-342	786	2641	65	
-864	299	2640	72	
-3	348	2639	30	
-896	570	2638	97	
-449	836	2637	69	
-993	472	2636	85	
-434	327	2635	85	
-970	883	2634	91	
-302	294	2633	61	
-342	555	2632	30	
-487	928	2631	68	
-951	423	2630	47	
-777	329	2629	86	
-733	280	2628	10	
-364	835	2627	44	
-144	3	2626	45	
-444	937	2625	55	
-588	303	2624	46	
-739	305	2623	66	
-626	626	2622	96	
-505	204	2621	85	
-93	617	2620	53	
-48	754	2619	17	
-445	659	2618	4	
-831	990	2617	36	
-66	897	2616	22	
-634	95	2615	69	
-997	795	2614	85	
-678	707	2613	84	
-422	106	2612	11	
-586	318	2611	12	
-862	361	2610	41	
-95	129	2609	4	
-668	675	2608	60	
-93	148	2607	61	
-801	520	2606	76	
-300	844	2605	43	
-87	6	2604	63	
-601	735	2603	31	
-787	992	2602	25	
-956	709	2601	83	
-232	366	2600	72	
-454	441	2599	76	
-526	990	2598	42	
-628	848	2597	57	
-676	333	2596	29	
-837	795	2595	50	
-270	317	2594	21	
-743	62	2593	48	
-283	420	2592	81	
-342	111	2591	83	
-925	957	2590	72	
-451	339	2589	77	
-142	852	2588	92	
-514	282	2587	89	
-538	791	2586	95	
-477	287	2585	83	
-255	726	2584	56	
-642	672	2583	52	
-309	983	2582	45	
-153	105	2581	94	
-617	946	2580	41	
-487	850	2579	47	
-569	29	2578	30	
-490	945	2577	62	
-504	114	2576	97	
-561	271	2575	6	
-54	39	2574	22	
-688	67	2573	61	
-877	518	2572	33	
-159	524	2571	15	
-96	942	2570	53	
-820	165	2569	13	
-84	681	2568	91	
-831	651	2567	7	
-842	915	2566	98	
-231	839	2565	94	
-972	609	2564	50	
-548	279	2563	36	
-994	177	2562	81	
-581	619	2561	71	
-777	405	2560	6	
-483	213	2559	27	
-30	838	2558	73	
-736	91	2557	25	
-75	44	2556	98	
-229	435	2555	61	
-329	141	2554	25	
-101	554	2553	42	
-558	91	2552	55	
-213	656	2551	41	
-191	786	2550	80	
-375	540	2549	29	
-746	483	2548	45	
-47	263	2547	29	
-608	378	2546	66	
-294	351	2545	84	
-587	835	2544	90	
-462	869	2543	22	
-435	141	2542	54	
-870	609	2541	34	
-246	509	2540	2	
-56	841	2539	81	
-219	158	2538	62	
-885	634	2537	69	
-26	814	2536	43	
-515	945	2535	31	
-966	672	2534	70	
-728	685	2533	12	
-531	198	2532	2	
-100	322	2531	56	
-667	206	2530	62	
-682	186	2529	18	
-523	931	2528	83	
-820	258	2527	33	
-868	125	2526	85	
-273	607	2525	51	
-987	582	2524	54	
-486	96	2523	23	
-876	462	2522	19	
-115	941	2521	43	
-20	434	2520	43	
-254	352	2519	98	
-672	502	2518	15	
-133	475	2517	70	
-518	347	2516	95	
-24	961	2515	59	
-486	312	2514	28	
-634	40	2513	50	
-521	765	2512	61	
-506	999	2511	76	
-81	447	2510	9	
-850	826	2509	76	
-26	455	2508	58	
-127	751	2507	53	
-386	357	2506	61	
-649	308	2505	49	
-272	785	2504	53	
-274	889	2503	85	
-766	849	2502	11	
-552	666	2501	1	
-621	328	2500	42	
-370	184	2499	23	
-703	41	2498	82	
-394	925	2497	89	
-48	120	2496	74	
-522	956	2495	73	
-896	685	2494	37	
-39	738	2493	99	
-183	98	2492	50	
-338	589	2491	21	
-143	194	2490	93	
-143	407	2489	25	
-116	925	2488	66	
-804	157	2487	30	
-164	4	2486	34	
-270	359	2485	52	
-946	379	2484	62	
-640	488	2483	85	
-509	294	2482	85	
-395	282	2481	84	
-786	681	2480	19	
-482	583	2479	0	
-767	357	2478	2	
-152	963	2477	31	
-645	818	2476	64	
-979	900	2475	89	
-890	769	2474	32	
-194	0	2473	30	
-12	11	2472	13	
-601	650	2471	11	
-97	195	2470	60	
-225	973	2469	30	
-393	714	2468	71	
-145	672	2467	61	
-918	746	2466	50	
-130	570	2465	66	
-769	16	2464	8	
-989	176	2463	69	
-361	16	2462	18	
-454	505	2461	41	
-221	303	2460	50	
-259	590	2459	87	
-42	98	2458	83	
-926	108	2457	24	
-175	841	2456	22	
-553	576	2455	78	
-840	392	2454	36	
-159	515	2453	78	
-511	770	2452	62	
-202	907	2451	90	
-712	631	2450	23	
-492	40	2449	96	
-989	583	2448	21	
-267	21	2447	11	
-265	439	2446	75	
-184	425	2445	62	
-876	581	2444	71	
-744	152	2443	68	
-863	721	2442	64	
-276	672	2441	30	
-590	271	2440	48	
-457	745	2439	22	
-561	100	2438	50	
-581	365	2437	72	
-14	128	2436	0	
-844	908	2435	8	
-429	31	2434	30	
-430	33	2433	13	
-49	339	2432	88	
-401	819	2431	58	
-525	269	2430	68	
-644	717	2429	13	
-735	780	2428	89	
-237	720	2427	98	
-219	919	2426	56	
-876	774	2425	16	
-998	174	2424	41	
-693	251	2423	99	
-520	293	2422	38	
-550	901	2421	64	
-551	551	2420	87	
-936	238	2419	88	
-59	914	2418	90	
-801	412	2417	49	
-145	397	2416	1	
-599	754	2415	34	
-922	416	2414	87	
-957	617	2413	30	
-391	733	2412	17	
-350	772	2411	96	
-313	994	2410	99	
-323	972	2409	61	
-502	411	2408	87	
-15	480	2407	25	
-642	674	2406	65	
-338	465	2405	54	
-798	572	2404	67	
-884	131	2403	96	
-961	203	2402	56	
-777	971	2401	4	
-21	383	2400	3	
-560	737	2399	98	
-931	618	2398	82	
-805	602	2397	48	
-209	110	2396	37	
-892	868	2395	30	
-440	711	2394	53	
-928	399	2393	91	
-231	524	2392	92	
-588	4	2391	18	
-645	47	2390	75	
-118	168	2389	46	
-15	334	2388	62	
-492	114	2387	12	
-241	67	2386	59	
-156	765	2385	31	
-312	625	2384	45	
-875	990	2383	51	
-519	740	2382	69	
-956	427	2381	64	
-879	294	2380	94	
-833	831	2379	52	
-219	504	2378	10	
-47	529	2377	52	
-302	278	2376	25	
-139	865	2375	8	
-634	938	2374	84	
-250	816	2373	43	
-312	53	2372	35	
-132	699	2371	56	
-463	416	2370	7	
-327	423	2369	4	
-974	579	2368	61	
-250	271	2367	17	
-413	166	2366	74	
-926	239	2365	16	
-122	408	2364	50	
-763	81	2363	38	
-353	792	2362	93	
-282	485	2361	18	
-993	32	2360	66	
-843	431	2359	13	
-308	441	2358	35	
-105	427	2357	72	
-926	581	2356	83	
-831	658	2355	48	
-326	120	2354	80	
-289	446	2353	35	
-306	757	2352	41	
-453	511	2351	7	
-601	532	2350	28	
-989	784	2349	15	
-13	628	2348	53	
-846	887	2347	20	
-923	350	2346	17	
-538	681	2345	9	
-673	445	2344	50	
-688	948	2343	3	
-246	339	2342	98	
-978	780	2341	85	
-748	139	2340	85	
-155	614	2339	61	
-741	332	2338	97	
-536	24	2337	16	
-668	83	2336	92	
-235	589	2335	38	
-497	467	2334	86	
-609	54	2333	98	
-558	129	2332	44	
-641	1	2331	26	
-524	240	2330	22	
-282	635	2329	59	
-308	808	2328	41	
-940	244	2327	20	
-493	538	2326	86	
-122	520	2325	43	
-412	878	2324	73	
-925	544	2323	88	
-127	173	2322	5	
-760	38	2321	91	
-605	637	2320	11	
-826	178	2319	24	
-564	210	2318	97	
-705	336	2317	36	
-18	435	2316	44	
-641	693	2315	37	
-334	850	2314	71	
-370	837	2313	48	
-134	133	2312	79	
-401	800	2311	36	
-459	874	2310	15	
-967	268	2309	77	
-873	605	2308	26	
-901	921	2307	85	
-741	75	2306	68	
-843	661	2305	37	
-13	223	2304	30	
-704	688	2303	96	
-333	431	2302	23	
-925	211	2301	73	
-606	375	2300	94	
-662	518	2299	49	
-684	401	2298	9	
-846	172	2297	97	
-414	310	2296	16	
-437	70	2295	89	
-535	343	2294	83	
-257	727	2293	30	
-219	502	2292	37	
-836	791	2291	40	
-857	451	2290	31	
-116	396	2289	94	
-229	122	2288	97	
-861	812	2287	83	
-240	262	2286	43	
-726	67	2285	97	
-615	521	2284	90	
-224	937	2283	27	
-711	962	2282	3	
-340	89	2281	38	
-54	374	2280	97	
-274	965	2279	74	
-309	140	2278	88	
-549	405	2277	36	
-194	455	2276	62	
-546	74	2275	51	
-583	624	2274	11	
-975	239	2273	39	
-873	655	2272	51	
-714	403	2271	37	
-409	238	2270	28	
-824	854	2269	77	
-735	519	2268	96	
-949	745	2267	76	
-381	108	2266	35	
-449	402	2265	64	
-384	720	2264	96	
-584	877	2263	60	
-251	142	2262	10	
-165	84	2261	15	
-384	506	2260	30	
-334	814	2259	58	
-773	204	2258	8	
-637	404	2257	78	
-706	706	2256	56	
-681	685	2255	93	
-842	353	2254	6	
-734	507	2253	80	
-57	942	2252	33	
-578	854	2251	8	
-692	720	2250	78	
-609	494	2249	4	
-799	304	2248	56	
-697	217	2247	13	
-20	635	2246	93	
-331	867	2245	2	
-846	264	2244	83	
-564	467	2243	10	
-87	247	2242	67	
-134	303	2241	47	
-225	732	2240	88	
-190	487	2239	8	
-86	425	2238	80	
-581	205	2237	10	
-768	906	2236	67	
-602	185	2235	68	
-797	730	2234	48	
-219	430	2233	28	
-943	197	2232	47	
-571	593	2231	95	
-244	803	2230	90	
-62	272	2229	3	
-220	707	2228	10	
-299	424	2227	50	
-720	987	2226	81	
-454	203	2225	16	
-300	203	2224	80	
-233	804	2223	57	
-604	523	2222	27	
-790	44	2221	37	
-530	873	2220	32	
-564	932	2219	18	
-283	597	2218	84	
-436	692	2217	92	
-784	646	2216	57	
-0	360	2215	26	
-398	227	2214	15	
-280	301	2213	6	
-479	903	2212	62	
-171	46	2211	81	
-940	143	2210	25	
-334	340	2209	96	
-905	921	2208	28	
-46	341	2207	84	
-285	313	2206	65	
-133	111	2205	78	
-926	87	2204	60	
-397	438	2203	11	
-857	814	2202	80	
-902	554	2201	30	
-802	294	2200	23	
-419	684	2199	60	
-579	435	2198	42	
-28	193	2197	85	
-201	869	2196	76	
-24	181	2195	15	
-649	483	2194	20	
-623	316	2193	52	
-260	493	2192	54	
-259	77	2191	95	
-610	623	2190	10	
-248	177	2189	38	
-242	570	2188	83	
-324	97	2187	55	
-687	608	2186	82	
-698	945	2185	17	
-166	678	2184	37	
-823	988	2183	2	
-416	585	2182	36	
-453	854	2181	0	
-446	717	2180	64	
-606	543	2179	36	
-472	288	2178	0	
-489	724	2177	91	
-662	649	2176	63	
-267	802	2175	98	
-689	349	2174	53	
-402	663	2173	34	
-731	361	2172	40	
-137	351	2171	96	
-174	288	2170	0	
-254	355	2169	84	
-564	87	2168	13	
-74	281	2167	98	
-846	647	2166	82	
-453	457	2165	39	
-685	188	2164	57	
-302	936	2163	28	
-10	444	2162	67	
-62	956	2161	59	
-932	166	2160	96	
-267	706	2159	91	
-806	150	2158	68	
-634	156	2157	48	
-190	432	2156	22	
-268	817	2155	39	
-252	290	2154	76	
-491	615	2153	38	
-487	77	2152	29	
-789	630	2151	94	
-459	43	2150	13	
-556	229	2149	66	
-993	200	2148	46	
-724	261	2147	17	
-615	835	2146	44	
-526	625	2145	92	
-674	384	2144	1	
-537	91	2143	76	
-447	344	2142	0	
-586	817	2141	69	
-813	464	2140	32	
-29	203	2139	90	
-939	289	2138	56	
-425	728	2137	26	
-209	522	2136	10	
-240	904	2135	8	
-293	256	2134	85	
-746	756	2133	13	
-527	305	2132	9	
-352	368	2131	86	
-261	426	2130	77	
-914	341	2129	78	
-561	292	2128	9	
-205	160	2127	51	
-617	20	2126	21	
-648	236	2125	96	
-499	714	2124	94	
-450	47	2123	54	
-937	229	2122	21	
-941	87	2121	17	
-85	988	2120	9	
-48	693	2119	34	
-132	577	2118	35	
-139	297	2117	35	
-783	246	2116	58	
-522	21	2115	96	
-667	401	2114	14	
-817	328	2113	4	
-141	42	2112	51	
-99	84	2111	99	
-295	744	2110	85	
-116	993	2109	3	
-280	997	2108	91	
-50	767	2107	99	
-225	619	2106	35	
-620	820	2105	26	
-72	99	2104	85	
-285	536	2103	84	
-958	517	2102	67	
-340	139	2101	4	
-750	820	2100	80	
-996	120	2099	17	
-229	923	2098	83	
-148	636	2097	23	
-798	94	2096	82	
-721	406	2095	60	
-562	5	2094	54	
-19	173	2093	78	
-377	634	2092	32	
-319	238	2091	61	
-699	624	2090	58	
-196	343	2089	75	
-286	605	2088	76	
-542	405	2087	8	
-687	218	2086	34	
-401	58	2085	7	
-831	759	2084	15	
-538	460	2083	54	
-396	708	2082	64	
-613	28	2081	5	
-281	836	2080	61	
-737	987	2079	50	
-199	685	2078	90	
-186	731	2077	74	
-160	272	2076	85	
-298	919	2075	28	
-299	615	2074	56	
-751	901	2073	29	
-680	582	2072	14	
-192	439	2071	78	
-849	116	2070	33	
-301	593	2069	54	
-953	165	2068	53	
-459	889	2067	1	
-353	569	2066	2	
-303	715	2065	86	
-714	276	2064	99	
-318	150	2063	54	
-143	359	2062	7	
-323	450	2061	48	
-522	787	2060	34	
-428	6	2059	54	
-275	524	2058	34	
-319	986	2057	49	
-853	164	2056	10	
-438	863	2055	4	
-126	451	2054	58	
-790	476	2053	39	
-908	583	2052	17	
-662	145	2051	82	
-781	796	2050	80	
-481	198	2049	9	
-538	854	2048	15	
-822	387	2047	95	
-301	56	2046	46	
-411	460	2045	41	
-975	193	2044	31	
-893	221	2043	33	
-437	354	2042	88	
-349	19	2041	24	
-597	705	2040	88	
-343	942	2039	30	
-466	196	2038	94	
-330	489	2037	71	
-596	51	2036	52	
-266	101	2035	88	
-972	977	2034	43	
-866	453	2033	8	
-334	635	2032	45	
-314	365	2031	8	
-762	580	2030	75	
-746	356	2029	25	
-706	227	2028	87	
-438	195	2027	13	
-949	631	2026	73	
-124	453	2025	33	
-524	353	2024	29	
-817	626	2023	10	
-270	367	2022	53	
-784	336	2021	2	
-224	498	2020	55	
-129	376	2019	1	
-32	740	2018	4	
-563	402	2017	26	
-178	403	2016	48	
-99	35	2015	82	
-727	188	2014	59	
-259	573	2013	70	
-30	511	2012	54	
-838	469	2011	48	
-121	535	2010	55	
-635	975	2009	9	
-338	773	2008	9	
-998	777	2007	46	
-367	664	2006	38	
-847	225	2005	7	
-614	892	2004	37	
-62	160	2003	46	
-42	60	2002	22	
-934	926	2001	19	
-559	465	2000	71	
-202	997	1999	48	
-995	629	1998	29	
-113	82	1997	34	
-438	306	1996	63	
-333	707	1995	52	
-731	904	1994	23	
-99	238	1993	55	
-133	36	1992	1	
-461	476	1991	10	
-467	230	1990	37	
-368	188	1989	35	
-546	957	1988	20	
-776	709	1987	88	
-599	110	1986	67	
-802	287	1985	10	
-666	679	1984	60	
-201	533	1983	63	
-560	910	1982	96	
-245	733	1981	67	
-42	17	1980	99	
-231	150	1979	9	
-247	324	1978	82	
-599	207	1977	77	
-822	569	1976	17	
-607	503	1975	79	
-146	969	1974	13	
-622	666	1973	46	
-177	293	1972	64	
-715	678	1971	31	
-867	894	1970	20	
-825	277	1969	81	
-117	51	1968	98	
-637	593	1967	64	
-66	379	1966	77	
-533	661	1965	21	
-303	670	1964	46	
-372	823	1963	52	
-615	326	1962	44	
-783	111	1961	46	
-617	392	1960	84	
-225	827	1959	4	
-458	335	1958	70	
-213	870	1957	48	
-718	562	1956	57	
-990	753	1955	53	
-847	937	1954	23	
-497	79	1953	93	
-214	983	1952	75	
-718	613	1951	83	
-564	805	1950	16	
-492	335	1949	39	
-464	227	1948	76	
-308	909	1947	24	
-809	38	1946	49	
-816	302	1945	72	
-858	298	1944	14	
-95	173	1943	35	
-370	925	1942	28	
-807	665	1941	49	
-470	773	1940	15	
-108	625	1939	7	
-317	521	1938	2	
-871	750	1937	15	
-735	766	1936	49	
-3	585	1935	99	
-124	792	1934	95	
-248	68	1933	76	
-259	786	1932	72	
-891	342	1931	56	
-148	81	1930	33	
-104	44	1929	36	
-770	871	1928	79	
-984	657	1927	44	
-181	504	1926	13	
-792	35	1925	73	
-724	195	1924	87	
-281	38	1923	87	
-444	161	1922	98	
-260	225	1921	36	
-36	974	1920	74	
-172	571	1919	4	
-214	344	1918	33	
-153	310	1917	78	
-468	403	1916	80	
-840	853	1915	38	
-156	2	1914	6	
-876	887	1913	44	
-935	620	1912	83	
-250	624	1911	18	
-403	699	1910	22	
-227	709	1909	86	
-33	548	1908	95	
-907	982	1907	6	
-550	413	1906	68	
-850	321	1905	62	
-114	624	1904	68	
-267	605	1903	27	
-996	654	1902	94	
-924	959	1901	68	
-990	360	1900	84	
-161	905	1899	17	
-565	897	1898	19	
-568	376	1897	12	
-92	56	1896	35	
-697	943	1895	69	
-19	404	1894	73	
-950	338	1893	84	
-695	256	1892	27	
-598	837	1891	7	
-454	672	1890	93	
-7	980	1889	82	
-520	68	1888	59	
-320	769	1887	99	
-112	657	1886	47	
-539	962	1885	39	
-65	889	1884	67	
-82	577	1883	6	
-418	197	1882	25	
-164	138	1881	9	
-691	104	1880	14	
-912	233	1879	44	
-299	598	1878	48	
-111	520	1877	20	
-694	82	1876	20	
-73	716	1875	57	
-312	609	1874	47	
-379	814	1873	98	
-58	157	1872	66	
-34	952	1871	25	
-871	697	1870	47	
-635	959	1869	77	
-77	286	1868	61	
-438	993	1867	18	
-365	634	1866	41	
-106	99	1865	62	
-794	490	1864	76	
-656	319	1863	93	
-205	409	1862	32	
-254	780	1861	2	
-738	694	1860	16	
-673	165	1859	23	
-293	425	1858	55	
-358	770	1857	63	
-534	796	1856	7	
-608	859	1855	25	
-171	829	1854	31	
-909	610	1853	13	
-629	297	1852	45	
-86	861	1851	95	
-528	927	1850	51	
-740	677	1849	6	
-655	918	1848	38	
-973	566	1847	93	
-936	813	1846	82	
-30	946	1845	92	
-218	174	1844	43	
-313	686	1843	26	
-435	500	1842	28	
-933	434	1841	54	
-249	451	1840	55	
-759	684	1839	78	
-351	446	1838	8	
-753	110	1837	68	
-866	897	1836	3	
-772	488	1835	90	
-487	175	1834	81	
-186	982	1833	90	
-65	737	1832	87	
-983	984	1831	50	
-766	769	1830	68	
-238	704	1829	49	
-335	402	1828	40	
-212	644	1827	59	
-408	131	1826	88	
-313	93	1825	9	
-193	908	1824	28	
-244	26	1823	30	
-752	376	1822	12	
-215	817	1821	8	
-65	194	1820	21	
-302	82	1819	52	
-757	809	1818	90	
-513	711	1817	12	
-37	793	1816	80	
-185	808	1815	9	
-882	985	1814	12	
-649	179	1813	94	
-558	39	1812	49	
-623	864	1811	53	
-111	689	1810	14	
-272	624	1809	76	
-98	780	1808	54	
-917	318	1807	24	
-985	708	1806	47	
-822	974	1805	85	
-806	172	1804	30	
-139	455	1803	23	
-175	955	1802	9	
-174	387	1801	93	
-65	386	1800	51	
-844	218	1799	83	
-461	301	1798	17	
-610	767	1797	18	
-733	623	1796	93	
-802	549	1795	16	
-716	70	1794	1	
-499	141	1793	66	
-568	155	1792	96	
-1	423	1791	0	
-167	672	1790	10	
-916	665	1789	22	
-534	992	1788	38	
-144	248	1787	85	
-73	770	1786	87	
-479	145	1785	93	
-929	350	1784	8	
-985	701	1783	21	
-732	963	1782	93	
-751	891	1781	56	
-7	888	1780	83	
-672	837	1779	25	
-744	531	1778	38	
-477	975	1777	38	
-625	944	1776	7	
-794	845	1775	59	
-648	868	1774	54	
-738	286	1773	94	
-72	363	1772	25	
-2	733	1771	98	
-50	583	1770	74	
-306	867	1769	33	
-556	993	1768	92	
-30	318	1767	26	
-99	477	1766	85	
-976	43	1765	83	
-582	605	1764	14	
-922	691	1763	91	
-629	272	1762	66	
-150	236	1761	7	
-715	409	1760	95	
-874	406	1759	74	
-674	660	1758	74	
-841	415	1757	52	
-433	21	1756	93	
-438	684	1755	12	
-914	235	1754	39	
-419	244	1753	65	
-35	595	1752	29	
-826	118	1751	47	
-2	206	1750	43	
-746	995	1749	84	
-245	223	1748	20	
-393	595	1747	83	
-336	807	1746	40	
-449	728	1745	99	
-990	734	1744	52	
-649	366	1743	49	
-476	813	1742	38	
-912	44	1741	20	
-211	594	1740	82	
-771	640	1739	25	
-628	366	1738	50	
-787	425	1737	85	
-78	412	1736	5	
-994	470	1735	88	
-368	29	1734	45	
-552	111	1733	34	
-769	173	1732	17	
-449	385	1731	56	
-954	567	1730	70	
-273	755	1729	43	
-941	649	1728	14	
-12	793	1727	84	
-942	170	1726	70	
-441	428	1725	8	
-917	117	1724	62	
-937	167	1723	81	
-788	609	1722	78	
-818	863	1721	32	
-811	261	1720	49	
-105	296	1719	68	
-855	301	1718	33	
-623	132	1717	92	
-742	624	1716	7	
-310	457	1715	50	
-950	811	1714	52	
-558	32	1713	97	
-746	462	1712	14	
-601	825	1711	96	
-964	814	1710	0	
-994	348	1709	70	
-168	403	1708	25	
-508	858	1707	23	
-166	569	1706	88	
-646	976	1705	43	
-779	544	1704	35	
-569	829	1703	39	
-637	180	1702	81	
-10	962	1701	14	
-466	301	1700	63	
-944	455	1699	96	
-544	17	1698	82	
-289	351	1697	66	
-592	448	1696	34	
-432	72	1695	51	
-715	967	1694	86	
-649	579	1693	21	
-218	667	1692	93	
-660	507	1691	62	
-845	666	1690	54	
-438	143	1689	52	
-665	166	1688	40	
-903	317	1687	25	
-376	823	1686	69	
-104	651	1685	16	
-388	657	1684	71	
-912	279	1683	6	
-159	303	1682	43	
-840	82	1681	55	
-522	23	1680	81	
-977	121	1679	40	
-848	144	1678	77	
-493	558	1677	76	
-171	536	1676	52	
-994	443	1675	27	
-378	651	1674	71	
-975	635	1673	47	
-220	872	1672	75	
-59	742	1671	31	
-901	407	1670	31	
-976	634	1669	54	
-586	10	1668	12	
-22	234	1667	35	
-93	255	1666	32	
-792	555	1665	17	
-15	240	1664	61	
-762	723	1663	40	
-130	433	1662	75	
-335	0	1661	16	
-772	772	1660	15	
-623	415	1659	92	
-776	774	1658	39	
-979	32	1657	56	
-699	145	1656	92	
-315	561	1655	30	
-516	212	1654	77	
-290	648	1653	25	
-432	593	1652	63	
-227	2	1651	79	
-356	233	1650	56	
-641	534	1649	14	
-742	826	1648	84	
-887	634	1647	79	
-584	628	1646	28	
-348	524	1645	38	
-563	523	1644	79	
-55	620	1643	22	
-590	838	1642	85	
-769	231	1641	20	
-698	414	1640	87	
-707	300	1639	71	
-191	51	1638	89	
-6	516	1637	85	
-103	896	1636	30	
-1	585	1635	23	
-902	572	1634	78	
-782	368	1633	50	
-606	653	1632	46	
-816	333	1631	82	
-113	155	1630	7	
-249	815	1629	99	
-534	44	1628	51	
-620	551	1627	18	
-310	67	1626	90	
-12	451	1625	10	
-204	276	1624	9	
-714	42	1623	11	
-320	644	1622	17	
-177	750	1621	79	
-339	79	1620	70	
-771	475	1619	86	
-492	330	1618	71	
-484	282	1617	91	
-616	800	1616	30	
-174	3	1615	29	
-233	979	1614	80	
-398	943	1613	49	
-894	385	1612	39	
-670	87	1611	14	
-603	839	1610	83	
-145	148	1609	56	
-48	800	1608	27	
-481	605	1607	0	
-797	10	1606	86	
-24	491	1605	44	
-35	317	1604	94	
-558	95	1603	83	
-298	252	1602	50	
-247	304	1601	22	
-690	268	1600	6	
-348	290	1599	45	
-195	269	1598	9	
-594	140	1597	56	
-519	426	1596	68	
-174	499	1595	77	
-221	106	1594	98	
-843	330	1593	47	
-947	280	1592	25	
-35	157	1591	5	
-978	607	1590	55	
-21	361	1589	34	
-129	529	1588	15	
-713	883	1587	60	
-926	910	1586	7	
-393	784	1585	34	
-776	511	1584	95	
-50	217	1583	37	
-123	209	1582	89	
-549	493	1581	91	
-245	214	1580	5	
-832	189	1579	95	
-646	551	1578	89	
-972	526	1577	41	
-126	729	1576	78	
-273	392	1575	53	
-294	574	1574	61	
-7	482	1573	72	
-715	982	1572	92	
-278	855	1571	57	
-25	100	1570	30	
-637	65	1569	41	
-25	476	1568	18	
-796	628	1567	67	
-336	253	1566	84	
-818	916	1565	85	
-91	891	1564	97	
-499	798	1563	28	
-127	353	1562	29	
-754	270	1561	43	
-35	889	1560	25	
-589	227	1559	38	
-847	511	1558	61	
-375	828	1557	22	
-336	992	1556	45	
-24	874	1555	51	
-93	693	1554	72	
-444	994	1553	59	
-82	854	1552	37	
-380	184	1551	37	
-662	864	1550	71	
-715	775	1549	44	
-683	383	1548	74	
-835	768	1547	47	
-118	941	1546	3	
-181	792	1545	31	
-698	134	1544	93	
-139	220	1543	64	
-669	999	1542	36	
-319	653	1541	70	
-88	273	1540	71	
-392	703	1539	94	
-614	270	1538	3	
-827	432	1537	84	
-148	727	1536	71	
-658	380	1535	93	
-914	282	1534	48	
-221	286	1533	55	
-345	659	1532	46	
-379	983	1531	35	
-570	771	1530	23	
-432	915	1529	69	
-838	182	1528	77	
-705	132	1527	78	
-346	778	1526	67	
-97	455	1525	48	
-995	922	1524	74	
-627	89	1523	69	
-676	119	1522	87	
-211	119	1521	96	
-856	534	1520	80	
-732	919	1519	13	
-50	990	1518	59	
-353	107	1517	13	
-323	189	1516	35	
-533	745	1515	24	
-832	51	1514	10	
-970	817	1513	36	
-0	908	1512	95	
-584	157	1511	46	
-615	671	1510	35	
-928	542	1509	12	
-882	461	1508	68	
-918	774	1507	69	
-444	109	1506	3	
-693	147	1505	79	
-233	733	1504	70	
-908	417	1503	86	
-751	486	1502	96	
-485	109	1501	41	
-129	230	1500	96	
-81	442	1499	68	
-686	984	1498	4	
-665	666	1497	96	
-961	240	1496	47	
-414	89	1495	75	
-315	838	1494	45	
-931	892	1493	32	
-376	554	1492	15	
-879	445	1491	26	
-788	282	1490	35	
-457	640	1489	4	
-318	81	1488	39	
-425	490	1487	2	
-150	723	1486	70	
-251	291	1485	54	
-945	134	1484	9	
-338	167	1483	38	
-108	891	1482	55	
-163	909	1481	49	
-642	308	1480	9	
-558	653	1479	33	
-591	373	1478	13	
-767	316	1477	89	
-432	156	1476	27	
-156	449	1475	89	
-967	713	1474	30	
-276	829	1473	60	
-981	58	1472	22	
-601	405	1471	94	
-654	760	1470	52	
-279	191	1469	8	
-56	246	1468	96	
-160	617	1467	82	
-706	375	1466	33	
-735	593	1465	27	
-884	698	1464	18	
-770	377	1463	69	
-652	284	1462	29	
-644	424	1461	38	
-568	437	1460	94	
-945	115	1459	37	
-628	143	1458	22	
-241	489	1457	89	
-782	58	1456	45	
-894	86	1455	97	
-320	498	1454	85	
-93	396	1453	11	
-859	914	1452	11	
-986	433	1451	0	
-321	571	1450	7	
-972	151	1449	62	
-653	327	1448	31	
-430	441	1447	38	
-972	482	1446	45	
-588	120	1445	88	
-102	736	1444	57	
-481	996	1443	22	
-480	109	1442	23	
-862	931	1441	87	
-419	453	1440	66	
-824	306	1439	34	
-885	930	1438	31	
-959	927	1437	22	
-362	571	1436	45	
-384	313	1435	38	
-739	347	1434	48	
-886	993	1433	62	
-178	360	1432	0	
-478	207	1431	61	
-147	316	1430	44	
-375	29	1429	59	
-2	96	1428	93	
-356	764	1427	92	
-257	74	1426	59	
-966	897	1425	97	
-354	865	1424	64	
-632	619	1423	85	
-153	382	1422	70	
-891	175	1421	69	
-286	846	1420	33	
-933	657	1419	77	
-332	11	1418	37	
-689	329	1417	64	
-176	618	1416	9	
-32	333	1415	29	
-245	791	1414	61	
-237	144	1413	72	
-207	9	1412	47	
-328	368	1411	26	
-189	559	1410	60	
-645	397	1409	35	
-681	727	1408	60	
-711	547	1407	64	
-285	807	1406	51	
-542	679	1405	14	
-647	890	1404	78	
-135	242	1403	0	
-640	217	1402	2	
-809	656	1401	87	
-161	251	1400	13	
-669	752	1399	54	
-180	958	1398	96	
-740	129	1397	97	
-127	368	1396	42	
-789	357	1395	74	
-647	778	1394	89	
-25	978	1393	51	
-560	151	1392	49	
-404	739	1391	83	
-499	594	1390	64	
-793	580	1389	49	
-829	993	1388	48	
-761	544	1387	44	
-10	682	1386	61	
-579	848	1385	33	
-799	382	1384	14	
-827	17	1383	62	
-411	663	1382	46	
-145	184	1381	15	
-14	154	1380	90	
-587	3	1379	70	
-448	48	1378	96	
-862	828	1377	6	
-834	274	1376	75	
-466	195	1375	43	
-364	520	1374	78	
-354	156	1373	97	
-479	308	1372	41	
-29	251	1371	26	
-151	198	1370	13	
-954	742	1369	42	
-220	895	1368	13	
-554	317	1367	58	
-78	319	1366	2	
-674	650	1365	36	
-364	808	1364	10	
-848	555	1363	0	
-56	149	1362	87	
-53	135	1361	44	
-455	703	1360	87	
-846	287	1359	19	
-578	552	1358	73	
-997	558	1357	66	
-669	659	1356	47	
-842	266	1355	40	
-252	91	1354	31	
-405	134	1353	51	
-14	425	1352	79	
-431	572	1351	0	
-415	680	1350	59	
-735	462	1349	60	
-994	68	1348	26	
-898	190	1347	58	
-393	72	1346	32	
-174	92	1345	82	
-957	794	1344	58	
-708	724	1343	84	
-853	787	1342	39	
-891	405	1341	58	
-217	989	1340	1	
-393	340	1339	68	
-878	687	1338	74	
-118	252	1337	9	
-979	501	1336	50	
-297	237	1335	21	
-69	742	1334	21	
-936	456	1333	24	
-382	808	1332	85	
-416	566	1331	96	
-648	335	1330	67	
-653	940	1329	82	
-435	644	1328	51	
-750	591	1327	76	
-264	285	1326	13	
-495	2	1325	68	
-285	968	1324	22	
-647	393	1323	13	
-242	893	1322	55	
-230	287	1321	96	
-395	849	1320	76	
-296	308	1319	99	
-52	755	1318	21	
-305	621	1317	68	
-283	456	1316	48	
-34	453	1315	76	
-574	94	1314	20	
-500	578	1313	63	
-605	587	1312	40	
-438	198	1311	1	
-541	772	1310	83	
-553	777	1309	9	
-133	533	1308	24	
-164	198	1307	74	
-3	716	1306	2	
-358	560	1305	24	
-515	570	1304	45	
-991	233	1303	7	
-388	393	1302	89	
-426	176	1301	16	
-995	736	1300	89	
-243	856	1299	98	
-334	495	1298	42	
-482	724	1297	96	
-156	773	1296	16	
-989	789	1295	64	
-337	386	1294	84	
-840	178	1293	52	
-216	728	1292	60	
-440	270	1291	96	
-880	909	1290	43	
-360	566	1289	75	
-771	451	1288	90	
-950	807	1287	85	
-984	517	1286	32	
-403	801	1285	16	
-207	318	1284	65	
-450	922	1283	49	
-458	639	1282	62	
-360	531	1281	77	
-342	679	1280	56	
-115	842	1279	51	
-644	57	1278	58	
-290	526	1277	82	
-715	158	1276	96	
-483	515	1275	58	
-395	155	1274	19	
-282	873	1273	75	
-108	847	1272	99	
-851	216	1271	9	
-837	40	1270	1	
-784	931	1269	22	
-531	768	1268	47	
-367	853	1267	35	
-643	385	1266	57	
-359	385	1265	23	
-282	437	1264	8	
-26	765	1263	11	
-630	894	1262	17	
-176	79	1261	25	
-109	790	1260	1	
-162	757	1259	5	
-914	115	1258	25	
-468	780	1257	16	
-999	342	1256	72	
-947	143	1255	28	
-672	975	1254	7	
-871	939	1253	25	
-814	916	1252	39	
-289	243	1251	45	
-32	961	1250	6	
-642	798	1249	94	
-335	90	1248	24	
-437	439	1247	44	
-198	440	1246	46	
-168	205	1245	5	
-35	822	1244	27	
-22	860	1243	80	
-673	940	1242	5	
-281	387	1241	52	
-162	119	1240	25	
-708	698	1239	39	
-650	802	1238	30	
-998	977	1237	89	
-235	417	1236	23	
-383	776	1235	3	
-961	474	1234	13	
-919	744	1233	1	
-552	530	1232	34	
-268	268	1231	39	
-421	866	1230	11	
-896	83	1229	45	
-824	408	1228	5	
-560	659	1227	65	
-641	208	1226	76	
-301	897	1225	85	
-729	120	1224	42	
-213	663	1223	4	
-262	958	1222	36	
-402	272	1221	28	
-782	664	1220	84	
-674	396	1219	52	
-749	405	1218	7	
-451	889	1217	26	
-311	911	1216	91	
-776	430	1215	33	
-457	379	1214	57	
-704	675	1213	51	
-685	81	1212	95	
-608	438	1211	86	
-267	321	1210	61	
-991	453	1209	10	
-515	806	1208	92	
-978	345	1207	29	
-480	579	1206	14	
-51	768	1205	53	
-703	55	1204	31	
-594	564	1203	75	
-643	91	1202	1	
-116	240	1201	7	
-868	512	1200	34	
-646	182	1199	27	
-461	627	1198	47	
-765	158	1197	53	
-811	605	1196	49	
-712	214	1195	42	
-491	567	1194	34	
-472	733	1193	10	
-850	942	1192	95	
-728	735	1191	52	
-329	65	1190	24	
-554	799	1189	22	
-469	938	1188	18	
-552	39	1187	69	
-391	69	1186	95	
-647	80	1185	9	
-834	239	1184	22	
-790	157	1183	1	
-206	423	1182	62	
-669	278	1181	12	
-266	25	1180	39	
-860	37	1179	77	
-898	489	1178	8	
-970	741	1177	91	
-988	855	1176	16	
-840	878	1175	74	
-81	201	1174	81	
-733	396	1173	4	
-145	499	1172	58	
-253	723	1171	53	
-988	623	1170	40	
-548	689	1169	40	
-748	169	1168	96	
-886	755	1167	92	
-976	416	1166	98	
-676	931	1165	14	
-805	769	1164	75	
-897	458	1163	34	
-776	48	1162	58	
-99	133	1161	89	
-934	997	1160	26	
-520	443	1159	44	
-413	34	1158	79	
-339	946	1157	86	
-485	833	1156	90	
-161	389	1155	29	
-310	410	1154	87	
-410	758	1153	90	
-914	696	1152	12	
-135	627	1151	67	
-553	824	1150	16	
-409	640	1149	41	
-87	937	1148	10	
-113	952	1147	7	
-443	610	1146	85	
-979	428	1145	32	
-651	963	1144	85	
-62	787	1143	90	
-69	444	1142	49	
-803	511	1141	77	
-183	750	1140	58	
-702	307	1139	14	
-985	32	1138	32	
-342	220	1137	97	
-182	530	1136	67	
-464	472	1135	46	
-176	950	1134	32	
-342	404	1133	58	
-933	717	1132	99	
-760	196	1131	26	
-442	437	1130	62	
-275	822	1129	48	
-811	347	1128	71	
-689	304	1127	64	
-58	205	1126	16	
-521	136	1125	71	
-546	737	1124	28	
-687	596	1123	83	
-520	727	1122	40	
-758	645	1121	17	
-615	139	1120	31	
-474	763	1119	16	
-43	73	1118	46	
-98	483	1117	12	
-69	442	1116	63	
-399	429	1115	53	
-141	455	1114	97	
-868	423	1113	85	
-82	236	1112	16	
-506	855	1111	76	
-375	150	1110	14	
-690	702	1109	14	
-590	342	1108	43	
-40	491	1107	94	
-13	93	1106	2	
-974	562	1105	66	
-31	115	1104	25	
-186	692	1103	27	
-380	405	1102	78	
-705	618	1101	57	
-447	1	1100	13	
-360	711	1099	68	
-851	484	1098	9	
-397	916	1097	55	
-530	359	1096	2	
-446	411	1095	3	
-423	986	1094	94	
-287	485	1093	84	
-786	210	1092	80	
-617	445	1091	67	
-290	445	1090	25	
-226	585	1089	8	
-567	549	1088	50	
-557	523	1087	45	
-948	987	1086	86	
-424	97	1085	8	
-500	97	1084	2	
-274	38	1083	13	
-765	131	1082	50	
-999	416	1081	16	
-859	170	1080	32	
-36	578	1079	6	
-25	55	1078	65	
-536	586	1077	1	
-890	782	1076	60	
-999	60	1075	52	
-59	887	1074	92	
-906	634	1073	22	
-715	332	1072	50	
-245	841	1071	76	
-592	263	1070	13	
-522	404	1069	82	
-469	648	1068	1	
-803	401	1067	48	
-721	85	1066	64	
-173	599	1065	89	
-253	697	1064	93	
-302	717	1063	15	
-490	742	1062	19	
-577	626	1061	46	
-858	316	1060	65	
-756	812	1059	7	
-246	521	1058	5	
-315	843	1057	66	
-486	755	1056	8	
-901	950	1055	54	
-979	787	1054	91	
-975	961	1053	95	
-115	722	1052	81	
-309	816	1051	91	
-504	581	1050	71	
-290	18	1049	10	
-678	386	1048	51	
-87	584	1047	93	
-804	533	1046	82	
-163	628	1045	58	
-825	968	1044	92	
-239	139	1043	0	
-905	899	1042	86	
-234	193	1041	80	
-563	616	1040	80	
-632	591	1039	21	
-802	579	1038	61	
-50	101	1037	59	
-904	243	1036	28	
-659	663	1035	64	
-829	917	1034	33	
-240	143	1033	58	
-705	54	1032	33	
-576	0	1031	67	
-25	590	1030	67	
-11	602	1029	93	
-477	21	1028	82	
-857	307	1027	75	
-580	642	1026	14	
-745	302	1025	24	
-774	751	1024	83	
-89	252	1023	58	
-53	663	1022	53	
-410	999	1021	12	
-988	739	1020	55	
-580	101	1019	1	
-714	78	1018	53	
-664	604	1017	61	
-339	902	1016	27	
-550	414	1015	83	
-499	240	1014	97	
-589	54	1013	68	
-663	406	1012	3	
-260	577	1011	64	
-637	538	1010	42	
-23	479	1009	40	
-473	914	1008	86	
-702	342	1007	5	
-487	442	1006	32	
-173	863	1005	78	
-185	285	1004	5	
-648	649	1003	91	
-829	392	1002	92	
-39	221	1001	40	
-58	13	1000	62	
-565	542	999	61	
-571	815	998	54	
-899	725	997	77	
-578	535	996	21	
-578	738	995	31	
-636	141	994	98	
-257	984	993	53	
-170	522	992	81	
-207	781	991	78	
-471	7	990	98	
-726	64	989	49	
-89	778	988	99	
-190	556	987	67	
-797	900	986	32	
-596	326	985	0	
-156	450	984	94	
-461	718	983	37	
-741	29	982	8	
-773	809	981	96	
-942	486	980	73	
-286	499	979	74	
-221	321	978	63	
-656	351	977	89	
-573	320	976	39	
-876	59	975	20	
-731	562	974	44	
-688	292	973	69	
-220	123	972	72	
-322	226	971	96	
-986	991	970	83	
-178	107	969	65	
-970	737	968	6	
-30	506	967	56	
-261	192	966	8	
-496	760	965	69	
-270	745	964	14	
-168	974	963	4	
-896	752	962	46	
-235	136	961	89	
-883	174	960	33	
-369	590	959	80	
-231	501	958	20	
-313	480	957	93	
-432	387	956	76	
-15	551	955	76	
-770	101	954	22	
-221	574	953	10	
-615	571	952	27	
-962	561	951	66	
-584	527	950	35	
-89	600	949	51	
-20	268	948	13	
-93	169	947	91	
-835	4	946	88	
-450	539	945	41	
-526	122	944	24	
-3	831	943	54	
-9	609	942	60	
-34	309	941	65	
-926	837	940	37	
-331	375	939	49	
-98	221	938	6	
-164	35	937	92	
-465	464	936	25	
-416	173	935	38	
-291	695	934	92	
-221	943	933	52	
-299	951	932	99	
-472	276	931	97	
-461	882	930	10	
-154	426	929	59	
-185	142	928	23	
-571	668	927	93	
-291	873	926	69	
-477	461	925	4	
-751	401	924	12	
-991	528	923	6	
-675	19	922	92	
-393	867	921	82	
-455	512	920	1	
-284	361	919	30	
-474	298	918	96	
-794	235	917	61	
-412	650	916	28	
-59	923	915	81	
-873	55	914	72	
-508	148	913	75	
-152	94	912	31	
-354	816	911	28	
-151	703	910	93	
-63	338	909	17	
-63	355	908	81	
-584	333	907	67	
-727	467	906	38	
-867	86	905	35	
-907	966	904	18	
-53	443	903	36	
-277	34	902	35	
-113	343	901	79	
-364	766	900	20	
-983	361	899	8	
-22	130	898	99	
-865	296	897	47	
-380	29	896	85	
-119	165	895	85	
-523	821	894	96	
-409	8	893	85	
-690	557	892	77	
-576	595	891	16	
-405	115	890	74	
-230	88	889	38	
-834	520	888	96	
-266	622	887	15	
-864	997	886	48	
-344	898	885	26	
-812	106	884	59	
-451	78	883	11	
-962	611	882	71	
-479	415	881	11	
-27	367	880	17	
-567	420	879	17	
-898	804	878	39	
-624	670	877	56	
-99	224	876	40	
-791	664	875	51	
-28	482	874	53	
-466	395	873	36	
-195	603	872	48	
-48	943	871	48	
-946	995	870	45	
-616	779	869	45	
-133	828	868	66	
-446	164	867	27	
-559	883	866	52	
-182	988	865	30	
-86	169	864	76	
-791	872	863	56	
-660	5	862	27	
-948	30	861	14	
-215	992	860	10	
-950	790	859	33	
-664	394	858	48	
-281	749	857	68	
-894	217	856	88	
-818	544	855	37	
-296	201	854	9	
-866	290	853	29	
-975	123	852	13	
-37	45	851	71	
-202	771	850	73	
-395	847	849	26	
-645	795	848	28	
-532	800	847	38	
-672	508	846	38	
-343	282	845	7	
-910	800	844	52	
-167	163	843	42	
-78	418	842	89	
-273	979	841	93	
-924	467	840	83	
-52	978	839	80	
-995	903	838	75	
-291	995	837	11	
-226	311	836	85	
-482	553	835	32	
-636	92	834	43	
-744	538	833	74	
-439	953	832	8	
-511	102	831	80	
-489	28	830	34	
-74	56	829	87	
-907	636	828	5	
-684	253	827	70	
-758	530	826	6	
-460	896	825	74	
-554	690	824	84	
-584	654	823	89	
-851	284	822	30	
-73	454	821	92	
-972	477	820	2	
-419	814	819	41	
-383	352	818	16	
-723	638	817	22	
-633	320	816	92	
-205	898	815	29	
-35	953	814	90	
-369	586	813	96	
-829	378	812	73	
-976	904	811	77	
-662	607	810	10	
-462	248	809	55	
-714	943	808	3	
-318	297	807	65	
-421	627	806	8	
-945	391	805	42	
-366	936	804	17	
-208	236	803	66	
-473	955	802	54	
-297	675	801	85	
-358	548	800	31	
-305	516	799	20	
-645	377	798	74	
-669	569	797	39	
-236	661	796	89	
-455	257	795	47	
-699	504	794	57	
-280	125	793	15	
-280	687	792	73	
-126	538	791	17	
-32	113	790	93	
-138	452	789	5	
-808	351	788	65	
-907	500	787	97	
-404	419	786	43	
-753	897	785	78	
-378	420	784	75	
-437	423	783	41	
-149	559	782	0	
-425	236	781	15	
-660	885	780	9	
-101	394	779	89	
-851	683	778	33	
-80	542	777	90	
-522	653	776	50	
-477	24	775	65	
-996	336	774	37	
-864	418	773	94	
-322	847	772	28	
-350	59	771	72	
-491	200	770	76	
-710	563	769	55	
-141	429	768	24	
-889	397	767	77	
-628	852	766	55	
-688	276	765	4	
-917	433	764	48	
-571	652	763	13	
-787	564	762	54	
-859	958	761	97	
-636	205	760	85	
-133	309	759	78	
-32	477	758	56	
-545	213	757	25	
-576	513	756	26	
-843	563	755	93	
-780	348	754	77	
-88	590	753	34	
-605	569	752	78	
-752	112	751	92	
-895	79	750	22	
-832	210	749	50	
-264	317	748	10	
-699	991	747	48	
-949	321	746	96	
-215	169	745	73	
-758	424	744	6	
-21	561	743	69	
-457	855	742	48	
-33	706	741	85	
-868	718	740	85	
-893	401	739	6	
-326	614	738	56	
-669	517	737	56	
-152	236	736	75	
-744	669	735	73	
-862	370	734	45	
-706	209	733	73	
-149	629	732	56	
-987	995	731	42	
-316	793	730	16	
-787	496	729	97	
-97	2	728	56	
-280	815	727	65	
-566	15	726	51	
-299	277	725	40	
-161	719	724	88	
-580	173	723	15	
-633	140	722	55	
-202	259	721	16	
-296	189	720	67	
-494	408	719	52	
-186	910	718	68	
-799	138	717	81	
-737	110	716	71	
-558	526	715	26	
-546	725	714	13	
-33	598	713	58	
-880	395	712	94	
-69	490	711	43	
-780	140	710	90	
-498	840	709	80	
-771	872	708	30	
-28	102	707	38	
-584	446	706	6	
-800	129	705	17	
-126	557	704	1	
-202	634	703	51	
-905	515	702	15	
-350	526	701	81	
-300	102	700	28	
-967	495	699	28	
-770	920	698	72	
-655	325	697	74	
-316	882	696	44	
-572	166	695	78	
-922	499	694	67	
-119	360	693	92	
-989	341	692	29	
-423	521	691	55	
-607	6	690	4	
-575	556	689	33	
-594	983	688	19	
-442	298	687	11	
-716	660	686	33	
-667	109	685	74	
-138	750	684	65	
-18	626	683	80	
-819	742	682	13	
-515	504	681	56	
-449	717	680	81	
-572	135	679	3	
-684	82	678	98	
-637	775	677	15	
-551	594	676	72	
-358	94	675	4	
-124	846	674	52	
-883	673	673	11	
-237	564	672	19	
-787	749	671	30	
-581	783	670	6	
-52	51	669	87	
-306	827	668	88	
-180	426	667	4	
-500	677	666	8	
-247	519	665	19	
-173	409	664	23	
-108	920	663	24	
-814	895	662	64	
-965	238	661	45	
-731	188	660	20	
-224	989	659	52	
-401	840	658	74	
-748	961	657	12	
-158	893	656	68	
-110	958	655	25	
-488	993	654	7	
-25	595	653	6	
-656	195	652	29	
-49	244	651	84	
-199	677	650	23	
-148	782	649	50	
-879	620	648	82	
-67	445	647	65	
-935	426	646	59	
-964	179	645	4	
-398	9	644	62	
-400	770	643	46	
-951	445	642	36	
-566	614	641	60	
-894	726	640	84	
-162	684	639	5	
-174	170	638	26	
-18	61	637	81	
-247	543	636	13	
-169	425	635	97	
-238	158	634	56	
-325	94	633	99	
-830	761	632	44	
-888	757	631	38	
-41	798	630	67	
-514	783	629	73	
-108	456	628	98	
-518	679	627	15	
-117	161	626	77	
-267	405	625	7	
-63	567	624	93	
-333	549	623	91	
-3	64	622	49	
-959	712	621	94	
-15	939	620	84	
-326	743	619	52	
-776	833	618	40	
-518	384	617	59	
-756	693	616	40	
-837	147	615	84	
-18	17	614	20	
-484	417	613	72	
-351	554	612	33	
-772	93	611	4	
-196	320	610	94	
-910	120	609	68	
-449	815	608	55	
-690	188	607	25	
-546	551	606	76	
-129	645	605	91	
-599	474	604	81	
-863	399	603	53	
-460	286	602	13	
-773	100	601	57	
-199	255	600	57	
-304	138	599	28	
-627	292	598	46	
-637	495	597	75	
-906	843	596	14	
-170	100	595	41	
-75	285	594	52	
-112	400	593	73	
-185	553	592	40	
-845	2	591	68	
-116	291	590	57	
-845	823	589	89	
-796	703	588	67	
-652	613	587	99	
-742	727	586	73	
-815	886	585	73	
-884	794	584	9	
-846	332	583	96	
-551	716	582	92	
-711	114	581	33	
-467	678	580	72	
-120	217	579	27	
-89	687	578	4	
-886	259	577	14	
-841	995	576	90	
-92	640	575	92	
-462	132	574	93	
-615	35	573	3	
-602	587	572	29	
-436	611	571	83	
-460	457	570	24	
-529	222	569	34	
-428	904	568	3	
-263	234	567	20	
-355	981	566	4	
-507	997	565	74	
-97	892	564	63	
-447	742	563	84	
-976	455	562	1	
-153	595	561	16	
-234	896	560	97	
-318	316	559	93	
-670	827	558	10	
-252	158	557	16	
-984	296	556	90	
-104	118	555	84	
-150	784	554	41	
-287	832	553	65	
-859	848	552	47	
-699	190	551	82	
-579	44	550	91	
-489	829	549	91	
-668	936	548	64	
-862	256	547	41	
-178	60	546	26	
-333	437	545	88	
-952	759	544	95	
-984	180	543	86	
-657	647	542	42	
-146	903	541	16	
-214	3	540	11	
-892	268	539	9	
-680	230	538	82	
-196	149	537	80	
-622	387	536	68	
-678	926	535	84	
-579	91	534	38	
-532	435	533	96	
-744	267	532	32	
-900	40	531	51	
-735	29	530	93	
-37	269	529	32	
-80	14	528	21	
-762	122	527	48	
-460	839	526	57	
-835	462	525	94	
-656	413	524	9	
-167	641	523	4	
-226	815	522	78	
-11	580	521	84	
-759	609	520	16	
-254	109	519	69	
-892	728	518	95	
-283	909	517	31	
-376	630	516	30	
-48	845	515	62	
-772	52	514	17	
-825	258	513	48	
-235	944	512	94	
-970	678	511	21	
-500	467	510	25	
-380	741	509	50	
-819	638	508	36	
-279	15	507	60	
-785	676	506	90	
-792	446	505	32	
-793	690	504	27	
-313	547	503	94	
-265	725	502	59	
-211	963	501	26	
-726	746	500	47	
-102	143	499	11	
-622	752	498	56	
-339	702	497	54	
-229	578	496	49	
-756	51	495	99	
-142	329	494	99	
-821	356	493	48	
-762	326	492	4	
-216	793	491	5	
-603	351	490	48	
-390	558	489	62	
-50	20	488	47	
-123	46	487	28	
-527	501	486	10	
-722	993	485	47	
-973	519	484	61	
-30	432	483	32	
-532	993	482	5	
-442	568	481	54	
-792	861	480	61	
-537	144	479	21	
-974	195	478	34	
-544	174	477	92	
-508	635	476	59	
-474	860	475	80	
-86	292	474	74	
-438	261	473	94	
-424	512	472	49	
-706	933	471	8	
-717	399	470	65	
-948	873	469	25	
-20	413	468	56	
-539	329	467	42	
-774	792	466	3	
-568	55	465	3	
-30	806	464	38	
-748	445	463	64	
-579	408	462	1	
-533	439	461	71	
-526	395	460	98	
-459	691	459	76	
-84	133	458	92	
-537	393	457	48	
-736	2	456	76	
-249	646	455	20	
-360	739	454	53	
-36	633	453	28	
-969	296	452	16	
-43	728	451	4	
-703	220	450	0	
-558	840	449	6	
-740	446	448	37	
-390	716	447	54	
-355	558	446	80	
-907	668	445	48	
-106	256	444	88	
-337	112	443	32	
-568	122	442	6	
-507	40	441	92	
-379	938	440	34	
-393	692	439	14	
-730	827	438	81	
-157	747	437	34	
-890	312	436	3	
-411	599	435	44	
-144	564	434	80	
-989	256	433	76	
-82	142	432	76	
-101	584	431	6	
-246	194	430	12	
-864	327	429	98	
-80	468	428	66	
-434	314	427	57	
-713	587	426	26	
-35	647	425	47	
-307	31	424	26	
-114	0	423	15	
-557	708	422	90	
-390	932	421	98	
-867	141	420	85	
-859	322	419	38	
-154	90	418	78	
-726	305	417	64	
-939	788	416	72	
-615	211	415	67	
-31	112	414	72	
-291	247	413	19	
-775	925	412	55	
-790	126	411	16	
-819	473	410	52	
-232	597	409	0	
-784	138	408	70	
-517	924	407	42	
-576	43	406	78	
-99	950	405	32	
-864	533	404	58	
-322	636	403	74	
-798	389	402	51	
-653	644	401	98	
-875	514	400	97	
-458	302	399	58	
-214	278	398	44	
-880	640	397	26	
-92	463	396	94	
-417	739	395	47	
-897	844	394	23	
-246	224	393	54	
-745	530	392	52	
-129	13	391	14	
-212	385	390	77	
-24	138	389	41	
-637	182	388	24	
-176	325	387	33	
-723	464	386	78	
-895	241	385	67	
-619	693	384	52	
-694	17	383	65	
-517	378	382	50	
-627	367	381	61	
-247	360	380	91	
-956	174	379	18	
-856	909	378	38	
-860	545	377	46	
-222	112	376	45	
-547	155	375	82	
-675	870	374	27	
-639	148	373	92	
-11	886	372	17	
-6	698	371	88	
-186	729	370	38	
-264	801	369	29	
-363	925	368	9	
-432	8	367	99	
-957	624	366	63	
-285	552	365	67	
-721	350	364	87	
-261	748	363	3	
-188	287	362	62	
-968	508	361	0	
-928	89	360	82	
-875	191	359	92	
-916	103	358	90	
-384	358	357	93	
-71	962	356	47	
-202	803	355	67	
-601	835	354	56	
-461	408	353	45	
-778	622	352	7	
-419	183	351	21	
-897	899	350	3	
-88	20	349	5	
-745	970	348	95	
-395	455	347	53	
-159	802	346	31	
-967	109	345	86	
-426	103	344	60	
-786	386	343	14	
-438	853	342	68	
-284	180	341	35	
-879	986	340	52	
-50	94	339	80	
-514	426	338	34	
-653	219	337	34	
-693	444	336	23	
-5	268	335	19	
-717	460	334	54	
-532	457	333	64	
-673	323	332	34	
-193	837	331	15	
-892	711	330	40	
-667	465	329	82	
-207	994	328	53	
-775	112	327	86	
-175	44	326	95	
-808	650	325	68	
-2	900	324	28	
-133	293	323	18	
-485	192	322	85	
-126	749	321	48	
-246	576	320	30	
-471	292	319	22	
-881	674	318	46	
-68	901	317	43	
-394	272	316	59	
-749	398	315	36	
-607	104	314	80	
-100	325	313	86	
-443	378	312	64	
-172	178	311	35	
-284	76	310	88	
-617	763	309	77	
-773	28	308	59	
-629	832	307	81	
-873	232	306	67	
-294	561	305	64	
-778	936	304	14	
-947	221	303	50	
-199	287	302	65	
-102	479	301	27	
-312	105	300	88	
-735	184	299	66	
-195	777	298	84	
-599	139	297	14	
-671	29	296	75	
-624	502	295	57	
-714	635	294	51	
-934	849	293	83	
-807	387	292	74	
-374	381	291	9	
-921	221	290	78	
-406	822	289	57	
-638	700	288	53	
-109	387	287	59	
-527	177	286	92	
-867	62	285	4	
-785	684	284	91	
-461	84	283	78	
-5	649	282	12	
-160	308	281	43	
-399	211	280	45	
-122	38	279	51	
-312	943	278	76	
-210	668	277	52	
-114	880	276	58	
-377	136	275	65	
-600	129	274	8	
-434	654	273	32	
-341	692	272	45	
-96	981	271	84	
-173	937	270	76	
-95	746	269	27	
-274	239	268	80	
-787	946	267	10	
-743	922	266	9	
-6	578	265	73	
-475	757	264	77	
-961	867	263	16	
-711	611	262	9	
-43	84	261	24	
-190	483	260	92	
-507	467	259	7	
-292	708	258	82	
-23	5	257	48	
-343	359	256	4	
-821	958	255	73	
-889	611	254	53	
-256	73	253	51	
-526	848	252	25	
-600	321	251	66	
-16	845	250	85	
-759	258	249	68	
-703	332	248	21	
-645	443	247	26	
-400	307	246	67	
-347	205	245	52	
-538	16	244	93	
-225	264	243	63	
-526	582	242	72	
-476	815	241	92	
-587	168	240	58	
-925	469	239	25	
-889	945	238	5	
-136	589	237	5	
-101	157	236	24	
-189	591	235	5	
-752	297	234	80	
-681	904	233	31	
-766	803	232	69	
-646	341	231	5	
-699	327	230	88	
-523	200	229	66	
-356	997	228	3	
-431	813	227	75	
-566	190	226	3	
-293	244	225	91	
-393	496	224	43	
-100	614	223	7	
-461	648	222	91	
-13	160	221	11	
-126	227	220	94	
-202	626	219	17	
-184	282	218	16	
-623	718	217	92	
-946	122	216	86	
-747	475	215	27	
-882	366	214	89	
-965	155	213	29	
-487	795	212	63	
-933	173	211	44	
-601	770	210	88	
-343	9	209	92	
-563	242	208	1	
-596	58	207	56	
-646	592	206	67	
-109	373	205	19	
-210	606	204	86	
-360	653	203	91	
-622	191	202	47	
-402	560	201	55	
-761	963	200	33	
-766	904	199	25	
-183	458	198	78	
-466	884	197	96	
-219	477	196	94	
-767	333	195	53	
-952	948	194	89	
-462	438	193	85	
-630	923	192	73	
-597	222	191	21	
-58	74	190	64	
-446	477	189	99	
-573	812	188	58	
-406	17	187	71	
-143	413	186	24	
-384	637	185	45	
-510	48	184	81	
-515	112	183	48	
-700	518	182	83	
-148	579	181	3	
-596	645	180	53	
-664	412	179	61	
-795	865	178	87	
-604	470	177	16	
-775	794	176	26	
-589	637	175	75	
-935	324	174	87	
-594	657	173	99	
-939	799	172	81	
-933	494	171	55	
-233	926	170	55	
-547	738	169	93	
-394	706	168	86	
-675	904	167	19	
-157	503	166	82	
-313	885	165	18	
-667	879	164	65	
-857	181	163	34	
-305	261	162	65	
-567	1	161	0	
-187	618	160	70	
-32	63	159	68	
-801	677	158	15	
-400	362	157	71	
-618	642	156	51	
-6	532	155	84	
-697	311	154	64	
-919	685	153	80	
-260	649	152	55	
-382	305	151	73	
-555	14	150	38	
-385	532	149	15	
-315	434	148	23	
-719	200	147	40	
-109	674	146	78	
-221	198	145	61	
-625	836	144	30	
-36	257	143	77	
-344	814	142	65	
-290	357	141	87	
-481	225	140	82	
-98	923	139	16	
-233	829	138	7	
-525	618	137	59	
-476	169	136	60	
-361	304	135	88	
-578	529	134	59	
-442	119	133	58	
-457	780	132	69	
-131	51	131	5	
-301	657	130	80	
-93	99	129	38	
-210	473	128	86	
-449	986	127	70	
-865	721	126	4	
-774	293	125	11	
-410	5	124	78	
-338	897	123	13	
-729	638	122	98	
-394	244	121	32	
-557	426	120	82	
-625	517	119	20	
-487	157	118	88	
-265	658	117	76	
-427	934	116	58	
-288	331	115	9	
-107	647	114	36	
-258	151	113	7	
-394	658	112	60	
-818	496	111	33	
-908	622	110	83	
-360	324	109	93	
-498	121	108	13	
-724	178	107	22	
-603	492	106	83	
-684	727	105	13	
-495	291	104	18	
-492	463	103	84	
-162	273	102	86	
-873	498	101	57	
-297	904	100	90	
-203	793	99	54	
-943	916	98	86	
-685	383	97	77	
-764	699	96	12	
-436	958	95	91	
-827	331	94	18	
-189	984	93	0	
-775	288	92	32	
-593	666	91	28	
-111	361	90	57	
-877	686	89	9	
-532	87	88	26	
-684	653	87	25	
-740	202	86	92	
-627	730	85	32	
-347	184	84	60	
-695	673	83	63	
-621	40	82	41	
-304	712	81	18	
-675	482	80	48	
-598	833	79	23	
-434	3	78	34	
-450	336	77	84	
-471	592	76	94	
-546	719	75	11	
-510	971	74	28	
-633	223	73	65	
-328	231	72	7	
-229	700	71	31	
-649	248	70	62	
-830	888	69	7	
-666	497	68	16	
-743	903	67	98	
-873	831	66	97	
-747	833	65	92	
-747	628	64	3	
-992	576	63	87	
-530	757	62	30	
-452	687	61	9	
-359	552	60	57	
-391	913	59	81	
-593	180	58	16	
-72	4	57	92	
-997	54	56	87	
-204	889	55	12	
-51	157	54	99	
-819	573	53	75	
-69	204	52	46	
-134	520	51	7	
-639	759	50	9	
-732	656	49	96	
-176	240	48	79	
-950	52	47	52	
-164	745	46	7	
-732	125	45	79	
-584	244	44	15	
-368	294	43	23	
-684	383	42	74	
-760	984	41	93	
-103	126	40	49	
-416	169	39	90	
-187	276	38	55	
-307	447	37	22	
-619	281	36	78	
-881	641	35	43	
-950	920	34	14	
-910	482	33	21	
-398	814	32	68	
-858	439	31	92	
-956	588	30	65	
-893	350	29	68	
-829	330	28	22	
-165	440	27	88	
-639	354	26	68	
-720	284	25	73	
-437	931	24	93	
-667	531	23	3	
-375	760	22	51	
-850	266	21	53	
-238	970	20	90	
-20	457	19	6	
-890	348	18	6	
-86	192	17	66	
-69	949	16	52	
-352	807	15	91	
-400	891	14	28	
-771	526	13	76	
-493	972	12	29	
-296	637	11	52	
-512	839	10	61	
-108	998	9	21	
-156	400	8	12	
-242	137	7	80	
-141	606	6	1	
-916	635	5	71	
-364	513	4	95	
-553	477	3	62	
-335	768	2	27	
-798	911	1	19	
-840	394	0	78	
-@nodes
-source	252	
-@end
Index: test/dim_test.cc
===================================================================
--- test/dim_test.cc	(revision 2561)
+++ 	(revision )
@@ -1,87 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/dim2.h>
-#include <iostream>
-#include "test_tools.h"
-
-using namespace std;
-using namespace lemon;
-
-int main()
-{
-  cout << "Testing classes 'dim2::Point' and 'dim2::BoundingBox'." << endl;
-
-  typedef dim2::Point<int> Point;
-
-  Point p;
-  check(p.size()==2, "Wrong vector initialization.");
-
-  Point a(1,2);
-  Point b(3,4);
-  check(a[0]==1 && a[1]==2, "Wrong vector initialization.");
-
-  p = a+b;
-  check(p.x==4 && p.y==6, "Wrong vector addition.");
-
-  p = a-b;
-  check(p.x==-2 && p.y==-2, "Wrong vector subtraction.");
-
-  check(a.normSquare()==5,"Wrong vector norm calculation.");
-  check(a*b==11, "Wrong vector scalar product.");
-
-  int l=2;
-  p = a*l;
-  check(p.x==2 && p.y==4, "Wrong vector multiplication by a scalar.");
-
-  p = b/l;
-  check(p.x==1 && p.y==2, "Wrong vector division by a scalar.");
-
-  typedef dim2::BoundingBox<int> BB;
-  BB box1;
-  check(box1.empty(), "It should be empty.");
-
-  box1.add(a);
-  check(!box1.empty(), "It should not be empty.");
-  box1.add(b);
-
-  check(box1.bottomLeft().x==1 &&
-        box1.bottomLeft().y==2 &&
-        box1.topRight().x==3 &&
-        box1.topRight().y==4,
-        "Wrong addition of points to box.");
-
-  p.x=2; p.y=3;
-  check(box1.inside(p), "It should be inside.");
-
-  p.x=1; p.y=3;
-  check(box1.inside(p), "It should be inside.");
-
-  p.x=0; p.y=3;
-  check(!box1.inside(p), "It should not be inside.");
-
-  BB box2(p);
-  check(!box2.empty(),
-        "It should not be empty. Constructed from 1 point.");
-
-  box2.add(box1);
-  check(box2.inside(p),
-        "It should be inside. Incremented a box with another one.");
-
-  return 0;
-}
Index: test/edge_set_test.cc
===================================================================
--- test/edge_set_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,49 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-
-#include <lemon/concepts/graph.h>
-#include <lemon/concepts/ugraph.h>
-#include <lemon/smart_graph.h>
-
-#include <lemon/edge_set.h>
-
-#include "test_tools.h"
-#include "graph_test.h"
-#include "map_test.h"
-
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-typedef SmartGraph RGraph;
-
-int main() {
-  { // checking edge_sets
-    checkConcept<Graph, ListEdgeSet<RGraph> >();
-    checkConcept<UGraph, ListUEdgeSet<RGraph> >();
-    checkConcept<Graph, SmartEdgeSet<RGraph> >();
-    checkConcept<UGraph, SmartUEdgeSet<RGraph> >();
-  }
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/error_test.cc
===================================================================
--- test/error_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-
-#include <lemon/error.h>
-#include "test_tools.h"
-using namespace lemon;
-using std::cout;
-using std::endl;
-
-void faulty_fn() {
-  fault("This is a fault message");
-}
-
-void exception_fn() {
-  throw Exception("This is a fn throwing excpt with some args: ") 
-    << 5 << ", " << 18;
-}
-
-void unfinished_fn() {
-  FIXME("unfinished_fn() is unfinished!");
-}
-
-
-int main() {
-  try {
-    faulty_fn();
-    check(false, "A faulty function did not fail.");
-  }
-  catch(const Exception &e) {
-    cout << "Exeption = \"" << e.what() << "\" (Right behaviour)" << endl;
-  }
-
-  try {
-    exception_fn();
-    check(false, "The function did not throw Exception.");
-  }
-  catch(const Exception &e) {
-    cout << "Exeption = \"" << e.what() << "\" (Right behaviour)" << endl;
-  }
-
-  try {
-    unfinished_fn();
-    check(false, "FIXME macro does not work.");
-  }
-  catch(const Exception &e) {
-    cout << "Exeption = \"" << e.what() << "\" (Right behaviour)" << endl;
-  }
-
-  return 0;
-}
Index: test/graph_adaptor_test.cc
===================================================================
--- test/graph_adaptor_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,91 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include<iostream>
-#include<lemon/concept_check.h>
-
-#include<lemon/smart_graph.h>
-#include<lemon/concepts/graph.h>
-#include<lemon/concepts/ugraph.h>
-#include<lemon/concepts/bpugraph.h>
-
-#include<lemon/list_graph.h>
-#include<lemon/full_graph.h>
-#include<lemon/graph_adaptor.h>
-#include<lemon/ugraph_adaptor.h>
-#include<lemon/bpugraph_adaptor.h>
-
-#include"test/test_tools.h"
-#include"test/graph_test.h"
-
-/**
-\file
-This test makes consistency checks of graph adaptors.
-
-\todo More extensive tests are needed 
-*/
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-
-
-int main() 
-{
-  {
-    typedef Graph Graph;
-    checkConcept<Graph, GraphAdaptor<Graph> >();
-
-    checkConcept<Graph, RevGraphAdaptor<Graph> >();
-
-    checkConcept<Graph, SubGraphAdaptor<Graph, 
-      Graph::NodeMap<bool> , Graph::EdgeMap<bool> > >();
-    checkConcept<Graph, NodeSubGraphAdaptor<Graph, 
-      Graph::NodeMap<bool> > >();
-    checkConcept<Graph, EdgeSubGraphAdaptor<Graph, 
-      Graph::EdgeMap<bool> > >();
-    
-    checkConcept<Graph, ResGraphAdaptor<Graph, int, 
-      Graph::EdgeMap<int>, Graph::EdgeMap<int> > >();
-
-    checkConcept<Graph, ErasingFirstGraphAdaptor<Graph, 
-      Graph::NodeMap<Graph::Edge> > >(); 
-
-    checkConcept<Graph, SplitGraphAdaptor<Graph> >(); 
-
-    checkConcept<UGraph, UndirGraphAdaptor<Graph> >();
-
-    checkConcept<UGraph, SubUGraphAdaptor<UGraph, 
-      UGraph::NodeMap<bool> , UGraph::UEdgeMap<bool> > >();
-    checkConcept<UGraph, NodeSubUGraphAdaptor<UGraph, 
-      UGraph::NodeMap<bool> > >();
-    checkConcept<UGraph, EdgeSubUGraphAdaptor<UGraph, 
-      UGraph::UEdgeMap<bool> > >();
-
-    checkConcept<Graph, DirUGraphAdaptor<UGraph, 
-      UGraph::UEdgeMap<bool> > >();
-
-    checkConcept<BpUGraph, BpUGraphAdaptor<BpUGraph> >();
-
-    checkConcept<BpUGraph, SwapBpUGraphAdaptor<BpUGraph> >();
-
-  }
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/graph_copy_test.cc
===================================================================
--- test/graph_copy_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,330 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/smart_graph.h>
-#include <lemon/list_graph.h>
-#include <lemon/graph_reader.h>
-#include <lemon/graph_utils.h>
-#include <lemon/error.h>
-
-#include "test_tools.h"
-
-using namespace std;
-using namespace lemon;
-
-void graph_copy_test() {
-  const int nn = 10;
-
-  SmartGraph source;
-  SmartGraph::NodeMap<int> snm(source);
-  SmartGraph::EdgeMap<int> sem(source);
-  SmartGraph::Node sn = INVALID;
-  SmartGraph::Edge se = INVALID;
-
-  std::vector<SmartGraph::Node> snv;
-  for (int i = 0; i < nn; ++i) {
-    SmartGraph::Node node = source.addNode();
-    snv.push_back(node);
-    snm[node] = i * i;
-    if (i == 0) sn = node;
-  }
-
-  for (int i = 0; i < nn; ++i) {
-    for (int j = 0; j < nn; ++j) {
-      SmartGraph::Edge edge = source.addEdge(snv[i], snv[j]);
-      sem[edge] = i + j * j;
-      if (i == 0 && j == 0) se = edge;
-    }
-  }
-
-  ListGraph target;
-  ListGraph::NodeMap<int> tnm(target);
-  ListGraph::EdgeMap<int> tem(target);
-  ListGraph::Node tn;
-  ListGraph::Edge te;
-
-  SmartGraph::NodeMap<ListGraph::Node> nr(source);
-  SmartGraph::EdgeMap<ListGraph::Edge> er(source);
-
-  ListGraph::NodeMap<SmartGraph::Node> ncr(target);
-  ListGraph::EdgeMap<SmartGraph::Edge> ecr(target);
-
-  GraphCopy<ListGraph, SmartGraph>(target, source).
-    nodeMap(tnm, snm).edgeMap(tem, sem).
-    nodeRef(nr).edgeRef(er).
-    nodeCrossRef(ncr).edgeCrossRef(ecr).
-    node(tn, sn).edge(te, se).run();
-
-  for (SmartGraph::NodeIt it(source); it != INVALID; ++it) {
-    check(ncr[nr[it]] == it, "Wrong copy.");
-    check(snm[it] == tnm[nr[it]], "Wrong copy.");
-  }
-
-  for (SmartGraph::EdgeIt it(source); it != INVALID; ++it) {
-    check(ecr[er[it]] == it, "Wrong copy.");
-    check(sem[it] == tem[er[it]], "Wrong copy.");
-    check(nr[source.source(it)] == 
-                 target.source(er[it]), "Wrong copy.");
-    check(nr[source.target(it)] == 
-                 target.target(er[it]), "Wrong copy.");
-  }
-
-  for (ListGraph::NodeIt it(target); it != INVALID; ++it) {
-    check(nr[ncr[it]] == it, "Wrong copy.");
-  }
-
-  for (ListGraph::EdgeIt it(target); it != INVALID; ++it) {
-    check(er[ecr[it]] == it, "Wrong copy.");
-  }
-  check(tn == nr[sn], "Wrong copy.");
-  check(te == er[se], "Wrong copy.");
-}
-
-void ugraph_copy_test() {
-  const int nn = 10;
-
-  SmartUGraph source;
-  SmartUGraph::NodeMap<int> snm(source);
-  SmartUGraph::EdgeMap<int> sem(source);
-  SmartUGraph::UEdgeMap<int> suem(source);
-  SmartUGraph::Node sn = INVALID;
-  SmartUGraph::Edge se = INVALID;
-  SmartUGraph::UEdge sue = INVALID;
-
-  std::vector<SmartUGraph::Node> snv;
-  for (int i = 0; i < nn; ++i) {
-    SmartUGraph::Node node = source.addNode();
-    snv.push_back(node);
-    snm[node] = i * i;
-    if (i == 0) sn = node;
-  }
-
-  for (int i = 0; i < nn; ++i) {
-    for (int j = 0; j < nn; ++j) {
-      SmartUGraph::UEdge edge = source.addEdge(snv[i], snv[j]);
-      suem[edge] = i * i + j * j;
-      sem[source.direct(edge, true)] = i + j * j;
-      sem[source.direct(edge, false)] = i * i + j;
-      if (i == 0 && j == 0) se = source.direct(edge, true);
-      if (i == 0 && j == 0) sue = edge;
-    }
-  }
-  
-  ListUGraph target;
-  ListUGraph::NodeMap<int> tnm(target);
-  ListUGraph::EdgeMap<int> tem(target);
-  ListUGraph::UEdgeMap<int> tuem(target);
-  ListUGraph::Node tn;
-  ListUGraph::Edge te;
-  ListUGraph::UEdge tue;
-
-  SmartUGraph::NodeMap<ListUGraph::Node> nr(source);
-  SmartUGraph::EdgeMap<ListUGraph::Edge> er(source);
-  SmartUGraph::UEdgeMap<ListUGraph::UEdge> uer(source);
-
-  ListUGraph::NodeMap<SmartUGraph::Node> ncr(target);
-  ListUGraph::EdgeMap<SmartUGraph::Edge> ecr(target);
-  ListUGraph::UEdgeMap<SmartUGraph::UEdge> uecr(target);
-
-  UGraphCopy<ListUGraph, SmartUGraph>(target, source).
-    nodeMap(tnm, snm).edgeMap(tem, sem).uEdgeMap(tuem, suem).
-    nodeRef(nr).edgeRef(er).uEdgeRef(uer).
-    nodeCrossRef(ncr).edgeCrossRef(ecr).uEdgeCrossRef(uecr).
-    node(tn, sn).edge(te, se).uEdge(tue, sue).run();
-
-  for (SmartUGraph::NodeIt it(source); it != INVALID; ++it) {
-    check(ncr[nr[it]] == it, "Wrong copy.");
-    check(snm[it] == tnm[nr[it]], "Wrong copy.");
-  }
-
-  for (SmartUGraph::EdgeIt it(source); it != INVALID; ++it) {
-    check(ecr[er[it]] == it, "Wrong copy.");
-    check(sem[it] == tem[er[it]], "Wrong copy.");
-    check(nr[source.source(it)] == 
-                 target.source(er[it]), "Wrong copy.");
-    check(nr[source.target(it)] == 
-                 target.target(er[it]), "Wrong copy.");
-  }
-
-  for (SmartUGraph::UEdgeIt it(source); it != INVALID; ++it) {
-    check(uecr[uer[it]] == it, "Wrong copy.");
-    check(suem[it] == tuem[uer[it]], "Wrong copy.");
-    check(nr[source.source(it)] == target.source(uer[it]) ||
-                 nr[source.source(it)] == target.target(uer[it]), 
-                 "Wrong copy.");
-    check(nr[source.target(it)] == target.source(uer[it]) ||
-                 nr[source.target(it)] == target.target(uer[it]), 
-                 "Wrong copy.");
-    check((source.source(it) != source.target(it)) ==
-                 (target.source(uer[it]) != target.target(uer[it])), 
-                 "Wrong copy.");
-  }
-
-  for (ListUGraph::NodeIt it(target); it != INVALID; ++it) {
-    check(nr[ncr[it]] == it, "Wrong copy.");
-  }
-
-  for (ListUGraph::EdgeIt it(target); it != INVALID; ++it) {
-    check(er[ecr[it]] == it, "Wrong copy.");
-  }
-  for (ListUGraph::UEdgeIt it(target); it != INVALID; ++it) {
-    check(uer[uecr[it]] == it, "Wrong copy.");
-  }
-  check(tn == nr[sn], "Wrong copy.");
-  check(te == er[se], "Wrong copy.");
-  check(tue == uer[sue], "Wrong copy.");
-}
-
-void bpugraph_copy_test() {
-  const int nn = 10;
-
-  SmartBpUGraph source;
-  SmartBpUGraph::ANodeMap<int> sanm(source);
-  SmartBpUGraph::BNodeMap<int> sbnm(source);
-  SmartBpUGraph::NodeMap<int> snm(source);
-  SmartBpUGraph::EdgeMap<int> sem(source);
-  SmartBpUGraph::UEdgeMap<int> suem(source);
-  SmartBpUGraph::Node sn = INVALID;
-  SmartBpUGraph::Edge se = INVALID;
-  SmartBpUGraph::UEdge sue = INVALID;
-
-  std::vector<SmartBpUGraph::Node> sanv;
-  for (int i = 0; i < nn; ++i) {
-    SmartBpUGraph::Node node = source.addANode();
-    sanv.push_back(node);
-    sanm[node] = i * i;
-    snm[node] = i * i + i;
-    if (i == 0) sn = node;
-  }
-
-  std::vector<SmartBpUGraph::Node> sbnv;
-  for (int i = 0; i < nn; ++i) {
-    SmartBpUGraph::Node node = source.addBNode();
-    sbnv.push_back(node);
-    sbnm[node] = i * i - i;
-    snm[node] = i * i + i + 1;
-  }
-
-  for (int i = 0; i < nn; ++i) {
-    for (int j = 0; j < nn; ++j) {
-      SmartBpUGraph::UEdge edge = source.addEdge(sanv[i], sbnv[j]);
-      suem[edge] = i * i + j * j;
-      sem[source.direct(edge, true)] = i + j * j;
-      sem[source.direct(edge, false)] = i * i + j;
-      if (i == 0 && j == 0) se = source.direct(edge, true);
-      if (i == 0 && j == 0) sue = edge;
-    }
-  }
-  
-  ListBpUGraph target;
-  ListBpUGraph::ANodeMap<int> tanm(target);
-  ListBpUGraph::BNodeMap<int> tbnm(target);
-  ListBpUGraph::NodeMap<int> tnm(target);
-  ListBpUGraph::EdgeMap<int> tem(target);
-  ListBpUGraph::UEdgeMap<int> tuem(target);
-  ListBpUGraph::Node tn;
-  ListBpUGraph::Edge te;
-  ListBpUGraph::UEdge tue;
-
-  SmartBpUGraph::ANodeMap<ListBpUGraph::Node> anr(source);
-  SmartBpUGraph::BNodeMap<ListBpUGraph::Node> bnr(source);
-  SmartBpUGraph::NodeMap<ListBpUGraph::Node> nr(source);
-  SmartBpUGraph::EdgeMap<ListBpUGraph::Edge> er(source);
-  SmartBpUGraph::UEdgeMap<ListBpUGraph::UEdge> uer(source);
-
-  ListBpUGraph::ANodeMap<SmartBpUGraph::Node> ancr(target);
-  ListBpUGraph::BNodeMap<SmartBpUGraph::Node> bncr(target);
-  ListBpUGraph::NodeMap<SmartBpUGraph::Node> ncr(target);
-  ListBpUGraph::EdgeMap<SmartBpUGraph::Edge> ecr(target);
-  ListBpUGraph::UEdgeMap<SmartBpUGraph::UEdge> uecr(target);
-
-  BpUGraphCopy<ListBpUGraph, SmartBpUGraph>(target, source).
-    aNodeMap(tanm, sanm).bNodeMap(tbnm, sbnm).nodeMap(tnm, snm).
-    edgeMap(tem, sem).uEdgeMap(tuem, suem).
-    aNodeRef(anr).bNodeRef(bnr).nodeRef(nr).edgeRef(er).uEdgeRef(uer).
-    aNodeCrossRef(ancr).bNodeCrossRef(bncr).nodeCrossRef(ncr).
-    edgeCrossRef(ecr).uEdgeCrossRef(uecr).
-    node(tn, sn).edge(te, se).uEdge(tue, sue).run();
-
-  for (SmartBpUGraph::ANodeIt it(source); it != INVALID; ++it) {
-    check(nr[it] == anr[it], "Wrong copy.");
-    check(ancr[anr[it]] == it, "Wrong copy.");
-    check(sanm[it] == tanm[anr[it]], "Wrong copy.");
-  }
-
-  for (SmartBpUGraph::BNodeIt it(source); it != INVALID; ++it) {
-    check(nr[it] == bnr[it], "Wrong copy.");
-    check(bncr[bnr[it]] == it, "Wrong copy.");
-    check(sbnm[it] == tbnm[bnr[it]], "Wrong copy.");
-  }
-
-  for (SmartBpUGraph::NodeIt it(source); it != INVALID; ++it) {
-    check(ncr[nr[it]] == it, "Wrong copy.");
-    check(snm[it] == tnm[nr[it]], "Wrong copy.");
-  }
-
-  for (SmartBpUGraph::EdgeIt it(source); it != INVALID; ++it) {
-    check(ecr[er[it]] == it, "Wrong copy.");
-    check(sem[it] == tem[er[it]], "Wrong copy.");
-    check(nr[source.source(it)] == 
-                 target.source(er[it]), "Wrong copy.");
-    check(nr[source.target(it)] == 
-                 target.target(er[it]), "Wrong copy.");
-  }
-
-  for (SmartBpUGraph::UEdgeIt it(source); it != INVALID; ++it) {
-    check(uecr[uer[it]] == it, "Wrong copy.");
-    check(suem[it] == tuem[uer[it]], "Wrong copy.");
-    check(nr[source.aNode(it)] == 
-                 target.aNode(uer[it]), "Wrong copy.");
-    check(nr[source.bNode(it)] == 
-                 target.bNode(uer[it]), "Wrong copy.");
-  }
-
-  for (ListBpUGraph::ANodeIt it(target); it != INVALID; ++it) {
-    check(ancr[it] == ncr[it], "Wrong copy.");
-    check(anr[ancr[it]] == it, "Wrong copy.");
-  }
-
-  for (ListBpUGraph::BNodeIt it(target); it != INVALID; ++it) {
-    check(bncr[it] == ncr[it], "Wrong copy.");
-    check(bnr[bncr[it]] == it, "Wrong copy.");
-  }
-
-  for (ListBpUGraph::NodeIt it(target); it != INVALID; ++it) {
-    check(nr[ncr[it]] == it, "Wrong copy.");
-  }
-
-  for (ListBpUGraph::EdgeIt it(target); it != INVALID; ++it) {
-    check(er[ecr[it]] == it, "Wrong copy.");
-  }
-  for (ListBpUGraph::UEdgeIt it(target); it != INVALID; ++it) {
-    check(uer[uecr[it]] == it, "Wrong copy.");
-  }
-  check(tn == nr[sn], "Wrong copy.");
-  check(te == er[se], "Wrong copy.");
-  check(tue == uer[sue], "Wrong copy.");
-}
-
-int main() {
-  graph_copy_test();
-  ugraph_copy_test();
-  bpugraph_copy_test();
-
-  return 0; 
-}
Index: test/graph_factory_test.cc
===================================================================
--- test/graph_factory_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,156 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include<iostream>
-#include<lemon/smart_graph.h>
-#include<lemon/concepts/graph.h>
-#include<lemon/concepts/maps.h>
-#include<lemon/list_graph_base.h>
-#include<lemon/full_graph.h>
-
-#include"test_tools.h"
-#include"graph_test.h"
-
-/**
-\file
-This test makes consistency checks of list graph structures.
-
-G.addNode(), G.addEdge(), G.source(), G.target()
-
-\todo Checks for empty graphs and isolated points.
-conversion.
-*/
-
-using namespace lemon;
-
-template<class Graph> void bidirPetersen(Graph &G)
-{
-  typedef typename Graph::Edge Edge;
-  typedef typename Graph::EdgeIt EdgeIt;
-  
-  checkGraphEdgeList(G,15);
-  
-  std::vector<Edge> ee;
-  
-  for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
-
-  for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
-    G.addEdge(G.target(*p),G.source(*p));
-}
-
-template<class Graph> void checkPetersen(Graph &G)
-{
-  typedef typename Graph::Node Node;
-
-  typedef typename Graph::EdgeIt EdgeIt;
-  typedef typename Graph::NodeIt NodeIt;
-
-  checkGraphNodeList(G,10);
-  checkGraphEdgeList(G,30);
-
-  for(NodeIt n(G);n!=INVALID;++n) {
-    checkGraphInEdgeList(G,n,3);
-    checkGraphOutEdgeList(G,n,3);
-  }  
-}
-
-//Compile Graph
-template void lemon::concepts::checkCompileGraph<concepts::Graph>
-(concepts::Graph &);
-
-template
-void lemon::concepts::checkCompileGraph<concepts::Graph>
-(concepts::Graph &);
-
-template
-void lemon::concepts::checkCompileGraph<concepts::Graph>
-(concepts::Graph &);
-
-//Compile SmartGraph
-template
-void lemon::concepts::checkCompileGraph<SmartGraph>(SmartGraph &);
-template
-void lemon::concepts::checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
-
-//Compile SymSmartGraph
-//template void hugo::checkCompileGraph<SymSmartGraph>(SymSmartGraph &);
-//template void hugo::checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
-
-//Compile ListGraph
-template
-void lemon::concepts::checkCompileGraph<ListGraph>(ListGraph &);
-template
-void lemon::concepts::checkCompileGraph<ListGraph>(ListGraph &);
-template
-void lemon::concepts::checkCompileGraphFindEdge<ListGraph>(ListGraph &);
-
-
-//Compile SymListGraph
-//template void hugo::checkCompileGraph<SymListGraph>(SymListGraph &);
-//template void hugo::checkCompileGraph<SymListGraph>(SymListGraph &);
-//template void hugo::checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
-
-//Compile FullGraph
-template void lemon::concepts::checkCompileGraph<FullGraph>(FullGraph &);
-template
-void lemon::concepts::checkCompileGraphFindEdge<FullGraph>(FullGraph &);
-
-
-int main() 
-{
-  {
-    SmartGraph G;
-    addPetersen(G);
-    bidirPetersen(G);
-    checkPetersen(G);
-  }
-  {
-    ListGraph G;
-    addPetersen(G);
-    bidirPetersen(G);
-    checkPetersen(G);
-  }
-  {
-    //    SymSmartGraph G;
-    //    addPetersen(G);
-    //    checkPetersen(G);
-  }
-  {
-    //    SymListGraph G;
-    //    addPetersen(G);
-    //    checkPetersen(G);
-  }
-
-  ///\file
-  ///\todo map tests.
-  ///\todo copy constr tests.
-
-
-  // Some map tests.
-  // FIXME: These shouldn't be here.
-  using namespace concepts;
-  function_requires< ReadMapConcept< ReadMap<int,int> > >();
-  function_requires< WriteMapConcept< WriteMap<int,int> > >();
-  function_requires< ReadWriteMapConcept< ReadWriteMap<int,int> > >();
-  function_requires< ReferenceMapConcept< ReferenceMap<int,int> > >();
-
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/graph_test.cc
===================================================================
--- test/graph_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-
-#include <lemon/concepts/graph.h>
-#include <lemon/list_graph.h>
-#include <lemon/smart_graph.h>
-#include <lemon/full_graph.h>
-#include <lemon/hypercube_graph.h>
-
-#include "test_tools.h"
-#include "graph_test.h"
-#include "map_test.h"
-
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-
-int main() {
-  { // checking graph components
-    checkConcept<BaseGraphComponent, BaseGraphComponent >();
-
-    checkConcept<IDableGraphComponent<>, 
-      IDableGraphComponent<> >();
-
-    checkConcept<IterableGraphComponent<>, 
-      IterableGraphComponent<> >();
-
-    checkConcept<MappableGraphComponent<>, 
-      MappableGraphComponent<> >();
-
-  }
-  { // checking skeleton graphs
-    checkConcept<Graph, Graph>();
-  }
-  { // checking list graph
-    checkConcept<Graph, ListGraph >();
-    checkConcept<AlterableGraphComponent<>, ListGraph>();
-    checkConcept<ExtendableGraphComponent<>, ListGraph>();
-    checkConcept<ClearableGraphComponent<>, ListGraph>();
-    checkConcept<ErasableGraphComponent<>, ListGraph>();
-
-    checkGraph<ListGraph>();
-    checkGraphNodeMap<ListGraph>();
-    checkGraphEdgeMap<ListGraph>();
-  }
-  { // checking smart graph
-    checkConcept<Graph, SmartGraph >();
-
-    checkGraph<SmartGraph>();
-    checkGraphNodeMap<SmartGraph>();
-    checkGraphEdgeMap<SmartGraph>();
-  }
-  { // checking full graph
-    checkConcept<Graph, FullGraph >();
-  }
-  { // checking full graph
-    checkConcept<Graph, HyperCubeGraph >();
-  }
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/graph_test.h
===================================================================
--- test/graph_test.h	(revision 2553)
+++ 	(revision )
@@ -1,106 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#ifndef LEMON_TEST_GRAPH_TEST_H
-#define LEMON_TEST_GRAPH_TEST_H
-
-#include <lemon/graph_utils.h>
-#include "test_tools.h"
-
-//! \ingroup misc
-//! \file
-//! \brief Some utility and test cases to test graph classes.
-namespace lemon {
-
-  template<class Graph> void checkGraphNodeList(Graph &G, int nn)
-  {
-    typename Graph::NodeIt n(G);
-    for(int i=0;i<nn;i++) {
-      check(n!=INVALID,"Wrong Node list linking.");
-      ++n;
-    }
-    check(n==INVALID,"Wrong Node list linking.");
-  }
-
-  template<class Graph>
-  void checkGraphEdgeList(Graph &G, int nn)
-  {
-    typedef typename Graph::EdgeIt EdgeIt;
-
-    EdgeIt e(G);
-    for(int i=0;i<nn;i++) {
-      check(e!=INVALID,"Wrong Edge list linking.");
-      ++e;
-    }
-    check(e==INVALID,"Wrong Edge list linking.");
-  }
-
-  template<class Graph> 
-  void checkGraphOutEdgeList(Graph &G, typename Graph::Node n, int nn)
-  {
-    typename Graph::OutEdgeIt e(G,n);
-    for(int i=0;i<nn;i++) {
-      check(e!=INVALID,"Wrong OutEdge list linking.");
-      check(n==G.source(e), "Wrong OutEdge list linking.");
-      ++e;
-    }
-    check(e==INVALID,"Wrong OutEdge list linking.");
-  }
-
-  template<class Graph> void 
-  checkGraphInEdgeList(Graph &G, typename Graph::Node n, int nn)
-  {
-    typename Graph::InEdgeIt e(G,n);
-    for(int i=0;i<nn;i++) {
-      check(e!=INVALID,"Wrong InEdge list linking.");
-      check(n==G.target(e), "Wrong InEdge list linking.");
-      ++e;
-    }
-    check(e==INVALID,"Wrong InEdge list linking.");
-  }
-
-  template <class Graph> 
-  void checkGraph() {
-    const int num = 5;
-    Graph G;
-    addPetersen(G, num);
-    bidirGraph(G);
-    checkBidirPetersen(G, num);
-  }
-
-  template <class Graph> 
-  void checkGraphIterators(const Graph& graph) {
-    typedef typename Graph::Node Node;
-    typedef typename Graph::NodeIt NodeIt;
-    typedef typename Graph::Edge Edge;
-    typedef typename Graph::EdgeIt EdgeIt;
-    typedef typename Graph::InEdgeIt InEdgeIt;
-    typedef typename Graph::OutEdgeIt OutEdgeIt;
-    typedef ConEdgeIt<Graph> ConEdgeIt;
-    
-    for (NodeIt it(graph); it != INVALID; ++it) {}
-  }
-
-  ///\file
-  ///\todo Check target(), source() as well;
-
-  
-} //namespace lemon
-
-
-#endif
Index: test/graph_utils_test.cc
===================================================================
--- test/graph_utils_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,135 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-
-#include <lemon/graph_utils.h>
-
-#include <lemon/list_graph.h>
-#include <lemon/smart_graph.h>
-#include <lemon/full_graph.h>
-
-#include "test_tools.h"
-#include "graph_utils_test.h"
-
-
-using namespace lemon;
-
-template<class Graph>
-void checkSnapDeg() 
-{
-  Graph g;
-  typename Graph::Node n1=g.addNode();
-  typename Graph::Node n2=g.addNode();
-   
-  InDegMap<Graph> ind(g);
- 
-  g.addEdge(n1,n2);
-  
-  typename Graph::Snapshot snap(g);
-  
-  OutDegMap<Graph> outd(g);
-  
-  check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value.");
-  check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value.");
-
-  g.addEdge(n1,n2);
-  g.addEdge(n2,n1);
- 
-  check(ind[n1]==1 && ind[n2]==2, "Wrong InDegMap value.");
-  check(outd[n1]==2 && outd[n2]==1, "Wrong OutDegMap value.");
-
-  snap.restore();
-
-  check(ind[n1]==0 && ind[n2]==1, "Wrong InDegMap value.");
-  check(outd[n1]==1 && outd[n2]==0, "Wrong OutDegMap value.");
-  
-}
-
-int main() {
-  ///\file
-  { // checking list graph
-    checkGraphCounters<ListGraph>();
-    checkFindEdge<ListGraph>();
-  }
-  { // checking smart graph
-    checkGraphCounters<SmartGraph>();
-    checkFindEdge<SmartGraph>();
-  }
-  {
-    int num = 5;
-    FullGraph fg(num);
-    check(countNodes(fg) == num, "FullGraph: wrong node number.");
-    check(countEdges(fg) == num*num, "FullGraph: wrong edge number.");
-    for (FullGraph::NodeIt src(fg); src != INVALID; ++src) {
-      for (FullGraph::NodeIt trg(fg); trg != INVALID; ++trg) {
-	ConEdgeIt<FullGraph> con(fg, src, trg);
-	check(con != INVALID, "There is no connecting edge.");
-	check(fg.source(con) == src, "Wrong source.");
-	check(fg.target(con) == trg, "Wrong target.");
-	check(++con == INVALID, "There is more connecting edge.");
-      }
-    }
-    AllEdgeLookUp<FullGraph> el(fg);
-    for (FullGraph::NodeIt src(fg); src != INVALID; ++src) {
-      for (FullGraph::NodeIt trg(fg); trg != INVALID; ++trg) {
-	FullGraph::Edge con = el(src, trg);
-	check(con != INVALID, "There is no connecting edge.");
-	check(fg.source(con) == src, "Wrong source.");
-	check(fg.target(con) == trg, "Wrong target.");
-	check(el(src,trg,con) == INVALID, "There is more connecting edge.");
-      }
-    }
-  }
-
-  //check In/OutDegMap (and Snapshot feature)
-
-  checkSnapDeg<ListGraph>();
-  checkSnapDeg<SmartGraph>();
-  
-  {
-    const int nodeNum = 10;
-    const int edgeNum = 100;
-    ListGraph graph;
-    InDegMap<ListGraph> inDeg(graph);
-    OutDegMap<ListGraph> outDeg(graph);
-    std::vector<ListGraph::Node> nodes(nodeNum);
-    for (int i = 0; i < nodeNum; ++i) {
-      nodes[i] = graph.addNode();
-    }
-    std::vector<ListGraph::Edge> edges(edgeNum);
-    for (int i = 0; i < edgeNum; ++i) {
-      edges[i] = 
-	graph.addEdge(nodes[rnd[nodeNum]], nodes[rnd[nodeNum]]);
-    }
-    for (int i = 0; i < nodeNum; ++i) {
-      check(inDeg[nodes[i]] == countInEdges(graph, nodes[i]), 
-	    "Wrong in degree map");
-    }
-    for (int i = 0; i < nodeNum; ++i) {
-      check(outDeg[nodes[i]] == countOutEdges(graph, nodes[i]), 
-	    "Wrong in degree map");
-    }
-  }
-
-  ///Everything is OK
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/graph_utils_test.h
===================================================================
--- test/graph_utils_test.h	(revision 2553)
+++ 	(revision )
@@ -1,83 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#ifndef LEMON_TEST_GRAPH_UTILS_TEST_H
-#define LEMON_TEST_GRAPH_UTILS_TEST_H
-
-
-#include "test_tools.h"
-#include <cstdlib>
-#include <ctime>
-
-//! \ingroup misc
-//! \file
-//! \brief Test cases for graph utils.
-namespace lemon {
-  
-  template <typename Graph>
-  void checkGraphCounters() {
-    const int num = 5;
-    Graph graph;
-    addPetersen(graph, num);
-    bidirGraph(graph);
-    check(countNodes(graph) == 2*num, "Wrong node number.");
-    check(countEdges(graph) == 6*num, "Wrong edge number.");    
-    for (typename Graph::NodeIt it(graph); it != INVALID; ++it) {
-      check(countOutEdges(graph, it) == 3, "Wrong out degree number.");
-      check(countInEdges(graph, it) == 3, "Wrong in degree number.");
-    }
-  }
-
-  template <typename Graph>
-  void checkFindEdge() {
-    typedef typename Graph::Node Node;
-    typedef typename Graph::Edge Edge;
-    typedef typename Graph::NodeIt NodeIt;
-    typedef typename Graph::EdgeIt EdgeIt;
-    Graph graph;
-    for (int i = 0; i < 10; ++i) {
-      graph.addNode();
-    }
-    DescriptorMap<Graph, Node> nodes(graph);
-    typename DescriptorMap<Graph, Node>::InverseMap invNodes(nodes);
-    for (int i = 0; i < 100; ++i) {
-      int src = rnd[invNodes.size()];
-      int trg = rnd[invNodes.size()];
-      graph.addEdge(invNodes[src], invNodes[trg]);
-    }
-    typename Graph::template EdgeMap<bool> found(graph, false);
-    DescriptorMap<Graph, Edge> edges(graph);
-    for (NodeIt src(graph); src != INVALID; ++src) {
-      for (NodeIt trg(graph); trg != INVALID; ++trg) {
-	for (ConEdgeIt<Graph> con(graph, src, trg); con != INVALID; ++con) {
-	  check(graph.source(con) == src, "Wrong source.");
-	  check(graph.target(con) == trg, "Wrong target.");
-	  check(found[con] == false, "The edge found already.");
-	  found[con] = true;
-	}
-      }
-    }
-    for (EdgeIt it(graph); it != INVALID; ++it) {
-      check(found[it] == true, "The edge is not found.");
-    }
-  }
-  
-} //namespace lemon
-
-
-#endif
Index: test/heap_test.cc
===================================================================
--- test/heap_test.cc	(revision 2565)
+++ 	(revision )
@@ -1,140 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <fstream>
-#include <string>
-#include <vector>
-
-#include <lemon/concept_check.h>
-#include <lemon/concepts/heap.h>
-
-#include <lemon/smart_graph.h>
-
-#include <lemon/graph_reader.h>
-
-#include <lemon/bin_heap.h>
-#include <lemon/fib_heap.h>
-#include <lemon/radix_heap.h>
-#include <lemon/bucket_heap.h>
-
-#include "test_tools.h"
-
-#include "heap_test.h"
-
-#include <lemon/time_measure.h>
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-
-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<int> 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 += "/test/dijkstra_test.lgf";
-  
-  std::ifstream input(f_name.c_str());
-  check(input, "Input file '" << f_name << "' not found.");
-  GraphReader<Graph>(input, graph).
-    readEdgeMap("capacity", length).
-    readNode("source", start).
-    run();  
- 
-  {
-    std::cout << "Checking Bin Heap" << std::endl;
-
-    typedef BinHeap<Prio, ItemIntMap> IntHeap;
-    checkConcept<Heap<Prio, ItemIntMap>, IntHeap>();
-    heapSortTest<IntHeap>(100);
-    heapIncreaseTest<IntHeap>(100);
-    
-    typedef BinHeap<Prio, Graph::NodeMap<int> > NodeHeap;
-    checkConcept<Heap<Prio, Graph::NodeMap<int> >, NodeHeap>();
-    Timer timer;
-    dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
-    std::cout << timer << std::endl;
-  }
-  {
-    std::cout << "Checking Fib Heap" << std::endl;
-
-    typedef FibHeap<Prio, ItemIntMap> IntHeap;
-    checkConcept<Heap<Prio, ItemIntMap>, IntHeap>();
-    heapSortTest<IntHeap>(100);
-    heapIncreaseTest<IntHeap>(100);
-
-    typedef FibHeap<Prio, Graph::NodeMap<int> > NodeHeap;
-    checkConcept<Heap<Prio, Graph::NodeMap<int> >, NodeHeap>();
-    Timer timer;
-    dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
-    std::cout << timer << std::endl;
-  }
-  {
-    std::cout << "Checking Radix Heap" << std::endl;
-
-    typedef RadixHeap<ItemIntMap> IntHeap;
-    checkConcept<Heap<Prio, ItemIntMap>, IntHeap>();
-    heapSortTest<IntHeap>(100);
-    heapIncreaseTest<IntHeap>(100);
-
-    typedef RadixHeap<Graph::NodeMap<int> > NodeHeap;
-    checkConcept<Heap<Prio, Graph::NodeMap<int> >, NodeHeap>();
-    Timer timer;
-    dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
-    std::cout << timer << std::endl;
-  }
-
-  {
-    std::cout << "Checking Bucket Heap" << std::endl;
-
-    typedef BucketHeap<ItemIntMap> IntHeap;
-    checkConcept<Heap<Prio, ItemIntMap>, IntHeap>();
-    heapSortTest<IntHeap>(100);
-    heapIncreaseTest<IntHeap>(100);
-
-    typedef BucketHeap<Graph::NodeMap<int> > NodeHeap;
-    checkConcept<Heap<Prio, Graph::NodeMap<int> >, NodeHeap>();
-    Timer timer;
-    dijkstraHeapTest<Graph, LengthMap, NodeHeap>(graph, length, start);
-    std::cout << timer << std::endl;
-  }
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/heap_test.h
===================================================================
--- test/heap_test.h	(revision 2553)
+++ 	(revision )
@@ -1,123 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <vector>
-#include <algorithm>
-
-#include <lemon/dijkstra.h>
-
-class IntIntMap : public std::vector<int> {
-public:
-  typedef std::vector<int> Parent;
-
-  typedef int Key;
-  typedef int Value;
-
-  IntIntMap() : Parent() {}
-  IntIntMap(int n) : Parent(n) {}
-  IntIntMap(int n, int v) : Parent(n, v) {}
-
-  void set(int key, int value) {
-    Parent::operator[](key) = value;
-  }
-};
-
-
-template <typename _Heap>
-void heapSortTest(int n) {
-  typedef _Heap Heap;
-  IntIntMap map(n, -1);
-
-  Heap heap(map);
-  
-  std::vector<int> v(n);
-
-  for (int i = 0; i < n; ++i) {
-    v[i] = rnd[1000];
-    heap.push(i, v[i]);
-  }
-  std::sort(v.begin(), v.end());
-  for (int i = 0; i < n; ++i) {
-    check(v[i] == heap.prio() ,"Wrong order in heap sort.");
-    heap.pop();
-  }
-}
-
-template <typename _Heap>
-void heapIncreaseTest(int n) {
-  typedef _Heap Heap;
-  IntIntMap map(n, -1);
-
-  Heap heap(map);
-  
-  std::vector<int> v(n);
-
-  for (int i = 0; i < n; ++i) {
-    v[i] = rnd[1000];
-    heap.push(i, v[i]);
-  }
-  for (int i = 0; i < n; ++i) {
-    v[i] += rnd[1000];
-    heap.increase(i, v[i]);
-  }
-  std::sort(v.begin(), v.end());
-  for (int i = 0; i < n; ++i) {
-    check(v[i] == heap.prio() ,"Wrong order in heap increase test.");
-    heap.pop();
-  }
-}
-
-
-
-template <typename _Graph, typename _LengthMap, typename _Heap>
-void dijkstraHeapTest(_Graph& graph, _LengthMap& length,
-		      typename _Graph::Node& start) {
-
-  typedef _Heap Heap;
-  typedef _Graph Graph;
-  typedef _LengthMap LengthMap;
-
-  typedef typename Graph::Node Node;
-  typedef typename Graph::Edge Edge;
-  typedef typename Graph::NodeIt NodeIt;
-  typedef typename Graph::EdgeIt EdgeIt;
-
-  typename Dijkstra<Graph, LengthMap>::template DefStandardHeap<Heap>::
-    Create dijkstra(graph, length);
-
-  dijkstra.run(start);
-
-  for(EdgeIt e(graph); e!=INVALID; ++e) {
-    Node u=graph.source(e); 
-    Node v=graph.target(e);
-    if (dijkstra.reached(u)) {
-      check( dijkstra.dist(v) - dijkstra.dist(u) <= length[e],
-      	     "Error in a shortest path tree edge!");
-    }
-  }
-
-  for(NodeIt v(graph); v!=INVALID; ++v) {
-    if ( dijkstra.reached(v) && dijkstra.predEdge(v) != INVALID ) {
-      Edge e=dijkstra.predEdge(v);
-      Node u=graph.source(e);
-      check( dijkstra.dist(v) - dijkstra .dist(u) == length[e],
-	     "Error in a shortest path tree edge!");
-    }
-  }
-
-}
Index: test/kruskal_test.cc
===================================================================
--- test/kruskal_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,180 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-
-#include "test_tools.h"
-#include <lemon/maps.h>
-#include <lemon/kruskal.h>
-#include <lemon/list_graph.h>
-
-#include <lemon/concepts/maps.h>
-#include <lemon/concepts/graph.h>
-#include <lemon/concepts/ugraph.h>
-
-
-using namespace std;
-using namespace lemon;
-
-void checkCompileKruskal()
-{
-  concepts::WriteMap<concepts::Graph::Edge,bool> w;
-  concepts::WriteMap<concepts::UGraph::UEdge,bool> uw;
-
-  concepts::ReadMap<concepts::Graph::Edge,int> r;
-  concepts::ReadMap<concepts::UGraph::UEdge,int> ur;
-
-  concepts::Graph g;
-  concepts::UGraph ug;
-
-  kruskal(g, r, w);
-  kruskal(ug, ur, uw);
-
-  std::vector<std::pair<concepts::Graph::Edge, int> > rs;
-  std::vector<std::pair<concepts::UGraph::UEdge, int> > urs;
-
-  kruskal(g, rs, w);
-  kruskal(ug, urs, uw);
-
-  std::vector<concepts::Graph::Edge> ws;
-  std::vector<concepts::UGraph::UEdge> uws;
-
-  kruskal(g, r, ws.begin());
-  kruskal(ug, ur, uws.begin());
-
-  Kruskal<concepts::UGraph,concepts::ReadMap<concepts::UGraph::UEdge,int> >
-    alg(ug, ur);
-
-  alg.init();
-  alg.initPresorted(uws.begin(), uws.end());
-  alg.reinit();
-  
-  alg.emptyQueue();
-  
-  alg.nextEdge();
-  alg.processNextEdge();
-  alg.processEdge(concepts::UGraph::UEdge());
-
-  alg.run();
-  
-  alg.treeMap();
-  alg.tree(concepts::UGraph::UEdge());
-}
-
-int main() {
-
-  typedef ListUGraph::Node Node;
-  typedef ListUGraph::UEdge UEdge;
-  typedef ListUGraph::NodeIt NodeIt;
-  typedef ListUGraph::EdgeIt EdgeIt;
-
-  ListUGraph G;
-
-  Node s=G.addNode();
-  Node v1=G.addNode();
-  Node v2=G.addNode();
-  Node v3=G.addNode();
-  Node v4=G.addNode();
-  Node t=G.addNode();
-  
-  UEdge e1 = G.addEdge(s, v1);
-  UEdge e2 = G.addEdge(s, v2);
-  UEdge e3 = G.addEdge(v1, v2);
-  UEdge e4 = G.addEdge(v2, v1);
-  UEdge e5 = G.addEdge(v1, v3);
-  UEdge e6 = G.addEdge(v3, v2);
-  UEdge e7 = G.addEdge(v2, v4);
-  UEdge e8 = G.addEdge(v4, v3);
-  UEdge e9 = G.addEdge(v3, t);
-  UEdge e10 = G.addEdge(v4, t);
-
-  typedef ListUGraph::UEdgeMap<int> ECostMap;
-  typedef ListUGraph::UEdgeMap<bool> EBoolMap;
-
-  ECostMap edge_cost_map(G, 2);
-  EBoolMap tree_map(G);
-  
-
-  //Test with const map.
-  check(kruskal(G, ConstMap<ListUGraph::UEdge,int>(2), tree_map)==10,
-	"Total cost should be 10");
-  //Test with a edge map (filled with uniform costs).
-  check(kruskal(G, edge_cost_map, tree_map)==10,
-	"Total cost should be 10");
-
-  edge_cost_map.set(e1, -10);
-  edge_cost_map.set(e2, -9);
-  edge_cost_map.set(e3, -8);
-  edge_cost_map.set(e4, -7);
-  edge_cost_map.set(e5, -6);
-  edge_cost_map.set(e6, -5);
-  edge_cost_map.set(e7, -4);
-  edge_cost_map.set(e8, -3);
-  edge_cost_map.set(e9, -2);
-  edge_cost_map.set(e10, -1);
-
-  vector<UEdge> tree_edge_vec(5);
-
-  //Test with a edge map and inserter.
-  check(kruskal(G, edge_cost_map,
-		 tree_edge_vec.begin())
-	==-31,
-	"Total cost should be -31.");
-  
-  tree_edge_vec.clear();
-
-  check(kruskal(G, edge_cost_map,
-		back_inserter(tree_edge_vec))
-	==-31,
-	"Total cost should be -31.");
-  
-//   tree_edge_vec.clear();
-  
-//   //The above test could also be coded like this:
-//   check(kruskal(G,
-// 		makeKruskalMapInput(G, edge_cost_map),
-// 		makeKruskalSequenceOutput(back_inserter(tree_edge_vec)))
-// 	==-31,
-// 	"Total cost should be -31.");
-
-  check(tree_edge_vec.size()==5,"The tree should have 5 edges.");
-
-  check(tree_edge_vec[0]==e1 &&
-	tree_edge_vec[1]==e2 &&
-	tree_edge_vec[2]==e5 &&
-	tree_edge_vec[3]==e7 &&
-	tree_edge_vec[4]==e9,
-	"Wrong tree.");
-
-  Kruskal<ListUGraph, ECostMap> ka(G, edge_cost_map);
-  
-  ka.run();
-  
-  check(ka.tree(e1) && 
-        ka.tree(e2) &&
-        ka.tree(e5) &&
-        ka.tree(e7) &&
-        ka.tree(e9),
-        "Wrong tree.");
-
-  check(ka.treeValue() == -31,
-	"Total cost should be -31.");
-
-  return 0;
-}
Index: test/lp_test.cc
===================================================================
--- test/lp_test.cc	(revision 2637)
+++ 	(revision )
@@ -1,421 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <sstream>
-#include <lemon/lp_skeleton.h>
-#include "test_tools.h"
-#include <lemon/tolerance.h>
-#include <lemon/lp_utils.h>
-
-#ifdef HAVE_CONFIG_H
-#include <lemon/config.h>
-#endif
-
-#ifdef HAVE_GLPK
-#include <lemon/lp_glpk.h>
-#endif
-
-#ifdef HAVE_CPLEX
-#include <lemon/lp_cplex.h>
-#endif
-
-#ifdef HAVE_SOPLEX
-#include <lemon/lp_soplex.h>
-#endif
-
-using namespace lemon;
-
-void lpTest(LpSolverBase & lp)
-{
-
-
-
-  typedef LpSolverBase LP;
-
-  std::vector<LP::Col> x(10);
-  //  for(int i=0;i<10;i++) x.push_back(lp.addCol());
-  lp.addColSet(x);
-  lp.colLowerBound(x,1);
-  lp.colUpperBound(x,1);
-  lp.colBounds(x,1,2);
-#ifndef GYORSITAS
-
-  std::vector<LP::Col> y(10);
-  lp.addColSet(y);
-
-  lp.colLowerBound(y,1);
-  lp.colUpperBound(y,1);
-  lp.colBounds(y,1,2);
-
-  std::map<int,LP::Col> z;
-  
-  z.insert(std::make_pair(12,INVALID));
-  z.insert(std::make_pair(2,INVALID));
-  z.insert(std::make_pair(7,INVALID));
-  z.insert(std::make_pair(5,INVALID));
-
-  lp.addColSet(z);
-
-  lp.colLowerBound(z,1);
-  lp.colUpperBound(z,1);
-  lp.colBounds(z,1,2);
-
-  {
-    LP::Expr e,f,g;
-    LP::Col p1,p2,p3,p4,p5;
-    LP::Constr c;
-    
-    p1=lp.addCol();
-    p2=lp.addCol();
-    p3=lp.addCol();
-    p4=lp.addCol();
-    p5=lp.addCol();
-    
-    e[p1]=2;
-    e.constComp()=12;
-    e[p1]+=2;
-    e.constComp()+=12;
-    e[p1]-=2;
-    e.constComp()-=12;
-    
-    e=2;
-    e=2.2;
-    e=p1;
-    e=f;
-    
-    e+=2;
-    e+=2.2;
-    e+=p1;
-    e+=f;
-    
-    e-=2;
-    e-=2.2;
-    e-=p1;
-    e-=f;
-    
-    e*=2;
-    e*=2.2;
-    e/=2;
-    e/=2.2;
-    
-    e=((p1+p2)+(p1-p2)+(p1+12)+(12+p1)+(p1-12)+(12-p1)+
-       (f+12)+(12+f)+(p1+f)+(f+p1)+(f+g)+
-       (f-12)+(12-f)+(p1-f)+(f-p1)+(f-g)+
-       2.2*f+f*2.2+f/2.2+
-       2*f+f*2+f/2+
-       2.2*p1+p1*2.2+p1/2.2+
-       2*p1+p1*2+p1/2
-       );
-
-
-    c = (e  <= f  );
-    c = (e  <= 2.2);
-    c = (e  <= 2  );
-    c = (e  <= p1 );
-    c = (2.2<= f  );
-    c = (2  <= f  );
-    c = (p1 <= f  );
-    c = (p1 <= p2 );
-    c = (p1 <= 2.2);
-    c = (p1 <= 2  );
-    c = (2.2<= p2 );
-    c = (2  <= p2 );
-    
-    c = (e  >= f  );
-    c = (e  >= 2.2);
-    c = (e  >= 2  );
-    c = (e  >= p1 );
-    c = (2.2>= f  );
-    c = (2  >= f  );
-    c = (p1 >= f  );
-    c = (p1 >= p2 );
-    c = (p1 >= 2.2);
-    c = (p1 >= 2  );
-    c = (2.2>= p2 );
-    c = (2  >= p2 );
-    
-    c = (e  == f  );
-    c = (e  == 2.2);
-    c = (e  == 2  );
-    c = (e  == p1 );
-    c = (2.2== f  );
-    c = (2  == f  );
-    c = (p1 == f  );
-    //c = (p1 == p2 );
-    c = (p1 == 2.2);
-    c = (p1 == 2  );
-    c = (2.2== p2 );
-    c = (2  == p2 );
-    
-    c = (2 <= e <= 3);
-    c = (2 <= p1<= 3);
-    
-    c = (2 >= e >= 3);
-    c = (2 >= p1>= 3);
-    
-    e[x[3]]=2;
-    e[x[3]]=4;
-    e[x[3]]=1;
-    e.constComp()=12;
-    
-    lp.addRow(LP::INF,e,23);
-    lp.addRow(LP::INF,3.0*(x[1]+x[2]/2)-x[3],23);
-    lp.addRow(LP::INF,3.0*(x[1]+x[2]*2-5*x[3]+12-x[4]/3)+2*x[4]-4,23);
-    
-    lp.addRow(x[1]+x[3]<=x[5]-3);
-    lp.addRow(-7<=x[1]+x[3]-12<=3);
-    lp.addRow(x[1]<=x[5]);
-
-    std::ostringstream buf;
-
-
-    //Checking the simplify function
-
-//     //How to check the simplify function? A map gives no information
-//     //on the question whether a given key is or is not stored in it, or
-//     //it does?
-//   Yes, it does, using the find() function.
-    e=((p1+p2)+(p1-p2));
-    e.simplify();
-    buf << "Coeff. of p2 should be 0";
-    //    std::cout<<e[p1]<<e[p2]<<e[p3]<<std::endl;
-    check(e.find(p2)==e.end(), buf.str());
-    
-     
-
-
-    e=((p1+p2)+(p1-0.99*p2));
-    //e.prettyPrint(std::cout);
-    //(e<=2).prettyPrint(std::cout);
-    double tolerance=0.001;
-    e.simplify(tolerance);
-    buf << "Coeff. of p2 should be 0.01";
-    check(e[p2]>0, buf.str());
-    
-    tolerance=0.02;
-    e.simplify(tolerance);
-    buf << "Coeff. of p2 should be 0";
-    check(e.find(p2)==e.end(), buf.str());
-    
-
-  }
-  
-  {
-    LP::DualExpr e,f,g;
-    LP::Row p1 = INVALID, p2 = INVALID, p3 = INVALID, 
-      p4 = INVALID, p5 = INVALID;
-    
-    e[p1]=2;
-    e[p1]+=2;
-    e[p1]-=2;
-    
-    e=p1;
-    e=f;
-    
-    e+=p1;
-    e+=f;
-    
-    e-=p1;
-    e-=f;
-    
-    e*=2;
-    e*=2.2;
-    e/=2;
-    e/=2.2;
-    
-    e=((p1+p2)+(p1-p2)+
-       (p1+f)+(f+p1)+(f+g)+
-       (p1-f)+(f-p1)+(f-g)+
-       2.2*f+f*2.2+f/2.2+
-       2*f+f*2+f/2+
-       2.2*p1+p1*2.2+p1/2.2+
-       2*p1+p1*2+p1/2
-       );
-  }
-  
-#endif
-}
-
-void solveAndCheck(LpSolverBase& lp, LpSolverBase::SolutionStatus stat, 
-		   double exp_opt) {
-  using std::string;
-  lp.solve();
-  //int decimal,sign;
-  std::ostringstream buf;
-  buf << "Primalstatus should be: " << int(stat);
-
-  //  itoa(stat,buf1, 10);
-  check(lp.primalStatus()==stat, buf.str());
-
-  if (stat ==  LpSolverBase::OPTIMAL) {
-    std::ostringstream sbuf;
-    sbuf << "Wrong optimal value: the right optimum is " << exp_opt; 
-    check(std::abs(lp.primalValue()-exp_opt) < 1e-3, sbuf.str());
-    //+ecvt(exp_opt,2)
-  }
-}
- 
-void aTest(LpSolverBase & lp)
-{
-  typedef LpSolverBase LP;
-
- //The following example is very simple
-
-  typedef LpSolverBase::Row Row;
-  typedef LpSolverBase::Col Col;
-
-
-  Col x1 = lp.addCol();
-  Col x2 = lp.addCol();
-
-
-  //Constraints
-  Row upright=lp.addRow(x1+x2 <=1);  
-  lp.addRow(x1+x2 >=-1);  
-  lp.addRow(x1-x2 <=1);  
-  lp.addRow(x1-x2 >=-1);  
-  //Nonnegativity of the variables
-  lp.colLowerBound(x1, 0);
-  lp.colLowerBound(x2, 0);
-  //Objective function
-  lp.obj(x1+x2);
-
-  lp.max();
-
-  //Testing the problem retrieving routines
-  check(lp.objCoeff(x1)==1,"First term should be 1 in the obj function!");
-  check(lp.isMax(),"This is a maximization!");
-  check(lp.coeff(upright,x1)==1,"The coefficient in question is 1!");
-  //  std::cout<<lp.colLowerBound(x1)<<std::endl;
-  check(  lp.colLowerBound(x1)==0,"The lower bound for variable x1 should be 0.");
-  check(  lp.colUpperBound(x1)==LpSolverBase::INF,"The upper bound for variable x1 should be infty.");
-  LpSolverBase::Value lb,ub;
-  lp.getRowBounds(upright,lb,ub);
-  check(  lb==-LpSolverBase::INF,"The lower bound for the first row should be -infty.");
-  check(  ub==1,"The upper bound for the first row should be 1.");
-  LpSolverBase::Expr e = lp.row(upright);
-  check(  e.size() == 2, "The row retrieval gives back wrong expression.");
-  check(  e[x1] == 1, "The first coefficient should 1.");
-  check(  e[x2] == 1, "The second coefficient should 1.");
-
-  LpSolverBase::DualExpr de = lp.col(x1);
-  check(  de.size() == 4, "The col retrieval gives back wrong expression.");
-  check(  de[upright] == 1, "The first coefficient should 1.");
-
-  LpSolverBase* clp = lp.copyLp();
-
-  //Testing the problem retrieving routines
-  check(clp->objCoeff(x1)==1,"First term should be 1 in the obj function!");
-  check(clp->isMax(),"This is a maximization!");
-  check(clp->coeff(upright,x1)==1,"The coefficient in question is 1!");
-  //  std::cout<<lp.colLowerBound(x1)<<std::endl;
-  check(  clp->colLowerBound(x1)==0,"The lower bound for variable x1 should be 0.");
-  // std::cout << clp->colUpperBound(x1) << std::endl;
-  check(  clp->colUpperBound(x1)==LpSolverBase::INF,"The upper bound for variable x1 should be infty.");
-
-  clp->getRowBounds(upright,lb,ub);
-  check(  lb==-LpSolverBase::INF,"The lower bound for the first row should be -infty.");
-  check(  ub==1,"The upper bound for the first row should be 1.");
-  e = clp->row(upright);
-  check(  e.size() == 2, "The row retrieval gives back wrong expression.");
-  check(  e[x1] == 1, "The first coefficient should 1.");
-  check(  e[x2] == 1, "The second coefficient should 1.");
-
-  de = clp->col(x1);
-  check(  de.size() == 4, "The col retrieval gives back wrong expression.");
-  check(  de[upright] == 1, "The first coefficient should 1.");
-  
-  delete clp;
-
-  //Maximization of x1+x2
-  //over the triangle with vertices (0,0) (0,1) (1,0)
-  double expected_opt=1;
-  solveAndCheck(lp, LpSolverBase::OPTIMAL, expected_opt);
-  
-  //Minimization
-  lp.min();
-  expected_opt=0;
-  solveAndCheck(lp, LpSolverBase::OPTIMAL, expected_opt);
-  
-  //Vertex (-1,0) instead of (0,0)
-  lp.colLowerBound(x1, -LpSolverBase::INF);
-  expected_opt=-1;
-  solveAndCheck(lp, LpSolverBase::OPTIMAL, expected_opt);
-
-/*
-  //Erase one constraint and return to maximization
-  lp.eraseRow(upright);
-  lp.max();
-  expected_opt=LpSolverBase::INF;
-  solveAndCheck(lp, LpSolverBase::INFINITE, expected_opt);
-*/
-
-  //Infeasibilty
-  lp.addRow(x1+x2 <=-2);  
-  lp.max();
-  solveAndCheck(lp, LpSolverBase::INFEASIBLE, expected_opt);
-
-  //Change problem and forget to solve
-  lp.min();
-  check(lp.primalStatus()==LpSolverBase::UNDEFINED,"Primalstatus should be UNDEFINED");
-
-
-//   lp.solve();
-//   if (lp.primalStatus()==LpSolverBase::OPTIMAL){
-//     std::cout<< "Z = "<<lp.primalValue()
-// 	     << " (error = " << lp.primalValue()-expected_opt
-// 	     << "); x1 = "<<lp.primal(x1)
-// 	     << "; x2 = "<<lp.primal(x2)
-// 	     <<std::endl;
-    
-//   }
-//   else{
-//     std::cout<<lp.primalStatus()<<std::endl;
-//     std::cout<<"Optimal solution not found!"<<std::endl;
-//   }
-
- 
-
-}
-
-
-int main() 
-{
-  LpSkeleton lp_skel;
-  lpTest(lp_skel);
-
-#ifdef HAVE_GLPK
-  LpGlpk lp_glpk1,lp_glpk2;
-  lpTest(lp_glpk1);
-  aTest(lp_glpk2);
-#endif
-
-#ifdef HAVE_CPLEX
-  LpCplex lp_cplex1,lp_cplex2;
-  lpTest(lp_cplex1);
-  aTest(lp_cplex2);
-#endif
-
-#ifdef HAVE_SOPLEX
-  LpSoplex lp_soplex1,lp_soplex2;
-  lpTest(lp_soplex1);
-  aTest(lp_soplex2);
-#endif
-
-  return 0;
-}
Index: test/map_test.h
===================================================================
--- test/map_test.h	(revision 2553)
+++ 	(revision )
@@ -1,106 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#ifndef LEMON_TEST_MAP_TEST_H
-#define LEMON_TEST_MAP_TEST_H
-
-
-#include <vector>
-
-#include "test_tools.h"
-
-
-//! \ingroup misc
-//! \file
-//! \brief Some utilities to test map classes.
-
-namespace lemon {
-
-
-  template <typename Graph>
-  void checkGraphNodeMap() {
-    Graph graph;
-    const int num = 16;
-    
-    typedef typename Graph::Node Node;
-
-    std::vector<Node> nodes;
-    for (int i = 0; i < num; ++i) {
-      nodes.push_back(graph.addNode());      
-    }
-    typedef typename Graph::template NodeMap<int> IntNodeMap;
-    IntNodeMap map(graph, 42);
-    for (int i = 0; i < int(nodes.size()); ++i) {
-      check(map[nodes[i]] == 42, "Wrong map constructor.");      
-    }
-    for (int i = 0; i < num; ++i) {
-      nodes.push_back(graph.addNode());
-      map[nodes.back()] = 23;
-    }
-    map = constMap<Node>(12);
-    for (int i = 0; i < int(nodes.size()); ++i) {
-      check(map[nodes[i]] == 12, "Wrong map constructor.");      
-    }    
-    graph.clear();
-    nodes.clear();
-  }
-
-  template <typename Graph>
-  void checkGraphEdgeMap() {
-    Graph graph;
-    const int num = 16;
-    
-    typedef typename Graph::Node Node;
-    typedef typename Graph::Edge Edge;
-    
-    std::vector<Node> nodes;
-    for (int i = 0; i < num; ++i) {
-      nodes.push_back(graph.addNode());
-    }
-    
-    std::vector<Edge> edges;
-    for (int i = 0; i < num; ++i) {
-      for (int j = 0; j < i; ++j) {
-	edges.push_back(graph.addEdge(nodes[i], nodes[j]));
-      }
-    }
-    
-    typedef typename Graph::template EdgeMap<int> IntEdgeMap;
-    IntEdgeMap map(graph, 42);
-    
-    for (int i = 0; i < int(edges.size()); ++i) {
-      check(map[edges[i]] == 42, "Wrong map constructor.");      
-    }
-    
-    for (int i = 0; i < num; ++i) {
-      for (int j = i + 1; j < num; ++j) {
-	edges.push_back(graph.addEdge(nodes[i], nodes[j]));
-	map[edges.back()] = 23;
-      }
-    }
-    map = constMap<Edge>(12);
-    for (int i = 0; i < int(edges.size()); ++i) {
-      check(map[edges[i]] == 12, "Wrong map constructor.");      
-    }    
-    graph.clear();
-    edges.clear();    
-  }
-
-}
-
-#endif
Index: test/maps_test.cc
===================================================================
--- test/maps_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,108 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <deque>
-#include <set>
-
-#include <lemon/concept_check.h>
-#include <lemon/concepts/maps.h>
-#include <lemon/maps.h>
-
-#include "test_tools.h"
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-struct A {};
-inline bool operator<(A, A) { return true; }
-struct B {};
-
-class F {
-public:
-  typedef A argument_type;
-  typedef B result_type;
-
-  B operator()(const A &) const {return B();}
-};
-
-int func(A) {return 3;}
-
-int binc(int, B) {return 4;}
-
-typedef ReadMap<A,double> DoubleMap;
-typedef ReadWriteMap<A, double> WriteDoubleMap;
-
-typedef ReadMap<A,bool> BoolMap;
-typedef ReadWriteMap<A, bool> BoolWriteMap;
-
-int main()
-{ // checking graph components
-  
-  checkConcept<ReadMap<A,B>, ReadMap<A,B> >();
-  checkConcept<WriteMap<A,B>, WriteMap<A,B> >();
-  checkConcept<ReadWriteMap<A,B>, ReadWriteMap<A,B> >();
-  checkConcept<ReferenceMap<A,B,B&,const B&>, ReferenceMap<A,B,B&,const B&> >();
-
-  checkConcept<ReadMap<A,double>, AddMap<DoubleMap,DoubleMap> >();
-  checkConcept<ReadMap<A,double>, SubMap<DoubleMap,DoubleMap> >();
-  checkConcept<ReadMap<A,double>, MulMap<DoubleMap,DoubleMap> >();
-  checkConcept<ReadMap<A,double>, DivMap<DoubleMap,DoubleMap> >();
-  checkConcept<ReadMap<A,double>, NegMap<DoubleMap> >();
-  checkConcept<ReadWriteMap<A,double>, NegWriteMap<WriteDoubleMap> >();
-  checkConcept<ReadMap<A,double>, AbsMap<DoubleMap> >();
-  checkConcept<ReadMap<A,double>, ShiftMap<DoubleMap> >();
-  checkConcept<ReadWriteMap<A,double>, ShiftWriteMap<WriteDoubleMap> >();
-  checkConcept<ReadMap<A,double>, ScaleMap<DoubleMap> >();
-  checkConcept<ReadWriteMap<A,double>, ScaleWriteMap<WriteDoubleMap> >();
-  checkConcept<ReadMap<A,double>, ForkMap<DoubleMap, DoubleMap> >();
-  checkConcept<ReadWriteMap<A,double>, 
-    ForkWriteMap<WriteDoubleMap, WriteDoubleMap> >();
-  
-  checkConcept<ReadMap<B,double>, ComposeMap<DoubleMap,ReadMap<B,A> > >();
-
-  checkConcept<ReadMap<A,B>, FunctorMap<F, A, B> >();
-
-  checkConcept<ReadMap<A, bool>, NotMap<BoolMap> >();
-  checkConcept<ReadWriteMap<A, bool>, NotWriteMap<BoolWriteMap> >();
-
-  checkConcept<WriteMap<A, bool>, StoreBoolMap<A*> >();
-  checkConcept<WriteMap<A, bool>, BackInserterBoolMap<std::deque<A> > >();
-  checkConcept<WriteMap<A, bool>, FrontInserterBoolMap<std::deque<A> > >();
-  checkConcept<WriteMap<A, bool>, InserterBoolMap<std::set<A> > >();
-  checkConcept<WriteMap<A, bool>, FillBoolMap<WriteMap<A, B> > >();
-  checkConcept<WriteMap<A, bool>, SettingOrderBoolMap<WriteMap<A, int> > >();
-
-  int a;
-  
-  a=mapFunctor(constMap<A,int>(2))(A());
-  check(a==2,"Something is wrong with mapFunctor");
-
-  B b;
-  b=functorMap(F())[A()];
-
-  a=functorMap(&func)[A()];
-  check(a==3,"Something is wrong with functorMap");
-
-  a=combineMap(constMap<B, int, 1>(), identityMap<B>(), &binc)[B()];
-  check(a==4,"Something is wrong with combineMap");
-  
-
-  std::cout << __FILE__ ": All tests passed.\n";
-  
-  return 0;
-}
Index: test/matrix_maps_test.cc
===================================================================
--- test/matrix_maps_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,220 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-
-#include <lemon/concept_check.h>
-
-#include <lemon/concepts/matrix_maps.h>
-#include <lemon/concepts/maps.h>
-#include <lemon/concepts/graph.h>
-
-#include <lemon/matrix_maps.h>
-
-#include <lemon/smart_graph.h>
-
-#include "test_tools.h"
-#include "graph_test.h"
-#include "map_test.h"
-
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-int main() {
-  typedef SmartGraph Graph;
-  typedef Graph::Node Node;
-  typedef Graph::Edge Edge;
-
-  { // checking MatrixMap for int
-    typedef DynamicMatrixMap<Graph, Node, int> IntMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Node, int, 
-      IntMatrixMap::Reference, IntMatrixMap::ConstReference>,
-      IntMatrixMap>();
-
-  }
-
-  { // checking MatrixMap for bool
-    typedef DynamicMatrixMap<Graph, Node, bool> BoolMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Node, bool, 
-      BoolMatrixMap::Reference, BoolMatrixMap::ConstReference>,
-      BoolMatrixMap>();
-
-  }
-
-  {
-    Graph graph;
-    typedef DynamicMatrixMap<Graph, Node, int> IntMatrixMap;
-    IntMatrixMap matrix(graph);
-    for (int i = 0; i < 10; ++i) {
-      graph.addNode();
-    }
-    for (Graph::NodeIt it(graph); it != INVALID; ++it) {
-      for (Graph::NodeIt jt(graph); jt != INVALID; ++jt) {
-	int val = rnd[100];
-	matrix.set(it, jt, val);
-	check(matrix(it, jt) == val, "Wrong assign");
-	check(matrix(it, jt) == matrixRowMap(matrix, it)[jt], "Wrong rowMap");
-	check(matrix(it, jt) == matrixColMap(matrix, jt)[it], "Wrong colMap");
-      }
-    }
-    const IntMatrixMap& cm = matrix;
-    for (Graph::NodeIt it(graph); it != INVALID; ++it) {
-      for (Graph::NodeIt jt(graph); jt != INVALID; ++jt) {
-	check(cm(it, jt) == matrixRowMap(cm, it)[jt], "Wrong rowMap");
-	check(cm(it, jt) == matrixColMap(cm, jt)[it], "Wrong colMap");
-      }
-    }
-  }
-
-  { // checking MatrixMap for int
-    typedef DynamicSymMatrixMap<Graph, Node, int> IntMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Node, int, 
-      IntMatrixMap::Reference, IntMatrixMap::ConstReference>,
-      IntMatrixMap>();
-
-  }
-
-  { // checking MatrixMap for bool
-    typedef DynamicSymMatrixMap<Graph, Node, bool> BoolMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Node, bool, 
-      BoolMatrixMap::Reference, BoolMatrixMap::ConstReference>,
-      BoolMatrixMap>();
-
-  }
-
-  {
-    Graph graph;
-    typedef DynamicSymMatrixMap<Graph, Node, int> IntMatrixMap;
-    IntMatrixMap matrix(graph);
-    for (int i = 0; i < 10; ++i) {
-      graph.addNode();
-    }
-    for (Graph::NodeIt it(graph); it != INVALID; ++it) {
-      for (Graph::NodeIt jt(graph); jt != INVALID; ++jt) {
-	int val = rnd[100];
-	matrix.set(it, jt, val);
-	check(matrix(it, jt) == val, "Wrong assign");
-	check(matrix(jt, it) == val, "Wrong assign");
-	check(matrix(it, jt) == matrixRowMap(matrix, it)[jt], "Wrong rowMap");
-	check(matrix(it, jt) == matrixColMap(matrix, jt)[it], "Wrong colMap");
-      }
-    }
-    const IntMatrixMap& cm = matrix;
-    for (Graph::NodeIt it(graph); it != INVALID; ++it) {
-      for (Graph::NodeIt jt(graph); jt != INVALID; ++jt) {
-	check(cm(it, jt) == matrixRowMap(cm, it)[jt], "Wrong rowMap");
-	check(cm(it, jt) == matrixColMap(cm, jt)[it], "Wrong colMap");
-      }
-    }
-  }
-
-  { // checking MatrixMap for int
-    typedef DynamicAsymMatrixMap<Graph, Node, Graph, Edge, int> IntMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Edge, int, 
-      IntMatrixMap::Reference, IntMatrixMap::ConstReference>,
-      IntMatrixMap>();
-
-  }
-
-  { // checking MatrixMap for bool
-    typedef DynamicAsymMatrixMap<Graph, Node, Graph, Edge, bool> BoolMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Edge, bool, 
-      BoolMatrixMap::Reference, BoolMatrixMap::ConstReference>,
-      BoolMatrixMap>();
-
-  }
-
-  {
-    Graph graph1, graph2;
-    typedef DynamicAsymMatrixMap<Graph, Node, Graph, Edge, int> IntMatrixMap;
-    IntMatrixMap matrix(graph1, graph2);
-    for (int i = 0; i < 10; ++i) {
-      graph1.addNode();
-    }
-    graph2.addNode();
-    for (int i = 0; i < 20; ++i) {
-      graph2.addEdge(Graph::NodeIt(graph2), Graph::NodeIt(graph2));
-    }
-    for (Graph::NodeIt it(graph1); it != INVALID; ++it) {
-      for (Graph::EdgeIt jt(graph2); jt != INVALID; ++jt) {
-	int val = rnd[100];
-	matrix.set(it, jt, val);
-	check(matrix(it, jt) == val, "Wrong assign");
-	check(matrix(it, jt) == matrixRowMap(matrix, it)[jt], "Wrong rowMap");
-	check(matrix(it, jt) == matrixColMap(matrix, jt)[it], "Wrong colMap");
-      }
-    }
-    const IntMatrixMap& cm = matrix;
-    for (Graph::NodeIt it(graph1); it != INVALID; ++it) {
-      for (Graph::EdgeIt jt(graph2); jt != INVALID; ++jt) {
-	check(cm(it, jt) == matrixRowMap(cm, it)[jt], "Wrong rowMap");
-	check(cm(it, jt) == matrixColMap(cm, jt)[it], "Wrong colMap");
-      }
-    }
-  }
-
-  { // checking MatrixMap for int
-    typedef DynamicAsymMatrixMap<Graph, Node, Graph, Node, int> IntMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Node, int, 
-      IntMatrixMap::Reference, IntMatrixMap::ConstReference>,
-      IntMatrixMap>();
-
-  }
-
-  { // checking MatrixMap for bool
-    typedef DynamicAsymMatrixMap<Graph, Node, Graph, Node, bool> BoolMatrixMap;
-    checkConcept<ReferenceMatrixMap<Node, Node, bool, 
-      BoolMatrixMap::Reference, BoolMatrixMap::ConstReference>,
-      BoolMatrixMap>();
-
-  }
-
-  {
-    Graph graph;
-    typedef DynamicAsymMatrixMap<Graph, Node, Graph, Node, int> IntMatrixMap;
-    IntMatrixMap matrix(graph, graph);
-    for (int i = 0; i < 10; ++i) {
-      graph.addNode();
-    }
-    for (int i = 0; i < 20; ++i) {
-      graph.addEdge(Graph::NodeIt(graph), Graph::NodeIt(graph));
-    }
-    for (Graph::NodeIt it(graph); it != INVALID; ++it) {
-      for (Graph::NodeIt jt(graph); jt != INVALID; ++jt) {
-	int val = rnd[100];
-	matrix.set(it, jt, val);
-	check(matrix(it, jt) == val, "Wrong assign");
-	check(matrix(it, jt) == matrixRowMap(matrix, it)[jt], "Wrong rowMap");
-	check(matrix(it, jt) == matrixColMap(matrix, jt)[it], "Wrong colMap");
-      }
-    }
-    const IntMatrixMap& cm = matrix;
-    for (Graph::NodeIt it(graph); it != INVALID; ++it) {
-      for (Graph::NodeIt jt(graph); jt != INVALID; ++jt) {
-	check(cm(it, jt) == matrixRowMap(cm, it)[jt], "Wrong rowMap");
-	check(cm(it, jt) == matrixColMap(cm, jt)[it], "Wrong colMap");
-      }
-    }
-  }
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/max_matching_test.cc
===================================================================
--- test/max_matching_test.cc	(revision 2569)
+++ 	(revision )
@@ -1,185 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <vector>
-#include <queue>
-#include <lemon/math.h>
-#include <cstdlib>
-
-#include "test_tools.h"
-#include <lemon/list_graph.h>
-#include <lemon/max_matching.h>
-
-using namespace std;
-using namespace lemon;
-
-int main() {
-
-  typedef ListUGraph Graph;
-
-  typedef Graph::Edge Edge;
-  typedef Graph::UEdgeIt UEdgeIt;
-  typedef Graph::IncEdgeIt IncEdgeIt;
-  typedef Graph::NodeIt NodeIt;
-  typedef Graph::Node Node;
-   
-  Graph g;
-  g.clear();
-
-  std::vector<Graph::Node> nodes;
-  for (int i=0; i<13; ++i)
-      nodes.push_back(g.addNode());
-
-  g.addEdge(nodes[0], nodes[0]);
-  g.addEdge(nodes[6], nodes[10]);
-  g.addEdge(nodes[5], nodes[10]);
-  g.addEdge(nodes[4], nodes[10]);
-  g.addEdge(nodes[3], nodes[11]);  
-  g.addEdge(nodes[1], nodes[6]);
-  g.addEdge(nodes[4], nodes[7]);  
-  g.addEdge(nodes[1], nodes[8]);
-  g.addEdge(nodes[0], nodes[8]);
-  g.addEdge(nodes[3], nodes[12]);
-  g.addEdge(nodes[6], nodes[9]);
-  g.addEdge(nodes[9], nodes[11]);
-  g.addEdge(nodes[2], nodes[10]);
-  g.addEdge(nodes[10], nodes[8]);
-  g.addEdge(nodes[5], nodes[8]);
-  g.addEdge(nodes[6], nodes[3]);
-  g.addEdge(nodes[0], nodes[5]);
-  g.addEdge(nodes[6], nodes[12]);
-  
-  MaxMatching<Graph> max_matching(g);
-  max_matching.init();
-  max_matching.startDense();
-  
-  int s=0;
-  Graph::NodeMap<Node> mate(g,INVALID);
-  max_matching.mateMap(mate);
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    if ( mate[v]!=INVALID ) ++s;
-  }
-  int size=int(s/2);  //size will be used as the size of a maxmatching
-
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    max_matching.mate(v);
-  }
-
-  check ( size == max_matching.size(), "mate() returns a different size matching than max_matching.size()" );
-
-  Graph::NodeMap<MaxMatching<Graph>::DecompType> pos0(g);
-  max_matching.decomposition(pos0);
-  
-  max_matching.init();
-  max_matching.startSparse();
-  s=0;
-  max_matching.mateMap(mate);
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    if ( mate[v]!=INVALID ) ++s;
-  }
-  check ( int(s/2) == size, "The size does not equal!" );
-
-  Graph::NodeMap<MaxMatching<Graph>::DecompType> pos1(g);
-  max_matching.decomposition(pos1);
-
-  max_matching.run();
-  s=0;
-  max_matching.mateMap(mate);
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    if ( mate[v]!=INVALID ) ++s;
-  }
-  check ( int(s/2) == size, "The size does not equal!" ); 
-  
-  Graph::NodeMap<MaxMatching<Graph>::DecompType> pos2(g);
-  max_matching.decomposition(pos2);
-
-  max_matching.run();
-  s=0;
-  max_matching.mateMap(mate);
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    if ( mate[v]!=INVALID ) ++s;
-  }
-  check ( int(s/2) == size, "The size does not equal!" ); 
-  
-  Graph::NodeMap<MaxMatching<Graph>::DecompType> pos(g);
-  max_matching.decomposition(pos);
-   
-  bool ismatching=true;
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    if ( mate[v]!=INVALID ) {
-      Node u=mate[v];
-      if (mate[u]!=v) ismatching=false; 
-    }
-  }  
-  check ( ismatching, "It is not a matching!" );
-
-  bool coincide=true;
-  for(NodeIt v(g); v!=INVALID; ++v) {
-   if ( pos0[v] != pos1[v] || pos1[v]!=pos2[v] || pos2[v]!=pos[v] ) {
-     coincide=false;
-    }
-  }
-  check ( coincide, "The decompositions do not coincide! " );
-
-  bool noedge=true;
-  for(UEdgeIt e(g); e!=INVALID; ++e) {
-   if ( (pos[g.target(e)]==max_matching.C && 
-	 pos[g.source(e)]==max_matching.D) || 
-	 (pos[g.target(e)]==max_matching.D && 
-	  pos[g.source(e)]==max_matching.C) )
-      noedge=false; 
-  }
-  check ( noedge, "There are edges between D and C!" );
-  
-  bool oddcomp=true;
-  Graph::NodeMap<bool> todo(g,true);
-  int num_comp=0;
-  for(NodeIt v(g); v!=INVALID; ++v) {
-   if ( pos[v]==max_matching.D && todo[v] ) {
-      int comp_size=1;
-      ++num_comp;
-      std::queue<Node> Q;
-      Q.push(v);
-      todo.set(v,false);
-      while (!Q.empty()) {
-	Node w=Q.front();	
-	Q.pop();
-	for(IncEdgeIt e(g,w); e!=INVALID; ++e) {
-	  Node u=g.runningNode(e);
-	  if ( pos[u]==max_matching.D && todo[u] ) {
-	    ++comp_size;
-	    Q.push(u);
-	    todo.set(u,false);
-	  }
-	}
-      }
-      if ( !(comp_size % 2) ) oddcomp=false;  
-    }
-  }
-  check ( oddcomp, "A component of g[D] is not odd." );
-
-  int barrier=0;
-  for(NodeIt v(g); v!=INVALID; ++v) {
-    if ( pos[v]==max_matching.A ) ++barrier;
-  }
-  int expected_size=int( countNodes(g)-num_comp+barrier)/2;
-  check ( size==expected_size, "The size of the matching is wrong." );
-  
-  return 0;
-}
Index: test/max_weighted_matching_test.cc
===================================================================
--- test/max_weighted_matching_test.cc	(revision 2569)
+++ 	(revision )
@@ -1,253 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <sstream>
-#include <vector>
-#include <queue>
-#include <lemon/math.h>
-#include <cstdlib>
-
-#include "test_tools.h"
-#include <lemon/smart_graph.h>
-#include <lemon/max_matching.h>
-#include <lemon/graph_reader.h>
-
-UGRAPH_TYPEDEFS(SmartUGraph);
-
-using namespace std;
-using namespace lemon;
-
-const int lgfn = 3;
-const std::string lgf[lgfn] = {   
-  "@nodeset\n"
-  "label\n"
-  "0\n"
-  "1\n"
-  "2\n"
-  "3\n"
-  "4\n"
-  "5\n"
-  "6\n"
-  "7\n"
-  "@uedgeset\n"
-  "label        weight\n"
-  "7    4       0       984\n"
-  "0    7       1       73\n"
-  "7    1       2       204\n"
-  "2    3       3       583\n"
-  "2    7       4       565\n"
-  "2    1       5       582\n"
-  "0    4       6       551\n"
-  "2    5       7       385\n"
-  "1    5       8       561\n"
-  "5    3       9       484\n"
-  "7    5       10      904\n"
-  "3    6       11      47\n"
-  "7    6       12      888\n"
-  "3    0       13      747\n"
-  "6    1       14      310\n"
-  "@end\n",
-
-  "@nodeset\n"
-  "label\n"
-  "0\n"
-  "1\n"
-  "2\n"
-  "3\n"
-  "4\n"
-  "5\n"
-  "6\n"
-  "7\n"
-  "@uedgeset\n"
-  "label        weight\n"
-  "2    5       0       710\n"
-  "0    5       1       241\n"
-  "2    4       2       856\n"
-  "2    6       3       762\n"
-  "4    1       4       747\n"
-  "6    1       5       962\n"
-  "4    7       6       723\n"
-  "1    7       7       661\n"
-  "2    3       8       376\n"
-  "1    0       9       416\n"
-  "6    7       10      391\n"
-  "@end\n",
-
-  "@nodeset\n"
-  "label\n"
-  "0\n"
-  "1\n"
-  "2\n"
-  "3\n"
-  "4\n"
-  "5\n"
-  "6\n"
-  "7\n"
-  "@uedgeset\n"
-  "label        weight\n"
-  "6    2       0       553\n"
-  "0    7       1       653\n"
-  "6    3       2       22\n"
-  "4    7       3       846\n"
-  "7    2       4       981\n"
-  "7    6       5       250\n"
-  "5    2       6       539\n"
-  "@end\n"
-};
-
-void checkMatching(const SmartUGraph& ugraph,
-		   const SmartUGraph::UEdgeMap<int>& weight,
-		   const MaxWeightedMatching<SmartUGraph>& mwm) {
-  for (SmartUGraph::UEdgeIt e(ugraph); e != INVALID; ++e) {
-    if (ugraph.source(e) == ugraph.target(e)) continue;
-    int rw = 
-      mwm.nodeValue(ugraph.source(e)) + mwm.nodeValue(ugraph.target(e));
-
-    for (int i = 0; i < mwm.blossomNum(); ++i) {
-      bool s = false, t = false;
-      for (MaxWeightedMatching<SmartUGraph>::BlossomIt n(mwm, i); 
-	   n != INVALID; ++n) {
-	if (ugraph.source(e) == n) s = true;
-	if (ugraph.target(e) == n) t = true;
-      }
-      if (s == true && t == true) {
-	rw += mwm.blossomValue(i);
-      }
-    }
-    rw -= weight[e] * mwm.dualScale;
-
-    check(rw >= 0, "Negative reduced weight");
-    check(rw == 0 || !mwm.matching(e), 
-	  "Non-zero reduced weight on matching edge");
-  }
-
-  int pv = 0;
-  for (SmartUGraph::NodeIt n(ugraph); n != INVALID; ++n) {
-    if (mwm.matching(n) != INVALID) {
-      check(mwm.nodeValue(n) >= 0, "Invalid node value");
-      pv += weight[mwm.matching(n)];
-      SmartUGraph::Node o = ugraph.target(mwm.matching(n));
-      check(mwm.mate(n) == o, "Invalid matching");
-      check(mwm.matching(n) == ugraph.oppositeEdge(mwm.matching(o)), 
-	    "Invalid matching");
-    } else {
-      check(mwm.mate(n) == INVALID, "Invalid matching");
-      check(mwm.nodeValue(n) == 0, "Invalid matching");
-    }
-  }
-
-  int dv = 0;
-  for (SmartUGraph::NodeIt n(ugraph); n != INVALID; ++n) {
-    dv += mwm.nodeValue(n);
-  }
-
-  for (int i = 0; i < mwm.blossomNum(); ++i) {
-    check(mwm.blossomValue(i) >= 0, "Invalid blossom value");
-    check(mwm.blossomSize(i) % 2 == 1, "Even blossom size");
-    dv += mwm.blossomValue(i) * ((mwm.blossomSize(i) - 1) / 2);
-  }
-
-  check(pv * mwm.dualScale == dv * 2, "Wrong duality");
-
-  return;
-}
-
-void checkPerfectMatching(const SmartUGraph& ugraph,
-			  const SmartUGraph::UEdgeMap<int>& weight,
-			  const MaxWeightedPerfectMatching<SmartUGraph>& mwpm) {
-  for (SmartUGraph::UEdgeIt e(ugraph); e != INVALID; ++e) {
-    if (ugraph.source(e) == ugraph.target(e)) continue;
-    int rw = 
-      mwpm.nodeValue(ugraph.source(e)) + mwpm.nodeValue(ugraph.target(e));
-
-    for (int i = 0; i < mwpm.blossomNum(); ++i) {
-      bool s = false, t = false;
-      for (MaxWeightedPerfectMatching<SmartUGraph>::BlossomIt n(mwpm, i); 
-	   n != INVALID; ++n) {
-	if (ugraph.source(e) == n) s = true;
-	if (ugraph.target(e) == n) t = true;
-      }
-      if (s == true && t == true) {
-	rw += mwpm.blossomValue(i);
-      }
-    }
-    rw -= weight[e] * mwpm.dualScale;
-
-    check(rw >= 0, "Negative reduced weight");
-    check(rw == 0 || !mwpm.matching(e), 
-	  "Non-zero reduced weight on matching edge");
-  }
-
-  int pv = 0;
-  for (SmartUGraph::NodeIt n(ugraph); n != INVALID; ++n) {
-    check(mwpm.matching(n) != INVALID, "Non perfect");
-    pv += weight[mwpm.matching(n)];
-    SmartUGraph::Node o = ugraph.target(mwpm.matching(n));
-    check(mwpm.mate(n) == o, "Invalid matching");
-    check(mwpm.matching(n) == ugraph.oppositeEdge(mwpm.matching(o)), 
-	  "Invalid matching");
-  }
-
-  int dv = 0;
-  for (SmartUGraph::NodeIt n(ugraph); n != INVALID; ++n) {
-    dv += mwpm.nodeValue(n);
-  }
-
-  for (int i = 0; i < mwpm.blossomNum(); ++i) {
-    check(mwpm.blossomValue(i) >= 0, "Invalid blossom value");
-    check(mwpm.blossomSize(i) % 2 == 1, "Even blossom size");
-    dv += mwpm.blossomValue(i) * ((mwpm.blossomSize(i) - 1) / 2);
-  }
-
-  check(pv * mwpm.dualScale == dv * 2, "Wrong duality");
-
-  return;
-}
-
-
-int main() {
-
-  for (int i = 0; i < lgfn; ++i) {
-    SmartUGraph ugraph;
-    SmartUGraph::UEdgeMap<int> weight(ugraph);
-    
-    istringstream lgfs(lgf[i]);
-    UGraphReader<SmartUGraph>(lgfs, ugraph).
-      readUEdgeMap("weight", weight).run();
-
-    MaxWeightedMatching<SmartUGraph> mwm(ugraph, weight);
-    mwm.run();
-    checkMatching(ugraph, weight, mwm);
-
-    MaxMatching<SmartUGraph> mm(ugraph);
-    mm.run();
-
-    MaxWeightedPerfectMatching<SmartUGraph> mwpm(ugraph, weight);
-    bool perfect = mwpm.run();
-
-    check(perfect == (mm.size() * 2 == countNodes(ugraph)), 
-	  "Perfect matching found");
-
-    if (perfect) {
-      checkPerfectMatching(ugraph, weight, mwpm);
-    }
-  }
-  
-  return 0;
-}
Index: test/min_cost_flow_test.cc
===================================================================
--- test/min_cost_flow_test.cc	(revision 2621)
+++ 	(revision )
@@ -1,329 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <fstream>
-
-#include <lemon/list_graph.h>
-#include <lemon/smart_graph.h>
-#include <lemon/graph_reader.h>
-#include <lemon/dimacs.h>
-#include <lemon/time_measure.h>
-
-#include <lemon/cycle_canceling.h>
-#include <lemon/capacity_scaling.h>
-#include <lemon/cost_scaling.h>
-#include <lemon/network_simplex.h>
-
-#include <lemon/min_cost_flow.h>
-#include <lemon/min_cost_max_flow.h>
-
-#include "test_tools.h"
-
-using namespace lemon;
-
-// Checks the feasibility of a flow
-template < typename Graph, typename LowerMap, typename CapacityMap,
-           typename SupplyMap, typename FlowMap >
-bool checkFlow( const Graph& gr,
-                const LowerMap& lower, const CapacityMap& upper,
-                const SupplyMap& supply, const FlowMap& flow )
-{
-  GRAPH_TYPEDEFS(typename Graph);
-  for (EdgeIt e(gr); e != INVALID; ++e)
-    if (flow[e] < lower[e] || flow[e] > upper[e]) return false;
-
-  for (NodeIt n(gr); n != INVALID; ++n) {
-    typename SupplyMap::Value sum = 0;
-    for (OutEdgeIt e(gr, n); e != INVALID; ++e)
-      sum += flow[e];
-    for (InEdgeIt e(gr, n); e != INVALID; ++e)
-      sum -= flow[e];
-    if (sum != supply[n]) return false;
-  }
-
-  return true;
-}
-
-// Checks the optimalitiy of a flow
-template < typename Graph, typename LowerMap, typename CapacityMap,
-           typename CostMap, typename FlowMap, typename PotentialMap >
-bool checkOptimality( const Graph& gr, const LowerMap& lower,
-                      const CapacityMap& upper, const CostMap& cost,
-                      const FlowMap& flow, const PotentialMap& pi )
-{
-  GRAPH_TYPEDEFS(typename Graph);
-  // Checking the Complementary Slackness optimality condition
-  bool opt = true;
-  for (EdgeIt e(gr); e != INVALID; ++e) {
-    typename CostMap::Value red_cost =
-      cost[e] + pi[gr.source(e)] - pi[gr.target(e)];
-    opt = red_cost == 0 ||
-          (red_cost > 0 && flow[e] == lower[e]) ||
-          (red_cost < 0 && flow[e] == upper[e]);
-    if (!opt) break;
-  }
-  return opt;
-}
-
-// Runs a minimum cost flow algorithm and checks the results
-template < typename MinCostFlowImpl, typename Graph,
-           typename LowerMap, typename CapacityMap,
-           typename CostMap, typename SupplyMap >
-void checkMcf( std::string test_id,
-               const MinCostFlowImpl& mcf, const Graph& gr,
-               const LowerMap& lower, const CapacityMap& upper,
-               const CostMap& cost, const SupplyMap& supply,
-               bool mcf_result, bool result,
-               typename CostMap::Value total )
-{
-  check(mcf_result == result, "Wrong result " + test_id);
-  if (result) {
-    check(checkFlow(gr, lower, upper, supply, mcf.flowMap()),
-          "The flow is not feasible " + test_id);
-    check(mcf.totalCost() == total, "The flow is not optimal " + test_id);
-    check(checkOptimality(gr, lower, upper, cost, mcf.flowMap(), mcf.potentialMap()),
-          "Wrong potentials " + test_id);
-  }
-}
-
-int main()
-{
-  // Various tests on a small graph
-  {
-    typedef ListGraph Graph;
-    GRAPH_TYPEDEFS(ListGraph);
-
-    // Reading the test graph
-    Graph gr;
-    Graph::EdgeMap<int> c(gr), l1(gr), l2(gr), u(gr);
-    Graph::NodeMap<int> s1(gr), s2(gr), s3(gr);
-    Node v, w;
-
-    std::string fname;
-    if(getenv("srcdir"))
-      fname = std::string(getenv("srcdir"));
-    else fname = ".";
-    fname += "/test/min_cost_flow_test.lgf";
-
-    std::ifstream input(fname.c_str());
-    check(input, "Input file '" << fname << "' not found");
-    GraphReader<Graph>(input, gr).
-      readEdgeMap("cost", c).
-      readEdgeMap("capacity", u).
-      readEdgeMap("lower1", l1).
-      readEdgeMap("lower2", l2).
-      readNodeMap("supply1", s1).
-      readNodeMap("supply2", s2).
-      readNodeMap("supply3", s3).
-      readNode("source", v).
-      readNode("target", w).
-      run();
-    input.close();
-
-    // Testing CapacityScaling (scaling enabled)
-    {
-      CapacityScaling<Graph> mcf1(gr,u,c,s1);        checkMcf("#A1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
-      CapacityScaling<Graph> mcf2(gr,u,c,s2);        checkMcf("#A2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
-      CapacityScaling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#A3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
-      CapacityScaling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#A4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
-      CapacityScaling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#A5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
-      CapacityScaling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#A6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
-    }
-    // Testing CapacityScaling (scaling disabled)
-    {
-      CapacityScaling<Graph> mcf1(gr,u,c,s1);        checkMcf("#B1",mcf1,gr,l1,u,c,s1,mcf1.run(false),true,    0);
-      CapacityScaling<Graph> mcf2(gr,u,c,s2);        checkMcf("#B2",mcf2,gr,l1,u,c,s2,mcf2.run(false),true, 5240);
-      CapacityScaling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#B3",mcf3,gr,l1,u,c,s3,mcf3.run(false),true, 7620);
-      CapacityScaling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#B4",mcf4,gr,l2,u,c,s1,mcf4.run(false),false,   0);
-      CapacityScaling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#B5",mcf5,gr,l2,u,c,s2,mcf5.run(false),true, 5970);
-      CapacityScaling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#B6",mcf6,gr,l2,u,c,s3,mcf6.run(false),true, 8010);
-    }
-
-    // Testing CostScaling
-    {
-      CostScaling<Graph> mcf1(gr,u,c,s1);        checkMcf("#C1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
-      CostScaling<Graph> mcf2(gr,u,c,s2);        checkMcf("#C2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
-      CostScaling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#C3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
-      CostScaling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#C4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
-      CostScaling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#C5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
-      CostScaling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#C6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
-    }
-
-    // Testing NetworkSimplex (with the default pivot rule)
-    {
-      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#D1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
-      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#D2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
-      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#D3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
-      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#D4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
-      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#D5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
-      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#D6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
-    }
-    // Testing NetworkSimplex (with FIRST_ELIGIBLE_PIVOT)
-    {
-      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::FIRST_ELIGIBLE_PIVOT;
-      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#E1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
-      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#E2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
-      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#E3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
-      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#E4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
-      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#E5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
-      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#E6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
-    }
-    // Testing NetworkSimplex (with BEST_ELIGIBLE_PIVOT)
-    {
-      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::BEST_ELIGIBLE_PIVOT;
-      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#F1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
-      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#F2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
-      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#F3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
-      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#F4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
-      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#F5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
-      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#F6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
-    }
-    // Testing NetworkSimplex (with BLOCK_SEARCH_PIVOT)
-    {
-      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::BLOCK_SEARCH_PIVOT;
-      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#G1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
-      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#G2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
-      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#G3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
-      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#G4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
-      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#G5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
-      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#G6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
-    }
-    // Testing NetworkSimplex (with CANDIDATE_LIST_PIVOT)
-    {
-      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::CANDIDATE_LIST_PIVOT;
-      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#I1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
-      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#I2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
-      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#I3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
-      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#I4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
-      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#I5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
-      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#I6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
-    }
-    // Testing NetworkSimplex (with ALTERING_LIST_PIVOT)
-    {
-      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::ALTERING_LIST_PIVOT;
-      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#H1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
-      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#H2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
-      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#H3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
-      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#H4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
-      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#H5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
-      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#H6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
-    }
-
-    // Testing CycleCanceling (with BellmanFord)
-    {
-      CycleCanceling<Graph> mcf1(gr,u,c,s1);        checkMcf("#J1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
-      CycleCanceling<Graph> mcf2(gr,u,c,s2);        checkMcf("#J2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
-      CycleCanceling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#J3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
-      CycleCanceling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#J4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
-      CycleCanceling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#J5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
-      CycleCanceling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#J6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
-    }
-    // Testing CycleCanceling (with MinMeanCycle)
-    {
-      CycleCanceling<Graph> mcf1(gr,u,c,s1);        checkMcf("#K1",mcf1,gr,l1,u,c,s1,mcf1.run(true),true,    0);
-      CycleCanceling<Graph> mcf2(gr,u,c,s2);        checkMcf("#K2",mcf2,gr,l1,u,c,s2,mcf2.run(true),true, 5240);
-      CycleCanceling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#K3",mcf3,gr,l1,u,c,s3,mcf3.run(true),true, 7620);
-      CycleCanceling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#K4",mcf4,gr,l2,u,c,s1,mcf4.run(true),false,   0);
-      CycleCanceling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#K5",mcf5,gr,l2,u,c,s2,mcf5.run(true),true, 5970);
-      CycleCanceling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#K6",mcf6,gr,l2,u,c,s3,mcf6.run(true),true, 8010);
-    }
-
-    // Testing MinCostFlow
-    {
-      MinCostFlow<Graph> mcf1(gr,u,c,s1);        checkMcf("#L1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
-      MinCostFlow<Graph> mcf2(gr,u,c,s2);        checkMcf("#L2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
-      MinCostFlow<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#L3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
-      MinCostFlow<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#L4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
-      MinCostFlow<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#L5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
-      MinCostFlow<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#L6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
-    }
-
-    // Testing MinCostMaxFlow
-    {
-      MinCostMaxFlow<Graph> mcmf(gr,u,c,v,w);
-      mcmf.run();
-      checkMcf("#M1",mcmf,gr,l1,u,c,s3,true,true,7620);
-    }
-  }
-
-  // Benchmark test on a DIMACS network
-  {
-    typedef SmartGraph Graph;
-    GRAPH_TYPEDEFS(SmartGraph);
-
-    // Reading the test graph
-    Graph graph;
-    Graph::EdgeMap<int> lower(graph), capacity(graph), cost(graph);
-    Graph::NodeMap<int> supply(graph);
-
-    std::string fname;
-    if(getenv("srcdir"))
-      fname = std::string(getenv("srcdir"));
-    else fname = ".";
-    fname += "/test/min_cost_flow_test.net";
-
-    std::ifstream input(fname.c_str());
-    check(input, "Input file '" << fname << "' not found");
-    readDimacs(input, graph, lower, capacity, cost, supply);
-    input.close();
-
-    // NetworkSimplex
-    {
-      Timer t;
-      NetworkSimplex<Graph> mcf(graph, lower, capacity, cost, supply);
-      bool res = mcf.run();
-      t.stop();
-      checkMcf("#T3", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
-      std::cout << "NetworkSimplex";
-      std::cout << std::endl << t << std::endl;
-    }
-    // CapacityScaling
-    {
-      Timer t;
-      CapacityScaling<Graph> mcf(graph, lower, capacity, cost, supply);
-      bool res = mcf.run();
-      t.stop();
-      checkMcf("#T1", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
-      std::cout << "CapacityScaling";
-      std::cout << std::endl << t << std::endl;
-    }
-    // CostScaling
-    {
-      Timer t;
-      CostScaling<Graph> mcf(graph, lower, capacity, cost, supply);
-      bool res = mcf.run();
-      t.stop();
-      checkMcf("#T2", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
-      std::cout << "CostScaling";
-      std::cout << std::endl << t << std::endl;
-    }
-    // CycleCanceling
-    {
-      Timer t;
-      CycleCanceling<Graph> mcf(graph, lower, capacity, cost, supply);
-      bool res = mcf.run();
-      t.stop();
-      checkMcf("#T4", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
-      std::cout << "CycleCanceling";
-      std::cout << std::endl << t << std::endl;
-    }
-  }
-
-  return 0;
-}
Index: test/min_cost_flow_test.lgf
===================================================================
--- test/min_cost_flow_test.lgf	(revision 2584)
+++ 	(revision )
@@ -1,44 +1,0 @@
-@nodeset
-label	supply1	supply2	supply3
-1	0	20	27	
-2	0	-4	0		
-3	0	0	0	
-4	0	0	0	
-5	0	9	0	
-6	0	-6	0	
-7	0	0	0	
-8	0	0	0	
-9	0	3	0	
-10	0	-2	0	
-11	0	0	0		
-12	0	-20	-27	
-               
-@edgeset
-		cost	capacity	lower1	lower2
-1	2	70	11		0	8
-1	3	150	3		0	1
-1	4	80	15		0	2
-2	8	80	12		0	0
-3	5	140	5		0	3
-4	6	60	10		0	1
-4	7	80	2		0	0
-4	8	110	3		0	0
-5	7	60	14		0	0
-5	11	120	12		0	0
-6	3	0	3		0	0
-6	9	140	4		0	0
-6	10	90	8		0	0
-7	1	30	5		0	0
-8	12	60	16		0	4
-9	12	50	6		0	0
-10	12	70	13		0	5
-10	2	100	7		0	0
-10	7	60	10		0	0
-11	10	20	14		0	6
-12	11	30	10		0	0
-
-@nodes
-source	1
-target	12
-
-@end
Index: test/min_cost_flow_test.net
===================================================================
--- test/min_cost_flow_test.net	(revision 2584)
+++ 	(revision )
@@ -1,1531 +1,0 @@
-c NETGEN flow network generator (C version)
-c  Problem  1 input parameters
-c  ---------------------------
-c   Random seed:            13502460
-c   Number of nodes:             200
-c   Source nodes:                100
-c   Sink nodes:                  100
-c   Number of arcs:             1300
-c   Minimum arc cost:              1
-c   Maximum arc cost:          10000
-c   Total supply:             100000
-c   Transshipment -
-c     Sources:                     0
-c     Sinks:                       0
-c   Skeleton arcs -
-c     With max cost:               0%
-c     Capacitated:                 0%
-c   Minimum arc capacity:          0
-c   Maximum arc capacity:          0
-c
-c  *** Minimum cost flow ***
-c
-p min 200 1308
-n 1 286
-n 2 671
-n 3 605
-n 4 195
-n 5 1287
-n 6 497
-n 7 149
-n 8 660
-n 9 676
-n 10 1338
-n 11 222
-n 12 738
-n 13 1819
-n 14 1857
-n 15 1749
-n 16 1479
-n 17 154
-n 18 1897
-n 19 707
-n 20 367
-n 21 917
-n 22 410
-n 23 1000
-n 24 770
-n 25 1122
-n 26 1895
-n 27 1501
-n 28 514
-n 29 2227
-n 30 913
-n 31 947
-n 32 2260
-n 33 996
-n 34 986
-n 35 125
-n 36 362
-n 37 706
-n 38 1262
-n 39 389
-n 40 1410
-n 41 758
-n 42 2189
-n 43 531
-n 44 527
-n 45 2028
-n 46 1710
-n 47 1196
-n 48 832
-n 49 73
-n 50 1269
-n 51 1485
-n 52 1174
-n 53 1325
-n 54 2136
-n 55 852
-n 56 301
-n 57 707
-n 58 807
-n 59 1242
-n 60 1739
-n 61 1225
-n 62 94
-n 63 989
-n 64 1641
-n 65 805
-n 66 236
-n 67 1520
-n 68 1421
-n 69 936
-n 70 100
-n 71 952
-n 72 501
-n 73 1858
-n 74 1563
-n 75 186
-n 76 1307
-n 77 626
-n 78 1032
-n 79 939
-n 80 1159
-n 81 904
-n 82 1332
-n 83 1280
-n 84 2080
-n 85 1260
-n 86 512
-n 87 191
-n 88 309
-n 89 1053
-n 90 1070
-n 91 656
-n 92 1155
-n 93 493
-n 94 1135
-n 95 1199
-n 96 1914
-n 97 677
-n 98 192
-n 99 914
-n 100 1638
-n 101 -1827
-n 102 -1234
-n 103 -903
-n 104 -1166
-n 105 -2594
-n 106 -10
-n 107 -710
-n 108 -1074
-n 109 -686
-n 110 -147
-n 111 -955
-n 112 -535
-n 113 -1118
-n 114 -381
-n 115 -297
-n 116 -599
-n 117 -1534
-n 118 -160
-n 119 -114
-n 120 -1633
-n 121 -195
-n 122 -689
-n 123 -62
-n 124 -111
-n 125 -869
-n 126 -84
-n 127 -2074
-n 128 -31
-n 129 -1851
-n 130 -1720
-n 131 -754
-n 132 -2739
-n 133 -155
-n 134 -3154
-n 135 -572
-n 136 -2372
-n 137 -321
-n 138 -86
-n 139 -1687
-n 140 -1346
-n 141 -2465
-n 142 -388
-n 143 -1861
-n 144 -971
-n 145 -628
-n 146 -187
-n 147 -26
-n 148 -1975
-n 149 -2424
-n 150 -574
-n 151 -163
-n 152 -1126
-n 153 -2865
-n 154 -233
-n 155 -2837
-n 156 -1209
-n 157 -2017
-n 158 -2228
-n 159 -740
-n 160 -290
-n 161 -9
-n 162 -151
-n 163 -2922
-n 164 -1405
-n 165 -374
-n 166 -880
-n 167 -47
-n 168 -865
-n 169 -728
-n 170 -103
-n 171 -616
-n 172 -318
-n 173 -2548
-n 174 -353
-n 175 -937
-n 176 -1012
-n 177 -504
-n 178 -39
-n 179 -1897
-n 180 -1130
-n 181 -1971
-n 182 -1941
-n 183 -1758
-n 184 -2284
-n 185 -998
-n 186 -875
-n 187 -1083
-n 188 -257
-n 189 -2394
-n 190 -351
-n 191 -578
-n 192 -53
-n 193 -223
-n 194 -869
-n 195 -1088
-n 196 -96
-n 197 -755
-n 198 -1577
-n 199 -131
-n 200 -124
-a 1 102 0 100000 8550
-a 1 171 0 100000 7415
-a 1 101 0 100000 7178
-a 1 165 0 100000 4494
-a 1 151 0 100000 6289
-a 1 187 0 100000 1281
-a 1 189 0 100000 6859
-a 1 166 0 100000 8963
-a 1 182 0 100000 1704
-a 1 112 0 100000 6045
-a 1 154 0 100000 5938
-a 1 160 0 100000 8099
-a 1 186 0 100000 3667
-a 1 126 0 100000 6885
-a 1 132 0 100000 1207
-a 1 197 0 100000 7041
-a 2 181 0 100000 8581
-a 2 155 0 100000 4218
-a 2 152 0 100000 9984
-a 2 166 0 100000 7839
-a 2 184 0 100000 6509
-a 2 164 0 100000 4037
-a 2 167 0 100000 3308
-a 2 180 0 100000 3719
-a 2 157 0 100000 2558
-a 2 120 0 100000 1380
-a 2 159 0 100000 452
-a 2 119 0 100000 1576
-a 2 111 0 100000 9029
-a 2 146 0 100000 3919
-a 2 145 0 100000 2355
-a 3 166 0 100000 9197
-a 3 180 0 100000 5974
-a 3 106 0 100000 5746
-a 3 119 0 100000 7933
-a 3 145 0 100000 8276
-a 3 120 0 100000 3279
-a 3 103 0 100000 5734
-a 3 130 0 100000 5935
-a 3 157 0 100000 5403
-a 3 175 0 100000 730
-a 4 119 0 100000 4678
-a 4 134 0 100000 752
-a 4 199 0 100000 6613
-a 4 104 0 100000 5132
-a 4 158 0 100000 6946
-a 4 139 0 100000 5430
-a 4 113 0 100000 5236
-a 4 174 0 100000 6554
-a 4 179 0 100000 4745
-a 4 103 0 100000 3365
-a 4 144 0 100000 2841
-a 4 169 0 100000 743
-a 4 130 0 100000 1917
-a 4 197 0 100000 5331
-a 4 175 0 100000 2557
-a 5 158 0 100000 8388
-a 5 102 0 100000 3231
-a 5 155 0 100000 4091
-a 5 125 0 100000 7576
-a 6 106 0 100000 1759
-a 6 120 0 100000 3707
-a 6 192 0 100000 2581
-a 6 176 0 100000 8376
-a 6 121 0 100000 5426
-a 6 102 0 100000 895
-a 6 167 0 100000 8750
-a 6 152 0 100000 454
-a 6 124 0 100000 2864
-a 6 108 0 100000 3204
-a 6 184 0 100000 8370
-a 6 195 0 100000 2914
-a 6 149 0 100000 9326
-a 6 140 0 100000 7174
-a 6 169 0 100000 9346
-a 6 127 0 100000 6898
-a 6 134 0 100000 8782
-a 6 173 0 100000 9386
-a 6 183 0 100000 9188
-a 7 198 0 100000 1118
-a 7 102 0 100000 6098
-a 7 170 0 100000 5021
-a 7 199 0 100000 6752
-a 8 180 0 100000 1271
-a 8 129 0 100000 4668
-a 8 170 0 100000 7417
-a 8 177 0 100000 3773
-a 8 106 0 100000 7995
-a 8 134 0 100000 4729
-a 8 183 0 100000 2999
-a 8 159 0 100000 7149
-a 8 164 0 100000 4594
-a 9 140 0 100000 7422
-a 9 159 0 100000 1784
-a 9 182 0 100000 7713
-a 9 193 0 100000 194
-a 9 125 0 100000 2095
-a 9 198 0 100000 7925
-a 9 169 0 100000 2421
-a 9 195 0 100000 9863
-a 9 146 0 100000 7451
-a 9 126 0 100000 858
-a 9 197 0 100000 4286
-a 9 192 0 100000 9168
-a 9 109 0 100000 6058
-a 9 106 0 100000 9915
-a 9 138 0 100000 7024
-a 9 123 0 100000 3551
-a 9 163 0 100000 5507
-a 9 104 0 100000 5826
-a 9 139 0 100000 787
-a 10 143 0 100000 6434
-a 10 175 0 100000 5810
-a 10 165 0 100000 612
-a 10 126 0 100000 6095
-a 10 101 0 100000 1609
-a 10 153 0 100000 4862
-a 10 149 0 100000 1918
-a 10 140 0 100000 782
-a 10 145 0 100000 9166
-a 10 141 0 100000 846
-a 10 176 0 100000 2056
-a 10 113 0 100000 4056
-a 11 124 0 100000 4877
-a 11 176 0 100000 683
-a 11 177 0 100000 4842
-a 11 107 0 100000 5609
-a 11 139 0 100000 7808
-a 11 188 0 100000 2218
-a 11 134 0 100000 9467
-a 11 169 0 100000 5894
-a 11 109 0 100000 8396
-a 11 165 0 100000 9248
-a 11 149 0 100000 889
-a 11 175 0 100000 9202
-a 11 130 0 100000 4593
-a 11 152 0 100000 1837
-a 11 145 0 100000 9058
-a 11 138 0 100000 3582
-a 11 122 0 100000 7516
-a 11 146 0 100000 719
-a 11 112 0 100000 9082
-a 11 160 0 100000 6105
-a 11 128 0 100000 4323
-a 11 194 0 100000 8202
-a 11 168 0 100000 8736
-a 11 102 0 100000 8382
-a 11 101 0 100000 9503
-a 12 117 0 100000 3034
-a 12 172 0 100000 7033
-a 12 183 0 100000 7235
-a 12 105 0 100000 2219
-a 12 163 0 100000 9998
-a 12 198 0 100000 6881
-a 12 114 0 100000 8613
-a 12 174 0 100000 4456
-a 12 147 0 100000 4762
-a 12 101 0 100000 2794
-a 12 120 0 100000 5705
-a 12 144 0 100000 9694
-a 12 191 0 100000 1124
-a 12 161 0 100000 8140
-a 12 185 0 100000 8678
-a 13 163 0 100000 854
-a 13 141 0 100000 3211
-a 13 122 0 100000 5557
-a 13 169 0 100000 4912
-a 13 151 0 100000 9351
-a 13 162 0 100000 5018
-a 13 131 0 100000 6210
-a 13 167 0 100000 1858
-a 13 133 0 100000 2148
-a 13 175 0 100000 4424
-a 13 112 0 100000 8310
-a 13 179 0 100000 7491
-a 13 142 0 100000 3439
-a 13 199 0 100000 7269
-a 14 148 0 100000 8480
-a 14 163 0 100000 2274
-a 14 143 0 100000 2854
-a 14 140 0 100000 2177
-a 14 161 0 100000 5688
-a 14 146 0 100000 7526
-a 14 118 0 100000 2712
-a 14 169 0 100000 552
-a 14 187 0 100000 9060
-a 14 166 0 100000 248
-a 14 155 0 100000 5144
-a 14 186 0 100000 3864
-a 14 111 0 100000 6005
-a 14 193 0 100000 4245
-a 14 120 0 100000 8330
-a 14 152 0 100000 7421
-a 14 126 0 100000 142
-a 14 165 0 100000 3420
-a 14 199 0 100000 6522
-a 14 153 0 100000 5961
-a 14 130 0 100000 5736
-a 15 186 0 100000 4114
-a 15 148 0 100000 9833
-a 15 187 0 100000 8173
-a 15 134 0 100000 2495
-a 15 115 0 100000 4604
-a 15 146 0 100000 2949
-a 15 189 0 100000 9903
-a 15 138 0 100000 8139
-a 15 184 0 100000 7591
-a 15 110 0 100000 5914
-a 15 165 0 100000 5669
-a 15 103 0 100000 3590
-a 16 130 0 100000 9385
-a 16 176 0 100000 9727
-a 16 199 0 100000 9266
-a 16 198 0 100000 9129
-a 16 194 0 100000 6915
-a 16 155 0 100000 5789
-a 16 190 0 100000 1965
-a 16 135 0 100000 7619
-a 16 195 0 100000 6171
-a 16 131 0 100000 2529
-a 16 171 0 100000 5969
-a 17 144 0 100000 9423
-a 17 157 0 100000 9156
-a 17 176 0 100000 2918
-a 17 158 0 100000 7903
-a 17 129 0 100000 7213
-a 17 160 0 100000 4253
-a 17 156 0 100000 8909
-a 17 182 0 100000 6735
-a 17 139 0 100000 9549
-a 17 162 0 100000 7045
-a 17 138 0 100000 2554
-a 17 143 0 100000 4064
-a 17 173 0 100000 5104
-a 17 166 0 100000 4292
-a 17 105 0 100000 1842
-a 18 158 0 100000 9866
-a 18 197 0 100000 7354
-a 18 184 0 100000 6383
-a 18 161 0 100000 1002
-a 18 199 0 100000 2172
-a 18 155 0 100000 7750
-a 19 158 0 100000 7165
-a 19 190 0 100000 5440
-a 19 159 0 100000 3536
-a 19 117 0 100000 3537
-a 19 109 0 100000 3991
-a 19 140 0 100000 3108
-a 19 128 0 100000 7287
-a 20 159 0 100000 1035
-a 20 185 0 100000 535
-a 20 148 0 100000 9177
-a 20 171 0 100000 2425
-a 20 144 0 100000 7990
-a 20 186 0 100000 2564
-a 20 187 0 100000 2509
-a 20 172 0 100000 4673
-a 20 110 0 100000 6121
-a 20 149 0 100000 8447
-a 20 101 0 100000 6134
-a 20 157 0 100000 8659
-a 20 178 0 100000 6884
-a 20 135 0 100000 1567
-a 20 106 0 100000 8015
-a 20 128 0 100000 4746
-a 20 121 0 100000 8069
-a 20 194 0 100000 1385
-a 21 111 0 100000 4392
-a 21 105 0 100000 9561
-a 21 134 0 100000 1551
-a 21 108 0 100000 5449
-a 21 126 0 100000 103
-a 21 103 0 100000 4043
-a 21 142 0 100000 8749
-a 21 183 0 100000 4714
-a 21 172 0 100000 4855
-a 21 123 0 100000 9136
-a 21 117 0 100000 9771
-a 21 114 0 100000 8472
-a 21 101 0 100000 299
-a 21 113 0 100000 1446
-a 21 165 0 100000 4952
-a 21 163 0 100000 4478
-a 21 153 0 100000 5954
-a 21 170 0 100000 279
-a 21 129 0 100000 6788
-a 21 152 0 100000 578
-a 21 198 0 100000 2459
-a 22 152 0 100000 8855
-a 22 142 0 100000 829
-a 22 176 0 100000 6797
-a 22 126 0 100000 2513
-a 22 188 0 100000 7332
-a 22 177 0 100000 3842
-a 22 186 0 100000 473
-a 22 127 0 100000 8075
-a 22 171 0 100000 924
-a 22 156 0 100000 4585
-a 22 130 0 100000 9616
-a 22 112 0 100000 2078
-a 22 155 0 100000 79
-a 23 193 0 100000 7025
-a 23 129 0 100000 4876
-a 23 114 0 100000 5073
-a 23 126 0 100000 1821
-a 23 199 0 100000 7200
-a 23 128 0 100000 2940
-a 23 181 0 100000 9911
-a 23 155 0 100000 3948
-a 23 197 0 100000 9522
-a 23 151 0 100000 5662
-a 23 111 0 100000 6135
-a 23 175 0 100000 5329
-a 23 102 0 100000 8364
-a 23 139 0 100000 6544
-a 23 104 0 100000 283
-a 23 156 0 100000 8369
-a 23 108 0 100000 3491
-a 23 110 0 100000 6481
-a 23 124 0 100000 946
-a 23 131 0 100000 9861
-a 23 141 0 100000 4976
-a 24 183 0 100000 2975
-a 24 149 0 100000 2843
-a 24 117 0 100000 3594
-a 24 166 0 100000 1261
-a 24 184 0 100000 2514
-a 24 153 0 100000 2271
-a 24 114 0 100000 7316
-a 24 198 0 100000 6092
-a 24 105 0 100000 7868
-a 24 139 0 100000 8309
-a 24 174 0 100000 5131
-a 24 197 0 100000 1045
-a 24 195 0 100000 845
-a 24 176 0 100000 5820
-a 24 181 0 100000 6085
-a 24 101 0 100000 7898
-a 25 152 0 100000 4264
-a 25 140 0 100000 5481
-a 25 126 0 100000 8929
-a 25 196 0 100000 3220
-a 25 165 0 100000 5562
-a 25 151 0 100000 5705
-a 25 112 0 100000 830
-a 25 191 0 100000 5730
-a 25 178 0 100000 7717
-a 25 167 0 100000 4126
-a 25 163 0 100000 3714
-a 25 185 0 100000 225
-a 25 129 0 100000 3369
-a 25 123 0 100000 3660
-a 25 177 0 100000 2367
-a 25 116 0 100000 2469
-a 25 139 0 100000 9779
-a 25 125 0 100000 1489
-a 26 139 0 100000 6155
-a 26 182 0 100000 7651
-a 26 189 0 100000 707
-a 26 190 0 100000 7671
-a 26 180 0 100000 1178
-a 26 124 0 100000 6625
-a 26 184 0 100000 1171
-a 26 154 0 100000 7505
-a 27 143 0 100000 423
-a 27 117 0 100000 5685
-a 27 180 0 100000 6991
-a 27 129 0 100000 4564
-a 27 193 0 100000 2539
-a 27 173 0 100000 7896
-a 27 195 0 100000 3690
-a 27 142 0 100000 8270
-a 27 131 0 100000 2276
-a 27 153 0 100000 2689
-a 28 188 0 100000 8418
-a 28 111 0 100000 1308
-a 28 158 0 100000 709
-a 28 161 0 100000 1968
-a 28 130 0 100000 6317
-a 28 168 0 100000 8008
-a 28 160 0 100000 879
-a 29 101 0 100000 767
-a 29 157 0 100000 6845
-a 29 149 0 100000 9061
-a 29 112 0 100000 281
-a 29 164 0 100000 5274
-a 29 199 0 100000 8463
-a 29 180 0 100000 9707
-a 29 165 0 100000 7565
-a 29 178 0 100000 8621
-a 29 118 0 100000 7437
-a 29 169 0 100000 9960
-a 29 125 0 100000 51
-a 29 150 0 100000 474
-a 29 160 0 100000 2568
-a 29 141 0 100000 4219
-a 29 187 0 100000 731
-a 29 158 0 100000 2476
-a 29 144 0 100000 7245
-a 29 129 0 100000 7548
-a 29 190 0 100000 3895
-a 30 185 0 100000 1822
-a 30 134 0 100000 9893
-a 30 122 0 100000 1153
-a 31 159 0 100000 7778
-a 31 105 0 100000 4967
-a 31 153 0 100000 3541
-a 31 160 0 100000 2677
-a 31 111 0 100000 3222
-a 31 136 0 100000 3269
-a 31 125 0 100000 9717
-a 31 181 0 100000 2325
-a 31 119 0 100000 8407
-a 31 127 0 100000 890
-a 31 124 0 100000 9168
-a 31 104 0 100000 6356
-a 31 179 0 100000 9162
-a 31 167 0 100000 383
-a 31 112 0 100000 1886
-a 31 120 0 100000 5326
-a 31 114 0 100000 3436
-a 32 173 0 100000 6787
-a 32 145 0 100000 1839
-a 32 113 0 100000 3758
-a 32 182 0 100000 4761
-a 32 119 0 100000 9817
-a 32 196 0 100000 9686
-a 32 129 0 100000 716
-a 32 116 0 100000 5747
-a 32 178 0 100000 1074
-a 32 167 0 100000 8680
-a 33 194 0 100000 4684
-a 33 127 0 100000 8502
-a 33 174 0 100000 7338
-a 33 175 0 100000 6420
-a 33 138 0 100000 9551
-a 33 115 0 100000 4239
-a 33 107 0 100000 6930
-a 33 104 0 100000 2172
-a 33 190 0 100000 8714
-a 33 151 0 100000 4263
-a 33 182 0 100000 2765
-a 33 161 0 100000 5954
-a 33 173 0 100000 274
-a 33 154 0 100000 9371
-a 33 156 0 100000 75
-a 33 114 0 100000 8067
-a 33 153 0 100000 2563
-a 33 169 0 100000 6915
-a 33 164 0 100000 8577
-a 33 110 0 100000 3079
-a 34 139 0 100000 3061
-a 34 183 0 100000 7251
-a 34 178 0 100000 8023
-a 34 163 0 100000 2993
-a 34 109 0 100000 9045
-a 34 172 0 100000 5404
-a 34 112 0 100000 7608
-a 34 196 0 100000 5449
-a 34 148 0 100000 2226
-a 34 142 0 100000 8808
-a 34 174 0 100000 9183
-a 34 123 0 100000 9092
-a 34 145 0 100000 1530
-a 34 162 0 100000 1288
-a 34 166 0 100000 388
-a 34 133 0 100000 1153
-a 34 115 0 100000 2210
-a 34 151 0 100000 979
-a 34 171 0 100000 1136
-a 34 137 0 100000 4830
-a 35 143 0 100000 8167
-a 35 123 0 100000 2401
-a 35 112 0 100000 4052
-a 35 149 0 100000 721
-a 35 132 0 100000 9237
-a 35 172 0 100000 9679
-a 35 117 0 100000 1469
-a 35 131 0 100000 7061
-a 35 106 0 100000 8448
-a 36 175 0 100000 8043
-a 36 121 0 100000 5151
-a 36 197 0 100000 7643
-a 36 116 0 100000 5790
-a 36 180 0 100000 1932
-a 36 128 0 100000 2477
-a 36 151 0 100000 5441
-a 36 174 0 100000 2204
-a 36 146 0 100000 7937
-a 36 193 0 100000 1912
-a 36 156 0 100000 5652
-a 36 138 0 100000 297
-a 36 191 0 100000 5116
-a 36 167 0 100000 8999
-a 36 140 0 100000 996
-a 36 103 0 100000 9577
-a 36 190 0 100000 1154
-a 36 165 0 100000 3326
-a 36 109 0 100000 1374
-a 36 110 0 100000 4679
-a 36 199 0 100000 134
-a 36 133 0 100000 9431
-a 37 174 0 100000 8274
-a 37 155 0 100000 4671
-a 37 114 0 100000 5912
-a 37 115 0 100000 506
-a 37 105 0 100000 592
-a 37 183 0 100000 2115
-a 37 108 0 100000 4928
-a 37 151 0 100000 4240
-a 37 148 0 100000 3234
-a 37 102 0 100000 8815
-a 37 109 0 100000 2968
-a 37 169 0 100000 6360
-a 37 128 0 100000 2348
-a 37 131 0 100000 6860
-a 37 166 0 100000 63
-a 37 103 0 100000 6161
-a 37 189 0 100000 4195
-a 37 147 0 100000 2127
-a 37 138 0 100000 7864
-a 37 163 0 100000 8904
-a 37 173 0 100000 1849
-a 38 134 0 100000 4026
-a 38 145 0 100000 2413
-a 38 165 0 100000 9230
-a 38 123 0 100000 6347
-a 38 185 0 100000 7621
-a 38 176 0 100000 6322
-a 38 198 0 100000 6454
-a 38 144 0 100000 5084
-a 38 121 0 100000 4462
-a 38 171 0 100000 5174
-a 38 136 0 100000 7419
-a 38 197 0 100000 7167
-a 38 179 0 100000 8980
-a 38 149 0 100000 7865
-a 38 178 0 100000 8248
-a 38 174 0 100000 6791
-a 38 164 0 100000 2361
-a 38 112 0 100000 2817
-a 38 196 0 100000 4887
-a 38 186 0 100000 9293
-a 38 106 0 100000 8175
-a 38 162 0 100000 8814
-a 38 181 0 100000 6761
-a 38 118 0 100000 7130
-a 39 157 0 100000 2168
-a 39 175 0 100000 5692
-a 39 178 0 100000 824
-a 39 142 0 100000 8831
-a 39 102 0 100000 8242
-a 39 121 0 100000 4162
-a 39 120 0 100000 658
-a 39 115 0 100000 451
-a 39 187 0 100000 7287
-a 39 117 0 100000 920
-a 40 107 0 100000 9440
-a 40 136 0 100000 9931
-a 40 103 0 100000 2181
-a 40 167 0 100000 3325
-a 40 129 0 100000 2074
-a 40 112 0 100000 8163
-a 40 104 0 100000 7518
-a 40 178 0 100000 8993
-a 40 116 0 100000 5561
-a 40 153 0 100000 1486
-a 40 171 0 100000 2580
-a 40 120 0 100000 9790
-a 40 175 0 100000 3030
-a 40 137 0 100000 7218
-a 40 177 0 100000 3087
-a 40 157 0 100000 4168
-a 41 181 0 100000 2843
-a 41 195 0 100000 38
-a 41 188 0 100000 5970
-a 41 129 0 100000 9147
-a 41 191 0 100000 6004
-a 41 116 0 100000 641
-a 41 122 0 100000 4426
-a 41 130 0 100000 9454
-a 41 170 0 100000 6046
-a 41 190 0 100000 4061
-a 41 174 0 100000 2125
-a 41 154 0 100000 5084
-a 41 160 0 100000 6356
-a 41 126 0 100000 5929
-a 41 196 0 100000 5812
-a 42 192 0 100000 517
-a 42 132 0 100000 9462
-a 42 146 0 100000 9442
-a 42 115 0 100000 897
-a 42 136 0 100000 1010
-a 42 143 0 100000 5852
-a 42 121 0 100000 1511
-a 42 189 0 100000 8165
-a 43 173 0 100000 8839
-a 43 177 0 100000 7059
-a 43 190 0 100000 5703
-a 43 106 0 100000 2300
-a 43 183 0 100000 8036
-a 43 184 0 100000 3295
-a 43 149 0 100000 47
-a 43 138 0 100000 8879
-a 43 129 0 100000 6876
-a 43 159 0 100000 2735
-a 43 191 0 100000 5062
-a 43 114 0 100000 9343
-a 43 187 0 100000 7699
-a 43 101 0 100000 6528
-a 44 136 0 100000 4162
-a 44 187 0 100000 2697
-a 44 163 0 100000 5418
-a 44 164 0 100000 398
-a 44 185 0 100000 4266
-a 44 161 0 100000 1979
-a 44 108 0 100000 290
-a 44 142 0 100000 6228
-a 45 153 0 100000 7269
-a 45 131 0 100000 9755
-a 45 143 0 100000 2025
-a 45 103 0 100000 8690
-a 45 118 0 100000 2138
-a 45 197 0 100000 5449
-a 45 102 0 100000 1992
-a 45 178 0 100000 8724
-a 45 145 0 100000 3579
-a 45 148 0 100000 3401
-a 45 137 0 100000 6512
-a 45 101 0 100000 4089
-a 45 166 0 100000 9039
-a 45 136 0 100000 3125
-a 45 156 0 100000 9040
-a 45 117 0 100000 9017
-a 45 130 0 100000 7846
-a 45 167 0 100000 5795
-a 45 112 0 100000 4049
-a 45 189 0 100000 5361
-a 45 110 0 100000 3463
-a 45 104 0 100000 2703
-a 45 191 0 100000 4933
-a 45 199 0 100000 453
-a 46 105 0 100000 2727
-a 46 101 0 100000 5811
-a 46 155 0 100000 4784
-a 46 118 0 100000 8390
-a 46 125 0 100000 1868
-a 46 102 0 100000 1061
-a 46 116 0 100000 6477
-a 46 117 0 100000 9105
-a 46 160 0 100000 8012
-a 46 111 0 100000 1797
-a 46 154 0 100000 3602
-a 46 167 0 100000 7643
-a 47 183 0 100000 3875
-a 47 185 0 100000 6570
-a 47 132 0 100000 4893
-a 47 110 0 100000 8941
-a 47 126 0 100000 7755
-a 47 149 0 100000 2372
-a 47 148 0 100000 9010
-a 47 172 0 100000 6363
-a 47 167 0 100000 8364
-a 47 188 0 100000 3388
-a 47 191 0 100000 9257
-a 47 147 0 100000 5413
-a 47 195 0 100000 5203
-a 47 154 0 100000 8479
-a 48 127 0 100000 4388
-a 48 184 0 100000 2303
-a 48 188 0 100000 5084
-a 48 169 0 100000 7676
-a 48 105 0 100000 2852
-a 48 193 0 100000 690
-a 48 158 0 100000 417
-a 48 153 0 100000 5
-a 48 111 0 100000 3129
-a 48 125 0 100000 2579
-a 48 166 0 100000 5544
-a 49 147 0 100000 7701
-a 49 167 0 100000 1900
-a 49 114 0 100000 233
-a 50 136 0 100000 3386
-a 50 144 0 100000 5104
-a 50 124 0 100000 3836
-a 50 103 0 100000 9195
-a 50 132 0 100000 9972
-a 50 105 0 100000 9808
-a 50 109 0 100000 7794
-a 50 185 0 100000 1427
-a 50 171 0 100000 861
-a 50 172 0 100000 8095
-a 50 137 0 100000 1247
-a 50 146 0 100000 1390
-a 50 164 0 100000 7230
-a 50 128 0 100000 6607
-a 50 192 0 100000 536
-a 50 162 0 100000 8900
-a 50 139 0 100000 4048
-a 50 168 0 100000 866
-a 50 163 0 100000 3045
-a 50 160 0 100000 5860
-a 50 154 0 100000 3524
-a 51 198 0 100000 8797
-a 51 113 0 100000 7824
-a 51 119 0 100000 6822
-a 51 121 0 100000 906
-a 51 126 0 100000 5758
-a 51 108 0 100000 482
-a 51 164 0 100000 7309
-a 51 179 0 100000 140
-a 51 151 0 100000 3541
-a 51 152 0 100000 4888
-a 51 191 0 100000 7396
-a 51 120 0 100000 450
-a 51 175 0 100000 164
-a 51 184 0 100000 2982
-a 51 109 0 100000 1592
-a 52 103 0 100000 5867
-a 52 168 0 100000 9405
-a 52 166 0 100000 1851
-a 52 107 0 100000 8869
-a 52 185 0 100000 8713
-a 52 105 0 100000 4844
-a 52 187 0 100000 5453
-a 52 177 0 100000 663
-a 52 161 0 100000 5850
-a 52 183 0 100000 4625
-a 52 133 0 100000 3978
-a 52 148 0 100000 9864
-a 52 155 0 100000 1239
-a 52 152 0 100000 1119
-a 52 120 0 100000 7484
-a 52 198 0 100000 1265
-a 52 149 0 100000 9158
-a 52 109 0 100000 8778
-a 52 181 0 100000 8651
-a 52 170 0 100000 5148
-a 52 122 0 100000 6264
-a 53 127 0 100000 6883
-a 53 171 0 100000 6015
-a 53 153 0 100000 1067
-a 53 184 0 100000 4740
-a 53 131 0 100000 2021
-a 53 176 0 100000 3635
-a 53 141 0 100000 6086
-a 53 159 0 100000 4074
-a 54 184 0 100000 9056
-a 54 137 0 100000 1830
-a 54 134 0 100000 1633
-a 54 106 0 100000 7750
-a 55 158 0 100000 8771
-a 55 103 0 100000 9981
-a 55 105 0 100000 4340
-a 55 141 0 100000 1298
-a 55 198 0 100000 2025
-a 55 136 0 100000 7016
-a 55 111 0 100000 9926
-a 55 152 0 100000 7367
-a 55 147 0 100000 7000
-a 55 133 0 100000 2114
-a 55 188 0 100000 6509
-a 55 102 0 100000 7100
-a 55 140 0 100000 9075
-a 55 195 0 100000 2705
-a 55 183 0 100000 3775
-a 55 199 0 100000 9215
-a 55 193 0 100000 2312
-a 56 162 0 100000 3207
-a 56 104 0 100000 2760
-a 56 146 0 100000 129
-a 56 115 0 100000 6086
-a 56 181 0 100000 8352
-a 56 142 0 100000 5707
-a 56 164 0 100000 8547
-a 56 168 0 100000 2167
-a 56 153 0 100000 2387
-a 56 151 0 100000 6697
-a 56 187 0 100000 3439
-a 56 160 0 100000 5918
-a 57 173 0 100000 1494
-a 57 111 0 100000 3886
-a 57 183 0 100000 8402
-a 57 169 0 100000 9896
-a 57 146 0 100000 376
-a 57 192 0 100000 5247
-a 58 150 0 100000 9423
-a 58 183 0 100000 9465
-a 58 148 0 100000 3885
-a 58 111 0 100000 4529
-a 58 129 0 100000 4093
-a 58 196 0 100000 3619
-a 58 102 0 100000 4690
-a 58 101 0 100000 9365
-a 59 120 0 100000 9651
-a 59 181 0 100000 1323
-a 59 155 0 100000 4233
-a 59 156 0 100000 6044
-a 59 194 0 100000 7289
-a 59 148 0 100000 1133
-a 59 198 0 100000 3136
-a 59 130 0 100000 4275
-a 59 184 0 100000 5271
-a 59 132 0 100000 4958
-a 59 101 0 100000 705
-a 59 186 0 100000 576
-a 59 179 0 100000 6456
-a 59 188 0 100000 5973
-a 59 173 0 100000 3298
-a 59 102 0 100000 125
-a 59 196 0 100000 6596
-a 59 195 0 100000 2748
-a 59 182 0 100000 5207
-a 59 127 0 100000 2055
-a 60 140 0 100000 198
-a 60 125 0 100000 5868
-a 60 112 0 100000 1114
-a 60 139 0 100000 6263
-a 60 135 0 100000 7430
-a 60 113 0 100000 9681
-a 60 173 0 100000 4299
-a 60 114 0 100000 3324
-a 60 148 0 100000 6396
-a 60 105 0 100000 8471
-a 60 137 0 100000 6050
-a 60 176 0 100000 1898
-a 60 144 0 100000 7048
-a 60 158 0 100000 1960
-a 60 142 0 100000 808
-a 60 199 0 100000 6892
-a 60 181 0 100000 9745
-a 60 183 0 100000 4567
-a 60 129 0 100000 8038
-a 60 182 0 100000 4638
-a 61 189 0 100000 622
-a 61 198 0 100000 2853
-a 61 124 0 100000 5593
-a 61 163 0 100000 5273
-a 61 190 0 100000 7555
-a 61 176 0 100000 5610
-a 61 147 0 100000 3824
-a 61 160 0 100000 2776
-a 61 164 0 100000 611
-a 61 112 0 100000 3067
-a 61 156 0 100000 7410
-a 62 104 0 100000 2965
-a 62 190 0 100000 5531
-a 62 162 0 100000 951
-a 62 191 0 100000 9851
-a 62 108 0 100000 2837
-a 62 165 0 100000 9780
-a 62 147 0 100000 2541
-a 62 169 0 100000 9168
-a 62 125 0 100000 3518
-a 62 102 0 100000 6357
-a 62 117 0 100000 7423
-a 62 149 0 100000 6295
-a 62 133 0 100000 3556
-a 62 172 0 100000 2760
-a 62 131 0 100000 1038
-a 62 112 0 100000 8003
-a 62 196 0 100000 5587
-a 62 157 0 100000 7749
-a 63 111 0 100000 2883
-a 63 195 0 100000 5347
-a 63 112 0 100000 5677
-a 63 115 0 100000 7834
-a 63 174 0 100000 112
-a 63 126 0 100000 6624
-a 63 117 0 100000 6148
-a 64 144 0 100000 6266
-a 64 164 0 100000 4807
-a 64 171 0 100000 3160
-a 64 119 0 100000 1438
-a 64 136 0 100000 7963
-a 64 197 0 100000 2673
-a 64 155 0 100000 5421
-a 64 133 0 100000 5839
-a 64 138 0 100000 1274
-a 64 127 0 100000 1906
-a 64 161 0 100000 1934
-a 64 118 0 100000 2475
-a 64 169 0 100000 6793
-a 64 116 0 100000 1502
-a 64 158 0 100000 9432
-a 64 148 0 100000 5157
-a 64 145 0 100000 2663
-a 64 174 0 100000 5351
-a 64 114 0 100000 390
-a 64 181 0 100000 6721
-a 64 113 0 100000 521
-a 65 132 0 100000 983
-a 65 177 0 100000 277
-a 65 199 0 100000 8990
-a 65 179 0 100000 7885
-a 65 136 0 100000 3413
-a 65 130 0 100000 751
-a 65 168 0 100000 9573
-a 65 111 0 100000 1534
-a 65 124 0 100000 3928
-a 65 106 0 100000 3456
-a 66 115 0 100000 3992
-a 66 104 0 100000 5112
-a 66 130 0 100000 7285
-a 66 163 0 100000 3213
-a 67 153 0 100000 5367
-a 67 164 0 100000 992
-a 67 179 0 100000 3091
-a 67 193 0 100000 6000
-a 67 107 0 100000 2802
-a 67 110 0 100000 6027
-a 67 176 0 100000 1881
-a 68 189 0 100000 8212
-a 68 117 0 100000 5853
-a 68 102 0 100000 1766
-a 68 147 0 100000 9440
-a 68 125 0 100000 4494
-a 68 196 0 100000 2219
-a 68 128 0 100000 8093
-a 68 145 0 100000 1500
-a 68 152 0 100000 7419
-a 68 112 0 100000 357
-a 69 169 0 100000 7598
-a 69 180 0 100000 4870
-a 69 147 0 100000 5253
-a 69 119 0 100000 1569
-a 69 123 0 100000 2218
-a 69 128 0 100000 3191
-a 69 178 0 100000 3243
-a 69 109 0 100000 2712
-a 70 104 0 100000 3090
-a 70 161 0 100000 8413
-a 70 160 0 100000 5623
-a 70 164 0 100000 4675
-a 70 101 0 100000 3196
-a 70 151 0 100000 6580
-a 70 182 0 100000 2231
-a 70 189 0 100000 4394
-a 70 176 0 100000 7897
-a 70 118 0 100000 2776
-a 70 135 0 100000 1215
-a 70 163 0 100000 3973
-a 70 147 0 100000 6983
-a 70 145 0 100000 9550
-a 70 177 0 100000 9000
-a 71 189 0 100000 9496
-a 71 176 0 100000 7401
-a 71 168 0 100000 3386
-a 71 171 0 100000 857
-a 71 106 0 100000 1626
-a 71 180 0 100000 4392
-a 71 117 0 100000 1387
-a 71 120 0 100000 2961
-a 72 114 0 100000 1334
-a 72 155 0 100000 1601
-a 72 125 0 100000 4500
-a 72 193 0 100000 6333
-a 72 142 0 100000 2443
-a 72 143 0 100000 6087
-a 72 126 0 100000 3103
-a 72 122 0 100000 7043
-a 72 144 0 100000 2262
-a 72 149 0 100000 8288
-a 72 169 0 100000 7041
-a 72 191 0 100000 1744
-a 72 102 0 100000 800
-a 72 112 0 100000 6299
-a 72 135 0 100000 4666
-a 73 149 0 100000 7120
-a 73 135 0 100000 4142
-a 73 126 0 100000 4345
-a 73 163 0 100000 2025
-a 73 181 0 100000 6997
-a 73 183 0 100000 4271
-a 73 137 0 100000 1721
-a 73 108 0 100000 8579
-a 73 157 0 100000 3323
-a 73 189 0 100000 7748
-a 73 193 0 100000 2716
-a 73 133 0 100000 7771
-a 74 179 0 100000 6114
-a 74 165 0 100000 2864
-a 74 143 0 100000 8298
-a 74 185 0 100000 25
-a 74 122 0 100000 6212
-a 74 153 0 100000 3894
-a 74 171 0 100000 4548
-a 74 119 0 100000 118
-a 74 199 0 100000 993
-a 74 142 0 100000 450
-a 74 157 0 100000 239
-a 74 133 0 100000 4863
-a 74 149 0 100000 6706
-a 74 131 0 100000 6898
-a 74 170 0 100000 3870
-a 74 155 0 100000 1070
-a 74 160 0 100000 8776
-a 74 186 0 100000 1287
-a 74 156 0 100000 168
-a 74 115 0 100000 9426
-a 74 178 0 100000 8333
-a 75 158 0 100000 8894
-a 75 118 0 100000 5751
-a 75 183 0 100000 701
-a 75 136 0 100000 7606
-a 75 114 0 100000 6108
-a 75 187 0 100000 1344
-a 75 139 0 100000 6359
-a 76 154 0 100000 2123
-a 76 108 0 100000 8824
-a 76 177 0 100000 7541
-a 76 164 0 100000 2126
-a 77 112 0 100000 4554
-a 77 135 0 100000 1530
-a 77 174 0 100000 8435
-a 77 163 0 100000 2591
-a 77 115 0 100000 2699
-a 77 148 0 100000 1129
-a 77 151 0 100000 3926
-a 77 122 0 100000 5591
-a 77 171 0 100000 485
-a 77 185 0 100000 3582
-a 77 159 0 100000 6813
-a 77 186 0 100000 9253
-a 77 192 0 100000 8683
-a 77 189 0 100000 2594
-a 77 126 0 100000 3857
-a 77 187 0 100000 4829
-a 77 101 0 100000 3127
-a 77 168 0 100000 9562
-a 78 130 0 100000 4773
-a 78 181 0 100000 8278
-a 78 174 0 100000 9425
-a 78 157 0 100000 960
-a 78 153 0 100000 6664
-a 78 193 0 100000 1091
-a 78 191 0 100000 1146
-a 78 167 0 100000 2079
-a 78 187 0 100000 7846
-a 78 180 0 100000 6890
-a 78 140 0 100000 3681
-a 78 123 0 100000 9889
-a 78 136 0 100000 2581
-a 78 114 0 100000 8237
-a 78 185 0 100000 7211
-a 78 179 0 100000 2871
-a 78 163 0 100000 9106
-a 78 176 0 100000 613
-a 78 113 0 100000 6406
-a 78 120 0 100000 2646
-a 79 129 0 100000 9500
-a 79 117 0 100000 642
-a 79 112 0 100000 4390
-a 79 163 0 100000 8981
-a 79 134 0 100000 692
-a 79 151 0 100000 9675
-a 79 141 0 100000 9335
-a 79 195 0 100000 592
-a 79 148 0 100000 9350
-a 80 163 0 100000 7627
-a 80 115 0 100000 1213
-a 80 176 0 100000 6650
-a 80 154 0 100000 1461
-a 80 129 0 100000 5116
-a 80 190 0 100000 8975
-a 80 110 0 100000 6622
-a 80 172 0 100000 5146
-a 80 179 0 100000 9326
-a 80 194 0 100000 9545
-a 80 193 0 100000 9695
-a 80 105 0 100000 6431
-a 80 153 0 100000 8063
-a 80 151 0 100000 268
-a 80 141 0 100000 3870
-a 80 127 0 100000 7778
-a 80 186 0 100000 1408
-a 80 103 0 100000 8091
-a 80 147 0 100000 7096
-a 81 176 0 100000 5892
-a 81 104 0 100000 9989
-a 81 148 0 100000 2980
-a 81 117 0 100000 4901
-a 81 168 0 100000 7736
-a 81 183 0 100000 2080
-a 81 109 0 100000 4254
-a 81 136 0 100000 4219
-a 81 113 0 100000 599
-a 81 194 0 100000 945
-a 81 131 0 100000 6901
-a 81 120 0 100000 8066
-a 81 112 0 100000 6948
-a 81 163 0 100000 290
-a 81 167 0 100000 3149
-a 81 192 0 100000 3799
-a 81 199 0 100000 9046
-a 81 114 0 100000 3217
-a 82 155 0 100000 1806
-a 82 149 0 100000 8452
-a 82 131 0 100000 9547
-a 82 164 0 100000 6171
-a 82 123 0 100000 746
-a 82 192 0 100000 7626
-a 82 109 0 100000 6452
-a 82 183 0 100000 6875
-a 82 199 0 100000 9335
-a 82 106 0 100000 8829
-a 82 140 0 100000 4045
-a 82 139 0 100000 1519
-a 82 198 0 100000 8376
-a 82 132 0 100000 1494
-a 83 134 0 100000 8175
-a 83 148 0 100000 9715
-a 83 137 0 100000 5879
-a 83 187 0 100000 6419
-a 83 158 0 100000 8364
-a 83 109 0 100000 1339
-a 83 189 0 100000 3531
-a 83 104 0 100000 8448
-a 83 142 0 100000 7624
-a 84 122 0 100000 9325
-a 84 155 0 100000 6505
-a 84 197 0 100000 2423
-a 84 162 0 100000 7925
-a 85 120 0 100000 5058
-a 85 141 0 100000 7909
-a 85 116 0 100000 744
-a 85 117 0 100000 3459
-a 85 178 0 100000 6907
-a 85 105 0 100000 5893
-a 85 111 0 100000 5745
-a 85 119 0 100000 5858
-a 85 128 0 100000 2066
-a 85 168 0 100000 3736
-a 85 172 0 100000 7023
-a 85 109 0 100000 4184
-a 85 197 0 100000 5602
-a 86 139 0 100000 7483
-a 86 168 0 100000 3950
-a 86 157 0 100000 9064
-a 86 162 0 100000 2213
-a 87 103 0 100000 2133
-a 87 152 0 100000 4604
-a 87 169 0 100000 5604
-a 87 146 0 100000 2714
-a 87 166 0 100000 5340
-a 87 199 0 100000 5069
-a 87 148 0 100000 9419
-a 87 104 0 100000 9528
-a 87 141 0 100000 9671
-a 87 107 0 100000 7085
-a 87 131 0 100000 4186
-a 87 114 0 100000 2238
-a 87 191 0 100000 2804
-a 87 132 0 100000 1397
-a 87 185 0 100000 9858
-a 88 139 0 100000 2066
-a 88 144 0 100000 892
-a 88 197 0 100000 5596
-a 89 184 0 100000 9075
-a 89 179 0 100000 4975
-a 89 161 0 100000 2205
-a 89 176 0 100000 7314
-a 89 126 0 100000 6811
-a 89 187 0 100000 8180
-a 89 102 0 100000 7763
-a 89 173 0 100000 8398
-a 89 181 0 100000 7363
-a 89 129 0 100000 7490
-a 89 162 0 100000 8354
-a 90 187 0 100000 7647
-a 90 153 0 100000 5311
-a 90 192 0 100000 2193
-a 90 141 0 100000 4888
-a 90 165 0 100000 8780
-a 90 102 0 100000 5458
-a 90 125 0 100000 7208
-a 90 158 0 100000 1113
-a 90 198 0 100000 6401
-a 90 111 0 100000 1515
-a 90 138 0 100000 3238
-a 90 180 0 100000 3045
-a 90 186 0 100000 3
-a 90 178 0 100000 8749
-a 90 177 0 100000 1632
-a 90 106 0 100000 4327
-a 90 196 0 100000 470
-a 90 163 0 100000 7911
-a 91 113 0 100000 8296
-a 91 127 0 100000 2971
-a 91 146 0 100000 3356
-a 91 182 0 100000 2580
-a 91 196 0 100000 8202
-a 91 116 0 100000 3104
-a 92 191 0 100000 8165
-a 92 166 0 100000 2242
-a 92 197 0 100000 9395
-a 93 136 0 100000 8664
-a 93 129 0 100000 7802
-a 93 170 0 100000 4699
-a 93 124 0 100000 5870
-a 93 137 0 100000 9775
-a 93 115 0 100000 7499
-a 93 110 0 100000 9601
-a 93 101 0 100000 9002
-a 93 150 0 100000 9882
-a 93 104 0 100000 1079
-a 93 193 0 100000 7464
-a 93 105 0 100000 7327
-a 93 166 0 100000 1808
-a 94 169 0 100000 7589
-a 94 141 0 100000 2981
-a 94 180 0 100000 9358
-a 94 176 0 100000 8554
-a 94 124 0 100000 2707
-a 94 122 0 100000 7508
-a 94 166 0 100000 3171
-a 94 165 0 100000 9695
-a 94 154 0 100000 8485
-a 94 170 0 100000 2444
-a 94 177 0 100000 3552
-a 94 114 0 100000 6951
-a 94 164 0 100000 6526
-a 94 189 0 100000 8986
-a 94 110 0 100000 4338
-a 94 109 0 100000 2554
-a 94 116 0 100000 7506
-a 94 133 0 100000 1605
-a 94 156 0 100000 9888
-a 95 157 0 100000 8289
-a 95 116 0 100000 1995
-a 95 194 0 100000 8381
-a 95 132 0 100000 7280
-a 95 134 0 100000 6754
-a 95 136 0 100000 1773
-a 95 144 0 100000 9910
-a 95 156 0 100000 1163
-a 95 124 0 100000 9214
-a 95 146 0 100000 6315
-a 95 126 0 100000 2269
-a 95 140 0 100000 637
-a 95 183 0 100000 924
-a 95 163 0 100000 8392
-a 95 145 0 100000 8797
-a 96 156 0 100000 6213
-a 96 129 0 100000 7538
-a 96 123 0 100000 8516
-a 96 169 0 100000 3383
-a 96 142 0 100000 2851
-a 96 124 0 100000 8365
-a 96 184 0 100000 4157
-a 97 182 0 100000 3135
-a 97 130 0 100000 3328
-a 97 170 0 100000 5735
-a 97 174 0 100000 2525
-a 97 151 0 100000 5910
-a 97 141 0 100000 4351
-a 97 126 0 100000 8844
-a 97 155 0 100000 629
-a 97 149 0 100000 9449
-a 97 108 0 100000 422
-a 97 131 0 100000 775
-a 97 154 0 100000 9304
-a 97 172 0 100000 5967
-a 97 123 0 100000 793
-a 97 128 0 100000 7372
-a 97 121 0 100000 835
-a 97 157 0 100000 690
-a 97 165 0 100000 1889
-a 97 156 0 100000 2855
-a 97 106 0 100000 3640
-a 97 105 0 100000 9742
-a 97 122 0 100000 9646
-a 97 107 0 100000 3286
-a 98 131 0 100000 9078
-a 98 196 0 100000 5946
-a 98 113 0 100000 9995
-a 98 177 0 100000 825
-a 98 119 0 100000 7372
-a 98 188 0 100000 2749
-a 98 130 0 100000 7285
-a 98 120 0 100000 7653
-a 98 152 0 100000 3129
-a 98 104 0 100000 9652
-a 98 108 0 100000 7514
-a 98 117 0 100000 7705
-a 98 171 0 100000 1725
-a 99 105 0 100000 5557
-a 99 109 0 100000 5355
-a 99 114 0 100000 8765
-a 99 112 0 100000 100
-a 99 187 0 100000 8348
-a 99 199 0 100000 419
-a 99 167 0 100000 2556
-a 99 129 0 100000 196
-a 100 184 0 100000 5607
-a 100 150 0 100000 749
-a 100 110 0 100000 2973
-a 100 126 0 100000 9347
-a 100 128 0 100000 3349
-a 100 133 0 100000 3154
-a 100 138 0 100000 8997
-a 100 146 0 100000 4125
-a 100 151 0 100000 8931
-a 100 160 0 100000 1750
-a 100 170 0 100000 5508
-a 100 178 0 100000 1772
-a 100 199 0 100000 9538
-a 100 200 0 100000 3509
Index: test/mip_test.cc
===================================================================
--- test/mip_test.cc	(revision 2571)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include "test_tools.h"
-
-
-#ifdef HAVE_CONFIG_H
-#include <lemon/config.h>
-#endif
-
-#ifdef HAVE_CPLEX
-#include <lemon/mip_cplex.h>
-#endif
-
-#ifdef HAVE_GLPK
-#include <lemon/mip_glpk.h>
-#endif
-
-
-using namespace lemon;
-
-void solveAndCheck(MipSolverBase& lp, MipSolverBase::SolutionStatus stat, 
-		   double exp_opt) {
-  using std::string;
-
-  lp.solve();
-  //int decimal,sign;
-  std::ostringstream buf;
-  buf << "Primalstatus should be: " << int(stat)<<" and it is "<<int(lp.mipStatus());
-
-
-  //  itoa(stat,buf1, 10);
-  check(lp.mipStatus()==stat, buf.str());
-
-  if (stat ==  MipSolverBase::OPTIMAL) {
-    std::ostringstream sbuf;
-    buf << "Wrong optimal value: the right optimum is " << exp_opt; 
-    check(std::abs(lp.primalValue()-exp_opt) < 1e-3, sbuf.str());
-    //+ecvt(exp_opt,2)
-  }
-}
-
-void aTest(MipSolverBase& mip)
-{
- //The following example is very simple
-
-
-  typedef MipSolverBase::Row Row;
-  typedef MipSolverBase::Col Col;
-
-
-
-  Col x1 = mip.addCol();
-  Col x2 = mip.addCol();
-
-
-  //Objective function
-  mip.obj(x1);
-
-  mip.max();
-
-
-  //Unconstrained optimization
-  mip.solve();
-  //Check it out!
-
-  //Constraints
-  mip.addRow(2*x1+x2 <=2);  
-  mip.addRow(x1-2*x2 <=0);
-
-  //Nonnegativity of the variable x1
-  mip.colLowerBound(x1, 0);
-
-  //Maximization of x1
-  //over the triangle with vertices (0,0),(4/5,2/5),(0,2)
-  double expected_opt=4.0/5.0;
-  solveAndCheck(mip, MipSolverBase::OPTIMAL, expected_opt);
-
-  //Restrict x2 to integer
-  mip.colType(x2,MipSolverBase::INT);  
-  expected_opt=1.0/2.0;
-  solveAndCheck(mip, MipSolverBase::OPTIMAL, expected_opt);
-
-
-  //Restrict both to integer
-  mip.colType(x1,MipSolverBase::INT);  
-  expected_opt=0;
-  solveAndCheck(mip, MipSolverBase::OPTIMAL, expected_opt);
-
- 
-
-}
-
-
-int main() 
-{
-
-#ifdef HAVE_GLPK
-  MipGlpk mip1;
-  aTest(mip1);
-#endif
-
-#ifdef HAVE_CPLEX
-  MipCplex mip2;
-  aTest(mip2);
-#endif
-
-  return 0;
-
-}
Index: test/path_test.cc
===================================================================
--- test/path_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <string>
-#include <iostream>
-
-#include <lemon/concepts/path.h>
-#include <lemon/concepts/graph.h>
-
-#include <lemon/path.h>
-#include <lemon/list_graph.h>
-
-#include "test_tools.h"
-
-using namespace std;
-using namespace lemon;
-
-void check_concepts() {
-  checkConcept<concepts::Path<ListGraph>, concepts::Path<ListGraph> >();
-  checkConcept<concepts::Path<ListGraph>, Path<ListGraph> >();
-  checkConcept<concepts::Path<ListGraph>, SimplePath<ListGraph> >();
-  checkConcept<concepts::Path<ListGraph>, StaticPath<ListGraph> >();
-  checkConcept<concepts::Path<ListGraph>, ListPath<ListGraph> >();
-}
-
-int main() {
-  check_concepts();  
-  return 0;
-}
Index: test/polynomial_test.cc
===================================================================
--- test/polynomial_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/polynomial.h>
-#include <lemon/dim2.h>
-#include <iostream>
-#include "test_tools.h"
-
-using namespace std;
-using namespace lemon;
-int main()
-{
-  Polynomial<int> pi(5);
-  check(pi.deg()==5,"Something is wrong here.");
-  pi[0]=12;
-  pi[5]=3;
-  pi[2]=7;
-  check(pi[1]==0,"Uninitialized elements should be(?) zero.");
-  {
-    Polynomial<double> pd=pi;
-    check(pd.deg()==5,"Something is wrong here.");
-    check(pd[0]==12,"Something is wrong here.");
-    check(pd[5]==3,"Something is wrong here.");
-
-  }
-
-  Polynomial<double> pd;
-  pd=pi;
-  check(pd.deg()==5,"Something is wrong here.");
-  check(pd[0]==12,"Something is wrong here.");
-  check(pd[5]==3,"Something is wrong here.");
-
-  check(pd(0)==12,"Something is wrong here.");
-  check(pd(1)==22,"Something is wrong here.");
-  check(pd(2)==136,"Something is wrong here.");
-
-  check((pd*pi).deg()==10,"Something is wrong here.");
-  check((pd*pi)[10]==9,"Something is wrong here.");
-  check((pd*pi)[7]==42,"Something is wrong here.");
-
-  Polynomial<double> pd2=pd+pi;
-  check(pd2[5]==6,"Something is wrong here.");
-  pd2+=pd;
-  pd2+=pi;
-  check(pd2[5]==12,"Something is wrong here.");
-  pd2-=pd;
-  pd2-=pi;
-  check(pd2[5]==6,"Something is wrong here.");
-  check((pd-pi)[5]==0,"Something is wrong here.");
-
-  Polynomial<double> pdd=pd.derivate();
-  pd.derivateMyself();
-  check(pdd==pd,"Something is wrong here.");
-  check(pd.deg()==4,"Something is wrong here.");
-  check(pd[4]==15,"Something is wrong here.");
-
-  
-  Polynomial<double> pdi=pd.integrate();
-  pd.integrateMyself();
-  check(pdi==pd,"Something is wrong here.");
-  check(pd.deg()==5,"Something is wrong here.");
-  check(pd[5]==3,"Something is wrong here.");
-  check(pd[0]==0,"Something is wrong here.");
-  
-  
-}
Index: test/preflow_graph.dim
===================================================================
--- test/preflow_graph.dim	(revision 1435)
+++ 	(revision )
@@ -1,20 +1,0 @@
-p max 10 17
-n 2 s
-n 9 t
-a 1 2 20
-a 1 3 0
-a 2 2 3
-a 2 3 8
-a 2 4 8
-a 3 6 5
-a 4 3 5
-a 4 6 5
-a 4 7 5
-a 5 4 3
-a 6 8 3
-a 6 7 10
-a 6 9 10
-a 7 9 8
-a 9 10 20
-a 9 2 5
-a 10 6 5
Index: test/preflow_test.cc
===================================================================
--- test/preflow_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,201 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <fstream>
-#include <string>
-
-#include "test_tools.h"
-#include <lemon/smart_graph.h>
-#include <lemon/dimacs.h>
-#include <lemon/preflow.h>
-#include <lemon/concepts/graph.h>
-#include <lemon/concepts/maps.h>
-
-using namespace lemon;
-
-void checkPreflow() 
-{
-  typedef int VType;
-  typedef concepts::Graph Graph;
-
-  typedef Graph::Node Node;
-  typedef Graph::Edge Edge;
-  typedef concepts::ReadMap<Edge,VType> CapMap;
-  typedef concepts::ReadWriteMap<Edge,VType> FlowMap;
-  typedef concepts::WriteMap<Node,bool> CutMap;
- 
-  Graph g;
-  Node n;
-  Edge e;
-  CapMap cap;
-  FlowMap flow;
-  CutMap cut;
-
-  Preflow<Graph, CapMap>::DefFlowMap<FlowMap>::Create preflow_test(g,cap,n,n);
-
-  preflow_test.capacityMap(cap);
-  flow = preflow_test.flowMap();
-  preflow_test.flowMap(flow);
-  preflow_test.source(n);
-  preflow_test.target(n);
-  
-  preflow_test.init();
-  preflow_test.flowInit(cap);
-  preflow_test.startFirstPhase();
-  preflow_test.startSecondPhase();
-  preflow_test.run();
-  preflow_test.runMinCut();
-
-  preflow_test.flowValue();
-  preflow_test.minCut(n);
-  preflow_test.minCutMap(cut);
-  preflow_test.flow(e);
-
-}
-
-int cutValue (const SmartGraph& g, 
-	      const SmartGraph::NodeMap<bool>& cut, 
-	      const SmartGraph::EdgeMap<int>& cap) {
-  
-  int c=0;
-  for(SmartGraph::EdgeIt e(g); e!=INVALID; ++e) {
-    if (cut[g.source(e)] && !cut[g.target(e)]) c+=cap[e];
-  }
-  return c;
-}
-
-bool checkFlow(const SmartGraph& g, 
-	       const SmartGraph::EdgeMap<int>& flow, 
-	       const SmartGraph::EdgeMap<int>& cap, 
-	       SmartGraph::Node s, SmartGraph::Node t) {
-
-  for (SmartGraph::EdgeIt e(g); e != INVALID; ++e) {
-    if (flow[e] < 0 || flow[e] > cap[e]) return false;
-  }
-
-  for (SmartGraph::NodeIt n(g); n != INVALID; ++n) {
-    if (n == s || n == t) continue;
-    int sum = 0;
-    for (SmartGraph::OutEdgeIt e(g, n); e != INVALID; ++e) {
-      sum += flow[e];
-    }
-    for (SmartGraph::InEdgeIt e(g, n); e != INVALID; ++e) {
-      sum -= flow[e];
-    }
-    if (sum != 0) return false;
-  }
-  return true;
-}
-
-int main() {
-
-  typedef SmartGraph Graph;
-  
-  typedef Graph::Node Node;
-  typedef Graph::NodeIt NodeIt;
-  typedef Graph::EdgeIt EdgeIt;
-  typedef Graph::EdgeMap<int> CapMap;
-  typedef Graph::EdgeMap<int> FlowMap;
-  typedef Graph::NodeMap<bool> CutMap;
-
-  typedef Preflow<Graph, CapMap> PType;
-
-  std::string f_name;
-  if( getenv("srcdir") )
-    f_name = std::string(getenv("srcdir"));
-  else f_name = ".";
-  f_name += "/test/preflow_graph.dim";
-  
-  std::ifstream file(f_name.c_str());
-  
-  check(file, "Input file '" << f_name << "' not found.");
-  
-  Graph g;
-  Node s, t;
-  CapMap cap(g);
-  readDimacs(file, g, cap, s, t);
-
-  PType preflow_test(g, cap, s, t);
-  preflow_test.run();
-    
-  check(checkFlow(g, preflow_test.flowMap(), cap, s, t),
-	"The flow is not feasible.");
-
-  CutMap min_cut(g);
-  preflow_test.minCutMap(min_cut); 
-  int min_cut_value=cutValue(g,min_cut,cap);
-  
-  check(preflow_test.flowValue() == min_cut_value,
-	"The max flow value is not equal to the three min cut values.");
-
-  FlowMap flow(g);
-  flow = preflow_test.flowMap();
-
-  int flow_value=preflow_test.flowValue();
-
-  for(EdgeIt e(g); e!=INVALID; ++e) cap[e]=2*cap[e]; 
-  preflow_test.flowInit(flow);
-  preflow_test.startFirstPhase();
-
-  CutMap min_cut1(g);
-  preflow_test.minCutMap(min_cut1); 
-  min_cut_value=cutValue(g,min_cut1,cap);
-   
-  check(preflow_test.flowValue() == min_cut_value &&
-	min_cut_value == 2*flow_value,
-	"The max flow value or the min cut value is wrong.");
-
-  preflow_test.startSecondPhase();
-
-  check(checkFlow(g, preflow_test.flowMap(), cap, s, t),
-	"The flow is not feasible.");
-
-  CutMap min_cut2(g);
-  preflow_test.minCutMap(min_cut2); 
-  min_cut_value=cutValue(g,min_cut2,cap);
-   
-  check(preflow_test.flowValue() == min_cut_value &&
-	min_cut_value == 2*flow_value,
-	"The max flow value or the three min cut values were not doubled");
-
-
-  preflow_test.flowMap(flow); 
-
-  NodeIt tmp1(g,s);
-  ++tmp1;
-  if ( tmp1 != INVALID ) s=tmp1;
-
-  NodeIt tmp2(g,t);
-  ++tmp2;
-  if ( tmp2 != INVALID ) t=tmp2;
-
-  preflow_test.source(s);
-  preflow_test.target(t); 
-  
-  preflow_test.run();
-
-  CutMap min_cut3(g);
-  preflow_test.minCutMap(min_cut3); 
-  min_cut_value=cutValue(g,min_cut3,cap);
-   
-
-  check(preflow_test.flowValue() == min_cut_value,
-	"The max flow value or the three min cut values are incorrect.");
-  
-  return 0;
-}
Index: test/radix_sort_test.cc
===================================================================
--- test/radix_sort_test.cc	(revision 2569)
+++ 	(revision )
@@ -1,190 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/time_measure.h>
-#include <lemon/smart_graph.h>
-#include <lemon/graph_utils.h>
-#include <lemon/maps.h>
-#include <lemon/radix_sort.h>
-
-#include "test_tools.h"
-
-
-#include <vector>
-#include <algorithm>
-#include <lemon/math.h>
-
-using namespace std;
-using namespace lemon;
-
-typedef unsigned char uchar;
-
-void checkRadixSort() {
-  {
-    int n = 10000;
-    vector<int> data1(n), data2(n);
-    for (int i = 0; i < n; ++i) {
-      data1[i] = data2[i] = rnd[1000] - 500;
-    }
-    radixSort(data1.begin(), data1.end());
-    sort(data2.begin(), data2.end());
-    for (int i = 0; i < n; ++i) {
-      check(data1[i] == data2[i], "Test failed");
-    }
-  } {
-    int n = 10000;
-    vector<unsigned char> data1(n), data2(n);
-    for (int i = 0; i < n; ++i) {
-      data1[i] = data2[i] = rnd[uchar(200)];
-    }
-    radixSort(data1.begin(), data1.end());
-    sort(data2.begin(), data2.end());
-    for (int i = 0; i < n; ++i) {
-      check(data1[i] == data2[i], "Test failed");
-    }
-  }
-}
-
-
-void checkCounterSort() {
-  {
-    int n = 10000;
-    vector<int> data1(n), data2(n);
-    for (int i = 0; i < n; ++i) {
-      data1[i] = data2[i] = rnd[1000] - 500;
-    }
-    counterSort(data1.begin(), data1.end());
-    sort(data2.begin(), data2.end());
-    for (int i = 0; i < n; ++i) {
-      check(data1[i] == data2[i], "Test failed");
-    } 
-  } {
-    int n = 10000;
-    vector<unsigned char> data1(n), data2(n);
-    for (int i = 0; i < n; ++i) {
-      data1[i] = data2[i] = rnd[uchar(200)];
-    }
-    counterSort(data1.begin(), data1.end());
-    sort(data2.begin(), data2.end());
-    for (int i = 0; i < n; ++i) {
-      check(data1[i] == data2[i], "Test failed");
-    } 
-  }
-}
-
-void checkSorts() {
-  checkRadixSort();
-  checkCounterSort();
-}
-
-void checkGraphRadixSort() {
-  typedef SmartGraph Graph;
-  typedef Graph::Node Node;
-  typedef Graph::Edge Edge;
-
-  const int n = 100;
-  const int e = int(n * log(double(n)));
-
-  Graph graph;
-  vector<Node> nodes;
-
-  for (int i = 0; i < n; ++i) {
-    nodes.push_back(graph.addNode());
-  }
-  vector<Edge> edges;
-  for (int i = 0; i < e; ++i) {
-    int s = rnd[n];
-    int t = rnd[n];
-    edges.push_back(graph.addEdge(nodes[s], nodes[t]));
-  }
-
-  radixSort(edges.begin(), edges.end(), 
-	    mapFunctor(composeMap(IdMap<Graph, Node>(graph), 
-				  sourceMap(graph))));
-
-  Graph::EdgeMap<bool> was(graph, false);
-
-  for (int i = 0; i < int(edges.size()); ++i) {
-    check(!was[edges[i]], "Test failed");
-    was[edges[i]] = true;
-  }
-
-  for (int i = 1; i < int(edges.size()); ++i) {
-    check(graph.id(graph.source(edges[i - 1])) <= 
-	  graph.id(graph.source(edges[i])), "Test failed");
-  }
-
-}
-
-void checkGraphCounterSort() {
-  typedef SmartGraph Graph;
-  typedef Graph::Node Node;
-  typedef Graph::Edge Edge;
-
-  const int n = 100;
-  const int e = int(n * log(double(n)));
-
-  Graph graph;
-  vector<Node> nodes;
-
-  for (int i = 0; i < n; ++i) {
-    nodes.push_back(graph.addNode());
-  }
-  vector<Edge> edges;
-  for (int i = 0; i < e; ++i) {
-    int s = rnd[n];
-    int t = rnd[n];
-    edges.push_back(graph.addEdge(nodes[s], nodes[t]));
-  }
-
-  counterSort(edges.begin(), edges.end(), 
-	      mapFunctor(composeMap(IdMap<Graph, Node>(graph), 
-				    sourceMap(graph))));
-
-  counterSort(edges.begin(), edges.end(), 
-	      mapFunctor(composeMap(IdMap<Graph, Node>(graph), 
-				    targetMap(graph))));
-
-  Graph::EdgeMap<bool> was(graph, false);
-
-  for (int i = 0; i < int(edges.size()); ++i) {
-    check(!was[edges[i]], "Test failed");
-    was[edges[i]] = true;
-  }
-
-  for (int i = 1; i < int(edges.size()); ++i) {
-    check(graph.id(graph.target(edges[i - 1])) < 
-	  graph.id(graph.target(edges[i])) || 
-	  (graph.id(graph.target(edges[i - 1])) ==
-	   graph.id(graph.target(edges[i])) &&
-	   graph.id(graph.source(edges[i - 1])) <= 
-	   graph.id(graph.source(edges[i]))), "Test failed");
-  }
-
-}
-
-void checkGraphSorts() {
-  checkGraphRadixSort();
-  checkGraphCounterSort();
-}
-
-int main() {
-  checkSorts();
-  checkGraphSorts();
-  return 0;
-}
Index: test/random_test.cc
===================================================================
--- test/random_test.cc	(revision 2597)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/random.h>
-#include "test_tools.h"
-
-///\file \brief Test cases for random.h
-///
-///\todo To be extended
-///
-
-int seed_array[] = {1, 2};
-
-int main()
-{
-  double a=rnd();
-  check(a<1.0&&a>0.0,"This should be in [0,1)");
-  a=rnd.gauss();
-  a=rnd.gamma(3.45,0);
-  a=rnd.gamma(4);
-  //Does gamma work with integer k?
-  a=rnd.gamma(4.0,0);
-
-  lemon::rnd.seed(100);
-  lemon::rnd.seed(seed_array, seed_array + 
-		  (sizeof(seed_array) / sizeof(seed_array[0])));
-  return 0;
-}
Index: test/refptr_test.cc
===================================================================
--- test/refptr_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,61 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include<lemon/refptr.h>
-#include "test_tools.h"
-#include <iostream>
-
-class Test 
-{
-  int &_counter;
-public:
-  Test(int &co) : _counter(co)
-  {
-    std::cerr << "Init\n";
-    _counter++;
-  }
-  ~Test()
-  {
-    std::cerr << "Destroy\n";
-    _counter--;
-  }
-  int &counter() { return _counter; }
-  
-};
-
-int main()
-{
-  int c=0;
-  
-  {
-    RefPtr<Test> a = new Test(c);
-    check(a->counter() == 1, "Wrong number of initialization");
-    {
-      RefPtr<Test> b = a;
-      check((*b).counter() == 1, "Wrong number of initialization");
-      b=a;
-      a=b;
-      check((*a).counter() == 1, "Wrong number of initialization");
-    }
-    check(a->counter() == 1, "Wrong number of initialization");
-  }
-  check(c == 0, "Wrong number of initialization");
-
-  return 0;
-}
-
Index: test/simann_test.cc
===================================================================
--- test/simann_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,60 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/simann.h>
-
-using namespace lemon;
-
-class MyEntity : public EntityBase {
-public:
-  double d, prev_d;
-  MyEntity() : d(100000.0) {}
-  double mutate() {
-    prev_d = d;
-    if (rnd.boolean(0.8)) { d += 1.0; }
-    else { d -= 1.0; }
-    return d;
-  }
-  void revert() { d = prev_d; }
-  MyEntity* clone() { return new MyEntity (*this); }
-  void randomize() {}
-};
-
-int main() {
-  SimAnn simann;
-  SimpleController ctrl;
-  simann.setController(ctrl);
-  MyEntity ent;
-  simann.setEntity(ent);
-  simann.run();
-
-  //MyEntity *best_ent = (MyEntity *) simann.getBestEntity();
-  //std::cout << best_ent->d << std::endl;
-
-  SimAnn simann2;
-  AdvancedController ctrl2(2.0);
-  simann2.setController(ctrl2);
-  MyEntity ent2;
-  simann2.setEntity(ent2);
-  simann2.run();
-
-  //MyEntity *best_ent2 = (MyEntity *) simann2.getBestEntity();
-  //std::cout << best_ent2->d << std::endl;
-
-  return 0;
-}
Index: test/suurballe_test.cc
===================================================================
--- test/suurballe_test.cc	(revision 2586)
+++ 	(revision )
@@ -1,160 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include <fstream>
-
-#include <lemon/list_graph.h>
-#include <lemon/graph_reader.h>
-#include <lemon/path.h>
-#include <lemon/suurballe.h>
-
-#include "test_tools.h"
-
-using namespace lemon;
-
-// Checks the feasibility of the flow
-template <typename Graph, typename FlowMap>
-bool checkFlow( const Graph& gr, const FlowMap& flow, 
-                typename Graph::Node s, typename Graph::Node t,
-                int value )
-{
-  GRAPH_TYPEDEFS(typename Graph);
-  for (EdgeIt e(gr); e != INVALID; ++e)
-    if (!(flow[e] == 0 || flow[e] == 1)) return false;
-
-  for (NodeIt n(gr); n != INVALID; ++n) {
-    int sum = 0;
-    for (OutEdgeIt e(gr, n); e != INVALID; ++e)
-      sum += flow[e];
-    for (InEdgeIt e(gr, n); e != INVALID; ++e)
-      sum -= flow[e];
-    if (n == s && sum != value) return false;
-    if (n == t && sum != -value) return false;
-    if (n != s && n != t && sum != 0) return false;
-  }
-
-  return true;
-}
-
-// Checks the optimalitiy of the flow
-template < typename Graph, typename CostMap, 
-           typename FlowMap, typename PotentialMap >
-bool checkOptimality( const Graph& gr, const CostMap& cost,
-                      const FlowMap& flow, const PotentialMap& pi )
-{
-  // Checking the Complementary Slackness optimality condition
-  GRAPH_TYPEDEFS(typename Graph);
-  bool opt = true;
-  for (EdgeIt e(gr); e != INVALID; ++e) {
-    typename CostMap::Value red_cost =
-      cost[e] + pi[gr.source(e)] - pi[gr.target(e)];
-    opt = (flow[e] == 0 && red_cost >= 0) ||
-          (flow[e] == 1 && red_cost <= 0);
-    if (!opt) break;
-  }
-  return opt;
-}
-
-// Checks a path
-template < typename Graph, typename Path >
-bool checkPath( const Graph& gr, const Path& path,
-                typename Graph::Node s, typename Graph::Node t)
-{
-  // Checking the Complementary Slackness optimality condition
-  GRAPH_TYPEDEFS(typename Graph);
-  Node n = s;
-  for (int i = 0; i < path.length(); ++i) {
-    if (gr.source(path.nth(i)) != n) return false;
-    n = gr.target(path.nth(i));
-  }
-  return n == t;
-}
-
-
-int main()
-{
-  GRAPH_TYPEDEFS(ListGraph);
-
-  // Reading the test graph
-  ListGraph graph;
-  ListGraph::EdgeMap<int> length(graph);
-  Node source, target;
-
-  std::string fname;
-  if(getenv("srcdir"))
-    fname = std::string(getenv("srcdir"));
-  else fname = ".";
-  fname += "/test/min_cost_flow_test.lgf";
-
-  std::ifstream input(fname.c_str());
-  check(input, "Input file '" << fname << "' not found");
-  GraphReader<ListGraph>(input, graph).
-    readEdgeMap("cost", length).
-    readNode("source", source).
-    readNode("target", target).
-    run();
-  input.close();
-  
-  // Finding 2 paths
-  {
-    Suurballe<ListGraph> suurballe(graph, length, source, target);
-    check(suurballe.run(2) == 2, "Wrong number of paths");
-    check(checkFlow(graph, suurballe.flowMap(), source, target, 2),
-          "The flow is not feasible");
-    check(suurballe.totalLength() == 510, "The flow is not optimal");
-    check(checkOptimality(graph, length, suurballe.flowMap(), 
-                          suurballe.potentialMap()),
-          "Wrong potentials");
-    for (int i = 0; i < suurballe.pathNum(); ++i)
-      check(checkPath(graph, suurballe.path(i), source, target),
-            "Wrong path");
-  }
-
-  // Finding 3 paths
-  {
-    Suurballe<ListGraph> suurballe(graph, length, source, target);
-    check(suurballe.run(3) == 3, "Wrong number of paths");
-    check(checkFlow(graph, suurballe.flowMap(), source, target, 3),
-          "The flow is not feasible");
-    check(suurballe.totalLength() == 1040, "The flow is not optimal");
-    check(checkOptimality(graph, length, suurballe.flowMap(), 
-                          suurballe.potentialMap()),
-          "Wrong potentials");
-    for (int i = 0; i < suurballe.pathNum(); ++i)
-      check(checkPath(graph, suurballe.path(i), source, target),
-            "Wrong path");
-  }
-
-  // Finding 5 paths (only 3 can be found)
-  {
-    Suurballe<ListGraph> suurballe(graph, length, source, target);
-    check(suurballe.run(5) == 3, "Wrong number of paths");
-    check(checkFlow(graph, suurballe.flowMap(), source, target, 3),
-          "The flow is not feasible");
-    check(suurballe.totalLength() == 1040, "The flow is not optimal");
-    check(checkOptimality(graph, length, suurballe.flowMap(), 
-                          suurballe.potentialMap()),
-          "Wrong potentials");
-    for (int i = 0; i < suurballe.pathNum(); ++i)
-      check(checkPath(graph, suurballe.path(i), source, target),
-            "Wrong path");
-  }
-
-  return 0;
-}
Index: test/test_tools.h
===================================================================
--- test/test_tools.h	(revision 2553)
+++ 	(revision )
@@ -1,181 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#ifndef LEMON_TEST_TEST_TOOLS_H
-#define LEMON_TEST_TEST_TOOLS_H
-
-#include <iostream>
-#include <vector>
-
-#include <cstdlib>
-#include <ctime>
-
-#include <lemon/concept_check.h>
-#include <lemon/concepts/graph.h>
-
-#include <lemon/random.h>
-
-using namespace lemon;
-
-//! \ingroup misc
-//! \file
-//! \brief Some utilities to write test programs.
-
-
-///If \c rc is fail, writes an error message end exit.
-
-///If \c rc is fail, writes an error message end exit.
-///The error message contains the file name and the line number of the
-///source code in a standard from, which makes it possible to go there
-///using good source browsers like e.g. \c emacs.
-///
-///For example
-///\code check(0==1,"This is obviously false.");\endcode will
-///print this (and then exits).
-///\verbatim graph_test.cc:123: error: This is obviously false. \endverbatim
-///
-///\todo It should be in \c error.h
-#define check(rc, msg) \
-  if(!(rc)) { \
-    std::cerr << __FILE__ ":" << __LINE__ << ": error: " << msg << std::endl; \
-    abort(); \
-  } else { } \
-
-///Structure returned by \ref addPetersen().
-
-///Structure returned by \ref addPetersen().
-///
-template<class Graph> struct PetStruct
-{
-  ///Vector containing the outer nodes.
-  std::vector<typename Graph::Node> outer;
-  ///Vector containing the inner nodes.
-  std::vector<typename Graph::Node> inner;
-  ///Vector containing the edges of the inner circle.
-  std::vector<typename Graph::Edge> incir;
-  ///Vector containing the edges of the outer circle.
-  std::vector<typename Graph::Edge> outcir;
-  ///Vector containing the chord edges.
-  std::vector<typename Graph::Edge> chords;
-};
-
-
-
-///Adds a Petersen graph to \c G.
-
-///Adds a Petersen graph to \c G.
-///\return The nodes and edges of the generated graph.
-
-template<typename Graph>
-PetStruct<Graph> addPetersen(Graph &G,int num = 5)
-{
-  PetStruct<Graph> n;
-
-  for(int i=0;i<num;i++) {
-    n.outer.push_back(G.addNode());
-    n.inner.push_back(G.addNode());
-  }
-
- for(int i=0;i<num;i++) {
-   n.chords.push_back(G.addEdge(n.outer[i],n.inner[i]));
-   n.outcir.push_back(G.addEdge(n.outer[i],n.outer[(i+1) % num]));
-   n.incir.push_back(G.addEdge(n.inner[i],n.inner[(i+2) % num]));
-  }
- return n;
-}
-
-/// \brief Adds to the graph the reverse pair of all edges.
-///
-/// Adds to the graph the reverse pair of all edges.
-///
-template<class Graph> void bidirGraph(Graph &G)
-{
-  typedef typename Graph::Edge Edge;
-  typedef typename Graph::EdgeIt EdgeIt;
-  
-  std::vector<Edge> ee;
-  
-  for(EdgeIt e(G);e!=INVALID;++e) ee.push_back(e);
-
-  for(typename std::vector<Edge>::iterator p=ee.begin();p!=ee.end();p++)
-    G.addEdge(G.target(*p),G.source(*p));
-}
-
-
-/// \brief Checks the bidirectioned Petersen graph.
-///
-///  Checks the bidirectioned Petersen graph.
-///
-template<class Graph> void checkBidirPetersen(Graph &G, int num = 5)
-{
-  typedef typename Graph::Node Node;
-
-  typedef typename Graph::EdgeIt EdgeIt;
-  typedef typename Graph::NodeIt NodeIt;
-
-  checkGraphNodeList(G, 2 * num);
-  checkGraphEdgeList(G, 6 * num);
-
-  for(NodeIt n(G);n!=INVALID;++n) {
-    checkGraphInEdgeList(G, n, 3);
-    checkGraphOutEdgeList(G, n, 3);
-  }  
-}
-
-///Structure returned by \ref addUPetersen().
-
-///Structure returned by \ref addUPetersen().
-///
-template<class Graph> struct UPetStruct
-{
-  ///Vector containing the outer nodes.
-  std::vector<typename Graph::Node> outer;
-  ///Vector containing the inner nodes.
-  std::vector<typename Graph::Node> inner;
-  ///Vector containing the edges of the inner circle.
-  std::vector<typename Graph::UEdge> incir;
-  ///Vector containing the edges of the outer circle.
-  std::vector<typename Graph::UEdge> outcir;
-  ///Vector containing the chord edges.
-  std::vector<typename Graph::UEdge> chords;
-};
-
-///Adds a Petersen graph to the undirected \c G.
-
-///Adds a Petersen graph to the undirected \c G.
-///\return The nodes and edges of the generated graph.
-
-template<typename Graph>
-UPetStruct<Graph> addUPetersen(Graph &G,int num=5)
-{
-  UPetStruct<Graph> n;
-
-  for(int i=0;i<num;i++) {
-    n.outer.push_back(G.addNode());
-    n.inner.push_back(G.addNode());
-  }
-
- for(int i=0;i<num;i++) {
-   n.chords.push_back(G.addEdge(n.outer[i],n.inner[i]));
-   n.outcir.push_back(G.addEdge(n.outer[i],n.outer[(i+1)%5]));
-   n.incir.push_back(G.addEdge(n.inner[i],n.inner[(i+2)%5]));
- }
- return n;
-}
-
-#endif
Index: test/test_tools_fail.cc
===================================================================
--- test/test_tools_fail.cc	(revision 2553)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include "test_tools.h"
-
-int main() 
-{
-  check(false, "Don't panic. Failing is the right behaviour here.");
-  return 0;
-}
Index: test/test_tools_pass.cc
===================================================================
--- test/test_tools_pass.cc	(revision 2553)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include "test_tools.h"
-
-int main() 
-{
-  check(true, "It should pass.");
-  return 0;
-}
Index: test/time_measure_test.cc
===================================================================
--- test/time_measure_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,63 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/time_measure.h>
-
-///\file \brief Test cases for time_measure.h
-///
-///\todo To be extended
-
-
-using namespace lemon;
-
-void f() 
-{
-  double d=0;
-  for(int i=0;i<1000;i++)
-    d+=0.1;
-}
-
-void g() 
-{
-  static Timer T;
-  
-  for(int i=0;i<1000;i++)
-    TimeStamp x(T);
-}
-
-int main()
-{
-  Timer T;
-  unsigned int n;
-  for(n=0;T.realTime()<1.0;n++) ;
-  std::cout << T << " (" << n << " time queries)\n";
-  T.restart();
-  while(T.realTime()<2.0) ;
-  std::cout << T << '\n';
-  TimeStamp full;
-  TimeStamp t;
-  t=runningTimeTest(f,1,&n,&full);
-  std::cout << t << " (" << n << " tests)\n";
-  std::cout << "Total: " << full << "\n";
-  
-  t=runningTimeTest(g,1,&n,&full);
-  std::cout << t << " (" << n << " tests)\n";
-  std::cout << "Total: " << full << "\n";
-  
-  return 0;
-}
Index: test/ugraph_test.cc
===================================================================
--- test/ugraph_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,212 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <lemon/bits/graph_extender.h>
-#include <lemon/concepts/ugraph.h>
-#include <lemon/list_graph.h>
-#include <lemon/smart_graph.h>
-#include <lemon/full_graph.h>
-#include <lemon/grid_ugraph.h>
-
-#include <lemon/graph_utils.h>
-
-#include "test_tools.h"
-
-
-using namespace lemon;
-using namespace lemon::concepts;
-
-void check_concepts() {
-
-  { // checking graph components
-    checkConcept<BaseUGraphComponent, BaseUGraphComponent >();
-
-    checkConcept<IDableUGraphComponent<>, 
-      IDableUGraphComponent<> >();
-
-    checkConcept<IterableUGraphComponent<>, 
-      IterableUGraphComponent<> >();
-
-    checkConcept<MappableUGraphComponent<>, 
-      MappableUGraphComponent<> >();
-
-  }
-  {
-    checkConcept<UGraph, ListUGraph>();
-    
-    checkConcept<UGraph, SmartUGraph>();
-    
-    checkConcept<UGraph, FullUGraph>();
-    
-    checkConcept<UGraph, UGraph>();
-    
-    checkConcept<UGraph, GridUGraph>();
-  }
-}
-
-template <typename Graph>
-void check_item_counts(Graph &g, int n, int e) {
-  int nn = 0;
-  for (typename Graph::NodeIt it(g); it != INVALID; ++it) {
-    ++nn;
-  }
-
-  check(nn == n, "Wrong node number.");
-  check(countNodes(g) == n, "Wrong node number.");
-
-  int ee = 0;
-  for (typename Graph::EdgeIt it(g); it != INVALID; ++it) {
-    ++ee;
-  }
-
-  check(ee == 2*e, "Wrong edge number.");
-  check(countEdges(g) == 2*e, "Wrong edge number.");
-
-  int uee = 0;
-  for (typename Graph::UEdgeIt it(g); it != INVALID; ++it) {
-    ++uee;
-  }
-
-  check(uee == e, "Wrong uedge number.");
-  check(countUEdges(g) == e, "Wrong uedge number.");
-}
-
-template <typename Graph>
-void print_items(Graph &g) {
-
-  typedef typename Graph::NodeIt NodeIt;
-  typedef typename Graph::UEdgeIt UEdgeIt;
-  typedef typename Graph::EdgeIt EdgeIt;
-
-  std::cout << "Nodes" << std::endl;
-  int i=0;
-  for(NodeIt it(g); it!=INVALID; ++it, ++i) {
-    std::cout << "  " << i << ": " << g.id(it) << std::endl;
-  }
-
-  std::cout << "UEdge" << std::endl;
-  i=0;
-  for(UEdgeIt it(g); it!=INVALID; ++it, ++i) {
-    std::cout << "  " << i << ": " << g.id(it) 
-	 << " (" << g.id(g.source(it)) << ", " << g.id(g.target(it)) 
-	 << ")" << std::endl;
-  }
-
-  std::cout << "Edge" << std::endl;
-  i=0;
-  for(EdgeIt it(g); it!=INVALID; ++it, ++i) {
-    std::cout << "  " << i << ": " << g.id(it)
-	 << " (" << g.id(g.source(it)) << ", " << g.id(g.target(it)) 
-	 << ")" << std::endl;
-  }
-
-}
-
-template <typename Graph>
-void check_graph() {
-
-  typedef typename Graph::Node Node;
-  typedef typename Graph::UEdge UEdge;
-  typedef typename Graph::Edge Edge;
-  typedef typename Graph::NodeIt NodeIt;
-  typedef typename Graph::UEdgeIt UEdgeIt;
-  typedef typename Graph::EdgeIt EdgeIt;
-
-  Graph g;
-
-  check_item_counts(g,0,0);
-
-  Node
-    n1 = g.addNode(),
-    n2 = g.addNode(),
-    n3 = g.addNode();
-
-  UEdge
-    e1 = g.addEdge(n1, n2),
-    e2 = g.addEdge(n2, n3);
-
-  // print_items(g);
-
-  check_item_counts(g,3,2);
-}
-
-void checkGridUGraph(const GridUGraph& g, int w, int h) {
-  check(g.width() == w, "Wrong width");
-  check(g.height() == h, "Wrong height");
-
-  for (int i = 0; i < w; ++i) {
-    for (int j = 0; j < h; ++j) {
-      check(g.col(g(i, j)) == i, "Wrong col");
-      check(g.row(g(i, j)) == j, "Wrong row");
-    }
-  }
-  
-  for (int i = 0; i < w; ++i) {
-    for (int j = 0; j < h - 1; ++j) {
-      check(g.source(g.down(g(i, j))) == g(i, j), "Wrong down");
-      check(g.target(g.down(g(i, j))) == g(i, j + 1), "Wrong down");
-    }
-    check(g.down(g(i, h - 1)) == INVALID, "Wrong down");
-  }
-
-  for (int i = 0; i < w; ++i) {
-    for (int j = 1; j < h; ++j) {
-      check(g.source(g.up(g(i, j))) == g(i, j), "Wrong up");
-      check(g.target(g.up(g(i, j))) == g(i, j - 1), "Wrong up");
-    }
-    check(g.up(g(i, 0)) == INVALID, "Wrong up");
-  }
-
-  for (int j = 0; j < h; ++j) {
-    for (int i = 0; i < w - 1; ++i) {
-      check(g.source(g.right(g(i, j))) == g(i, j), "Wrong right");
-      check(g.target(g.right(g(i, j))) == g(i + 1, j), "Wrong right");      
-    }
-    check(g.right(g(w - 1, j)) == INVALID, "Wrong right");    
-  }
-
-  for (int j = 0; j < h; ++j) {
-    for (int i = 1; i < w; ++i) {
-      check(g.source(g.left(g(i, j))) == g(i, j), "Wrong left");
-      check(g.target(g.left(g(i, j))) == g(i - 1, j), "Wrong left");      
-    }
-    check(g.left(g(0, j)) == INVALID, "Wrong left");    
-  }
-}
-
-int main() {
-  check_concepts();
-
-  check_graph<ListUGraph>();
-  check_graph<SmartUGraph>();
-
-  {
-    FullUGraph g(5);
-    check_item_counts(g, 5, 10);
-  }
-
-  {
-    GridUGraph g(5, 6);
-    check_item_counts(g, 30, 49);
-    checkGridUGraph(g, 5, 6);
-  }
-
-  std::cout << __FILE__ ": All tests passed.\n";
-
-  return 0;
-}
Index: test/unionfind_test.cc
===================================================================
--- test/unionfind_test.cc	(revision 2553)
+++ 	(revision )
@@ -1,114 +1,0 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
- *
- * Copyright (C) 2003-2008
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-
-#include <lemon/maps.h>
-#include <lemon/unionfind.h>
-#include "test_tools.h"
-
-using namespace lemon;
-using namespace std;
-
-typedef UnionFindEnum<StdMap<int, int> > UFE;
-
-void print(UFE const &ufe) {
-  cout << "Print the classes of the structure:" << endl;
-  int i = 1;
-  for (UFE::ClassIt cit(ufe); cit != INVALID; ++cit) {
-    cout << "  " << i << " (" << cit << "):" << flush;
-    for (UFE::ItemIt iit(ufe, cit); iit != INVALID; ++iit) {
-      cout << " " << iit << flush;
-    }
-    cout << endl;
-    i++;
-  }
-  cout << "done" << endl;
-}
-
-
-int main() {
-  StdMap<int, int> base;
-  UFE U(base);
-
-  U.insert(1);
-  U.insert(2);
-
-  check(U.join(1,2) != -1,"Test failed.");
-
-  U.insert(3);
-  U.insert(4);
-  U.insert(5);
-  U.insert(6);
-  U.insert(7);
-
-
-  check(U.join(1,4) != -1,"Test failed.");
-  check(U.join(2,4) == -1,"Test failed.");
-  check(U.join(3,5) != -1,"Test failed.");
-
-
-  U.insert(8,U.find(5));
-
-
-  check(U.size(U.find(4)) == 3,"Test failed.");
-  check(U.size(U.find(5)) == 3,"Test failed.");
-  check(U.size(U.find(6)) == 1,"Test failed.");
-  check(U.size(U.find(2)) == 3,"Test failed.");
-
-
-  U.insert(9);
-  U.insert(10,U.find(9));
-
-
-  check(U.join(8,10) != -1,"Test failed.");
-
-
-  check(U.size(U.find(4)) == 3,"Test failed.");
-  check(U.size(U.find(9)) == 5,"Test failed.");
-
-  check(U.size(U.find(8)) == 5,"Test failed.");
-
-  U.erase(9);
-  U.erase(1);
-
-  check(U.size(U.find(10)) == 4,"Test failed.");
-  check(U.size(U.find(2)) == 2,"Test failed.");
-
-  U.erase(6);
-  U.split(U.find(8));
-
-
-  check(U.size(U.find(4)) == 2,"Test failed.");
-  check(U.size(U.find(3)) == 1,"Test failed.");
-  check(U.size(U.find(2)) == 2,"Test failed.");
-
-
-  check(U.join(3,4) != -1,"Test failed.");
-  check(U.join(2,4) == -1,"Test failed.");
-
-
-  check(U.size(U.find(4)) == 3,"Test failed.");
-  check(U.size(U.find(3)) == 3,"Test failed.");
-  check(U.size(U.find(2)) == 3,"Test failed.");
-
-  U.eraseClass(U.find(4));
-  U.eraseClass(U.find(7));
-
-  return 0;
-}
