diff --git a/generator/generator_tests/feature_builder_test.cpp b/generator/generator_tests/feature_builder_test.cpp index 6695677999..c12b4f349b 100644 --- a/generator/generator_tests/feature_builder_test.cpp +++ b/generator/generator_tests/feature_builder_test.cpp @@ -212,4 +212,20 @@ UNIT_TEST(FeatureParams_Parsing) params.AddAddress("165 \t\t Dolliver Street"); TEST_EQUAL(params.GetStreet(), "Dolliver Street", ()); } + + { + FeatureParams params; + + params.MakeZero(); + TEST(params.AddHouseNumber("123"), ()); + TEST_EQUAL(params.house.Get(), "123", ()); + + params.MakeZero(); + TEST(params.AddHouseNumber("0000123"), ()); + TEST_EQUAL(params.house.Get(), "123", ()); + + params.MakeZero(); + TEST(params.AddHouseNumber("000000"), ()); + TEST_EQUAL(params.house.Get(), "0", ()); + } } diff --git a/indexer/feature_data.cpp b/indexer/feature_data.cpp index 6b7aca00b3..88e8eeb673 100644 --- a/indexer/feature_data.cpp +++ b/indexer/feature_data.cpp @@ -305,7 +305,7 @@ bool FeatureParams::AddHouseNumber(string houseNumber) // Remove leading zeroes from house numbers. // It's important for debug checks of serialized-deserialized feature. size_t i = 0; - while (i < houseNumber.size() && houseNumber[i] == '0') + while (i + 1 < houseNumber.size() && houseNumber[i] == '0') ++i; houseNumber.erase(0, i);