MCPcopy Create free account
hub / github.com/comaps/comaps / TestPolylineEncode

Function TestPolylineEncode

libs/coding/coding_tests/geometry_coding_test.cpp:39–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37}
38
39void TestPolylineEncode(string testName, vector<m2::PointU> const & points, m2::PointU const & maxPoint,
40 void (*fnEncode)(InPointsT const & points, m2::PointU const & basePoint,
41 m2::PointU const & maxPoint, OutDeltasT & deltas),
42 void (*fnDecode)(InDeltasT const & deltas, m2::PointU const & basePoint,
43 m2::PointU const & maxPoint, OutPointsT & points))
44{
45 size_t const count = points.size();
46 if (count == 0)
47 return;
48
49 m2::PointU const basePoint = m2::PointU::Zero();
50
51 vector<uint64_t> deltas;
52 deltas.resize(count);
53
54 OutDeltasT deltasA(deltas);
55 fnEncode(make_read_adapter(points), basePoint, maxPoint, deltasA);
56
57 vector<m2::PointU> decodedPoints;
58 decodedPoints.resize(count);
59
60 OutPointsT decodedPointsA(decodedPoints);
61 fnDecode(make_read_adapter(deltas), basePoint, maxPoint, decodedPointsA);
62
63 TEST_EQUAL(points, decodedPoints, ());
64
65 if (points.size() > 10)
66 {
67 vector<char> data;
68 MemWriter<vector<char>> writer(data);
69
70 for (size_t i = 0; i != deltas.size(); ++i)
71 WriteVarUint(writer, deltas[i]);
72
73 LOG(LINFO, (testName, points.size(), data.size()));
74 }
75}
76
77vector<m2::PointU> SimplifyPoints(vector<m2::PointU> const & points, double eps)
78{

Callers 2

TestEncodePolylineFunction · 0.85
UNIT_TESTFunction · 0.85

Calls 5

ZeroFunction · 0.85
make_read_adapterFunction · 0.85
WriteVarUintFunction · 0.85
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected