$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r54747 - trunk/libs/graph_parallel/test
From: jewillco_at_[hidden]
Date: 2009-07-06 22:05:02
Author: jewillco
Date: 2009-07-06 22:05:02 EDT (Mon, 06 Jul 2009)
New Revision: 54747
URL: http://svn.boost.org/trac/boost/changeset/54747
Log:
Added file for Nick; refs #3134
Added:
   trunk/libs/graph_parallel/test/distributed_st_connected_test.cpp   (contents, props changed)
Added: trunk/libs/graph_parallel/test/distributed_st_connected_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph_parallel/test/distributed_st_connected_test.cpp	2009-07-06 22:05:02 EDT (Mon, 06 Jul 2009)
@@ -0,0 +1,87 @@
+// Copyright (C) 2004-2006 The Trustees of Indiana University.
+
+// Use, modification and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+//  Authors: Nick Edmonds
+//           Andrew Lumsdaine
+
+#include <boost/graph/use_mpi.hpp>
+#include <boost/config.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/graph/distributed/adjacency_list.hpp>
+#include <boost/graph/random.hpp>
+#include <boost/property_map/parallel/distributed_property_map.hpp>
+#include <boost/graph/distributed/mpi_process_group.hpp>
+#include <boost/graph/distributed/st_connected.hpp>
+#include <boost/graph/parallel/distribution.hpp>
+#include <boost/graph/small_world_generator.hpp>
+#include <iostream>
+#include <cstdlib>
+#include <iomanip>
+#include <boost/random.hpp>
+#include <boost/test/minimal.hpp>
+
+#ifdef BOOST_NO_EXCEPTIONS
+void
+boost::throw_exception(std::exception const& ex)
+{
+    std::cout << ex.what() << std::endl;
+    abort();
+}
+#endif
+
+using namespace boost;
+using boost::graph::distributed::mpi_process_group;
+
+// Set up the vertex names
+enum vertex_id_t { u, v, w, x, y, z, N };
+char vertex_names[] = { 'u', 'v', 'w', 'x', 'y', 'z' };
+
+void 
+test_distributed_st_connected() {
+
+  typedef adjacency_list<listS,
+                         distributedS<mpi_process_group, vecS>,
+                         undirectedS,
+                         // Vertex properties
+                         property<vertex_color_t, default_color_type> >
+    Graph;
+  typedef graph_traits<Graph>::vertices_size_type size_type;
+  typedef graph_traits<Graph>::vertex_descriptor vertex_descriptor;
+
+  // Specify the edges in the graph
+  {
+    typedef std::pair<int, int> E;
+    E edge_array[] = { E(u, u), E(u, v), E(u, w), E(v, w), E(x, y), 
+		       E(x, z), E(z, y), E(z, z) };
+    Graph g(edge_array, edge_array + sizeof(edge_array) / sizeof(E), N);
+
+    bool connected = st_connected(g, vertex(u, g), vertex(z, g), 
+				  get(vertex_color, g), get(vertex_owner, g));
+
+    assert(!connected);
+  }
+
+  {
+    typedef std::pair<int, int> E;
+    E edge_array[] = { E(u, v), E(u, w), E(u, x), E(x, v), E(y, x),
+		       E(v, y), E(w, y), E(w, z), E(z, z) };
+    Graph g(edge_array, edge_array + sizeof(edge_array) / sizeof(E), N);
+
+    bool connected = st_connected(g, vertex(u, g), vertex(z, g), 
+				  get(vertex_color, g), get(vertex_owner, g));
+
+    assert(connected);
+  }
+
+
+}
+
+int test_main(int argc, char* argv[])
+{
+  mpi::environment env(argc, argv);
+  test_distributed_st_connected();
+  return 0;
+}