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>2011-08-23 13:20:49 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:22:13 +0300
commitf8ca81ca385d3433857596c24aeb94a2561c5db3 (patch)
tree56b8d08dc86449464b2a09e086449545c59dc387 /generator/generator_tests/feature_merger_test.cpp
parent92007ca267f9538533651efef0a42c47298a2c0a (diff)
Fix features merging when they have rounds.
Diffstat (limited to 'generator/generator_tests/feature_merger_test.cpp')
-rw-r--r--generator/generator_tests/feature_merger_test.cpp52
1 files changed, 50 insertions, 2 deletions
diff --git a/generator/generator_tests/feature_merger_test.cpp b/generator/generator_tests/feature_merger_test.cpp
index 5fa5d5417d..a3bc7b8385 100644
--- a/generator/generator_tests/feature_merger_test.cpp
+++ b/generator/generator_tests/feature_merger_test.cpp
@@ -56,7 +56,7 @@ UNIT_TEST(FeatureMerger_MultipleTypes)
arrF[1].AddType(4);
arrF[2].AddType(4);
- FeatureMergeProcessor processor(30);
+ FeatureMergeProcessor processor(POINT_COORD_BITS);
for (size_t i = 0; i < count; ++i)
processor(arrF[i]);
@@ -117,7 +117,7 @@ UNIT_TEST(FeatureMerger_Branches)
vF.back().AddPoint(P(1, 0));
vF.back().AddPoint(P(2, 0));
- FeatureMergeProcessor processor(30);
+ FeatureMergeProcessor processor(POINT_COORD_BITS);
for (size_t i = 0; i < vF.size(); ++i)
{
@@ -132,3 +132,51 @@ UNIT_TEST(FeatureMerger_Branches)
TEST_LESS_OR_EQUAL(emitter.GetSize(), 2, ());
}
+
+UNIT_TEST(FeatureMerger_Rounds)
+{
+ vector<FeatureBuilder1> vF;
+
+ vF.push_back(FeatureBuilder1());
+ vF.back().AddPoint(P(-10, 0));
+ vF.back().AddPoint(P(-5, 0));
+
+ // make first round feature
+ vF.push_back(FeatureBuilder1());
+ vF.back().AddPoint(P(-4, 1));
+ vF.back().AddPoint(P(-3, 0));
+ vF.back().AddPoint(P(-4, -1));
+ vF.back().AddPoint(P(-5, 0));
+ vF.back().AddPoint(P(-4, 1));
+
+ vF.push_back(FeatureBuilder1());
+ vF.back().AddPoint(P(-3, 0));
+ vF.back().AddPoint(P(3, 0));
+
+ // make second round feature
+ vF.push_back(FeatureBuilder1());
+ vF.back().AddPoint(P(4, -1));
+ vF.back().AddPoint(P(3, 0));
+ vF.back().AddPoint(P(4, 1));
+ vF.back().AddPoint(P(5, 0));
+ vF.back().AddPoint(P(4, -1));
+
+ vF.push_back(FeatureBuilder1());
+ vF.back().AddPoint(P(5, 0));
+ vF.back().AddPoint(P(10, 0));
+
+ FeatureMergeProcessor processor(POINT_COORD_BITS);
+
+ for (size_t i = 0; i < vF.size(); ++i)
+ {
+ vF[i].SetLinear();
+ vF[i].AddType(0);
+
+ processor(vF[i]);
+ }
+
+ VectorEmitter emitter;
+ processor.DoMerge(emitter);
+
+ TEST_EQUAL(emitter.GetSize(), 1, ());
+}