Move files in unit_tests around
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
#include "../../data_structures/compressed_edge_container.hpp"
|
||||
#include "../../typedefs.h"
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <boost/test/test_case_template.hpp>
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(compressed_edge_container)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(long_road_test)
|
||||
{
|
||||
// 0 1 2 3
|
||||
// 0---1----2----3----4
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
// compress 0---1---2 to 0---2
|
||||
container.CompressEdge(0, 1, 1, 2, 1, 1);
|
||||
BOOST_CHECK(container.HasEntryForID(0));
|
||||
BOOST_CHECK(!container.HasEntryForID(1));
|
||||
BOOST_CHECK(!container.HasEntryForID(2));
|
||||
BOOST_CHECK(!container.HasEntryForID(3));
|
||||
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(0), 1);
|
||||
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(0), 1);
|
||||
|
||||
// compress 2---3---4 to 2---4
|
||||
container.CompressEdge(2, 3, 3, 4, 1, 1);
|
||||
BOOST_CHECK(container.HasEntryForID(0));
|
||||
BOOST_CHECK(!container.HasEntryForID(1));
|
||||
BOOST_CHECK(container.HasEntryForID(2));
|
||||
BOOST_CHECK(!container.HasEntryForID(3));
|
||||
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(2), 3);
|
||||
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(2), 3);
|
||||
|
||||
// compress 0---2---4 to 0---4
|
||||
container.CompressEdge(0, 2, 2, 4, 2, 2);
|
||||
BOOST_CHECK(container.HasEntryForID(0));
|
||||
BOOST_CHECK(!container.HasEntryForID(1));
|
||||
BOOST_CHECK(!container.HasEntryForID(2));
|
||||
BOOST_CHECK(!container.HasEntryForID(3));
|
||||
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(0), 1);
|
||||
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(0), 3);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(t_crossing)
|
||||
{
|
||||
// 0 1 2 3
|
||||
// 0---1---2---3---4
|
||||
// | 4
|
||||
// 5
|
||||
// | 5
|
||||
// 6
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
// compress 0---1---2 to 0---2
|
||||
container.CompressEdge(0, 1, 1, 2, 1, 1);
|
||||
BOOST_CHECK(container.HasEntryForID(0));
|
||||
BOOST_CHECK(!container.HasEntryForID(1));
|
||||
BOOST_CHECK(!container.HasEntryForID(2));
|
||||
BOOST_CHECK(!container.HasEntryForID(3));
|
||||
BOOST_CHECK(!container.HasEntryForID(4));
|
||||
BOOST_CHECK(!container.HasEntryForID(5));
|
||||
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(0), 1);
|
||||
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(0), 1);
|
||||
|
||||
// compress 2---5---6 to 2---6
|
||||
container.CompressEdge(4, 5, 5, 6, 1, 1);
|
||||
BOOST_CHECK(container.HasEntryForID(0));
|
||||
BOOST_CHECK(!container.HasEntryForID(1));
|
||||
BOOST_CHECK(!container.HasEntryForID(2));
|
||||
BOOST_CHECK(!container.HasEntryForID(3));
|
||||
BOOST_CHECK(container.HasEntryForID(4));
|
||||
BOOST_CHECK(!container.HasEntryForID(5));
|
||||
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(4), 5);
|
||||
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(4), 5);
|
||||
|
||||
// compress 2---3---4 to 2---4
|
||||
container.CompressEdge(2, 3, 3, 4, 1, 1);
|
||||
BOOST_CHECK(container.HasEntryForID(0));
|
||||
BOOST_CHECK(!container.HasEntryForID(1));
|
||||
BOOST_CHECK(container.HasEntryForID(2));
|
||||
BOOST_CHECK(!container.HasEntryForID(3));
|
||||
BOOST_CHECK(container.HasEntryForID(4));
|
||||
BOOST_CHECK(!container.HasEntryForID(5));
|
||||
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(2), 3);
|
||||
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(2), 3);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
@@ -0,0 +1,213 @@
|
||||
#include "../../algorithms/graph_compressor.hpp"
|
||||
#include "../../data_structures/compressed_edge_container.hpp"
|
||||
#include "../../data_structures/restriction_map.hpp"
|
||||
#include "../../data_structures/node_based_graph.hpp"
|
||||
#include "../../extractor/speed_profile.hpp"
|
||||
#include "../../typedefs.h"
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <boost/test/test_case_template.hpp>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(graph_compressor)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(long_road_test)
|
||||
{
|
||||
//
|
||||
// 0---1---2---3---4
|
||||
//
|
||||
SpeedProfileProperties speed_profile;
|
||||
GraphCompressor compressor(speed_profile);
|
||||
|
||||
std::unordered_set<NodeID> barrier_nodes;
|
||||
std::unordered_set<NodeID> traffic_lights;
|
||||
RestrictionMap map;
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
using InputEdge = NodeBasedDynamicGraph::InputEdge;
|
||||
std::vector<InputEdge> edges = {
|
||||
// source, target, distance, edge_id, name_id, access_restricted, reversed, roundabout, travel_mode
|
||||
{0, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 0, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 2, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 3, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{3, 2, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{3, 4, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{4, 3, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT}
|
||||
};
|
||||
|
||||
BOOST_ASSERT(edges[0].data.IsCompatibleTo(edges[2].data));
|
||||
BOOST_ASSERT(edges[2].data.IsCompatibleTo(edges[4].data));
|
||||
BOOST_ASSERT(edges[4].data.IsCompatibleTo(edges[6].data));
|
||||
|
||||
NodeBasedDynamicGraph graph(5, edges);
|
||||
compressor.Compress(barrier_nodes, traffic_lights, map, graph, container);
|
||||
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(0, 1), SPECIAL_EDGEID);
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(1, 2), SPECIAL_EDGEID);
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(2, 3), SPECIAL_EDGEID);
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(3, 4), SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(0, 4) != SPECIAL_EDGEID);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(loop_test)
|
||||
{
|
||||
//
|
||||
// 0---1---2
|
||||
// | |
|
||||
// 5---4---3
|
||||
//
|
||||
SpeedProfileProperties speed_profile;
|
||||
GraphCompressor compressor(speed_profile);
|
||||
|
||||
std::unordered_set<NodeID> barrier_nodes;
|
||||
std::unordered_set<NodeID> traffic_lights;
|
||||
RestrictionMap map;
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
using InputEdge = NodeBasedDynamicGraph::InputEdge;
|
||||
std::vector<InputEdge> edges = {
|
||||
// source, target, distance, edge_id, name_id, access_restricted, forward, backward, roundabout, travel_mode
|
||||
{0, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{0, 5, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 0, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 2, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 3, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{3, 2, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{3, 4, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{4, 3, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{4, 5, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{5, 0, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{5, 4, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
};
|
||||
|
||||
BOOST_ASSERT(edges.size() == 12);
|
||||
BOOST_ASSERT(edges[0].data.IsCompatibleTo(edges[1].data));
|
||||
BOOST_ASSERT(edges[1].data.IsCompatibleTo(edges[2].data));
|
||||
BOOST_ASSERT(edges[2].data.IsCompatibleTo(edges[3].data));
|
||||
BOOST_ASSERT(edges[3].data.IsCompatibleTo(edges[4].data));
|
||||
BOOST_ASSERT(edges[4].data.IsCompatibleTo(edges[5].data));
|
||||
BOOST_ASSERT(edges[5].data.IsCompatibleTo(edges[6].data));
|
||||
BOOST_ASSERT(edges[6].data.IsCompatibleTo(edges[7].data));
|
||||
BOOST_ASSERT(edges[7].data.IsCompatibleTo(edges[8].data));
|
||||
BOOST_ASSERT(edges[8].data.IsCompatibleTo(edges[9].data));
|
||||
BOOST_ASSERT(edges[9].data.IsCompatibleTo(edges[10].data));
|
||||
BOOST_ASSERT(edges[10].data.IsCompatibleTo(edges[11].data));
|
||||
|
||||
NodeBasedDynamicGraph graph(6, edges);
|
||||
compressor.Compress(barrier_nodes, traffic_lights, map, graph, container);
|
||||
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(5, 0), SPECIAL_EDGEID);
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(0, 1), SPECIAL_EDGEID);
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(1, 2), SPECIAL_EDGEID);
|
||||
BOOST_CHECK_EQUAL(graph.FindEdge(2, 3), SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(5, 3) != SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(3, 4) != SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(4, 5) != SPECIAL_EDGEID);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(t_intersection)
|
||||
{
|
||||
//
|
||||
// 0---1---2
|
||||
// |
|
||||
// 3
|
||||
//
|
||||
SpeedProfileProperties speed_profile;
|
||||
GraphCompressor compressor(speed_profile);
|
||||
|
||||
std::unordered_set<NodeID> barrier_nodes;
|
||||
std::unordered_set<NodeID> traffic_lights;
|
||||
RestrictionMap map;
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
using InputEdge = NodeBasedDynamicGraph::InputEdge;
|
||||
std::vector<InputEdge> edges = {
|
||||
// source, target, distance, edge_id, name_id, access_restricted, reversed, roundabout, travel_mode
|
||||
{0, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 0, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 2, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 3, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{3, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
};
|
||||
|
||||
BOOST_ASSERT(edges[0].data.IsCompatibleTo(edges[1].data));
|
||||
BOOST_ASSERT(edges[1].data.IsCompatibleTo(edges[2].data));
|
||||
BOOST_ASSERT(edges[2].data.IsCompatibleTo(edges[3].data));
|
||||
BOOST_ASSERT(edges[3].data.IsCompatibleTo(edges[4].data));
|
||||
BOOST_ASSERT(edges[4].data.IsCompatibleTo(edges[5].data));
|
||||
|
||||
NodeBasedDynamicGraph graph(4, edges);
|
||||
compressor.Compress(barrier_nodes, traffic_lights, map, graph, container);
|
||||
|
||||
BOOST_CHECK(graph.FindEdge(0, 1) != SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(1, 2) != SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(1, 3) != SPECIAL_EDGEID);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(street_name_changes)
|
||||
{
|
||||
//
|
||||
// 0---1---2
|
||||
//
|
||||
SpeedProfileProperties speed_profile;
|
||||
GraphCompressor compressor(speed_profile);
|
||||
|
||||
std::unordered_set<NodeID> barrier_nodes;
|
||||
std::unordered_set<NodeID> traffic_lights;
|
||||
RestrictionMap map;
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
using InputEdge = NodeBasedDynamicGraph::InputEdge;
|
||||
std::vector<InputEdge> edges = {
|
||||
// source, target, distance, edge_id, name_id, access_restricted, forward, backward, roundabout, travel_mode
|
||||
{0, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 0, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 2, 1, SPECIAL_EDGEID, 1, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 1, 1, SPECIAL_EDGEID, 1, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
};
|
||||
|
||||
BOOST_ASSERT(edges[0].data.IsCompatibleTo(edges[1].data));
|
||||
BOOST_ASSERT(edges[2].data.IsCompatibleTo(edges[3].data));
|
||||
|
||||
NodeBasedDynamicGraph graph(5, edges);
|
||||
compressor.Compress(barrier_nodes, traffic_lights, map, graph, container);
|
||||
|
||||
BOOST_CHECK(graph.FindEdge(0, 1) != SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(1, 2) != SPECIAL_EDGEID);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(direction_changes)
|
||||
{
|
||||
//
|
||||
// 0-->1---2
|
||||
//
|
||||
SpeedProfileProperties speed_profile;
|
||||
GraphCompressor compressor(speed_profile);
|
||||
|
||||
std::unordered_set<NodeID> barrier_nodes;
|
||||
std::unordered_set<NodeID> traffic_lights;
|
||||
RestrictionMap map;
|
||||
CompressedEdgeContainer container;
|
||||
|
||||
using InputEdge = NodeBasedDynamicGraph::InputEdge;
|
||||
std::vector<InputEdge> edges = {
|
||||
// source, target, distance, edge_id, name_id, access_restricted, reverse, roundabout, travel_mode
|
||||
{0, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 0, 1, SPECIAL_EDGEID, 0, false, true, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{1, 2, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
{2, 1, 1, SPECIAL_EDGEID, 0, false, false, false, true, TRAVEL_MODE_DEFAULT},
|
||||
};
|
||||
|
||||
NodeBasedDynamicGraph graph(5, edges);
|
||||
compressor.Compress(barrier_nodes, traffic_lights, map, graph, container);
|
||||
|
||||
BOOST_CHECK(graph.FindEdge(0, 1) != SPECIAL_EDGEID);
|
||||
BOOST_CHECK(graph.FindEdge(1, 2) != SPECIAL_EDGEID);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
@@ -0,0 +1,110 @@
|
||||
/*
|
||||
|
||||
Copyright (c) 2014, Project OSRM contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list
|
||||
of conditions and the following disclaimer.
|
||||
Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "../../data_structures/raster_source.hpp"
|
||||
#include "../../typedefs.h"
|
||||
#include "../../util/osrm_exception.hpp"
|
||||
|
||||
#include <osrm/coordinate.hpp>
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(raster_source)
|
||||
|
||||
int normalize(double coord) { return static_cast<int>(coord * COORDINATE_PRECISION); }
|
||||
|
||||
#define CHECK_QUERY(source_id, lon, lat, expected) \
|
||||
BOOST_CHECK_EQUAL( \
|
||||
sources.getRasterDataFromSource(source_id, normalize(lon), normalize(lat)).datum, \
|
||||
expected)
|
||||
|
||||
#define CHECK_INTERPOLATE(source_id, lon, lat, expected) \
|
||||
BOOST_CHECK_EQUAL( \
|
||||
sources.getRasterInterpolateFromSource(source_id, normalize(lon), normalize(lat)).datum, \
|
||||
expected)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(raster_test)
|
||||
{
|
||||
SourceContainer sources;
|
||||
int source_id = sources.loadRasterSource("../unit_tests/fixtures/raster_data.asc", 0, 0.09, 0,
|
||||
0.09, 10, 10);
|
||||
BOOST_CHECK_EQUAL(source_id, 0);
|
||||
|
||||
// Expected nearest-neighbor queries
|
||||
// EDGES
|
||||
CHECK_QUERY(0, 0.00, 0.00, 10);
|
||||
CHECK_QUERY(0, 0.00, 0.09, 10);
|
||||
CHECK_QUERY(0, 0.09, 0.00, 40);
|
||||
CHECK_QUERY(0, 0.09, 0.09, 100);
|
||||
CHECK_QUERY(0, 0.09, 0.07, 140);
|
||||
// OUT OF BOUNDS
|
||||
CHECK_QUERY(0, -0.1, 0.07, RasterDatum::get_invalid());
|
||||
CHECK_QUERY(0, -0.1, -3.0, RasterDatum::get_invalid());
|
||||
CHECK_QUERY(0, 0.3, 23.0, RasterDatum::get_invalid());
|
||||
// ARBITRARY - AT DATA
|
||||
CHECK_QUERY(0, 0.06, 0.06, 100);
|
||||
CHECK_QUERY(0, 0.08, 0.05, 160);
|
||||
CHECK_QUERY(0, 0.01, 0.05, 20);
|
||||
// ARBITRARY - BETWEEN DATA
|
||||
CHECK_QUERY(0, 0.054, 0.023, 40);
|
||||
CHECK_QUERY(0, 0.056, 0.028, 80);
|
||||
CHECK_QUERY(0, 0.05, 0.028, 60);
|
||||
|
||||
// Expected bilinear interpolation queries
|
||||
// EDGES - same as above
|
||||
CHECK_INTERPOLATE(0, 0.00, 0.00, 10);
|
||||
CHECK_INTERPOLATE(0, 0.00, 0.09, 10);
|
||||
CHECK_INTERPOLATE(0, 0.09, 0.00, 40);
|
||||
CHECK_INTERPOLATE(0, 0.09, 0.09, 100);
|
||||
CHECK_INTERPOLATE(0, 0.09, 0.07, 140);
|
||||
// OUT OF BOUNDS - same as above
|
||||
CHECK_INTERPOLATE(0, -0.1, 0.07, RasterDatum::get_invalid());
|
||||
CHECK_INTERPOLATE(0, -0.1, -3.0, RasterDatum::get_invalid());
|
||||
CHECK_INTERPOLATE(0, 0.3, 23.0, RasterDatum::get_invalid());
|
||||
// ARBITRARY - AT DATA - same as above
|
||||
CHECK_INTERPOLATE(0, 0.06, 0.06, 100);
|
||||
CHECK_INTERPOLATE(0, 0.08, 0.05, 160);
|
||||
CHECK_INTERPOLATE(0, 0.01, 0.05, 20);
|
||||
// ARBITRARY - BETWEEN DATA
|
||||
CHECK_INTERPOLATE(0, 0.054, 0.023, 54);
|
||||
CHECK_INTERPOLATE(0, 0.056, 0.028, 68);
|
||||
CHECK_INTERPOLATE(0, 0.05, 0.028, 56);
|
||||
|
||||
int source_already_loaded_id = sources.loadRasterSource(
|
||||
"../unit_tests/fixtures/raster_data.asc", 0, 0.09, 0, 0.09, 10, 10);
|
||||
|
||||
BOOST_CHECK_EQUAL(source_already_loaded_id, 0);
|
||||
BOOST_CHECK_THROW(sources.getRasterDataFromSource(1, normalize(0.02), normalize(0.02)),
|
||||
osrm::exception);
|
||||
|
||||
BOOST_CHECK_THROW(
|
||||
sources.loadRasterSource("../unit_tests/fixtures/nonexistent.asc", 0, 0.1, 0, 0.1, 7, 7),
|
||||
osrm::exception);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
Reference in New Issue
Block a user