summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/graph/test/min_degree_empty.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/graph/test/min_degree_empty.cpp')
-rw-r--r--src/boost/libs/graph/test/min_degree_empty.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/boost/libs/graph/test/min_degree_empty.cpp b/src/boost/libs/graph/test/min_degree_empty.cpp
new file mode 100644
index 00000000..d01ebb50
--- /dev/null
+++ b/src/boost/libs/graph/test/min_degree_empty.cpp
@@ -0,0 +1,51 @@
+//=======================================================================
+// Copyright 2017 Felix Salfelder
+//
+// Distributed under 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)
+//=======================================================================
+
+#include <boost/graph/minimum_degree_ordering.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/property_map/property_map.hpp>
+#include <boost/test/minimal.hpp>
+#include <boost/typeof/typeof.hpp>
+#include <vector>
+#include <map>
+
+typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> G;
+
+int test_main(int argc, char** argv)
+{
+ size_t n = 10;
+ G g(n);
+
+ std::vector<int> inverse_perm(n, 0);
+ std::vector<int> supernode_sizes(n, 1);
+ BOOST_AUTO(id, boost::get(boost::vertex_index, g));
+ std::vector<int> degree(n, 0);
+ std::map<int,int> io;
+ std::map<int,int> o;
+
+ boost::minimum_degree_ordering(
+ g
+ , boost::make_iterator_property_map(degree.begin(), id, degree[0])
+ , boost::make_assoc_property_map(io)
+ , boost::make_assoc_property_map(o)
+ , boost::make_iterator_property_map(
+ supernode_sizes.begin()
+ , id
+ , supernode_sizes[0]
+ )
+ , 0
+ , id
+ );
+
+ for (int k = 0; k < n; ++k)
+ {
+ BOOST_CHECK(o[io[k]] == k);
+ }
+
+ return 0;
+}