/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
map/map_tests/feature_getters_tests.cpp
67 строк
2 KB
Mikhail Gorbushin
[geometry] Get rid of MercatorBounds, refactor to namespace mercator
01 ноя 2019, 11:09
01 ноя 2019, 11:09
6f5d401
Код
Авторство
О чём код?
#include "testing/testing.hpp" #include "map/framework.hpp" #include "indexer/classificator.hpp" #include "platform/local_country_file.hpp" #include "coding/string_utf8_multilang.hpp" #include "geometry/mercator.hpp" #include <algorithm> #include <cstdint> #include <vector> using namespace std; UNIT_TEST(Framework_ForEachFeatureAtPoint_And_Others) { Framework frm(FrameworkParams(false /* m_enableLocalAds */, false /* m_enableDiffs */)); frm.DeregisterAllMaps(); frm.RegisterMap(platform::LocalCountryFile::MakeForTesting("minsk-pass")); vector<char const *> types = { "highway|footway|", "hwtag|yesfoot|", "hwtag|yesbicycle|", "highway|service|parking_aisle|", "amenity|parking|", "barrier|lift_gate|" }; frm.ForEachFeatureAtPoint([&](FeatureType & ft) { ft.ForEachType([&types](uint32_t type) { string const strType = classif().GetFullObjectName(type); auto found = find(types.begin(), types.end(), strType); TEST(found != types.end(), ()); types.erase(found); }); }, mercator::FromLatLon(53.882663, 27.537788)); TEST_EQUAL(0, types.size(), ()); ftypes::IsBuildingChecker const & isBuilding = ftypes::IsBuildingChecker::Instance(); { // Restaurant in the building. auto const id = frm.GetFeatureAtPoint(mercator::FromLatLon(53.89395, 27.567365)); TEST(id.IsValid(), ()); frm.GetDataSource().ReadFeature( [&](FeatureType & ft) { string name; ft.GetName(StringUtf8Multilang::kDefaultCode, name); TEST_EQUAL("Родны Кут", name, ()); TEST(!isBuilding(ft), ()); }, id); } { // Same building as above, very close to the restaurant. auto const id = frm.GetFeatureAtPoint(mercator::FromLatLon(53.893603, 27.567032)); TEST(id.IsValid(), ()); frm.GetDataSource().ReadFeature([&](FeatureType & ft) { TEST(isBuilding(ft), ()); }, id); } }