1414#include " geom-from-osm.hpp"
1515#include " geom-functions.hpp"
1616#include " geom.hpp"
17- #include " reprojection.hpp"
1817
1918#include < array>
2019
21- TEST_CASE (" geom::distance" , " [NoDB]" )
22- {
23- geom::point_t const p1{10 , 10 };
24- geom::point_t const p2{20 , 10 };
25- geom::point_t const p3{13 , 14 };
26-
27- REQUIRE (geom::distance (p1, p1) == Approx (0.0 ));
28- REQUIRE (geom::distance (p1, p2) == Approx (10.0 ));
29- REQUIRE (geom::distance (p1, p3) == Approx (5.0 ));
30- }
31-
32- TEST_CASE (" geom::interpolate" , " [NoDB]" )
33- {
34- geom::point_t const p1{10 , 10 };
35- geom::point_t const p2{20 , 10 };
36-
37- auto const i1 = geom::interpolate (p1, p1, 0.5 );
38- REQUIRE (i1.x () == 10 );
39- REQUIRE (i1.y () == 10 );
40-
41- auto const i2 = geom::interpolate (p1, p2, 0.5 );
42- REQUIRE (i2.x () == 15 );
43- REQUIRE (i2.y () == 10 );
44-
45- auto const i3 = geom::interpolate (p2, p1, 0.5 );
46- REQUIRE (i3.x () == 15 );
47- REQUIRE (i3.y () == 10 );
48- }
49-
5020TEST_CASE (" geom::linestring_t" , " [NoDB]" )
5121{
5222 geom::linestring_t ls1;
@@ -64,6 +34,18 @@ TEST_CASE("geom::linestring_t", "[NoDB]")
6434 REQUIRE (it->y () == 22 );
6535 ++it;
6636 REQUIRE (it == ls1.cend ());
37+
38+ REQUIRE (ls1.num_geometries () == 1 );
39+ }
40+
41+ TEST_CASE (" line geometry" , " [NoDB]" )
42+ {
43+ geom::geometry_t const geom{geom::linestring_t {{1 , 1 }, {2 , 2 }}};
44+
45+ REQUIRE (num_geometries (geom) == 1 );
46+ REQUIRE (area (geom) == Approx (0.0 ));
47+ REQUIRE (geometry_type (geom) == " LINESTRING" );
48+ REQUIRE (centroid (geom) == geom::geometry_t {geom::point_t {1.5 , 1.5 }});
6749}
6850
6951TEST_CASE (" geom::segmentize w/o split" , " [NoDB]" )
@@ -73,6 +55,7 @@ TEST_CASE("geom::segmentize w/o split", "[NoDB]")
7355 auto const geom = geom::segmentize (geom::geometry_t {line}, 10.0 );
7456
7557 REQUIRE (geom.is_multilinestring ());
58+ REQUIRE (num_geometries (geom) == 1 );
7659 auto const &ml = geom.get <geom::multilinestring_t >();
7760 REQUIRE (ml.num_geometries () == 1 );
7861 REQUIRE (ml[0 ] == line);
@@ -182,6 +165,9 @@ TEST_CASE("create_multilinestring with single line", "[NoDB]")
182165 geom::line_merge (geom::create_multilinestring (buffer.buffer ()));
183166
184167 REQUIRE (geom.is_multilinestring ());
168+ REQUIRE (geometry_type (geom) == " MULTILINESTRING" );
169+ REQUIRE (num_geometries (geom) == 1 );
170+ REQUIRE (area (geom) == Approx (0.0 ));
185171 auto const &ml = geom.get <geom::multilinestring_t >();
186172 REQUIRE (ml.num_geometries () == 1 );
187173 REQUIRE (ml[0 ] == expected);
0 commit comments