113 const auto layout = makeLayout(4);
115 BOOST_REQUIRE(
result.ok());
116 const auto& topology = *
result.topology;
135 const auto layout = makeLayout(5);
136 const auto seeding =
mask({0, 2, 4});
137 auto outerStartParameters = parametersFor(layout);
138 outerStartParameters.SeedingLayers = layerMask({0, 2, 4});
139 outerStartParameters.StartLayerMask = layerMask({4});
141 layout, outerStartParameters);
142 BOOST_REQUIRE(startsAtOuterSurface.ok());
143 const auto& topology = *startsAtOuterSurface.topology;
146 BOOST_REQUIRE_EQUAL(topology.edges.size(), 2u);
149 BOOST_REQUIRE_EQUAL(topology.paths.size(), 1u);
150 BOOST_REQUIRE_EQUAL(topology.roadStartPaths.size(), 1u);
152 auto middleStartParameters = outerStartParameters;
153 middleStartParameters.StartLayerMask = layerMask({2});
155 layout, middleStartParameters);
156 BOOST_REQUIRE(startsAtMiddleSurface.ok());
157 BOOST_REQUIRE_EQUAL(startsAtMiddleSurface.topology->edges.size(), topology.edges.size());
158 BOOST_REQUIRE_EQUAL(startsAtMiddleSurface.topology->paths.size(), topology.paths.size());
159 for (std::size_t
i = 0;
i < topology.edges.size(); ++
i) {
160 BOOST_CHECK(startsAtMiddleSurface.topology->edges[
i].from == topology.edges[
i].from);
161 BOOST_CHECK(startsAtMiddleSurface.topology->edges[
i].to == topology.edges[
i].to);
163 for (std::size_t
i = 0;
i < topology.paths.size(); ++
i) {
164 BOOST_CHECK(startsAtMiddleSurface.topology->paths[
i].first == topology.paths[
i].first);
165 BOOST_CHECK(startsAtMiddleSurface.topology->paths[
i].second == topology.paths[
i].second);
167 BOOST_CHECK(startsAtMiddleSurface.topology->roadStartPaths.empty());
172 const auto layout = makeLayout(4, {0},
mask({1}));
173 auto parameters = parametersFor(layout);
174 parameters.MaxHoles = 1;
175 parameters.InactiveLayerMask = layerMask({1});
177 BOOST_REQUIRE(
result.ok());
178 const auto& topology = *
result.topology;
183 BOOST_REQUIRE(bridge !=
nullptr);