16#include <boost/graph/adjacency_list.hpp>
17#include <boost/graph/graph_traits.hpp>
18#include <boost/graph/properties.hpp>
19#include <boost/property_map/property_map.hpp>
20#include <py2cpp/nx2bgl.hpp>
34 = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property,
35 boost::property<boost::edge_id_tag_t, size_t>>;
37using Vertex =
typename boost::graph_traits<graph_t>::vertex_descriptor;
39using edge_t =
typename boost::graph_traits<graph_t>::edge_iterator;
56 -> py::GraphAdaptor<graph_t> {
57 using edge_t = std::pair<int, int>;
58 const auto num_nodes = 5;
59 enum nodes { A, B, C, D, E };
63 int num_arcs =
sizeof(edge_array) /
sizeof(
edge_t);
64 auto g =
graph_t(edge_array, edge_array + num_arcs, weights, num_nodes);
65 return py::GraphAdaptor<graph_t>{std::move(g)};
84 -> py::GraphAdaptor<graph_t> {
85 using edge_t = std::pair<int, int>;
86 constexpr auto num_nodes = 3;
87 enum nodes { A, B, C };
91 constexpr int num_arcs =
sizeof(edge_array) /
sizeof(
edge_t);
92 auto g =
graph_t(edge_array, edge_array + num_arcs, weights, num_nodes);
93 return py::GraphAdaptor<graph_t>{std::move(g)};
Definition test_cases2_boost.hpp:23
BOOST_INSTALL_PROPERTY(edge, id_tag)
Install the custom edge property.
edge_id_tag_t
Custom edge tag for storing unique edge identifiers.
Definition test_cases2_boost.hpp:26
@ id_tag
Definition test_cases2_boost.hpp:26
boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::property< boost::edge_id_tag_t, size_t > > graph_t
Type alias for Boost adjacency list with custom edge ID properties.
Definition test_cases2_boost.hpp:35
auto create_test_case1(const Mapping &weights) -> py::GraphAdaptor< graph_t >
Create a simple 5-node cycle test graph with edge IDs.
Definition test_cases2_boost.hpp:55
typename boost::graph_traits< graph_t >::edge_iterator edge_t
Type alias for edge iterator.
Definition test_cases2_boost.hpp:39
auto create_test_case_timing(const Mapping &weights) -> py::GraphAdaptor< graph_t >
Create a 3-node timing test graph with parallel edges and edge IDs.
Definition test_cases2_boost.hpp:83
typename boost::graph_traits< graph_t >::vertex_descriptor Vertex
Type alias for vertex descriptor.
Definition test_cases2_boost.hpp:37