Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Gorshenin <y@maps.me>2017-10-09 16:15:12 +0300
committerVladimir Byko-Ianko <bykoianko@gmail.com>2017-10-13 11:55:26 +0300
commitc3496e52f24a94a0d6bf472ce62e66424ed0f1ee (patch)
tree326376a3aa326e7f25a691e4cdd0fa016cec60e4 /indexer/indexer_tests
parent864fd16ddd55b933e3bc9f4c2c0978a94bea9e0c (diff)
[search] CitiesBoundaryTable is exposed to TestMwmBuilder.
Diffstat (limited to 'indexer/indexer_tests')
-rw-r--r--indexer/indexer_tests/cities_boundaries_serdes_tests.cpp55
1 files changed, 31 insertions, 24 deletions
diff --git a/indexer/indexer_tests/cities_boundaries_serdes_tests.cpp b/indexer/indexer_tests/cities_boundaries_serdes_tests.cpp
index cf608669a1..0d3821941a 100644
--- a/indexer/indexer_tests/cities_boundaries_serdes_tests.cpp
+++ b/indexer/indexer_tests/cities_boundaries_serdes_tests.cpp
@@ -11,6 +11,7 @@
#include "geometry/point2d.hpp"
#include <cstdint>
+#include <utility>
#include <vector>
using namespace indexer;
@@ -26,58 +27,63 @@ using Boundaries = vector<Boundary>;
static_assert(CitiesBoundariesSerDes::kLatestVersion == 0, "");
static_assert(CitiesBoundariesSerDes::HeaderV0::kDefaultCoordBits == 19, "");
-// Absolute precision of mercator coords encoded with 19 bits.
-double const kEps = 1e-3;
+struct Result
+{
+ Result(Boundaries const & boundaries, double eps) : m_boundaries(boundaries), m_eps(eps) {}
+
+ Boundaries m_boundaries;
+ double m_eps = 0.0;
+};
-void TestEqual(vector<PointD> const & lhs, vector<PointD> const & rhs)
+void TestEqual(vector<PointD> const & lhs, vector<PointD> const & rhs, double eps)
{
TEST_EQUAL(lhs.size(), rhs.size(), (lhs, rhs));
for (size_t i = 0; i < lhs.size(); ++i)
- TEST(AlmostEqualAbs(lhs[i], rhs[i], kEps), (lhs, rhs));
+ TEST(AlmostEqualAbs(lhs[i], rhs[i], eps), (lhs, rhs));
}
-void TestEqual(BoundingBox const & lhs, BoundingBox const & rhs)
+void TestEqual(BoundingBox const & lhs, BoundingBox const & rhs, double eps)
{
- TEST(AlmostEqualAbs(lhs.Min(), rhs.Min(), kEps), (lhs, rhs));
- TEST(AlmostEqualAbs(lhs.Max(), rhs.Max(), kEps), (lhs, rhs));
+ TEST(AlmostEqualAbs(lhs.Min(), rhs.Min(), eps), (lhs, rhs));
+ TEST(AlmostEqualAbs(lhs.Max(), rhs.Max(), eps), (lhs, rhs));
}
-void TestEqual(CalipersBox const & lhs, CalipersBox const & rhs)
+void TestEqual(CalipersBox const & lhs, CalipersBox const & rhs, double eps)
{
- TestEqual(lhs.Points(), rhs.Points());
+ TestEqual(lhs.Points(), rhs.Points(), eps);
}
-void TestEqual(DiamondBox const & lhs, DiamondBox const & rhs)
+void TestEqual(DiamondBox const & lhs, DiamondBox const & rhs, double eps)
{
auto const lps = lhs.Points();
auto const rps = rhs.Points();
TEST_EQUAL(lps.size(), 4, (lhs));
TEST_EQUAL(rps.size(), 4, (rhs));
- TestEqual(lps, rps);
+ TestEqual(lps, rps, eps);
}
-void TestEqual(CityBoundary const & lhs, CityBoundary const & rhs)
+void TestEqual(CityBoundary const & lhs, CityBoundary const & rhs, double eps)
{
- TestEqual(lhs.m_bbox, rhs.m_bbox);
- TestEqual(lhs.m_cbox, rhs.m_cbox);
- TestEqual(lhs.m_dbox, rhs.m_dbox);
+ TestEqual(lhs.m_bbox, rhs.m_bbox, eps);
+ TestEqual(lhs.m_cbox, rhs.m_cbox, eps);
+ TestEqual(lhs.m_dbox, rhs.m_dbox, eps);
}
-void TestEqual(Boundary const & lhs, Boundary const & rhs)
+void TestEqual(Boundary const & lhs, Boundary const & rhs, double eps)
{
TEST_EQUAL(lhs.size(), rhs.size(), (lhs, rhs));
for (size_t i = 0; i < lhs.size(); ++i)
- TestEqual(lhs[i], rhs[i]);
+ TestEqual(lhs[i], rhs[i], eps);
}
-void TestEqual(Boundaries const & lhs, Boundaries const & rhs)
+void TestEqual(Boundaries const & lhs, Boundaries const & rhs, double eps)
{
TEST_EQUAL(lhs.size(), rhs.size(), (lhs, rhs));
for (size_t i = 0; i < lhs.size(); ++i)
- TestEqual(lhs[i], rhs[i]);
+ TestEqual(lhs[i], rhs[i], eps);
}
-Boundaries EncodeDecode(Boundaries const & boundaries)
+Result EncodeDecode(Boundaries const & boundaries)
{
vector<uint8_t> buffer;
{
@@ -87,17 +93,18 @@ Boundaries EncodeDecode(Boundaries const & boundaries)
{
Boundaries boundaries;
+ double precision;
MemReader reader(buffer.data(), buffer.size());
NonOwningReaderSource source(reader);
- CitiesBoundariesSerDes::Deserialize(source, boundaries);
- return boundaries;
+ CitiesBoundariesSerDes::Deserialize(source, boundaries, precision);
+ return Result(boundaries, precision);
}
}
void TestEncodeDecode(Boundaries const & expected)
{
- Boundaries const actual = EncodeDecode(expected);
- TestEqual(expected, actual);
+ auto const r = EncodeDecode(expected);
+ TestEqual(expected, r.m_boundaries, r.m_eps);
}
UNIT_TEST(CitiesBoundariesSerDes_Smoke)