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:
authorArsentiy Milchakov <milcars@mapswithme.com>2016-11-02 12:43:23 +0300
committerIlya Grechuhin <i.grechuhin@gmail.com>2016-11-11 11:05:56 +0300
commit7bd2eed6a4825cf4036011079fa1c8abb7ef5915 (patch)
treee37ec9364de67211ce0f4745ffd76da48f974114 /indexer/indexer_tests
parent36e7c13457c8850567276c60eb25dabb2c720ea5 (diff)
Naming priority for poi objects was changed
Diffstat (limited to 'indexer/indexer_tests')
-rw-r--r--indexer/indexer_tests/feature_names_test.cpp313
1 files changed, 294 insertions, 19 deletions
diff --git a/indexer/indexer_tests/feature_names_test.cpp b/indexer/indexer_tests/feature_names_test.cpp
index bc44e5bcec..d11b245d98 100644
--- a/indexer/indexer_tests/feature_names_test.cpp
+++ b/indexer/indexer_tests/feature_names_test.cpp
@@ -1,39 +1,314 @@
#include "testing/testing.hpp"
+#include "indexer/feature_utils.hpp"
#include "indexer/features_vector.hpp"
#include "indexer/index.hpp"
#include "indexer/mwm_set.hpp"
#include "platform/local_country_file.hpp"
+#include "platform/preferred_languages.hpp"
using namespace platform;
namespace
{
-UNIT_TEST(GetFeatureNames)
+using StrUtf8 = StringUtf8Multilang;
+
+UNIT_TEST(GetPrefferedNames)
+{
+ feature::RegionData regionData;
+ regionData.SetLanguages({"de", "ko"});
+
+ int8_t deviceLang = StrUtf8::GetLangIndex("ru");
+ string primary, secondary;
+
+ {
+ StrUtf8 src;
+ src.AddString("fr", "fr name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "", ());
+ TEST_EQUAL(secondary, "", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "default name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "default name", ());
+ TEST_EQUAL(secondary, "", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "en name", ());
+ TEST_EQUAL(secondary, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("ru", "ru name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "ru name", ());
+ TEST_EQUAL(secondary, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "same name");
+ src.AddString("en", "en name");
+ src.AddString("ru", "same name");
+ src.AddString("int_name", "int name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "same name", ());
+ TEST_EQUAL(secondary, "", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("ru", "ru name");
+ src.AddString("int_name", "int name");
+ src.AddString("de", "de name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "ru name", ());
+ TEST_EQUAL(secondary, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("ru", "ru name");
+ src.AddString("int_name", "int name");
+ src.AddString("de", "de name");
+ src.AddString("ko", "ko name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "ru name", ());
+ TEST_EQUAL(secondary, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+ src.AddString("de", "de name");
+ src.AddString("ko", "ko name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "int name", ());
+ TEST_EQUAL(secondary, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+ src.AddString("de", "de name");
+ src.AddString("ko", "ko name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "int name", ());
+ TEST_EQUAL(secondary, "", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("en", "en name");
+ src.AddString("de", "de name");
+ src.AddString("ko", "ko name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "en name", ());
+ TEST_EQUAL(secondary, "de name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("en", "en name");
+ src.AddString("ko", "ko name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "en name", ());
+ TEST_EQUAL(secondary, "ko name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("en", "en name");
+
+ feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary);
+
+ TEST_EQUAL(primary, "en name", ());
+ TEST_EQUAL(secondary, "", ());
+ }
+}
+
+UNIT_TEST(GetReadableName)
{
- LocalCountryFile localFile = LocalCountryFile::MakeForTesting("minsk-pass");
+ feature::RegionData regionData;
+ regionData.SetLanguages({"de", "ko"});
- Index index;
- auto result = index.RegisterMap(localFile);
- TEST_EQUAL(result.second, MwmSet::RegResult::Success, ());
+ int8_t deviceLang = StrUtf8::GetLangIndex("ru");
+ string name;
- auto const & id = result.first;
- MwmSet::MwmHandle handle = index.GetMwmHandleById(id);
- TEST(handle.IsAlive(), ());
+ {
+ StrUtf8 src;
+ src.AddString("fr", "fr name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
- auto const * value = handle.GetValue<MwmValue>();
- FeaturesVector fv(value->m_cont, value->GetHeader(), value->m_table.get());
- string primary, secondary, readable;
+ TEST_EQUAL(name, "", ());
+ }
- fv.ForEach([&](FeatureType & ft, uint32_t /* index */)
{
- ft.GetPreferredNames(primary, secondary);
- if (!secondary.empty())
- {
- ft.GetReadableName(readable);
- TEST_EQUAL(secondary, readable, ());
- }
- });
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "ko name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("de", "de name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "de name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("de", "de name");
+ src.AddString("default", "default name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("de", "de name");
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "en name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("de", "de name");
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "int name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("de", "de name");
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+ src.AddString("ru", "ru name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "ru name", ());
+ }
+
+ deviceLang = StrUtf8::GetLangIndex("de");
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("de", "de name");
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "de name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("default", "default name");
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "default name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("en", "en name");
+ src.AddString("int_name", "int name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "int name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+ src.AddString("en", "en name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "en name", ());
+ }
+
+ {
+ StrUtf8 src;
+ src.AddString("ko", "ko name");
+
+ feature::GetReadableName(regionData, src, deviceLang, name);
+
+ TEST_EQUAL(name, "ko name", ());
+ }
}
} // namespace