diff options
Diffstat (limited to 'generator/generator_tests/triangles_tree_coding_test.cpp')
-rw-r--r-- | generator/generator_tests/triangles_tree_coding_test.cpp | 123 |
1 files changed, 60 insertions, 63 deletions
diff --git a/generator/generator_tests/triangles_tree_coding_test.cpp b/generator/generator_tests/triangles_tree_coding_test.cpp index 52d0c891f2..4504bcfb98 100644 --- a/generator/generator_tests/triangles_tree_coding_test.cpp +++ b/generator/generator_tests/triangles_tree_coding_test.cpp @@ -11,99 +11,96 @@ namespace { - typedef m2::PointD P; +using P = m2::PointD; - bool is_equal(P const & p1, P const & p2) - { - return p1.EqualDxDy(p2, kCellIdToPointEps); - } +bool IsEqual(P const & p1, P const & p2) +{ + return p1.EqualDxDy(p2, kMwmPointAccuracy); +} - bool FindTriangle(serial::OutPointsT const & test, P arr[]) +bool FindTriangle(serial::OutPointsT const & test, P arr[]) +{ + size_t const count = test.size(); + for (size_t i = 0; i < count; i += 3) { - size_t const count = test.size(); - for (size_t i = 0; i < count; i+=3) + for (int base = 0; base < 3; ++base) { - for (int base = 0; base < 3; ++base) - if (is_equal(test[i], arr[base]) && - is_equal(test[i+1], arr[(base+1)%3]) && - is_equal(test[i+2], arr[(base+2)%3])) - { - return true; - } + if (IsEqual(test[i], arr[base]) + && IsEqual(test[i + 1], arr[(base + 1) % 3]) + && IsEqual(test[i + 2], arr[(base + 2) % 3])) + { + return true; + } } - return false; } + return false; +} - void CompareTriangles(serial::OutPointsT const & test, - P arrP[], int arrT[][3], size_t count) - { - TEST_EQUAL(test.size(), 3*count, (test)); +void CompareTriangles(serial::OutPointsT const & test, P arrP[], int arrT[][3], size_t count) +{ + TEST_EQUAL(test.size(), 3 * count, (test)); - for (size_t i = 0; i < count; ++i) - { - P trg[] = { arrP[arrT[i][0]], arrP[arrT[i][1]], arrP[arrT[i][2]] }; - TEST ( FindTriangle(test, trg), ("Triangles : ", test, " Etalon : ", trg[0], trg[1], trg[2]) ); - } + for (size_t i = 0; i < count; ++i) + { + P trg[] = {arrP[arrT[i][0]], arrP[arrT[i][1]], arrP[arrT[i][2]]}; + TEST(FindTriangle(test, trg), ("Triangles:", test, " Etalon:", trg[0], trg[1], trg[2])); } +} - void TestTrianglesCoding(P arrP[], size_t countP, int arrT[][3], size_t countT) - { - tesselator::TrianglesInfo info; - info.AssignPoints(arrP, arrP + countP); +void TestTrianglesCoding(P arrP[], size_t countP, int arrT[][3], size_t countT) +{ + tesselator::TrianglesInfo info; + info.AssignPoints(arrP, arrP + countP); - info.Reserve(countT); + info.Reserve(countT); - for (size_t i = 0; i < countT; ++i) - info.Add(arrT[i][0], arrT[i][1], arrT[i][2]); + for (size_t i = 0; i < countT; ++i) + info.Add(arrT[i][0], arrT[i][1], arrT[i][2]); - serial::GeometryCodingParams cp; + serial::GeometryCodingParams cp; - serial::TrianglesChainSaver saver(cp); - tesselator::PointsInfo points; + serial::TrianglesChainSaver saver(cp); + tesselator::PointsInfo points; - m2::PointU (*D2U)(m2::PointD const &, uint8_t) = &PointDToPointU; - info.GetPointsInfo(saver.GetBasePoint(), saver.GetMaxPoint(), - std::bind(D2U, std::placeholders::_1, cp.GetCoordBits()), points); + m2::PointU (*D2U)(m2::PointD const &, uint8_t) = &PointDToPointU; + info.GetPointsInfo(saver.GetBasePoint(), saver.GetMaxPoint(), + std::bind(D2U, std::placeholders::_1, cp.GetCoordBits()), points); - info.ProcessPortions(points, saver); + info.ProcessPortions(points, saver); - std::vector<char> buffer; - MemWriter<std::vector<char> > writer(buffer); - saver.Save(writer); + std::vector<char> buffer; + MemWriter<std::vector<char>> writer(buffer); + saver.Save(writer); - TEST ( !buffer.empty(), () ); + TEST(!buffer.empty(), ()); - MemReader reader(&buffer[0], buffer.size()); - ReaderSource<MemReader> src(reader); + MemReader reader(&buffer[0], buffer.size()); + ReaderSource<MemReader> src(reader); - serial::OutPointsT triangles; - serial::LoadOuterTriangles(src, cp, triangles); + serial::OutPointsT triangles; + serial::LoadOuterTriangles(src, cp, triangles); - CompareTriangles(triangles, arrP, arrT, countT); - } + CompareTriangles(triangles, arrP, arrT, countT); } +} // namespace UNIT_TEST(TrianglesCoding_Smoke) { - { - P arrP[] = { P(0, 0), P(0, 1), P(1, 0), P(1, 1), P(0, -1), P(-1, 0) }; - int arrT[][3] = { {0, 1, 2}, {1, 3, 2}, {4, 0, 2}, {1, 0, 5}, {4, 5, 0} }; + P arrP[] = {P(0, 0), P(0, 1), P(1, 0), P(1, 1), P(0, -1), P(-1, 0)}; + int arrT[][3] = {{0, 1, 2}, {1, 3, 2}, {4, 0, 2}, {1, 0, 5}, {4, 5, 0}}; - TestTrianglesCoding(arrP, ARRAY_SIZE(arrP), arrT, ARRAY_SIZE(arrT)); - } + TestTrianglesCoding(arrP, ARRAY_SIZE(arrP), arrT, ARRAY_SIZE(arrT)); } UNIT_TEST(TrianglesCoding_Rect) { - { - P arrP[] = { P(-16.874999848078005, -44.999999874271452), - P(-16.874999848078005, -39.374999869032763), - P(-11.249999842839316, -39.374999869032763), - P(-11.249999842839316, -44.999999874271452) - }; + P arrP[] = { + P(-16.874999848078005, -44.999999874271452), + P(-16.874999848078005, -39.374999869032763), + P(-11.249999842839316, -39.374999869032763), + P(-11.249999842839316, -44.999999874271452)}; - int arrT[][3] = { {2, 0, 1}, {0, 2, 3} }; + int arrT[][3] = {{2, 0, 1}, {0, 2, 3}}; - TestTrianglesCoding(arrP, ARRAY_SIZE(arrP), arrT, ARRAY_SIZE(arrT)); - } + TestTrianglesCoding(arrP, ARRAY_SIZE(arrP), arrT, ARRAY_SIZE(arrT)); } |