diff options
author | tatiana-yan <tatiana.kondakova@gmail.com> | 2019-03-22 13:59:21 +0300 |
---|---|---|
committer | mpimenov <mpimenov@users.noreply.github.com> | 2019-03-25 17:13:24 +0300 |
commit | 876d639b38fc66473678439bf0d226185f5bfe1c (patch) | |
tree | 38303f809f60637ecbc6beb8ad62cd54d2886df9 /indexer | |
parent | f0f5e2bf7925b7f34b15d4b3b8b6602efbd71680 (diff) |
[indexer] Test features retrieval from expected zoom level.
Diffstat (limited to 'indexer')
-rw-r--r-- | indexer/indexer_tests/scale_index_reading_tests.cpp | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/indexer/indexer_tests/scale_index_reading_tests.cpp b/indexer/indexer_tests/scale_index_reading_tests.cpp index 191c8164e8..08834d4bb1 100644 --- a/indexer/indexer_tests/scale_index_reading_tests.cpp +++ b/indexer/indexer_tests/scale_index_reading_tests.cpp @@ -10,6 +10,7 @@ #include "indexer/data_source.hpp" #include "indexer/feature.hpp" #include "indexer/feature_covering.hpp" +#include "indexer/feature_visibility.hpp" #include "indexer/mwm_set.hpp" #include "indexer/scale_index.hpp" @@ -42,16 +43,17 @@ class ScaleIndexReadingTest : public TestWithCustomMwms { public: template <typename ScaleIndex> - Names CollectNames(MwmSet::MwmId const & id, ScaleIndex const & index, int scale, - m2::RectD const & rect) + Names CollectNames(MwmSet::MwmId const & id, ScaleIndex const & index, int scaleForIntervals, + int scaleForZoomLevels, m2::RectD const & rect) { covering::CoveringGetter covering(rect, covering::ViewportWithLowLevels); vector<uint32_t> indices; - for (auto const & interval : covering.Get<RectId::DEPTH_LEVELS>(scale)) + for (auto const & interval : covering.Get<RectId::DEPTH_LEVELS>(scaleForIntervals)) { - index.ForEachInIntervalAndScale(interval.first, interval.second, scale, - [&](uint64_t /* key */, uint32_t value) { indices.push_back(value); }); + index.ForEachInIntervalAndScale( + interval.first, interval.second, scaleForZoomLevels, + [&](uint64_t /* key */, uint32_t value) { indices.push_back(value); }); } FeaturesLoaderGuard loader(m_dataSource, id); @@ -105,11 +107,26 @@ UNIT_CLASS_TEST(ScaleIndexReadingTest, Mmap) ScaleIndex<ReaderPtr<Reader>> index(subReader, factory); auto collectNames = [&](m2::RectD const & rect) { - return CollectNames(id, index, header.GetLastScale(), rect); + return CollectNames(id, index, header.GetLastScale(), header.GetLastScale(), rect); }; TEST_EQUAL(collectNames(m2::RectD{-0.5, -0.5, 0.5, 0.5}), Names({"A"}), ()); TEST_EQUAL(collectNames(m2::RectD{0.5, -0.5, 1.5, 1.5}), Names({"B", "C"}), ()); TEST_EQUAL(collectNames(m2::RectD{-0.5, -0.5, 1.5, 1.5}), Names({"A", "B", "C", "D"}), ()); + + auto collectNamesForExactScale = [&](m2::RectD const & rect, int scale) { + return CollectNames(id, index, header.GetLastScale(), scale, rect); + }; + + auto const drawableScale = feature::GetMinDrawableScaleClassifOnly(a.GetTypes()); + CHECK_LESS(drawableScale, header.GetLastScale(), + ("Change the test to ensure scales less than last scale work.")); + + TEST_EQUAL(collectNamesForExactScale(m2::RectD{-0.5, -0.5, 0.5, 0.5}, drawableScale), + Names({"A"}), ()); + TEST_EQUAL(collectNamesForExactScale(m2::RectD{0.5, -0.5, 1.5, 1.5}, drawableScale), + Names({"B", "C"}), ()); + TEST_EQUAL(collectNamesForExactScale(m2::RectD{-0.5, -0.5, 1.5, 1.5}, drawableScale), + Names({"A", "B", "C", "D"}), ()); } } // namespace |