]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/graph/test/test_iteration.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / graph / test / test_iteration.hpp
1 // (C) Copyright 2009 Andrew Sutton
2 //
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0 (See accompanying file
5 // LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
6
7 #ifndef TEST_ITERATION_HPP
8 #define TEST_ITERATION_HPP
9
10 #include <boost/concept/assert.hpp>
11 #include <algorithm>
12
13 /** @name Test Vertex List
14 * Test the vertex list interface. Note that there are currently no graphs that
15 * do not expose this interface.
16 */
17 //@{
18 template <typename Graph>
19 void test_vertex_list_graph(Graph const& g) {
20 using namespace boost;
21 BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph>));
22
23 std::cout << "...test_vertex_list_graph\n";
24 typedef typename graph_traits<Graph>::vertex_iterator Iterator;
25 typedef std::pair<Iterator, Iterator> Range;
26
27 Range rng = vertices(g);
28 BOOST_ASSERT(num_vertices(g) == N);
29 BOOST_ASSERT(rng.first != rng.second);
30 BOOST_ASSERT(std::distance(rng.first, rng.second) == int(N));
31 }
32 //@}
33
34 /** @name Test Edge List
35 * Test the edge list interface. Note that there are currently no graphs that
36 * do not expose this interface.
37 */
38 //@{
39 template <typename Graph>
40 void test_edge_list_graph(Graph const& g) {
41 using namespace boost;
42 BOOST_CONCEPT_ASSERT((EdgeListGraphConcept<Graph>));
43
44 std::cout << "...test_edge_list_graph\n";
45 typedef typename graph_traits<Graph>::edge_iterator Iterator;
46 typedef std::pair<Iterator, Iterator> Range;
47
48 Range rng = edges(g);
49 BOOST_ASSERT(num_edges(g) == M);
50 BOOST_ASSERT(rng.first != rng.second);
51 BOOST_ASSERT(std::distance(rng.first, rng.second) == int(M));
52 }
53 //@}
54
55 #endif