osrm-backend/unit_tests/mocks/mock_datafacade.hpp

329 lines
11 KiB
C++
Raw Normal View History

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"
#include "extractor/class_data.hpp"
2018-02-09 13:32:09 -05:00
#include "extractor/maneuver_override.hpp"
#include "extractor/travel_mode.hpp"
#include "extractor/turn_lane_types.hpp"
#include "guidance/turn_bearing.hpp"
#include "guidance/turn_instruction.hpp"
2018-02-09 13:32:09 -05:00
#include "guidance/turn_instruction.hpp"
#include "engine/algorithm.hpp"
#include "engine/datafacade/algorithm_datafacade.hpp"
2016-05-27 15:05:04 -04:00
#include "engine/datafacade/datafacade_base.hpp"
#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
class MockBaseDataFacade : public engine::datafacade::BaseDataFacade
2016-03-03 16:25:01 -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; };
util::Coordinate GetCoordinateOfNode(const NodeID /* id */) const override
2016-03-03 08:26:13 -05:00
{
return {util::FixedLongitude{0}, util::FixedLatitude{0}};
2016-03-03 16:25:01 -05:00
}
OSMNodeID GetOSMNodeIDOfNode(const NodeID /* id */) const override { return OSMNodeID{0}; }
bool EdgeIsCompressed(const EdgeID /* id */) const { return false; }
GeometryID GetGeometryIndex(const NodeID /* id */) const override
{
return GeometryID{SPECIAL_GEOMETRYID, false};
}
ComponentID GetComponentID(const NodeID /* id */) const override
{
return ComponentID{INVALID_COMPONENTID, false};
}
TurnPenalty GetWeightPenaltyForEdgeID(const unsigned /* id */) const override final
{
return 0;
}
TurnPenalty GetDurationPenaltyForEdgeID(const unsigned /* id */) const override final
{
return 0;
}
NodesIDRangeT GetUncompressedForwardGeometry(const EdgeID /* id */) const override
2016-03-03 08:26:13 -05:00
{
return {};
2016-03-03 08:26:13 -05:00
}
NodesIDRangeT GetUncompressedReverseGeometry(const EdgeID /* id */) const override
2016-03-03 08:26:13 -05:00
{
return {};
}
WeightsRangeT GetUncompressedForwardWeights(const EdgeID /* id */) const override
{
static const std::vector<SegmentWeight> result_weights{1, 2, 3};
return result_weights;
}
WeightsRangeT GetUncompressedReverseWeights(const EdgeID id) const override
{
return GetUncompressedForwardWeights(id);
}
DurationsRangeT GetUncompressedForwardDurations(const EdgeID /*id*/) const override
{
static const std::vector<SegmentDuration> data{1, 2, 3};
return data;
}
DurationsRangeT GetUncompressedReverseDurations(const EdgeID /*id*/) const override
{
static const std::vector<SegmentDuration> data{1, 2, 3};
return data;
}
DatasourceIDRangeT GetUncompressedForwardDatasources(const EdgeID /*id*/) const override
{
return {};
2016-03-03 08:26:13 -05:00
}
DatasourceIDRangeT GetUncompressedReverseDatasources(const EdgeID /*id*/) const override
{
return {};
}
StringView GetDatasourceName(const DatasourceID) const override final { return {}; }
osrm::guidance::TurnInstruction
GetTurnInstructionForEdgeID(const EdgeID /* id */) const override
2016-03-03 08:26:13 -05:00
{
return osrm::guidance::TurnInstruction::NO_TURN();
2016-03-03 16:25:01 -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
{
return {};
2016-03-03 16:25:01 -05:00
}
std::vector<engine::PhantomNodeWithDistance>
NearestPhantomNodesInRange(const util::Coordinate /*input_coordinate*/,
const float /*max_distance*/,
const int /*bearing*/,
const int /*bearing_range*/,
const engine::Approach /*approach*/) const override
2016-03-03 08:26:13 -05:00
{
return {};
2016-03-03 16:25:01 -05:00
}
std::vector<engine::PhantomNodeWithDistance>
NearestPhantomNodesInRange(const util::Coordinate /*input_coordinate*/,
const float /*max_distance*/,
const engine::Approach /*approach*/) const override
2016-03-03 08:26:13 -05:00
{
return {};
2016-03-03 16:25:01 -05:00
}
std::vector<engine::PhantomNodeWithDistance>
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
const unsigned /*max_results*/,
const double /*max_distance*/,
const int /*bearing*/,
const int /*bearing_range*/,
const engine::Approach /*approach*/) const override
2016-03-03 08:26:13 -05:00
{
return {};
2016-03-03 16:25:01 -05:00
}
std::vector<engine::PhantomNodeWithDistance>
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
const unsigned /*max_results*/,
const int /*bearing*/,
const int /*bearing_range*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::vector<engine::PhantomNodeWithDistance>
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
const unsigned /*max_results*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::vector<engine::PhantomNodeWithDistance>
NearestPhantomNodes(const util::Coordinate /*input_coordinate*/,
const unsigned /*max_results*/,
const double /*max_distance*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::pair<engine::PhantomNode, engine::PhantomNode>
NearestPhantomNodeWithAlternativeFromBigComponent(
const util::Coordinate /*input_coordinate*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::pair<engine::PhantomNode, engine::PhantomNode>
NearestPhantomNodeWithAlternativeFromBigComponent(
const util::Coordinate /*input_coordinate*/,
const double /*max_distance*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::pair<engine::PhantomNode, engine::PhantomNode>
NearestPhantomNodeWithAlternativeFromBigComponent(
const util::Coordinate /*input_coordinate*/,
const double /*max_distance*/,
const int /*bearing*/,
const int /*bearing_range*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::pair<engine::PhantomNode, engine::PhantomNode>
NearestPhantomNodeWithAlternativeFromBigComponent(
const util::Coordinate /*input_coordinate*/,
const int /*bearing*/,
const int /*bearing_range*/,
const engine::Approach /*approach*/) const override
{
return {};
}
std::uint32_t GetCheckSum() const override { return 0; }
extractor::TravelMode GetTravelMode(const NodeID /* id */) const override
{
return extractor::TRAVEL_MODE_INACCESSIBLE;
}
extractor::ClassData GetClassData(const NodeID /*id*/) const override final { return 0; }
std::vector<std::string> GetClasses(const extractor::ClassData /*data*/) const override final
{
return {};
}
NameID GetNameIndex(const NodeID /* id */) const override { return 0; }
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 {}; }
StringView GetExitsForID(const NameID) const override final { return {}; }
2016-04-12 12:47:00 -04:00
bool GetContinueStraightDefault() const override { return true; }
double GetMapMatchingMaxSpeed() const override { return 180 / 3.6; }
const char *GetWeightName() const override final { return "duration"; }
unsigned GetWeightPrecision() const override final { return 1; }
double GetWeightMultiplier() const override final { return 10.; }
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; }
guidance::TurnBearing PreTurnBearing(const EdgeID /*eid*/) const override final
{
return guidance::TurnBearing{0.0};
}
guidance::TurnBearing PostTurnBearing(const EdgeID /*eid*/) const override final
{
return guidance::TurnBearing{0.0};
}
2017-04-01 21:00:03 -04:00
bool HasLaneData(const EdgeID /*id*/) const override final { return true; };
util::guidance::LaneTupleIdPair GetLaneData(const EdgeID /*id*/) const override final
{
return {{0, 0}, 0};
}
extractor::TurnLaneDescription
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
{
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
{
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
};
template <typename AlgorithmT> class MockAlgorithmDataFacade;
template <>
class MockAlgorithmDataFacade<engine::datafacade::CH>
: public engine::datafacade::AlgorithmDataFacade<engine::datafacade::CH>
{
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; }
EdgeRange GetAdjacentEdgeRange(const NodeID /* node */) const override
{
return EdgeRange(static_cast<EdgeID>(0), static_cast<EdgeID>(0), {});
}
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
};
template <typename AlgorithmT>
class MockDataFacade final : public MockBaseDataFacade, public MockAlgorithmDataFacade<AlgorithmT>
{
};
} // ns test
} // ns osrm
2016-03-03 16:25:01 -05:00
#endif // MOCK_DATAFACADE_HPP