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:
authorvng <viktor.govako@gmail.com>2014-09-09 03:29:51 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:26:34 +0300
commitbd06c5762a90eb45d5fd3be9b941214e02f3efbf (patch)
treedb8990cc854ea241f1cd6c25daebe014014351e6 /generator/generator_tests/osm_type_test.cpp
parentcf856a71bf6dafb030bd91aee9d756af3f3a4a73 (diff)
[generator]
- Do add “layer” attribute if absent in “bridge” or “tunnel” - Do process “restaurant” and “hotel” synonyms - Correct processing of layer=-1 (needed for “tunnel”) - Skip “ref=route” attribute
Diffstat (limited to 'generator/generator_tests/osm_type_test.cpp')
-rw-r--r--generator/generator_tests/osm_type_test.cpp166
1 files changed, 151 insertions, 15 deletions
diff --git a/generator/generator_tests/osm_type_test.cpp b/generator/generator_tests/osm_type_test.cpp
index 6e6d190726..9ce1b67106 100644
--- a/generator/generator_tests/osm_type_test.cpp
+++ b/generator/generator_tests/osm_type_test.cpp
@@ -16,12 +16,7 @@ namespace
{
p->parent = 0;
for (size_t i = 0; i < count; ++i)
- {
- p->childs.push_back(XMLElement());
- p->childs.back().name = "tag";
- p->childs.back().attrs["k"] = arr[i][0];
- p->childs.back().attrs["v"] = arr[i][1];
- }
+ p->AddKV(arr[i][0], arr[i][1]);
}
template <size_t N> uint32_t GetType(char const * (&arr)[N])
@@ -48,7 +43,7 @@ UNIT_TEST(OsmType_SkipDummy)
FeatureParams params;
ftype::GetNameAndType(&e, params);
- TEST_EQUAL ( params.m_Types.size(), 1, () );
+ TEST_EQUAL ( params.m_Types.size(), 1, (params) );
TEST_EQUAL ( params.m_Types[0], GetType(arr[1]), () );
}
@@ -127,8 +122,9 @@ UNIT_TEST(OsmType_Combined)
FeatureParams params;
ftype::GetNameAndType(&e, params);
- TEST(params.IsTypeExist(GetType(arr[3])), ());
char const * arrT[] = { "building" };
+ TEST_EQUAL(params.m_Types.size(), 2, (params));
+ TEST(params.IsTypeExist(GetType(arr[3])), ());
TEST(params.IsTypeExist(GetType(arrT)), ());
string s;
@@ -157,6 +153,7 @@ UNIT_TEST(OsmType_Address)
ftype::GetNameAndType(&e, params);
char const * arrT[] = { "building", "address" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType(arrT)), ());
TEST_EQUAL(params.house.Get(), "223/5", ());
@@ -183,6 +180,7 @@ UNIT_TEST(OsmType_PlaceState)
ftype::GetNameAndType(&e, params);
char const * arrT[] = { "place", "state", "USA" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType(arrT)), ());
string s;
@@ -233,8 +231,8 @@ UNIT_TEST(OsmType_AlabamaRiver)
ftype::GetNameAndType(&e, params);
char const * arrT[] = { "waterway", "river" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType(arrT)), ());
- TEST_EQUAL(params.m_Types.size(), 1, ());
}
UNIT_TEST(OsmType_Synonyms)
@@ -244,7 +242,9 @@ UNIT_TEST(OsmType_Synonyms)
char const * arr[][2] = {
{ "building", "yes" },
{ "shop", "yes" },
- { "atm", "yes" }
+ { "atm", "yes" },
+ { "restaurant", "yes" },
+ { "hotel", "yes" },
};
XMLElement e;
@@ -256,10 +256,15 @@ UNIT_TEST(OsmType_Synonyms)
char const * arrT1[] = { "building" };
char const * arrT2[] = { "amenity", "atm" };
char const * arrT3[] = { "shop" };
- TEST_EQUAL(params.m_Types.size(), 3, ());
+ char const * arrT4[] = { "amenity", "restaurant" };
+ char const * arrT5[] = { "tourism", "hotel" };
+ TEST_EQUAL(params.m_Types.size(), 5, (params));
+
TEST(params.IsTypeExist(GetType(arrT1)), ());
TEST(params.IsTypeExist(GetType(arrT2)), ());
TEST(params.IsTypeExist(GetType(arrT3)), ());
+ TEST(params.IsTypeExist(GetType(arrT4)), ());
+ TEST(params.IsTypeExist(GetType(arrT5)), ());
}
// Duplicating test.
@@ -276,7 +281,7 @@ UNIT_TEST(OsmType_Synonyms)
ftype::GetNameAndType(&e, params);
char const * arrT[] = { "amenity", "atm" };
- TEST_EQUAL(params.m_Types.size(), 1, ());
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType(arrT)), ());
}
@@ -295,7 +300,7 @@ UNIT_TEST(OsmType_Synonyms)
ftype::GetNameAndType(&e, params);
char const * arrT[] = { "building" };
- TEST_EQUAL(params.m_Types.size(), 1, ());
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
TEST(params.IsTypeExist(GetType(arrT)), ());
}
}
@@ -314,7 +319,7 @@ UNIT_TEST(OsmType_Capital)
FeatureParams params;
ftype::GetNameAndType(&e, params);
- TEST_EQUAL(params.m_Types.size(), 1, ());
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
char const * type[] = { "place", "city", "capital" };
TEST(params.IsTypeExist(GetType(type)), ());
}
@@ -331,8 +336,139 @@ UNIT_TEST(OsmType_Capital)
FeatureParams params;
ftype::GetNameAndType(&e, params);
- TEST_EQUAL(params.m_Types.size(), 1, ());
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
char const * type[] = { "place", "city" };
TEST(params.IsTypeExist(GetType(type)), ());
}
}
+
+UNIT_TEST(OsmType_Route)
+{
+ {
+ char const * arr[][2] = {
+ { "highway", "motorway" },
+ { "ref", "I 95" }
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(arr[0])), ());
+ TEST_EQUAL(params.ref, arr[1][1], ());
+ }
+
+ {
+ char const * arr[][2] = {
+ { "highway", "path" },
+ { "ref", "route" }
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(arr[0])), ());
+ TEST(params.ref.empty(), ());
+ }
+}
+
+UNIT_TEST(OsmType_Layer)
+{
+ {
+ char const * arr[][2] = {
+ { "highway", "motorway" },
+ { "bridge", "yes" },
+ { "layer", "2" },
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ char const * type[] = { "highway", "motorway", "bridge" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(type)), ());
+ TEST_EQUAL(params.layer, 2, ());
+ }
+
+ {
+ char const * arr[][2] = {
+ { "highway", "trunk" },
+ { "tunnel", "yes" },
+ { "layer", "-1" },
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ char const * type[] = { "highway", "trunk", "tunnel" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(type)), ());
+ TEST_EQUAL(params.layer, -1, ());
+ }
+
+ {
+ char const * arr[][2] = {
+ { "highway", "secondary" },
+ { "bridge", "yes" },
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ char const * type[] = { "highway", "secondary", "bridge" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(type)), ());
+ TEST_EQUAL(params.layer, 1, ());
+ }
+
+ {
+ char const * arr[][2] = {
+ { "highway", "primary" },
+ { "tunnel", "yes" },
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ char const * type[] = { "highway", "primary", "tunnel" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(type)), ());
+ TEST_EQUAL(params.layer, -1, ());
+ }
+
+ {
+ char const * arr[][2] = {
+ { "highway", "living_street" },
+ };
+
+ XMLElement e;
+ FillXmlElement(arr, ARRAY_SIZE(arr), &e);
+
+ FeatureParams params;
+ ftype::GetNameAndType(&e, params);
+
+ char const * type[] = { "highway", "living_street" };
+ TEST_EQUAL(params.m_Types.size(), 1, (params));
+ TEST(params.IsTypeExist(GetType(type)), ());
+ TEST_EQUAL(params.layer, 0, ());
+ }
+}