MCPcopy Create free account
hub / github.com/Notgnoshi/generative / TEST

Function TEST

tests/polygonizer-tests.cpp:16–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14using namespace ::testing;
15
16TEST(PolygonizerTests, SimplePolygon)
17{
18 const auto geometry = generative::io::from_wkt("POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))");
19 ASSERT_TRUE(geometry);
20 const auto noded = generative::noding::GeometryNoder::node(*geometry);
21 const auto graph = generative::noding::GeometryGraph(*noded);
22
23 const auto owned_edges = graph.get_edges();
24 ASSERT_THAT(owned_edges, SizeIs(4));
25 std::vector<const geos::geom::Geometry*> edges;
26 std::transform(
27 owned_edges.begin(),
28 owned_edges.end(),
29 std::back_inserter(edges),
30 [](const std::unique_ptr<geos::geom::LineString>& edge) -> const geos::geom::Geometry* {
31 return edge.get();
32 });
33
34 auto polygonizer = geos::operation::polygonize::Polygonizer();
35 polygonizer.add(&edges);
36
37 const auto polys = polygonizer.getPolygons();
38 const auto dangles = polygonizer.getDangles();
39 for (const auto& poly : polys)
40 {
41 generative::io::operator<<(std::cerr, *poly);
42 std::cerr << std::endl;
43 }
44 for (const auto& dangle : dangles)
45 {
46 generative::io::operator<<(std::cerr, *dangle);
47 std::cerr << std::endl;
48 }
49
50 EXPECT_THAT(polys, SizeIs(1));
51 EXPECT_THAT(dangles, SizeIs(0));
52
53 EXPECT_TRUE(polys.at(0)->equals(geometry.get()));
54}
55
56TEST(PolygonizerTests, SimplePolygonWithDangles)
57{

Callers

nothing calls this directly

Calls 8

from_wktFunction · 0.85
GeometryGraphClass · 0.85
get_edgesMethod · 0.80
set_nodesMethod · 0.80
add_edgeMethod · 0.80
nodeFunction · 0.50
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected