2
0
mirror of https://github.com/boostorg/graph.git synced 2026-02-21 03:02:10 +00:00

Merged r76050, r75547, r75891, r76049, r76083, and r76439 from trunk (reverse_graph bug fixes and fix for #6293); refs #6293

[SVN r76535]
This commit is contained in:
Jeremiah Willcock
2012-01-15 23:32:09 +00:00
parent a88250f76f
commit 4b95dcfbe9
73 changed files with 756 additions and 564 deletions

View File

@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -21,20 +22,20 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableIncidenceGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list<vecS, vecS, bidirectionalS,
@@ -43,21 +44,21 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< BidirectionalGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< listS, listS, directedS,
@@ -66,20 +67,20 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableIncidenceGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< listS, listS, undirectedS,
@@ -88,20 +89,20 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
// Checking adjacency_list with EdgeList=setS
{
@@ -111,21 +112,21 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< BidirectionalGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< setS, listS, directedS,
@@ -134,20 +135,20 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableIncidenceGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< setS, listS, undirectedS,
@@ -156,105 +157,105 @@ int main(int,char*[])
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
// Check adjacency_list without any properties
{
typedef adjacency_list<vecS, vecS, directedS > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableIncidenceGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
}
{
typedef adjacency_list<vecS, vecS, bidirectionalS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< BidirectionalGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
}
{
typedef adjacency_list< listS, listS, directedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableIncidenceGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
{
typedef adjacency_list< listS, listS, undirectedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
// Checking EdgeList=setS with no properties
{
typedef adjacency_list<setS, vecS, bidirectionalS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< BidirectionalGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
function_requires< ReadablePropertyGraphConcept<Graph,
Vertex, vertex_index_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph,
Vertex, vertex_index_t> ));
}
{
typedef adjacency_list< setS, listS, directedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< MutableIncidenceGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
{
typedef adjacency_list< setS, listS, undirectedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableBidirectionalGraphConcept<Graph> >();
function_requires< MutableEdgeListGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
return 0;
}

View File

@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_matrix.hpp>
#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -16,21 +17,21 @@ int main(int,char*[])
// Check adjacency_matrix without properties
{
typedef adjacency_matrix<directedS> Graph;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableGraphConcept<Graph> >();
function_requires< AdjacencyMatrixConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
}
{
typedef adjacency_matrix<undirectedS> Graph;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< MutableGraphConcept<Graph> >();
function_requires< AdjacencyMatrixConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( MutableGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
}
// Check adjacency_matrix with properties
{
@@ -39,17 +40,17 @@ int main(int,char*[])
property<edge_weight_t, float> > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< AdjacencyMatrixConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires< ReadablePropertyGraphConcept<Graph,
Vertex, vertex_index_t> >();
function_requires< PropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires< PropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph,
Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_matrix<undirectedS,
@@ -57,17 +58,17 @@ int main(int,char*[])
property<edge_weight_t, float> > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< EdgeListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< AdjacencyMatrixConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires< ReadablePropertyGraphConcept<Graph,
Vertex, vertex_index_t> >();
function_requires< PropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires< PropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph,
Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
return 0;
}

View File

@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/edge_list.hpp>
#include <boost/concept/assert.hpp>
#include <cstddef>
#include <iterator>
@@ -24,10 +25,10 @@ int main(int,char*[])
typedef graph_traits<EdgeList>::edge_descriptor Edge;
function_requires< EdgeListGraphConcept<EdgeList> >();
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<EdgeList> ));
function_requires< ReadablePropertyGraphConcept<EdgeList, Edge,
edge_index_t> >();
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<EdgeList, Edge,
edge_index_t> ));
}
return 0;
}

View File

@@ -10,6 +10,7 @@
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -22,12 +23,12 @@ int main(int,char*[])
typedef filtered_graph<Graph, is_residual_edge<ResCapMap> > ResGraph;
typedef graph_traits<ResGraph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<ResGraph> >();
function_requires< EdgeListGraphConcept<ResGraph> >();
function_requires< IncidenceGraphConcept<ResGraph> >();
function_requires< AdjacencyGraphConcept<ResGraph> >();
function_requires< PropertyGraphConcept<ResGraph, Edge,
edge_residual_capacity_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<ResGraph> ));
BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<ResGraph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<ResGraph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<ResGraph> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<ResGraph, Edge,
edge_residual_capacity_t> ));
}
// Check filtered_graph with bidirectional adjacency_list
{
@@ -35,7 +36,7 @@ int main(int,char*[])
no_property, property<edge_residual_capacity_t, long> > Graph;
typedef property_map<Graph, edge_residual_capacity_t>::type ResCapMap;
typedef filtered_graph<Graph, is_residual_edge<ResCapMap> > ResGraph;
function_requires< BidirectionalGraphConcept<ResGraph> >();
BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<ResGraph> ));
}
return 0;
}

View File

@@ -8,6 +8,7 @@
//=======================================================================
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -19,22 +20,22 @@ int main(int,char*[])
typedef incidence_graph_archetype<Vertex, directed_tag,
allow_parallel_edge_tag> Graph1;
function_requires< IncidenceGraphConcept<Graph1> >();
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph1> ));
typedef adjacency_graph_archetype<Vertex, directed_tag,
allow_parallel_edge_tag> Graph2;
function_requires< AdjacencyGraphConcept<Graph2> >();
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph2> ));
typedef vertex_list_graph_archetype<Vertex, directed_tag,
allow_parallel_edge_tag> Graph3;
function_requires< VertexListGraphConcept<Graph3> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph3> ));
function_requires< ColorValueConcept<color_value_archetype> >();
BOOST_CONCEPT_ASSERT(( ColorValueConcept<color_value_archetype> ));
typedef incidence_graph_archetype<Vertex, directed_tag, allow_parallel_edge_tag> G;
typedef property_graph_archetype<G, vertex_color_t, color_value_archetype>
Graph4;
function_requires< PropertyGraphConcept<Graph4, Vertex, vertex_color_t> >();
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph4, Vertex, vertex_color_t> ));
return 0;
}

View File

@@ -10,6 +10,7 @@
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/grid_graph.hpp>
#include <boost/concept/assert.hpp>
#define DIMENSIONS 3
using namespace boost;
@@ -20,14 +21,14 @@ int main (int, char*[]) {
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires<BidirectionalGraphConcept<Graph> >();
function_requires<VertexListGraphConcept<Graph> >();
function_requires<EdgeListGraphConcept<Graph> >();
function_requires<IncidenceGraphConcept<Graph> >();
function_requires<AdjacencyGraphConcept<Graph> >();
function_requires<AdjacencyMatrixConcept<Graph> >();
function_requires<ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> >();
BOOST_CONCEPT_ASSERT((BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((EdgeListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept<Graph> ));
BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> ));
return (0);
}

View File

@@ -8,7 +8,7 @@
//=======================================================================
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/leda_graph.hpp>
#include <boost/concept/assert.hpp>
int
main(int,char*[])
@@ -18,21 +18,21 @@ main(int,char*[])
typedef leda::GRAPH<int,int> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< BidirectionalGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< VertexMutableGraphConcept<Graph> >();
function_requires< EdgeMutableGraphConcept<Graph> >();
function_requires< VertexMutablePropertyGraphConcept<Graph> >();
function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, vertex_all_t> >();
function_requires<
LvaluePropertyGraphConcept<Graph, Vertex, edge_all_t> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, vertex_all_t> ));
BOOST_CONCEPT_ASSERT((
LvaluePropertyGraphConcept<Graph, Vertex, edge_all_t> ));
}
return 0;
}

View File

@@ -6,6 +6,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/concept/assert.hpp>
// Test contributed by Dmitry that validates a read-only property map bug
// for bundled properties.
@@ -24,7 +25,7 @@ int main()
typedef property_map<graph_t, double EdgeProp::*>::type WeightMap;
typedef property_map<graph_t, double EdgeProp::*>::const_type cWeightMap;
typedef graph_traits<graph_t>::edge_descriptor Edge;
function_requires<ReadablePropertyMapConcept<WeightMap, Edge> >();
function_requires<ReadablePropertyMapConcept<cWeightMap, Edge> >();
BOOST_CONCEPT_ASSERT((ReadablePropertyMapConcept<WeightMap, Edge> ));
BOOST_CONCEPT_ASSERT((ReadablePropertyMapConcept<cWeightMap, Edge> ));
return 0;
}

View File

@@ -10,6 +10,7 @@
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/reverse_graph.hpp>
#include <boost/concept/assert.hpp>
#include <string>
int main(int,char*[])
@@ -23,11 +24,13 @@ int main(int,char*[])
property<graph_name_t, std::string>
> AdjList;
typedef reverse_graph<AdjList> Graph;
function_requires< VertexListGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< ReadablePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> ));
function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> >();
AdjList g;
Graph gr(g);
get_property(gr, graph_name_t());
@@ -40,11 +43,13 @@ int main(int,char*[])
property<graph_name_t, std::string>
> AdjList;
typedef reverse_graph<AdjList,AdjList&> Graph;
function_requires< VertexListGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< PropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
function_requires< PropertyGraphConcept<Graph, Edge, edge_weight_t> >();
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_weight_t> ));
BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> ));
function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> >();
AdjList g;
Graph gr(g);
get_property(gr, graph_name_t());

View File

@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/stanford_graph.hpp>
#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -18,28 +19,28 @@ int main(int,char*[])
typedef Graph* Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires< PropertyGraphConcept<Graph, Edge, edge_length_t > >();
function_requires<
PropertyGraphConcept<Graph, Vertex, u_property<Vertex> > >();
function_requires<
PropertyGraphConcept<Graph, Edge, a_property<Vertex> > >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_length_t > ));
BOOST_CONCEPT_ASSERT((
PropertyGraphConcept<Graph, Vertex, u_property<Vertex> > ));
BOOST_CONCEPT_ASSERT((
PropertyGraphConcept<Graph, Edge, a_property<Vertex> > ));
}
{
typedef const Graph* Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
function_requires<
ReadablePropertyGraphConcept<Graph, Edge, edge_length_t > >();
function_requires<
ReadablePropertyGraphConcept<Graph, Vertex, u_property<Vertex> > >();
function_requires<
ReadablePropertyGraphConcept<Graph, Edge, a_property<Vertex> > >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Edge, edge_length_t > ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Vertex, u_property<Vertex> > ));
BOOST_CONCEPT_ASSERT((
ReadablePropertyGraphConcept<Graph, Edge, a_property<Vertex> > ));
}
return 0;
}

View File

@@ -7,6 +7,7 @@
#ifndef TEST_CONSTRUCTION_HPP
#define TEST_CONSTRUCTION_HPP
#include <boost/concept/assert.hpp>
#include <utility>
/** @name Build Graph

View File

@@ -7,6 +7,7 @@
#ifndef TEST_DESTRUCTION_HPP
#define TEST_DESTRUCTION_HPP
#include <boost/concept/assert.hpp>
#include <utility>
/** @name Destroy Graph
@@ -36,7 +37,7 @@ template <typename Graph, typename VertexSet>
void destroy_graph(Graph& g, VertexSet const&, boost::mpl::false_, boost::mpl::true_) {
using namespace boost;
BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph>));
// function_requires< VeretexMutableGraphConcept<Graph> >();
// BOOST_CONCEPT_ASSERT(( VeretexMutableGraphConcept<Graph> ));
std::cout << "...destroy_labeled\n";
// Remove the roof vertex

View File

@@ -9,6 +9,7 @@
#include <algorithm>
#include <boost/range.hpp>
#include <boost/concept/assert.hpp>
/** @name Test Out-Directed Graph
* Test all graphs that have directed out edges.

View File

@@ -20,6 +20,7 @@
#include <utility>
#include <vector>
#include <boost/assert.hpp>
#include <boost/concept/assert.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_mutability_traits.hpp>

View File

@@ -7,6 +7,7 @@
#ifndef TEST_ITERATION_HPP
#define TEST_ITERATION_HPP
#include <boost/concept/assert.hpp>
#include <algorithm>
/** @name Test Vertex List

View File

@@ -7,6 +7,8 @@
#ifndef TEST_PROPERTIES_HPP
#define TEST_PROPERTIES_HPP
#include <boost/concept/assert.hpp>
template<typename T> T const& as_const(T& x) { return x; }
template<typename T> void ignore(T const&) { }

View File

@@ -7,6 +7,7 @@
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#include <boost/config.hpp>
#include <boost/concept/assert.hpp>
#include <vector>
#include <list>
@@ -24,9 +25,9 @@ int main(int,char*[])
// Check "vector as graph"
{
typedef std::vector< std::list<int> > Graph;
function_requires< VertexListGraphConcept<Graph> >();
function_requires< IncidenceGraphConcept<Graph> >();
function_requires< AdjacencyGraphConcept<Graph> >();
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
}
return 0;
}