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:
authortatiana-yan <tatiana.kondakova@gmail.com>2019-03-22 13:59:21 +0300
committermpimenov <mpimenov@users.noreply.github.com>2019-03-25 17:13:24 +0300
commit876d639b38fc66473678439bf0d226185f5bfe1c (patch)
tree38303f809f60637ecbc6beb8ad62cd54d2886df9 /indexer
parentf0f5e2bf7925b7f34b15d4b3b8b6602efbd71680 (diff)
[indexer] Test features retrieval from expected zoom level.
Diffstat (limited to 'indexer')
-rw-r--r--indexer/indexer_tests/scale_index_reading_tests.cpp29
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