2016-03-03 16:25:01 -05:00
|
|
|
#ifndef MOCK_DATAFACADE_HPP
|
|
|
|
#define MOCK_DATAFACADE_HPP
|
|
|
|
|
|
|
|
// implements all data storage when shared memory _IS_ used
|
|
|
|
|
|
|
|
#include "contractor/query_edge.hpp"
|
2017-06-27 18:01:05 -04:00
|
|
|
#include "extractor/class_data.hpp"
|
2018-02-09 13:32:09 -05:00
|
|
|
#include "extractor/maneuver_override.hpp"
|
2017-06-27 18:01:05 -04:00
|
|
|
#include "extractor/travel_mode.hpp"
|
2018-01-05 08:33:53 -05:00
|
|
|
#include "extractor/turn_lane_types.hpp"
|
2018-01-08 13:12:06 -05:00
|
|
|
#include "guidance/turn_bearing.hpp"
|
2018-01-05 07:05:53 -05:00
|
|
|
#include "guidance/turn_instruction.hpp"
|
2018-02-09 13:32:09 -05:00
|
|
|
#include "guidance/turn_instruction.hpp"
|
2017-06-27 18:01:05 -04:00
|
|
|
|
2017-01-09 15:40:33 -05:00
|
|
|
#include "engine/algorithm.hpp"
|
|
|
|
#include "engine/datafacade/algorithm_datafacade.hpp"
|
2016-05-27 15:05:04 -04:00
|
|
|
#include "engine/datafacade/datafacade_base.hpp"
|
2017-06-27 18:01:05 -04:00
|
|
|
|
2016-05-12 05:16:52 -04:00
|
|
|
#include "util/guidance/bearing_class.hpp"
|
|
|
|
#include "util/guidance/entry_class.hpp"
|
|
|
|
#include "util/typedefs.hpp"
|
2016-03-03 16:25:01 -05:00
|
|
|
|
2016-03-03 08:26:13 -05:00
|
|
|
namespace osrm
|
|
|
|
{
|
|
|
|
namespace test
|
|
|
|
{
|
2016-03-03 16:25:01 -05:00
|
|
|
|
2017-01-09 15:40:33 -05:00
|
|
|
class MockBaseDataFacade : public engine::datafacade::BaseDataFacade
|
2016-03-03 16:25:01 -05:00
|
|
|
{
|
2016-12-15 12:27:09 -05:00
|
|
|
using StringView = util::StringView;
|
|
|
|
|
2016-03-03 08:26:13 -05:00
|
|
|
public:
|
2017-08-16 16:21:19 -04:00
|
|
|
bool ExcludeNode(const NodeID) const override { return false; };
|
2017-07-24 20:05:15 -04:00
|
|
|
|
2016-12-15 12:27:09 -05:00
|
|
|
util::Coordinate GetCoordinateOfNode(const NodeID /* id */) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2016-03-11 12:03:46 -05:00
|
|
|
return {util::FixedLongitude{0}, util::FixedLatitude{0}};
|
2016-03-03 16:25:01 -05:00
|
|
|
}
|
2016-12-15 12:27:09 -05:00
|
|
|
OSMNodeID GetOSMNodeIDOfNode(const NodeID /* id */) const override { return OSMNodeID{0}; }
|
|
|
|
bool EdgeIsCompressed(const EdgeID /* id */) const { return false; }
|
2017-04-25 05:36:34 -04:00
|
|
|
GeometryID GetGeometryIndex(const NodeID /* id */) const override
|
2016-03-29 04:49:01 -04:00
|
|
|
{
|
2016-07-22 12:23:54 -04:00
|
|
|
return GeometryID{SPECIAL_GEOMETRYID, false};
|
2016-03-29 04:49:01 -04:00
|
|
|
}
|
2017-05-15 06:15:00 -04:00
|
|
|
ComponentID GetComponentID(const NodeID /* id */) const override
|
|
|
|
{
|
|
|
|
return ComponentID{INVALID_COMPONENTID, false};
|
|
|
|
}
|
2016-05-12 12:50:10 -04:00
|
|
|
TurnPenalty GetWeightPenaltyForEdgeID(const unsigned /* id */) const override final
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
TurnPenalty GetDurationPenaltyForEdgeID(const unsigned /* id */) const override final
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
NodeForwardRange GetUncompressedForwardGeometry(const EdgeID /* id */) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2018-04-20 18:18:55 -04:00
|
|
|
static NodeID data[] = {0, 1, 2, 3};
|
|
|
|
static extractor::SegmentDataView::SegmentNodeVector nodes(data, 4);
|
|
|
|
return boost::make_iterator_range(nodes.cbegin(), nodes.cend());
|
2016-03-03 08:26:13 -05:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
NodeReverseRange GetUncompressedReverseGeometry(const EdgeID id) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2018-04-06 09:09:52 -04:00
|
|
|
return NodeReverseRange(GetUncompressedForwardGeometry(id));
|
2016-07-22 12:23:54 -04:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
WeightForwardRange GetUncompressedForwardWeights(const EdgeID /* id */) const override
|
2016-07-22 12:23:54 -04:00
|
|
|
{
|
2018-04-06 09:09:52 -04:00
|
|
|
static std::uint64_t data[] = {1, 2, 3};
|
|
|
|
static const extractor::SegmentDataView::SegmentWeightVector weights(
|
|
|
|
util::vector_view<std::uint64_t>(data, 3), 3);
|
|
|
|
return WeightForwardRange(weights.begin(), weights.end());
|
2016-07-22 12:23:54 -04:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
WeightReverseRange GetUncompressedReverseWeights(const EdgeID id) const override
|
2016-07-22 12:23:54 -04:00
|
|
|
{
|
2018-04-06 09:09:52 -04:00
|
|
|
return WeightReverseRange(GetUncompressedForwardWeights(id));
|
2016-05-12 12:50:10 -04:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
DurationForwardRange GetUncompressedForwardDurations(const EdgeID /*id*/) const override
|
2016-05-12 12:50:10 -04:00
|
|
|
{
|
2018-04-06 09:09:52 -04:00
|
|
|
static std::uint64_t data[] = {1, 2, 3};
|
|
|
|
static const extractor::SegmentDataView::SegmentDurationVector durations(
|
|
|
|
util::vector_view<std::uint64_t>(data, 3), 3);
|
|
|
|
return DurationForwardRange(durations.begin(), durations.end());
|
2016-05-12 12:50:10 -04:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
DurationReverseRange GetUncompressedReverseDurations(const EdgeID id) const override
|
2016-05-12 12:50:10 -04:00
|
|
|
{
|
2018-04-06 09:09:52 -04:00
|
|
|
return DurationReverseRange(GetUncompressedForwardDurations(id));
|
2016-07-22 12:23:54 -04:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
DatasourceForwardRange GetUncompressedForwardDatasources(const EdgeID /*id*/) const override
|
2016-07-22 12:23:54 -04:00
|
|
|
{
|
|
|
|
return {};
|
2016-03-03 08:26:13 -05:00
|
|
|
}
|
2018-04-06 09:09:52 -04:00
|
|
|
DatasourceReverseRange GetUncompressedReverseDatasources(const EdgeID /*id*/) const override
|
2016-03-29 04:49:01 -04:00
|
|
|
{
|
2018-04-06 09:09:52 -04:00
|
|
|
return DatasourceReverseRange(DatasourceForwardRange());
|
2016-03-29 04:49:01 -04:00
|
|
|
}
|
2016-12-15 12:27:09 -05:00
|
|
|
|
|
|
|
StringView GetDatasourceName(const DatasourceID) const override final { return {}; }
|
|
|
|
|
2018-01-05 08:33:53 -05:00
|
|
|
osrm::guidance::TurnInstruction
|
2016-12-15 12:27:09 -05:00
|
|
|
GetTurnInstructionForEdgeID(const EdgeID /* id */) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2018-01-05 08:33:53 -05:00
|
|
|
return osrm::guidance::TurnInstruction::NO_TURN();
|
2016-03-03 16:25:01 -05:00
|
|
|
}
|
2016-03-11 12:03:46 -05:00
|
|
|
std::vector<RTreeLeaf> GetEdgesInBox(const util::Coordinate /* south_west */,
|
2016-05-06 20:56:08 -04:00
|
|
|
const util::Coordinate /*north_east */) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2016-03-11 12:03:46 -05:00
|
|
|
return {};
|
2016-03-03 16:25:01 -05:00
|
|
|
}
|
2016-03-11 12:03:46 -05:00
|
|
|
|
|
|
|
std::vector<engine::PhantomNodeWithDistance>
|
|
|
|
NearestPhantomNodesInRange(const util::Coordinate /*input_coordinate*/,
|
|
|
|
const float /*max_distance*/,
|
|
|
|
const int /*bearing*/,
|
2017-05-23 06:23:22 -04:00
|
|
|
const int /*bearing_range*/,
|
2018-12-13 19:10:32 -05:00
|
|
|
const engine::Approach /*approach*/,
|
|
|
|
const bool /*use_all_edges*/) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2016-03-11 12:03:46 -05:00
|
|
|
return {};
|
2016-03-03 16:25:01 -05:00
|
|
|
}
|
2016-03-11 12:03:46 -05:00
|
|
|
|
|
|
|
std::vector<engine::PhantomNodeWithDistance>
|
|
|
|
NearestPhantomNodesInRange(const util::Coordinate /*input_coordinate*/,
|
2017-05-23 06:23:22 -04:00
|
|
|
const float /*max_distance*/,
|
2018-12-13 19:10:32 -05:00
|
|
|
const engine::Approach /*approach*/,
|
|
|
|
const bool /*use_all_edges*/) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2016-03-11 12:03:46 -05:00
|
|
|
return {};
|
2016-03-03 16:25:01 -05:00
|
|
|
}
|
2016-03-11 12:03:46 -05:00
|
|
|
|
|
|
|
std::vector<engine::PhantomNodeWithDistance>
|
|
|
|
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
|
|
|
|
const unsigned /*max_results*/,
|
|
|
|
const double /*max_distance*/,
|
|
|
|
const int /*bearing*/,
|
2017-05-23 06:23:22 -04:00
|
|
|
const int /*bearing_range*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-03 08:26:13 -05:00
|
|
|
{
|
2016-03-11 12:03:46 -05:00
|
|
|
return {};
|
2016-03-03 16:25:01 -05:00
|
|
|
}
|
2016-03-11 12:03:46 -05:00
|
|
|
|
|
|
|
std::vector<engine::PhantomNodeWithDistance>
|
|
|
|
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
|
|
|
|
const unsigned /*max_results*/,
|
|
|
|
const int /*bearing*/,
|
2017-05-23 06:23:22 -04:00
|
|
|
const int /*bearing_range*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
std::vector<engine::PhantomNodeWithDistance>
|
2016-03-29 04:49:01 -04:00
|
|
|
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
|
2017-05-23 06:23:22 -04:00
|
|
|
const unsigned /*max_results*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
std::vector<engine::PhantomNodeWithDistance>
|
|
|
|
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
|
|
|
|
const unsigned /*max_results*/,
|
2017-05-23 06:23:22 -04:00
|
|
|
const double /*max_distance*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
std::pair<engine::PhantomNode, engine::PhantomNode>
|
2017-05-29 08:46:11 -04:00
|
|
|
NearestPhantomNodeWithAlternativeFromBigComponent(
|
|
|
|
const util::Coordinate /*input_coordinate*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
std::pair<engine::PhantomNode, engine::PhantomNode>
|
2017-05-29 08:46:11 -04:00
|
|
|
NearestPhantomNodeWithAlternativeFromBigComponent(
|
|
|
|
const util::Coordinate /*input_coordinate*/,
|
|
|
|
const double /*max_distance*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
std::pair<engine::PhantomNode, engine::PhantomNode>
|
2017-05-29 08:46:11 -04:00
|
|
|
NearestPhantomNodeWithAlternativeFromBigComponent(
|
|
|
|
const util::Coordinate /*input_coordinate*/,
|
|
|
|
const double /*max_distance*/,
|
|
|
|
const int /*bearing*/,
|
|
|
|
const int /*bearing_range*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
|
|
std::pair<engine::PhantomNode, engine::PhantomNode>
|
2017-05-29 08:46:11 -04:00
|
|
|
NearestPhantomNodeWithAlternativeFromBigComponent(
|
|
|
|
const util::Coordinate /*input_coordinate*/,
|
|
|
|
const int /*bearing*/,
|
|
|
|
const int /*bearing_range*/,
|
|
|
|
const engine::Approach /*approach*/) const override
|
2016-03-11 12:03:46 -05:00
|
|
|
{
|
|
|
|
return {};
|
2016-08-17 03:49:19 -04:00
|
|
|
}
|
2016-03-11 12:03:46 -05:00
|
|
|
|
2018-03-28 19:18:09 -04:00
|
|
|
std::uint32_t GetCheckSum() const override { return 0; }
|
2016-12-15 12:27:09 -05:00
|
|
|
|
2017-04-25 05:36:34 -04:00
|
|
|
extractor::TravelMode GetTravelMode(const NodeID /* id */) const override
|
|
|
|
{
|
2017-11-01 18:33:50 -04:00
|
|
|
return extractor::TRAVEL_MODE_INACCESSIBLE;
|
2017-04-25 05:36:34 -04:00
|
|
|
}
|
2017-06-27 18:01:05 -04:00
|
|
|
|
|
|
|
extractor::ClassData GetClassData(const NodeID /*id*/) const override final { return 0; }
|
|
|
|
|
|
|
|
std::vector<std::string> GetClasses(const extractor::ClassData /*data*/) const override final
|
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
2017-04-25 05:36:34 -04:00
|
|
|
NameID GetNameIndex(const NodeID /* id */) const override { return 0; }
|
2016-12-15 12:27:09 -05:00
|
|
|
|
|
|
|
StringView GetNameForID(const NameID) const override final { return {}; }
|
|
|
|
StringView GetRefForID(const NameID) const override final { return {}; }
|
|
|
|
StringView GetPronunciationForID(const NameID) const override final { return {}; }
|
|
|
|
StringView GetDestinationsForID(const NameID) const override final { return {}; }
|
2017-06-29 16:12:25 -04:00
|
|
|
StringView GetExitsForID(const NameID) const override final { return {}; }
|
2016-12-15 12:27:09 -05:00
|
|
|
|
2016-04-12 12:47:00 -04:00
|
|
|
bool GetContinueStraightDefault() const override { return true; }
|
2016-11-01 17:13:10 -04:00
|
|
|
double GetMapMatchingMaxSpeed() const override { return 180 / 3.6; }
|
2016-05-12 12:50:10 -04:00
|
|
|
const char *GetWeightName() const override final { return "duration"; }
|
|
|
|
unsigned GetWeightPrecision() const override final { return 1; }
|
2017-01-17 03:24:52 -05:00
|
|
|
double GetWeightMultiplier() const override final { return 10.; }
|
2017-08-16 06:07:46 -04:00
|
|
|
bool IsLeftHandDriving(const NodeID /*id*/) const override { return false; }
|
2017-11-03 06:55:22 -04:00
|
|
|
bool IsSegregated(const NodeID /*id*/) const override { return false; }
|
2016-05-12 05:16:52 -04:00
|
|
|
|
2018-01-08 13:12:06 -05:00
|
|
|
guidance::TurnBearing PreTurnBearing(const EdgeID /*eid*/) const override final
|
2016-08-17 03:49:19 -04:00
|
|
|
{
|
2018-01-08 13:12:06 -05:00
|
|
|
return guidance::TurnBearing{0.0};
|
2016-08-17 03:49:19 -04:00
|
|
|
}
|
2018-01-08 13:12:06 -05:00
|
|
|
guidance::TurnBearing PostTurnBearing(const EdgeID /*eid*/) const override final
|
2016-08-17 03:49:19 -04:00
|
|
|
{
|
2018-01-08 13:12:06 -05:00
|
|
|
return guidance::TurnBearing{0.0};
|
2016-08-17 03:49:19 -04:00
|
|
|
}
|
|
|
|
|
2017-04-01 21:00:03 -04:00
|
|
|
bool HasLaneData(const EdgeID /*id*/) const override final { return true; };
|
2016-10-04 15:28:13 -04:00
|
|
|
util::guidance::LaneTupleIdPair GetLaneData(const EdgeID /*id*/) const override final
|
2016-06-21 04:41:08 -04:00
|
|
|
{
|
|
|
|
return {{0, 0}, 0};
|
|
|
|
}
|
2018-01-05 08:33:53 -05:00
|
|
|
extractor::TurnLaneDescription
|
2016-06-21 04:41:08 -04:00
|
|
|
GetTurnDescription(const LaneDescriptionID /*lane_description_id*/) const override final
|
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
2016-06-15 08:38:24 -04:00
|
|
|
|
2017-06-19 09:27:46 -04:00
|
|
|
util::guidance::BearingClass GetBearingClass(const NodeID /*node*/) const override
|
2016-05-12 05:16:52 -04:00
|
|
|
{
|
|
|
|
util::guidance::BearingClass result;
|
|
|
|
result.add(0);
|
|
|
|
result.add(90);
|
|
|
|
result.add(180);
|
|
|
|
result.add(270);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2017-06-19 09:27:46 -04:00
|
|
|
util::guidance::EntryClass GetEntryClass(const EdgeID /*id*/) const override
|
2016-05-12 05:16:52 -04:00
|
|
|
{
|
|
|
|
util::guidance::EntryClass result;
|
|
|
|
result.activate(1);
|
|
|
|
result.activate(2);
|
|
|
|
result.activate(3);
|
|
|
|
return result;
|
|
|
|
}
|
2018-02-09 13:32:09 -05:00
|
|
|
|
|
|
|
std::vector<extractor::ManeuverOverride>
|
|
|
|
GetOverridesThatStartAt(const NodeID /* edge_based_node_id */) const override
|
|
|
|
{
|
|
|
|
return {};
|
|
|
|
}
|
2016-03-03 16:25:01 -05:00
|
|
|
};
|
2017-01-09 15:40:33 -05:00
|
|
|
|
|
|
|
template <typename AlgorithmT> class MockAlgorithmDataFacade;
|
|
|
|
|
|
|
|
template <>
|
2017-03-31 06:52:04 -04:00
|
|
|
class MockAlgorithmDataFacade<engine::datafacade::CH>
|
|
|
|
: public engine::datafacade::AlgorithmDataFacade<engine::datafacade::CH>
|
2017-01-09 15:40:33 -05:00
|
|
|
{
|
|
|
|
private:
|
|
|
|
EdgeData foo;
|
|
|
|
|
|
|
|
public:
|
|
|
|
unsigned GetNumberOfNodes() const override { return 0; }
|
|
|
|
unsigned GetNumberOfEdges() const override { return 0; }
|
|
|
|
unsigned GetOutDegree(const NodeID /* n */) const override { return 0; }
|
|
|
|
NodeID GetTarget(const EdgeID /* e */) const override { return SPECIAL_NODEID; }
|
|
|
|
const EdgeData &GetEdgeData(const EdgeID /* e */) const override { return foo; }
|
2017-08-20 19:24:05 -04:00
|
|
|
EdgeRange GetAdjacentEdgeRange(const NodeID /* node */) const override
|
2017-01-09 15:40:33 -05:00
|
|
|
{
|
2017-08-20 19:24:05 -04:00
|
|
|
return EdgeRange(static_cast<EdgeID>(0), static_cast<EdgeID>(0), {});
|
2017-01-09 15:40:33 -05:00
|
|
|
}
|
|
|
|
EdgeID FindEdge(const NodeID /* from */, const NodeID /* to */) const override
|
|
|
|
{
|
|
|
|
return SPECIAL_EDGEID;
|
|
|
|
}
|
|
|
|
EdgeID FindEdgeInEitherDirection(const NodeID /* from */, const NodeID /* to */) const override
|
|
|
|
{
|
|
|
|
return SPECIAL_EDGEID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EdgeID FindSmallestEdge(const NodeID /* from */,
|
|
|
|
const NodeID /* to */,
|
|
|
|
std::function<bool(EdgeData)> /* filter */) const override
|
|
|
|
{
|
|
|
|
return SPECIAL_EDGEID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EdgeID FindEdgeIndicateIfReverse(const NodeID /* from */,
|
|
|
|
const NodeID /* to */,
|
|
|
|
bool & /* result */) const override
|
|
|
|
{
|
|
|
|
return SPECIAL_EDGEID;
|
|
|
|
}
|
2017-02-25 00:13:38 -05:00
|
|
|
};
|
|
|
|
|
2017-01-09 15:40:33 -05:00
|
|
|
template <typename AlgorithmT>
|
|
|
|
class MockDataFacade final : public MockBaseDataFacade, public MockAlgorithmDataFacade<AlgorithmT>
|
|
|
|
{
|
|
|
|
};
|
|
|
|
|
2016-03-11 12:03:46 -05:00
|
|
|
} // ns test
|
|
|
|
} // ns osrm
|
2016-03-03 16:25:01 -05:00
|
|
|
|
|
|
|
#endif // MOCK_DATAFACADE_HPP
|