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-05-10 22:00:50 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:17:10 +0300
commit8eb310f676e1a468ed9b11e194eb57f0fc4e053a (patch)
treef92aa7f0f92fa1034f033553f3e7d800da5ee7ce /generator/generator_tests
parent9b40c249a804efafa215312a2c9bab315a4884ca (diff)
Refactoring of feature merging routine.
Diffstat (limited to 'generator/generator_tests')
-rw-r--r--generator/generator_tests/feature_bucketer_test.cpp2
-rw-r--r--generator/generator_tests/feature_merger_test.cpp74
-rw-r--r--generator/generator_tests/generator_tests.pro1
3 files changed, 76 insertions, 1 deletions
diff --git a/generator/generator_tests/feature_bucketer_test.cpp b/generator/generator_tests/feature_bucketer_test.cpp
index 4cdbf527aa..4341828010 100644
--- a/generator/generator_tests/feature_bucketer_test.cpp
+++ b/generator/generator_tests/feature_bucketer_test.cpp
@@ -59,7 +59,7 @@ UNIT_TEST(FeatureBucketerSmokeTest)
FeatureBuilder2 fb;
fb.AddPoint(m2::PointD(10, 10));
fb.AddPoint(m2::PointD(20, 20));
- fb.SetType(0);
+ fb.AddType(0);
fb.SetLinear();
bucketer(fb);
diff --git a/generator/generator_tests/feature_merger_test.cpp b/generator/generator_tests/feature_merger_test.cpp
new file mode 100644
index 0000000000..7d2f4172bd
--- /dev/null
+++ b/generator/generator_tests/feature_merger_test.cpp
@@ -0,0 +1,74 @@
+#include "../../testing/testing.hpp"
+
+#include "../feature_merger.hpp"
+
+
+namespace
+{
+ typedef m2::PointD P;
+
+ class VectorEmitter : public FeatureEmitterIFace
+ {
+ vector<FeatureBuilder1> m_vec;
+ public:
+ virtual void operator() (FeatureBuilder1 const & fb)
+ {
+ m_vec.push_back(fb);
+ }
+
+ size_t GetSize() const { return m_vec.size(); }
+
+ void Check(uint32_t type, size_t count) const
+ {
+ size_t test = 0;
+ for (size_t i = 0; i < m_vec.size(); ++i)
+ if (m_vec[i].HasType(type))
+ ++test;
+
+ TEST_EQUAL(test, count, ());
+ }
+ };
+}
+
+UNIT_TEST(FeatureMerger_Smoke)
+{
+ P arrPt[] = { P(0, 0), P(1, 1), P(2, 2), P(3, 3) };
+ size_t const count = ARRAY_SIZE(arrPt)-1;
+
+ FeatureBuilder1 arrF[count];
+
+ for (size_t i = 0; i < count; ++i)
+ {
+ arrF[i].SetLinear();
+ arrF[i].AddPoint(arrPt[i]);
+ arrF[i].AddPoint(arrPt[i+1]);
+
+ arrF[i].AddType(0);
+ }
+
+ arrF[0].AddType(1);
+ arrF[1].AddType(1);
+ arrF[0].AddType(2);
+ arrF[1].AddType(2);
+
+ arrF[1].AddType(3);
+ arrF[2].AddType(3);
+ arrF[1].AddType(4);
+ arrF[2].AddType(4);
+
+ FeatureMergeProcessor processor(30);
+
+ for (size_t i = 0; i < count; ++i)
+ processor(arrF[i]);
+
+ VectorEmitter emitter;
+ processor.DoMerge(emitter);
+
+ TEST_EQUAL(emitter.GetSize(), 3, ());
+
+ emitter.Check(0, 1);
+ emitter.Check(1, 1);
+ emitter.Check(2, 1);
+ emitter.Check(3, 1);
+ emitter.Check(4, 1);
+}
diff --git a/generator/generator_tests/generator_tests.pro b/generator/generator_tests/generator_tests.pro
index 4f0ae4d352..73c1c3e7bf 100644
--- a/generator/generator_tests/generator_tests.pro
+++ b/generator/generator_tests/generator_tests.pro
@@ -25,3 +25,4 @@ SOURCES += \
../../indexer/indexer_tests/feature_routine.cpp \
feature_bucketer_test.cpp \
osm_parser_test.cpp \
+ feature_merger_test.cpp \