text: //=======================================================================
  // Copyright 2009 Trustees of Indiana University.
  // Authors: Michael Hansen, Andrew Lumsdaine
  //
  // 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/graph_archetypes.hpp>
  #include <boost/graph/graph_concepts.hpp>
  #include <boost/graph/grid_graph.hpp>
  #include <boost/concept/assert.hpp>
  
  using namespace boost;
  
  template <unsigned int Dims>
  void check() {
    typedef grid_graph<Dims> Graph;
    typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
    typedef typename graph_traits<Graph>::edge_descriptor Edge;
  
    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> ));
  }
  
  int main (int, char*[]) {
    check<0>();
    check<1>();
    check<2>();
    check<3>();
    check<4>();
  
    return (0);
  }
  