// 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #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, undirectedS, // Vertex properties property > Graph; // Specify the edges in the graph { typedef std::pair 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 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; }