MCPcopy Create free account
hub / github.com/comaps/comaps / TestMaxspeedsSerialization

Function TestMaxspeedsSerialization

libs/routing/routing_tests/maxspeeds_tests.cpp:25–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23using namespace std;
24
25void TestMaxspeedsSerialization(vector<FeatureMaxspeed> const & speeds)
26{
27 vector<char> buffer;
28 MemWriter<vector<char>> w(buffer);
29
30 std::vector<MaxspeedsSerializer::FeatureSpeedMacro> inputSpeeds;
31 inputSpeeds.reserve(speeds.size());
32 MaxspeedConverter const & converter = GetMaxspeedConverter();
33 for (auto const & s : speeds)
34 {
35 inputSpeeds.push_back({s.GetFeatureId(), converter.SpeedToMacro(s.GetForwardSpeedInUnits()),
36 converter.SpeedToMacro(s.GetBackwardSpeedInUnits())});
37 }
38
39 int constexpr SPEEDS_COUNT = MaxspeedsSerializer::DEFAULT_SPEEDS_COUNT;
40 SpeedInUnits defSpeeds[SPEEDS_COUNT];
41 MaxspeedsSerializer::HW2SpeedMap defaultMap[SPEEDS_COUNT];
42
43 if (!speeds.empty())
44 {
45 defSpeeds[0] = speeds.front().GetForwardSpeedInUnits();
46 defSpeeds[1] = speeds.back().GetForwardSpeedInUnits();
47 defaultMap[0][HighwayType::HighwayPrimary] = converter.SpeedToMacro(defSpeeds[0]);
48 defaultMap[1][HighwayType::HighwaySecondary] = converter.SpeedToMacro(defSpeeds[1]);
49 }
50
51 MaxspeedsSerializer::Serialize(inputSpeeds, defaultMap, w);
52
53 size_t const sz = buffer.size();
54
55 MemReader r(buffer.data(), sz);
56 ReaderSource<MemReader> src(r);
57 Maxspeeds maxspeeds;
58 MaxspeedsSerializer::Deserialize(src, maxspeeds);
59
60 for (auto const & s : speeds)
61 TEST_EQUAL(maxspeeds.GetMaxspeed(s.GetFeatureId()), s.GetMaxspeed(), (s));
62
63 TEST_EQUAL(maxspeeds.GetDefaultSpeed(false, HighwayType::HighwayPrimary), defSpeeds[0].GetSpeed(), ());
64 TEST_EQUAL(maxspeeds.GetDefaultSpeed(true, HighwayType::HighwaySecondary), defSpeeds[1].GetSpeed(), ());
65}
66
67UNIT_TEST(MaxspeedConverter_Smoke)
68{

Callers 1

UNIT_TESTFunction · 0.85

Calls 15

SerializeFunction · 0.85
SpeedToMacroMethod · 0.80
frontMethod · 0.80
backMethod · 0.80
GetMaxspeedMethod · 0.80
GetDefaultSpeedMethod · 0.80
reserveMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45
GetFeatureIdMethod · 0.45

Tested by

no test coverage detected