review fixes

This commit is contained in:
Arsentiy Milchakov 2016-09-08 15:49:19 +03:00
parent 3320c9edda
commit ce77f75d4d
3 changed files with 72 additions and 60 deletions

View file

@ -96,10 +96,10 @@ osm::FakeNames MakeFakeSource(StringUtf8Multilang const & source,
fakeSource.AddString(code, defaultName);
}
fakeNames.names.push_back({code, tempName});
fakeNames.m_names.emplace_back(code, tempName);
}
fakeNames.defaultName = defaultName;
fakeNames.m_defaultName = defaultName;
return fakeNames;
}
@ -141,14 +141,14 @@ void RemoveFakesFromName(osm::FakeNames const & fakeNames, StringUtf8Multilang &
string defaultName;
name.GetString(StringUtf8Multilang::kDefaultCode, defaultName);
for (auto const & item : fakeNames.names)
for (auto const & item : fakeNames.m_names)
{
string tempName;
if (!name.GetString(item.m_code, tempName))
continue;
// No need to save in case when name is empty, duplicate of default name or was not changed.
if (tempName.empty() || tempName == defaultName ||
(tempName == item.m_filledName && tempName == fakeNames.defaultName))
(tempName == item.m_filledName && tempName == fakeNames.m_defaultName))
{
codesToExclude.push_back(item.m_code);
}
@ -334,7 +334,7 @@ bool EditableMapObject::CanUseAsDefaultName(int8_t const lang, vector<int8_t> co
// static
void EditableMapObject::RemoveFakeNames(FakeNames const & fakeNames, StringUtf8Multilang & name)
{
if (fakeNames.names.empty())
if (fakeNames.m_names.empty())
return;
int8_t newDefaultNameCode = StringUtf8Multilang::kUnsupportedLanguageCode;
@ -343,7 +343,7 @@ void EditableMapObject::RemoveFakeNames(FakeNames const & fakeNames, StringUtf8M
name.GetString(StringUtf8Multilang::kDefaultCode, defaultName);
// New default name calculation priority: 1. name on mwm language, 2. english name.
for (auto it = fakeNames.names.rbegin(); it != fakeNames.names.rend(); ++it)
for (auto it = fakeNames.m_names.rbegin(); it != fakeNames.m_names.rend(); ++it)
{
string tempName;
if (!name.GetString(it->m_code, tempName))
@ -359,7 +359,7 @@ void EditableMapObject::RemoveFakeNames(FakeNames const & fakeNames, StringUtf8M
}
// If all previously filled fake names were changed - try to change the default name.
if (changedCount == fakeNames.names.size())
if (changedCount == fakeNames.m_names.size())
{
if (!TryToFillDefaultNameFromCode(newDefaultNameCode, name))
TryToFillDefaultNameFromAnyLanguage(name);

View file

@ -59,7 +59,13 @@ struct NamesDataSource
struct FakeName
{
int8_t m_code;
FakeName(int8_t code, string filledName)
: m_code(code)
, m_filledName(filledName)
{
}
int8_t m_code = StringUtf8Multilang::kUnsupportedLanguageCode;
string m_filledName;
};
/// Contains information about fake names which were added for user convenience.
@ -67,12 +73,12 @@ struct FakeNames
{
void Clear()
{
names.clear();
defaultName.clear();
m_names.clear();
m_defaultName.clear();
}
vector<FakeName> names;
string defaultName;
vector<FakeName> m_names;
string m_defaultName;
};
struct LocalizedStreet

View file

@ -19,7 +19,12 @@ struct ExpectedName
string m_value;
};
void CheckExpectations(StringUtf8Multilang const s, vector<ExpectedName> const expectations)
string DebugPrint(ExpectedName const & expectedName)
{
return expectedName.m_lang + ", " + expectedName.m_value;
}
void CheckExpectations(StringUtf8Multilang const & s, vector<ExpectedName> const & expectations)
{
size_t counter = 0;
s.ForEach([&expectations, &counter](int8_t const code, string const & name) {
@ -29,14 +34,15 @@ void CheckExpectations(StringUtf8Multilang const s, vector<ExpectedName> const e
});
if (it == expectations.end())
TEST(false, ("Unexpected language code:", code));
TEST(false, ("Unexpected language code: ", code, ". Expectations: ", expectations));
TEST_EQUAL(name, it->m_value, ());
++counter;
return true;
});
TEST_EQUAL(counter, expectations.size(), ());
TEST_EQUAL(counter, expectations.size(), ("Unexpected count of names, expected ", expectations.size(),
", but turned out ", counter, ". Expectations: ", expectations));
}
UNIT_TEST(EditableMapObject_SetWebsite)
@ -325,9 +331,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Default name");
name.AddString(GetLangCode("en"), "Default name");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -339,9 +345,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Changed name");
name.AddString(GetLangCode("en"), "Default name");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -353,9 +359,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Default name");
name.AddString(GetLangCode("en"), "Changed name");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -367,9 +373,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Changed name");
name.AddString(GetLangCode("en"), "Changed name");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -381,9 +387,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Changed name ru");
name.AddString(GetLangCode("en"), "Changed name en");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -395,9 +401,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Changed by other logic");
name.AddString(GetLangCode("ru"), "Default name");
name.AddString(GetLangCode("en"), "Changed name en");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -409,9 +415,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Changed by other logic");
name.AddString(GetLangCode("ru"), "Changed name ru");
name.AddString(GetLangCode("en"), "Changed name en");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -423,9 +429,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Changed by other logic");
name.AddString(GetLangCode("ru"), "Default name");
name.AddString(GetLangCode("en"), "Default name");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -437,9 +443,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "");
name.AddString(GetLangCode("en"), "Changed name en");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -451,9 +457,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "");
name.AddString(GetLangCode("en"), "");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -466,9 +472,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("ru"), "");
name.AddString(GetLangCode("en"), "");
name.AddString(GetLangCode("de"), "Deutch name");
fakeNames.names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Default name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -480,9 +486,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Test name");
name.AddString(GetLangCode("en"), "Default name");
fakeNames.names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -494,9 +500,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Test name changed");
name.AddString(GetLangCode("en"), "Default name changed");
fakeNames.names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.names.push_back({GetLangCode("en"), "Default name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Default name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -508,9 +514,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "Test name");
name.AddString(GetLangCode("en"), "Second test name changed");
fakeNames.names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.names.push_back({GetLangCode("en"), "Second test name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Second test name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);
@ -522,9 +528,9 @@ UNIT_TEST(EditableMapObject_RemoveFakeNames)
name.AddString(GetLangCode("default"), "Default name");
name.AddString(GetLangCode("ru"), "");
name.AddString(GetLangCode("en"), "Second test name changed");
fakeNames.names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.names.push_back({GetLangCode("en"), "Second test name"});
fakeNames.defaultName = "Default name";
fakeNames.m_names.push_back({GetLangCode("ru"), "Test name"});
fakeNames.m_names.push_back({GetLangCode("en"), "Second test name"});
fakeNames.m_defaultName = "Default name";
EditableMapObject::RemoveFakeNames(fakeNames, name);