diff --git a/generator/feature_builder.cpp b/generator/feature_builder.cpp index dc3e3e2211..136746ff86 100644 --- a/generator/feature_builder.cpp +++ b/generator/feature_builder.cpp @@ -359,7 +359,7 @@ string DebugPrint(FeatureBuilder1 const & f) switch (f.GetGeomType()) { - case GEOM_POINT: out << "(" << f.m_Center << ")"; break; + case GEOM_POINT: out << DebugPrint(f.m_Center); break; case GEOM_LINE: out << "line with " << f.GetPointsCount() << " points"; break; case GEOM_AREA: out << "area with " << f.GetPointsCount() << " points"; break; default: diff --git a/generator/feature_builder.hpp b/generator/feature_builder.hpp index 96d3181f2b..51cfa0a431 100644 --- a/generator/feature_builder.hpp +++ b/generator/feature_builder.hpp @@ -141,10 +141,6 @@ public: return s; } -protected: - /// Used for feature debugging - vector m_osmIds; - /// @name For diagnostic use only. //@{ bool operator== (FeatureBuilder1 const &) const; @@ -152,6 +148,10 @@ protected: bool CheckValid() const; //@} +protected: + /// Used for feature debugging + vector m_osmIds; + FeatureParams m_Params; m2::RectD m_LimitRect; diff --git a/generator/generator_tests/feature_builder_test.cpp b/generator/generator_tests/feature_builder_test.cpp new file mode 100644 index 0000000000..e7bf0f54f5 --- /dev/null +++ b/generator/generator_tests/feature_builder_test.cpp @@ -0,0 +1,40 @@ +#include "../../testing/testing.hpp" + +#include "../feature_builder.hpp" + + +UNIT_TEST(FBuilder_ManyTypes) +{ + FeatureBuilder1 fb1; + + FeatureParams params; + params.AddType(70); + params.AddType(4098); + params.AddType(6339); + params.AddType(5379); + params.AddType(5451); + params.AddType(5195); + params.AddType(4122); + params.AddType(4250); + params.FinishAddingTypes(); + + params.AddHouseNumber("75"); + params.AddHouseName("Best House"); + params.name.AddString(0, "Name"); + + fb1.SetParams(params); + fb1.SetCenter(m2::PointD(0, 0)); + + TEST(fb1.DoCorrect(), ()); + TEST(fb1.CheckValid(), ()); + + FeatureBuilder1::buffer_t buffer; + TEST(fb1.PreSerialize(), ()); + fb1.Serialize(buffer); + + FeatureBuilder1 fb2; + fb2.Deserialize(buffer); + + TEST(fb2.CheckValid(), ()); + TEST_EQUAL(fb1, fb2, ()); +} diff --git a/generator/generator_tests/generator_tests.pro b/generator/generator_tests/generator_tests.pro index e3596161c1..a715efeaa8 100644 --- a/generator/generator_tests/generator_tests.pro +++ b/generator/generator_tests/generator_tests.pro @@ -28,3 +28,4 @@ SOURCES += \ triangles_tree_coding_test.cpp \ coasts_test.cpp \ concurrent_tests.cpp \ + feature_builder_test.cpp \