osrm-backend/test/t/geom/test_coordinates.cpp
Patrick Niklaus 6eb4f090f9 Squashed 'third_party/libosmium/' content from commit ce865381f
git-subtree-dir: third_party/libosmium
git-subtree-split: ce865381fb752323ff1e66181f5a49b7f500ffa3
2017-08-30 09:30:27 +00:00

72 lines
1.9 KiB
C++

#include "catch.hpp"
#include <osmium/geom/coordinates.hpp>
TEST_CASE("Default constructed coordinates are invalid") {
const osmium::geom::Coordinates c;
REQUIRE_FALSE(c.valid());
}
TEST_CASE("Coordinates constructed from doubles are valid") {
const osmium::geom::Coordinates c{1.2, 3.4};
REQUIRE(c.valid());
REQUIRE(c.x == Approx(1.2));
REQUIRE(c.y == Approx(3.4));
}
TEST_CASE("Coordinates constructed from a location are valid") {
const osmium::Location loc{1.2, 3.4};
const osmium::geom::Coordinates c{loc};
REQUIRE(c.valid());
REQUIRE(c.x == Approx(1.2));
REQUIRE(c.y == Approx(3.4));
}
TEST_CASE("Comparing coordinates") {
const osmium::geom::Coordinates ci1;
const osmium::geom::Coordinates ci2;
const osmium::geom::Coordinates cv1{1.2, 3.4};
const osmium::geom::Coordinates cv2{1.2, 3.4};
const osmium::geom::Coordinates cv3{2.1, 4.3};
REQUIRE(ci1 == ci2);
REQUIRE_FALSE(ci1 == cv1);
REQUIRE(cv1 == cv2);
REQUIRE_FALSE(cv1 == cv3);
}
TEST_CASE("Write coordinates to string") {
const osmium::geom::Coordinates c{0.1234567, 1.89898989};
std::string out;
SECTION("precision 7") {
c.append_to_string(out, ',', 7);
REQUIRE(out == "0.1234567,1.8989899");
}
SECTION("precision 3") {
c.append_to_string(out, ',', 3);
REQUIRE(out == "0.123,1.899");
}
SECTION("with prefix and suffix") {
c.append_to_string(out, '(', ',', ')', 3);
REQUIRE(out == "(0.123,1.899)");
}
}
TEST_CASE("Write invalid coordinates to string") {
const osmium::geom::Coordinates c;
std::string out;
SECTION("with infix only") {
c.append_to_string(out, ',', 7);
REQUIRE(out == "invalid");
}
SECTION("with prefix and suffix") {
c.append_to_string(out, '(', ',', ')', 3);
REQUIRE(out == "(invalid)");
}
}