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:
authortatiana-yan <tatiana.kondakova@gmail.com>2019-04-23 14:06:13 +0300
committermpimenov <mpimenov@users.noreply.github.com>2019-04-23 18:16:01 +0300
commite77592b68e345c8cec11324be0c03c1b5a8df6bb (patch)
treeacfcf781e18b015aad3956f0b8e1631a3d28cb40
parent980d407d507ffb4f0ca4c267e74fde324356d00b (diff)
[search] Add RemoveDauplicatingStreets test.
-rw-r--r--generator/generator_tests_support/test_feature.cpp6
-rw-r--r--generator/generator_tests_support/test_feature.hpp3
-rw-r--r--search/search_integration_tests/processor_test.cpp24
-rw-r--r--search/search_tests_support/helpers.cpp7
-rw-r--r--search/search_tests_support/helpers.hpp2
5 files changed, 39 insertions, 3 deletions
diff --git a/generator/generator_tests_support/test_feature.cpp b/generator/generator_tests_support/test_feature.cpp
index 1ab2e297d8..14fd20412f 100644
--- a/generator/generator_tests_support/test_feature.cpp
+++ b/generator/generator_tests_support/test_feature.cpp
@@ -206,12 +206,12 @@ string TestVillage::ToDebugString() const
// TestStreet --------------------------------------------------------------------------------------
TestStreet::TestStreet(vector<m2::PointD> const & points, string const & name, string const & lang)
- : TestFeature(name, lang), m_points(points)
+ : TestFeature(name, lang), m_points(points), m_highwayType("living_street")
{
}
TestStreet::TestStreet(vector<m2::PointD> const & points, StringUtf8Multilang const & name)
- : TestFeature(name), m_points(points)
+ : TestFeature(name), m_points(points), m_highwayType("living_street")
{
}
@@ -220,7 +220,7 @@ void TestStreet::Serialize(FeatureBuilder1 & fb) const
TestFeature::Serialize(fb);
auto const & classificator = classif();
- fb.SetType(classificator.GetTypeByPath({"highway", "living_street"}));
+ fb.SetType(classificator.GetTypeByPath({"highway", m_highwayType}));
for (auto const & point : m_points)
fb.AddPoint(point);
diff --git a/generator/generator_tests_support/test_feature.hpp b/generator/generator_tests_support/test_feature.hpp
index e9fbc7b01c..a98a606822 100644
--- a/generator/generator_tests_support/test_feature.hpp
+++ b/generator/generator_tests_support/test_feature.hpp
@@ -122,12 +122,15 @@ public:
TestStreet(std::vector<m2::PointD> const & points, std::string const & name, std::string const & lang);
TestStreet(std::vector<m2::PointD> const & points, StringUtf8Multilang const & name);
+ void SetHighwayType(std::string const & type) { m_highwayType = type; }
+
// TestFeature overrides:
void Serialize(FeatureBuilder1 & fb) const override;
std::string ToDebugString() const override;
private:
std::vector<m2::PointD> m_points;
+ std::string m_highwayType;
};
class TestSquare : public TestFeature
diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp
index a2f64e1b63..a2a139f642 100644
--- a/search/search_integration_tests/processor_test.cpp
+++ b/search/search_integration_tests/processor_test.cpp
@@ -1837,5 +1837,29 @@ UNIT_CLASS_TEST(ProcessorTest, StreetNameLocaleTest)
TEST(ResultsMatch("default 3", rules), ());
}
}
+
+UNIT_CLASS_TEST(ProcessorTest, RemoveDuplicatingStreets)
+{
+ string const countryName = "Wonderland";
+ string const streetName = "Октябрьский проспект";
+
+ // Distance between centers should be less than 5km.
+ TestStreet street1(vector<m2::PointD>{m2::PointD(0.0, 0.0), m2::PointD(0.0, 0.01)},
+ streetName, "ru");
+ street1.SetHighwayType("primary");
+ TestStreet street2(vector<m2::PointD>{m2::PointD(0.0, 0.01), m2::PointD(0.0, 0.02)},
+ streetName, "ru");
+ street1.SetHighwayType("secondary");
+
+ auto wonderlandId = BuildCountry(countryName, [&](TestMwmBuilder & builder) {
+ builder.Add(street1);
+ builder.Add(street2);
+ });
+
+ SetViewport(m2::RectD(-1, -1, 1, 1));
+ {
+ TEST_EQUAL(GetResultsNumber(streetName, "ru"), 1, ());
+ }
+}
} // namespace
} // namespace search
diff --git a/search/search_tests_support/helpers.cpp b/search/search_tests_support/helpers.cpp
index edd9861800..f0b15f14b7 100644
--- a/search/search_tests_support/helpers.cpp
+++ b/search/search_tests_support/helpers.cpp
@@ -64,6 +64,13 @@ bool SearchTest::ResultMatches(search::Result const & result, Rule const & rule)
return tests_support::ResultMatches(m_dataSource, rule, result);
}
+size_t SearchTest::GetResultsNumber(string const & query, string const & locale)
+{
+ tests_support::TestSearchRequest request(m_engine, query, locale, Mode::Everywhere, m_viewport);
+ request.Run();
+ return request.Results().size();
+}
+
unique_ptr<tests_support::TestSearchRequest> SearchTest::MakeRequest(
string const & query, string const & locale /* = "en" */)
{
diff --git a/search/search_tests_support/helpers.hpp b/search/search_tests_support/helpers.hpp
index 3ef2335b90..76d5387f2e 100644
--- a/search/search_tests_support/helpers.hpp
+++ b/search/search_tests_support/helpers.hpp
@@ -43,6 +43,8 @@ public:
bool ResultMatches(search::Result const & result, Rule const & rule);
+ size_t GetResultsNumber(std::string const & query, std::string const & locale);
+
std::unique_ptr<tests_support::TestSearchRequest> MakeRequest(std::string const & query,
std::string const & locale = "en");