diff options
author | Arsentiy Milchakov <milcars@mapswithme.com> | 2016-09-28 20:49:42 +0300 |
---|---|---|
committer | Arsentiy Milchakov <milcars@mapswithme.com> | 2016-09-28 20:49:42 +0300 |
commit | fcf41c868d50b0e17c4e9a8f8505f0d9567ff235 (patch) | |
tree | e7fbf9a6a6462048065fe22f700b1217beae73d2 /indexer/indexer_tests | |
parent | 6f12239a778ed7c19326229b5aa2e9966f206ddd (diff) |
added mark for readable names into categories.txt
Diffstat (limited to 'indexer/indexer_tests')
-rw-r--r-- | indexer/indexer_tests/categories_test.cpp | 108 |
1 files changed, 106 insertions, 2 deletions
diff --git a/indexer/indexer_tests/categories_test.cpp b/indexer/indexer_tests/categories_test.cpp index 8152110ca4..222ad69760 100644 --- a/indexer/indexer_tests/categories_test.cpp +++ b/indexer/indexer_tests/categories_test.cpp @@ -25,7 +25,7 @@ using namespace indexer; char const g_testCategoriesTxt[] = "amenity-bench\n" "en:1bench|sit down|to sit\n" - "de:0bank|auf die strafbank schicken\n" + "de:2bank|auf die strafbank schicken\n" "zh-Hans:长凳\n" "zh-Hant:長板凳\n" "da:bænk\n" @@ -55,7 +55,7 @@ struct Checker TEST_EQUAL(cat.m_synonyms[2].m_name, "to sit", ()); TEST_EQUAL(cat.m_synonyms[3].m_locale, CategoriesHolder::MapLocaleToInteger("de"), ()); TEST_EQUAL(cat.m_synonyms[3].m_name, "bank", ()); - TEST_EQUAL(cat.m_synonyms[3].m_prefixLengthToSuggest, 0, ()); + TEST_EQUAL(cat.m_synonyms[3].m_prefixLengthToSuggest, 2, ()); TEST_EQUAL(cat.m_synonyms[4].m_locale, CategoriesHolder::MapLocaleToInteger("de"), ()); TEST_EQUAL(cat.m_synonyms[4].m_name, "auf die strafbank schicken", ()); TEST_EQUAL(cat.m_synonyms[5].m_locale, CategoriesHolder::MapLocaleToInteger("zh_CN"), ()); @@ -119,6 +119,110 @@ UNIT_TEST(CategoriesHolder_Smoke) } } +UNIT_TEST(CategoriesHolder_ReadableNameSmoke) +{ + classificator::Load(); + + auto const & categoriesHolder = GetDefaultCategories(); + auto const & groupTranslations = categoriesHolder.GetGroupTranslations(); + + categoriesHolder.ForEachCategory([](CategoriesHolder::Category const & cat) + { + for (auto const & synonym : cat.m_synonyms) + { + TEST_NOT_EQUAL(synonym.m_name[0], '^', ("symbol ^ is used incorrectly in categories.txt " + "and loaded to synonyms.")); + } + }); + + for (auto const & group : groupTranslations) + { + for (auto const & translation : group.second) + { + TEST_NOT_EQUAL(translation.m_name[0], '^', ("symbol ^ is used incorrectly in categories.txt " + "and loaded to group translations")); + } + } +} + +UNIT_TEST(CategoriesHolder_ReadableName) +{ + char const kCategories[] = + "@shop\n" + "en:^Shop\n" + "ru:^Mагазин\n" + "\n" + "@meat\n" + "en:Beef|^Meat\n" + "ru:мясо\n" + "de:Schlachter\n" + "\n" + "@butcher\n" + "de:^Metzgerei\n" + "\n" + "shop|@shop\n" + "en:market\n" + "\n" + "shop-alcohol|@shop\n" + "en:Liquor Store|2^Alcostore\n" + "\n" + "shop-bakery|@shop\n" + "en:^buns\n" + "\n" + "shop-butcher|@meat|@butcher\n" + "en:2butcher\n" + "ru:3^Мясная лавка\n" + "de:Geschäft|2Laden\n" + ""; + + classificator::Load(); + CategoriesHolder holder(make_unique<MemReader>(kCategories, sizeof(kCategories) - 1)); + + size_t count = 0; + holder.ForEachCategory([&count](CategoriesHolder::Category const & cat) + { + if (count == 0) + { + TEST_EQUAL(cat.m_synonyms.size(), 3, ()); + TEST_EQUAL(cat.m_synonyms[0].m_name, "Mагазин", ()); + TEST_EQUAL(cat.m_synonyms[1].m_name, "Shop", ()); + TEST_EQUAL(cat.m_synonyms[2].m_name, "market", ()); + } + + if (count == 1) + { + TEST_EQUAL(cat.m_synonyms.size(), 4, ()); + TEST_EQUAL(cat.m_synonyms[0].m_name, "Alcostore", ()); + TEST_EQUAL(cat.m_synonyms[1].m_name, "Mагазин", ()); + TEST_EQUAL(cat.m_synonyms[2].m_name, "Shop", ()); + TEST_EQUAL(cat.m_synonyms[3].m_name, "Liquor Store", ()); + } + + if (count == 2) + { + TEST_EQUAL(cat.m_synonyms.size(), 3, ()); + TEST_EQUAL(cat.m_synonyms[0].m_name, "buns", ()); + TEST_EQUAL(cat.m_synonyms[1].m_name, "Mагазин", ()); + TEST_EQUAL(cat.m_synonyms[2].m_name, "Shop", ()); + } + + if (count == 3) + { + TEST_EQUAL(cat.m_synonyms.size(), 9, ()); + TEST_EQUAL(cat.m_synonyms[0].m_name, "Мясная лавка", ()); + TEST_EQUAL(cat.m_synonyms[1].m_name, "Metzgerei", ()); + TEST_EQUAL(cat.m_synonyms[2].m_name, "Meat", ()); + TEST_EQUAL(cat.m_synonyms[3].m_name, "Beef", ()); + TEST_EQUAL(cat.m_synonyms[4].m_name, "мясо", ()); + TEST_EQUAL(cat.m_synonyms[5].m_name, "Schlachter", ()); + TEST_EQUAL(cat.m_synonyms[6].m_name, "butcher", ()); + TEST_EQUAL(cat.m_synonyms[7].m_name, "Geschäft", ()); + TEST_EQUAL(cat.m_synonyms[8].m_name, "Laden", ()); + } + ++count; + }); +} + UNIT_TEST(CategoriesIndex_Smoke) { classificator::Load(); |