From c1db00cc1f15a5a180bfd054ee316776dab193bd Mon Sep 17 00:00:00 2001 From: tatiana-yan Date: Wed, 13 Mar 2019 18:30:06 +0300 Subject: [PATCH] [search] Add StreetNameLocaleTest. --- .../descriptions_section_builder_tests.cpp | 2 +- .../generator_tests_support/test_feature.cpp | 36 +++++++++---------- .../generator_tests_support/test_feature.hpp | 6 ++-- .../processor_test.cpp | 28 +++++++++++++++ .../search_integration_tests/smoke_test.cpp | 2 +- 5 files changed, 51 insertions(+), 23 deletions(-) diff --git a/generator/generator_tests/descriptions_section_builder_tests.cpp b/generator/generator_tests/descriptions_section_builder_tests.cpp index 1188395df6..e733362164 100644 --- a/generator/generator_tests/descriptions_section_builder_tests.cpp +++ b/generator/generator_tests/descriptions_section_builder_tests.cpp @@ -48,7 +48,7 @@ public: } // TestFeature overrides: - std::string ToDebugString() const override { return DebugPrint(m_name); } + std::string ToDebugString() const override { return DebugPrint(m_names); } private: std::vector m_types; diff --git a/generator/generator_tests_support/test_feature.cpp b/generator/generator_tests_support/test_feature.cpp index 7a6fbe1e1e..5b6f4831a7 100644 --- a/generator/generator_tests_support/test_feature.cpp +++ b/generator/generator_tests_support/test_feature.cpp @@ -43,25 +43,25 @@ TestFeature::TestFeature() : m_id(GenUniqueId()), m_center(0, 0), m_type(Type::U TestFeature::TestFeature(string const & name, string const & lang) : m_id(GenUniqueId()), m_center(0, 0), m_type(Type::Unknown) { - m_name.AddString(lang, name); + m_names.AddString(lang, name); // Names used for search depend on locale. Fill default name cause we need to run tests with // different locales. If you do not need default name to be filled use // TestFeature::TestFeature(StringUtf8Multilang const & name). - m_name.AddString("default", name); + m_names.AddString("default", name); Init(); } TestFeature::TestFeature(StringUtf8Multilang const & name) - : m_id(GenUniqueId()), m_center(0, 0), m_type(Type::Unknown), m_name(name) + : m_id(GenUniqueId()), m_center(0, 0), m_type(Type::Unknown), m_names(name) { } TestFeature::TestFeature(m2::PointD const & center, string const & name, string const & lang) : m_id(GenUniqueId()), m_center(center), m_type(Type::Point) { - m_name.AddString(lang, name); - m_name.AddString("default", name); + m_names.AddString(lang, name); + m_names.AddString("default", name); Init(); } @@ -69,8 +69,8 @@ TestFeature::TestFeature(vector const & boundary, string const & nam string const & lang) : m_id(GenUniqueId()), m_boundary(boundary), m_type(Type::Area) { - m_name.AddString(lang, name); - m_name.AddString("default", name); + m_names.AddString(lang, name); + m_names.AddString("default", name); ASSERT(!m_boundary.empty(), ()); Init(); } @@ -122,7 +122,7 @@ void TestFeature::Serialize(FeatureBuilder1 & fb) const case Type::Unknown: break; } - m_name.ForEach([&](int8_t langCode, string const & name) { + m_names.ForEach([&](int8_t langCode, string const & name) { if (!name.empty()) { auto const lang = StringUtf8Multilang::GetLangByCode(langCode); @@ -149,7 +149,7 @@ void TestCountry::Serialize(FeatureBuilder1 & fb) const string TestCountry::ToDebugString() const { ostringstream os; - os << "TestCountry [" << DebugPrint(m_name) << ", " << DebugPrint(m_center) << "]"; + os << "TestCountry [" << DebugPrint(m_names) << ", " << DebugPrint(m_center) << "]"; return os.str(); } @@ -177,7 +177,7 @@ void TestCity::Serialize(FeatureBuilder1 & fb) const string TestCity::ToDebugString() const { ostringstream os; - os << "TestCity [" << DebugPrint(m_name) << ", " << DebugPrint(m_center) << "]"; + os << "TestCity [" << DebugPrint(m_names) << ", " << DebugPrint(m_center) << "]"; return os.str(); } @@ -200,7 +200,7 @@ void TestVillage::Serialize(FeatureBuilder1 & fb) const string TestVillage::ToDebugString() const { ostringstream os; - os << "TestVillage [" << DebugPrint(m_name) << ", " << DebugPrint(m_center) << "]"; + os << "TestVillage [" << DebugPrint(m_names) << ", " << DebugPrint(m_center) << "]"; return os.str(); } @@ -230,7 +230,7 @@ void TestStreet::Serialize(FeatureBuilder1 & fb) const string TestStreet::ToDebugString() const { ostringstream os; - os << "TestStreet [" << DebugPrint(m_name) << ", " << ::DebugPrint(m_points) << "]"; + os << "TestStreet [" << DebugPrint(m_names) << ", " << ::DebugPrint(m_points) << "]"; return os.str(); } @@ -258,7 +258,7 @@ void TestSquare::Serialize(FeatureBuilder1 & fb) const string TestSquare::ToDebugString() const { ostringstream os; - os << "TestSquare [" << DebugPrint(m_name) << ", " << m_rect << "]"; + os << "TestSquare [" << DebugPrint(m_names) << ", " << m_rect << "]"; return os.str(); } @@ -304,7 +304,7 @@ void TestPOI::Serialize(FeatureBuilder1 & fb) const string TestPOI::ToDebugString() const { ostringstream os; - os << "TestPOI [" << DebugPrint(m_name) << ", " << DebugPrint(m_center); + os << "TestPOI [" << DebugPrint(m_names) << ", " << DebugPrint(m_center); if (!m_houseNumber.empty()) os << ", " << m_houseNumber; if (!m_streetName.empty()) @@ -334,7 +334,7 @@ void TestMultilingualPOI::Serialize(FeatureBuilder1 & fb) const string TestMultilingualPOI::ToDebugString() const { ostringstream os; - os << "TestPOI [" << DebugPrint(m_name) << ", "; + os << "TestPOI [" << DebugPrint(m_names) << ", "; for (auto const & kv : m_multilingualNames) os << "( " << kv.second << ", " << kv.first << "), "; os << DebugPrint(m_center); @@ -385,7 +385,7 @@ void TestBuilding::Serialize(FeatureBuilder1 & fb) const string TestBuilding::ToDebugString() const { ostringstream os; - os << "TestBuilding [" << DebugPrint(m_name) << ", " << m_houseNumber << ", " + os << "TestBuilding [" << DebugPrint(m_names) << ", " << m_houseNumber << ", " << DebugPrint(m_center) << "]"; return os.str(); } @@ -410,7 +410,7 @@ void TestPark::Serialize(FeatureBuilder1 & fb) const string TestPark::ToDebugString() const { ostringstream os; - os << "TestPark [" << DebugPrint(m_name) << ", " + os << "TestPark [" << DebugPrint(m_names) << ", " << "]"; return os.str(); } @@ -436,7 +436,7 @@ void TestRoad::Serialize(FeatureBuilder1 & fb) const string TestRoad::ToDebugString() const { ostringstream os; - os << "TestRoad [" << DebugPrint(m_name) << "]"; + os << "TestRoad [" << DebugPrint(m_names) << "]"; return os.str(); } diff --git a/generator/generator_tests_support/test_feature.hpp b/generator/generator_tests_support/test_feature.hpp index 85e1163966..7591cc44a5 100644 --- a/generator/generator_tests_support/test_feature.hpp +++ b/generator/generator_tests_support/test_feature.hpp @@ -35,11 +35,11 @@ public: bool Matches(FeatureType & feature) const; void SetPostcode(std::string const & postcode) { m_postcode = postcode; } uint64_t GetId() const { return m_id; } - StringUtf8Multilang const & GetNames() const { return m_name; } + StringUtf8Multilang const & GetNames() const { return m_names; } std::string GetName(std::string const & lang) const { std::string res; - if (m_name.GetString(lang, res)) + if (m_names.GetString(lang, res)) return res; return {}; } @@ -68,7 +68,7 @@ protected: m2::PointD const m_center; std::vector const m_boundary; Type const m_type; - StringUtf8Multilang m_name; + StringUtf8Multilang m_names; std::string m_postcode; feature::Metadata m_metadata; diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp index 69d6f3f793..e61d7c62b0 100644 --- a/search/search_integration_tests/processor_test.cpp +++ b/search/search_integration_tests/processor_test.cpp @@ -1809,5 +1809,33 @@ UNIT_CLASS_TEST(ProcessorTest, PreprocessBeforeTokenizationTest) TEST(ResultsMatch("Москворецкая наб-я", rules), ()); } } + +UNIT_CLASS_TEST(ProcessorTest, StreetNameLocaleTest) +{ + string const countryName = "Wonderland"; + + StringUtf8Multilang streetName; + streetName.AddString("default", "default"); + streetName.AddString("en", "english"); + streetName.AddString("ja", "japanese"); + TestStreet street( + vector{m2::PointD(0.0, -0.5), m2::PointD(0.0, 0.0), m2::PointD(0.0, 0.5)}, + streetName); + + TestPOI nonameHouse(m2::PointD(0.0, 0.0), "", "en"); + nonameHouse.SetHouseNumber("3"); + nonameHouse.SetStreetName(street.GetName("ja")); + + auto countryId = BuildCountry(countryName, [&](TestMwmBuilder & builder) { + builder.Add(street); + builder.Add(nonameHouse); + }); + + SetViewport(m2::RectD(m2::PointD(0.0, 0.0), m2::PointD(1.0, 1.0))); + { + Rules rules = {ExactMatch(countryId, nonameHouse)}; + TEST(ResultsMatch("default 3", rules), ()); + } +} } // namespace } // namespace search diff --git a/search/search_integration_tests/smoke_test.cpp b/search/search_integration_tests/smoke_test.cpp index 19d69e8875..980ff06c03 100644 --- a/search/search_integration_tests/smoke_test.cpp +++ b/search/search_integration_tests/smoke_test.cpp @@ -40,7 +40,7 @@ public: fb.GetMetadata().Set(feature::Metadata::FMD_TEST_ID, strings::to_string(m_id)); fb.SetCenter(m_center); - m_name.ForEach([&](int8_t langCode, string const & name) { + m_names.ForEach([&](int8_t langCode, string const & name) { if (!name.empty()) { auto const lang = StringUtf8Multilang::GetLangByCode(langCode);