From b4474785425db53dc184cdc5a171baadc5af34dc Mon Sep 17 00:00:00 2001 From: vng Date: Thu, 24 Dec 2015 19:06:31 +0300 Subject: [PATCH] Review fixes. --- geometry/geometry_tests/robust_test.cpp | 8 ++++---- geometry/robust_orientation.cpp | 6 +++--- indexer/feature_algo.cpp | 4 ++-- map/map_tests/address_tests.cpp | 3 +++ map/map_tests/map_tests.pro | 2 +- search/reverse_geocoder.cpp | 6 ++---- search/reverse_geocoder.hpp | 9 +++++++-- 7 files changed, 22 insertions(+), 16 deletions(-) diff --git a/geometry/geometry_tests/robust_test.cpp b/geometry/geometry_tests/robust_test.cpp index 0eb3d79091..f0ed0c2e19 100644 --- a/geometry/geometry_tests/robust_test.cpp +++ b/geometry/geometry_tests/robust_test.cpp @@ -8,26 +8,26 @@ using namespace m2::robust; namespace { - typedef m2::PointD P; + using P = m2::PointD; template void CheckSelfIntersections(IterT beg, IterT end, bool res) { TEST_EQUAL(CheckPolygonSelfIntersections(beg, end), res, ()); - typedef std::reverse_iterator ReverseIterT; + using ReverseIterT = reverse_iterator; TEST_EQUAL(CheckPolygonSelfIntersections(ReverseIterT(end), ReverseIterT(beg)), res, ()); } } UNIT_TEST(OrientedS_Smoke) { - m2::PointD arr[] = {{-1, -1}, {0, 0}, {1, -1}}; + P arr[] = {{-1, -1}, {0, 0}, {1, -1}}; TEST(OrientedS(arr[0], arr[2], arr[1]) > 0, ()); TEST(OrientedS(arr[2], arr[0], arr[1]) < 0, ()); } UNIT_TEST(Triangle_Smoke) { - m2::PointD arr[] = {{0, 0}, {0, 3}, {3, 0}}; + P arr[] = {{0, 0}, {0, 3}, {3, 0}}; TEST(IsPointInsideTriangle(arr[0], arr[0], arr[1], arr[2]), ()); TEST(IsPointInsideTriangle(arr[1], arr[0], arr[1], arr[2]), ()); diff --git a/geometry/robust_orientation.cpp b/geometry/robust_orientation.cpp index 98987e5096..38e1608799 100644 --- a/geometry/robust_orientation.cpp +++ b/geometry/robust_orientation.cpp @@ -50,15 +50,15 @@ namespace m2 { namespace robust return OrientedS(vPrev, vNext, v1) > 0.0; } - if (cpLR < 0) + if (cpLR < 0.0) { // vertex is concave - return OrientedS(v, vPrev, v1) < 0 && OrientedS(v, vNext, v1) > 0.0; + return OrientedS(v, vPrev, v1) < 0.0 && OrientedS(v, vNext, v1) > 0.0; } else { // vertex is convex - return OrientedS(v, vPrev, v1) < 0 || OrientedS(v, vNext, v1) > 0.0; + return OrientedS(v, vPrev, v1) < 0.0 || OrientedS(v, vNext, v1) > 0.0; } } diff --git a/indexer/feature_algo.cpp b/indexer/feature_algo.cpp index 0133ac090a..f76c4c892d 100644 --- a/indexer/feature_algo.cpp +++ b/indexer/feature_algo.cpp @@ -164,7 +164,7 @@ double GetMinDistanceMeters(FeatureType const & ft, m2::PointD const & pt, int s default: ASSERT_EQUAL(type, GEOM_AREA, ()); - ft.ForEachTriangle([&] (m2::PointD const & p1, m2::PointD const & p2, m2::PointD const & p3) + ft.ForEachTriangle([&](m2::PointD const & p1, m2::PointD const & p2, m2::PointD const & p3) { if (res == 0.0) return; @@ -175,7 +175,7 @@ double GetMinDistanceMeters(FeatureType const & ft, m2::PointD const & pt, int s return; } - auto fn = [&] (m2::PointD const & x1, m2::PointD const & x2) + auto fn = [&](m2::PointD const & x1, m2::PointD const & x2) { m2::ProjectionToSection calc; calc.SetBounds(x1, x2); diff --git a/map/map_tests/address_tests.cpp b/map/map_tests/address_tests.cpp index b0eb0ddbf6..691c64d366 100644 --- a/map/map_tests/address_tests.cpp +++ b/map/map_tests/address_tests.cpp @@ -3,6 +3,7 @@ #include "search/reverse_geocoder.hpp" #include "search/search_string_utils.hpp" +#include "indexer/classificator_loader.hpp" #include "indexer/index.hpp" @@ -29,6 +30,8 @@ void TestAddress(ReverseGeocoder & coder, ms::LatLon const & ll, UNIT_TEST(ReverseGeocoder_Smoke) { + classificator::Load(); + LocalCountryFile file = LocalCountryFile::MakeForTesting("minsk-pass"); Index index; diff --git a/map/map_tests/map_tests.pro b/map/map_tests/map_tests.pro index 3205171e29..a08ab4e9fb 100644 --- a/map/map_tests/map_tests.pro +++ b/map/map_tests/map_tests.pro @@ -28,6 +28,7 @@ macx-*: LIBS *= "-framework IOKit" "-framework SystemConfiguration" SOURCES += \ ../../testing/testingmain.cpp \ + address_tests.cpp \ bookmarks_test.cpp \ ge0_parser_tests.cpp \ geourl_test.cpp \ @@ -36,7 +37,6 @@ SOURCES += \ gps_track_test.cpp \ kmz_unarchive_test.cpp \ mwm_url_tests.cpp \ - address_tests.cpp \ !linux* { SOURCES += working_time_tests.cpp \ diff --git a/search/reverse_geocoder.cpp b/search/reverse_geocoder.cpp index 3f43091c9a..a1d497319f 100644 --- a/search/reverse_geocoder.cpp +++ b/search/reverse_geocoder.cpp @@ -134,11 +134,9 @@ void ReverseGeocoder::GetNearbyAddress(m2::PointD const & center, Address & addr if (!table || mwmHandle.GetId() != b.m_id.m_mwmId) { mwmHandle = m_index.GetMwmHandleById(b.m_id.m_mwmId); - auto value = mwmHandle.GetValue(); - if (value) - table = search::v2::HouseToStreetTable::Load(*value); - else + if (!mwmHandle.IsAlive()) continue; + table = search::v2::HouseToStreetTable::Load(*mwmHandle.GetValue()); } GetNearbyStreets(b.m_center, streets); diff --git a/search/reverse_geocoder.hpp b/search/reverse_geocoder.hpp index bce792ccfa..15c1b21bf4 100644 --- a/search/reverse_geocoder.hpp +++ b/search/reverse_geocoder.hpp @@ -23,11 +23,13 @@ class ReverseGeocoder double m_distanceMeters; string m_name; - Object() = default; + Object() : m_distanceMeters(0.0) {} Object(FeatureID const & id, double dist, string const & name) : m_id(id), m_distanceMeters(dist), m_name(name) { } + + inline bool IsValid() const { return m_id.IsValid(); } }; public: @@ -42,7 +44,10 @@ public: { m2::PointD m_center; - Building() = default; + // To investigate possible errors. + // There are no houses in (0, 0) coordinates. + Building() : m_center(0, 0) {} + Building(FeatureID const & id, double dist, string const & number, m2::PointD const & center) : Object(id, dist, number), m_center(center) {