diff options
author | mpimenov <mpimenov@users.noreply.github.com> | 2016-09-30 15:57:13 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-30 15:57:13 +0300 |
commit | b17f6e2eb724faadaa39dc55016281c2a43bcf15 (patch) | |
tree | ad6ffe69f610523ca0389a594401038421eddeb2 /indexer/indexer_tests | |
parent | be7808661a147fbe8b56b10a5656eaf828050e5e (diff) | |
parent | 864894cde5624be9783d1c6e9a1cca53b8101e31 (diff) |
Merge pull request #4301 from milchakov/readable_names_in_categories
[indexer] added mark for readable names into categories.txt
Diffstat (limited to 'indexer/indexer_tests')
-rw-r--r-- | indexer/indexer_tests/categories_test.cpp | 106 |
1 files changed, 104 insertions, 2 deletions
diff --git a/indexer/indexer_tests/categories_test.cpp b/indexer/indexer_tests/categories_test.cpp index 8152110ca4..c8e071ff0d 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,108 @@ UNIT_TEST(CategoriesHolder_Smoke) } } +UNIT_TEST(CategoriesHolder_DisplayedNameSmoke) +{ + 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_DisplayedName) +{ + 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, ARRAY_SIZE(kCategories) - 1)); + + holder.ForEachTypeAndCategory([](uint32_t const type, CategoriesHolder::Category const & cat) { + auto const readableTypeName = classif().GetReadableObjectName(type); + if (readableTypeName == "shop") + { + 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", ()); + } + else if (readableTypeName == "shop-alcohol") + { + 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", ()); + } + else if (readableTypeName == "shop-bakery") + { + 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", ()); + } + else if (readableTypeName == "shop-butcher") + { + 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", ()); + } + else + { + TEST(false, ("Unexpected group name:", readableTypeName)); + } + }); +} + UNIT_TEST(CategoriesIndex_Smoke) { classificator::Load(); |