MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / sampling_verify_rtree

Function sampling_verify_rtree

unit_tests/util/static_rtree.cpp:194–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192
193template <typename RTreeT>
194void sampling_verify_rtree(RTreeT &rtree,
195 LinearSearchNN<TestData> &lsnn,
196 const std::vector<Coordinate> &coords,
197 unsigned num_samples)
198{
199 std::mt19937 g(osrm::test::getTestRandomSeed());
200 std::uniform_int_distribution<> lat_udist(WORLD_MIN_LAT, WORLD_MAX_LAT);
201 std::uniform_int_distribution<> lon_udist(WORLD_MIN_LON, WORLD_MAX_LON);
202 std::vector<Coordinate> queries;
203 queries.reserve(num_samples);
204 for (unsigned i = 0; i < num_samples; i++)
205 {
206 queries.emplace_back(FixedLongitude{lon_udist(g)}, FixedLatitude{lat_udist(g)});
207 }
208
209 for (const auto &q : queries)
210 {
211 auto result_rtree = rtree.Nearest(q, 1);
212 auto result_lsnn = lsnn.Nearest(q, 1);
213 BOOST_CHECK(result_rtree.size() == 1);
214 BOOST_CHECK(result_lsnn.size() == 1);
215 auto rtree_u = result_rtree.back().data.u;
216 auto rtree_v = result_rtree.back().data.v;
217 auto lsnn_u = result_lsnn.back().u;
218 auto lsnn_v = result_lsnn.back().v;
219
220 const double rtree_dist =
221 coordinate_calculation::perpendicularDistance(coords[rtree_u], coords[rtree_v], q);
222 const double lsnn_dist =
223 coordinate_calculation::perpendicularDistance(coords[lsnn_u], coords[lsnn_v], q);
224
225 BOOST_CHECK_CLOSE(rtree_dist, lsnn_dist, 0.0001);
226 }
227}
228
229template <typename RTreeT, typename FixtureT>
230auto make_rtree(const std::filesystem::path &path, FixtureT &fixture)

Callers 1

construction_testFunction · 0.85

Calls 7

getTestRandomSeedFunction · 0.85
perpendicularDistanceFunction · 0.85
reserveMethod · 0.45
emplace_backMethod · 0.45
NearestMethod · 0.45
sizeMethod · 0.45
backMethod · 0.45

Tested by

no test coverage detected