|
2 | 2 |
|
3 | 3 | #include <osmium/geom/factory.hpp>
|
4 | 4 | #include <osmium/geom/mercator_projection.hpp>
|
5 |
| -#include <osmium/geom/projection.hpp> |
6 | 5 |
|
7 | 6 | TEST_CASE("Indentity Projection") {
|
8 | 7 | const osmium::geom::IdentityProjection projection;
|
9 | 8 | REQUIRE(4326 == projection.epsg());
|
10 | 9 | REQUIRE("+proj=longlat +datum=WGS84 +no_defs" == projection.proj_string());
|
11 | 10 | }
|
12 | 11 |
|
13 |
| -TEST_CASE("Projection 4326") { |
14 |
| - const osmium::geom::Projection projection{4326}; |
15 |
| - REQUIRE(4326 == projection.epsg()); |
16 |
| - REQUIRE("+init=epsg:4326" == projection.proj_string()); |
17 |
| - |
18 |
| - const osmium::Location loc{1.0, 2.0}; |
19 |
| - const osmium::geom::Coordinates c{1.0, 2.0}; |
20 |
| - REQUIRE(projection(loc).x == Approx(c.x).epsilon(0.00001)); |
21 |
| - REQUIRE(projection(loc).y == Approx(c.y).epsilon(0.00001)); |
22 |
| -} |
23 |
| - |
24 |
| -TEST_CASE("Projection 4326 from init string") { |
25 |
| - const osmium::geom::Projection projection{"+init=epsg:4326"}; |
26 |
| - REQUIRE(-1 == projection.epsg()); |
27 |
| - REQUIRE("+init=epsg:4326" == projection.proj_string()); |
28 |
| - |
29 |
| - const osmium::Location loc{1.0, 2.0}; |
30 |
| - const osmium::geom::Coordinates c{1.0, 2.0}; |
31 |
| - REQUIRE(projection(loc).x == Approx(c.x).epsilon(0.00001)); |
32 |
| - REQUIRE(projection(loc).y == Approx(c.y).epsilon(0.00001)); |
33 |
| -} |
34 |
| - |
35 |
| -TEST_CASE("Creating projection from unknown init string") { |
36 |
| - REQUIRE_THROWS_AS(osmium::geom::Projection{"abc"}, osmium::projection_error); |
37 |
| -} |
38 |
| - |
39 |
| -TEST_CASE("Creating projection from unknown EPSG code") { |
40 |
| - REQUIRE_THROWS_AS(osmium::geom::Projection{9999999}, osmium::projection_error); |
41 |
| -} |
42 |
| - |
43 |
| -TEST_CASE("Projection 3857") { |
44 |
| - const osmium::geom::Projection projection{3857}; |
45 |
| - REQUIRE(3857 == projection.epsg()); |
46 |
| - REQUIRE("+init=epsg:3857" == projection.proj_string()); |
47 |
| - |
48 |
| - SECTION("Zero coordinates") { |
49 |
| - const osmium::Location loc{0.0, 0.0}; |
50 |
| - const osmium::geom::Coordinates c{0.0, 0.0}; |
51 |
| - REQUIRE(projection(loc).x == Approx(c.x).epsilon(0.00001)); |
52 |
| - REQUIRE(projection(loc).y == Approx(c.y).epsilon(0.00001)); |
53 |
| - } |
54 |
| - |
55 |
| - SECTION("Max longitude") { |
56 |
| - const osmium::Location loc{180.0, 0.0}; |
57 |
| - const osmium::geom::Coordinates c{20037508.34, 0.0}; |
58 |
| - REQUIRE(projection(loc).x == Approx(c.x).epsilon(0.00001)); |
59 |
| - REQUIRE(projection(loc).y == Approx(c.y).epsilon(0.00001)); |
60 |
| - } |
61 |
| - |
62 |
| - SECTION("Min longitude") { |
63 |
| - const osmium::Location loc{-180.0, 0.0}; |
64 |
| - const osmium::geom::Coordinates c{-20037508.34, 0.0}; |
65 |
| - REQUIRE(projection(loc).x == Approx(c.x).epsilon(0.00001)); |
66 |
| - REQUIRE(projection(loc).y == Approx(c.y).epsilon(0.00001)); |
67 |
| - } |
68 |
| - |
69 |
| - SECTION("Max latitude") { |
70 |
| - const osmium::Location loc{0.0, 85.0511288}; |
71 |
| - const osmium::geom::Coordinates c{0.0, 20037508.34}; |
72 |
| - REQUIRE(projection(loc).x == Approx(c.x).epsilon(0.00001)); |
73 |
| - REQUIRE(projection(loc).y == Approx(c.y).epsilon(0.00001)); |
74 |
| - } |
75 |
| -} |
76 |
| - |
77 | 12 | TEST_CASE("MercatorProjection: Zero coordinates") {
|
78 | 13 | const osmium::geom::MercatorProjection projection;
|
79 | 14 | const osmium::Location loc{0.0, 0.0};
|
|
0 commit comments