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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#ifndef TEST_CONSTRUCTION_HPP
|
||||
#define TEST_CONSTRUCTION_HPP
|
||||
|
||||
#include <boost/concept/assert.hpp>
|
||||
#include <utility>
|
||||
|
||||
/** @name Build Graph
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#ifndef TEST_ITERATION_HPP
|
||||
#define TEST_ITERATION_HPP
|
||||
|
||||
#include <boost/concept/assert.hpp>
|
||||
#include <algorithm>
|
||||
|
||||
/** @name Test Vertex List
|
||||
|
||||
@@ -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&) { }
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user