1//=======================================================================
2// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
3// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
4//
5// Distributed under the Boost Software License, Version 1.0. (See
6// accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//=======================================================================
9#include <boost/graph/graph_concepts.hpp>
10#include <boost/graph/graph_archetypes.hpp>
11#include <boost/graph/adjacency_matrix.hpp>
12#include <boost/concept/assert.hpp>
13
14int main(int, char*[])
15{
16 using namespace boost;
17 // Check adjacency_matrix without properties
18 {
19 typedef adjacency_matrix< directedS > Graph;
20 BOOST_CONCEPT_ASSERT((VertexListGraphConcept< Graph >));
21 BOOST_CONCEPT_ASSERT((EdgeListGraphConcept< Graph >));
22 BOOST_CONCEPT_ASSERT((IncidenceGraphConcept< Graph >));
23 BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept< Graph >));
24 BOOST_CONCEPT_ASSERT((MutableGraphConcept< Graph >));
25 BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept< Graph >));
26 }
27 {
28 typedef adjacency_matrix< undirectedS > Graph;
29 BOOST_CONCEPT_ASSERT((VertexListGraphConcept< Graph >));
30 BOOST_CONCEPT_ASSERT((EdgeListGraphConcept< Graph >));
31 BOOST_CONCEPT_ASSERT((IncidenceGraphConcept< Graph >));
32 BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept< Graph >));
33 BOOST_CONCEPT_ASSERT((MutableGraphConcept< Graph >));
34 BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept< Graph >));
35 }
36 // Check adjacency_matrix with properties
37 {
38 typedef adjacency_matrix< directedS, property< vertex_color_t, int >,
39 property< edge_weight_t, float > >
40 Graph;
41 typedef graph_traits< Graph >::vertex_descriptor Vertex;
42 typedef graph_traits< Graph >::edge_descriptor Edge;
43 BOOST_CONCEPT_ASSERT((VertexListGraphConcept< Graph >));
44 BOOST_CONCEPT_ASSERT((EdgeListGraphConcept< Graph >));
45 BOOST_CONCEPT_ASSERT((IncidenceGraphConcept< Graph >));
46 BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept< Graph >));
47 BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept< Graph >));
48 BOOST_CONCEPT_ASSERT((VertexMutablePropertyGraphConcept< Graph >));
49 BOOST_CONCEPT_ASSERT((EdgeMutablePropertyGraphConcept< Graph >));
50 BOOST_CONCEPT_ASSERT(
51 (ReadablePropertyGraphConcept< Graph, Vertex, vertex_index_t >));
52 BOOST_CONCEPT_ASSERT(
53 (PropertyGraphConcept< Graph, Vertex, vertex_color_t >));
54 BOOST_CONCEPT_ASSERT(
55 (PropertyGraphConcept< Graph, Edge, edge_weight_t >));
56 }
57 {
58 typedef adjacency_matrix< undirectedS, property< vertex_color_t, int >,
59 property< edge_weight_t, float > >
60 Graph;
61 typedef graph_traits< Graph >::vertex_descriptor Vertex;
62 typedef graph_traits< Graph >::edge_descriptor Edge;
63 BOOST_CONCEPT_ASSERT((VertexListGraphConcept< Graph >));
64 BOOST_CONCEPT_ASSERT((EdgeListGraphConcept< Graph >));
65 BOOST_CONCEPT_ASSERT((IncidenceGraphConcept< Graph >));
66 BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept< Graph >));
67 BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept< Graph >));
68 BOOST_CONCEPT_ASSERT((VertexMutablePropertyGraphConcept< Graph >));
69 BOOST_CONCEPT_ASSERT((EdgeMutablePropertyGraphConcept< Graph >));
70 BOOST_CONCEPT_ASSERT(
71 (ReadablePropertyGraphConcept< Graph, Vertex, vertex_index_t >));
72 BOOST_CONCEPT_ASSERT(
73 (PropertyGraphConcept< Graph, Vertex, vertex_color_t >));
74 BOOST_CONCEPT_ASSERT(
75 (PropertyGraphConcept< Graph, Edge, edge_weight_t >));
76 }
77 return 0;
78}
79

source code of boost/libs/graph/test/adj_matrix_cc.cpp