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

Function TestSerDesSpeedCamera

libs/routing/routing_tests/speed_cameras_tests.cpp:82–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80// Test for serialize/deserialize of speed cameras.
81
82bool TestSerDesSpeedCamera(std::vector<SpeedCameraMetadata> const & speedCamerasMetadata)
83{
84 if (speedCamerasMetadata.empty())
85 return true;
86
87 CHECK_EQUAL(speedCamerasMetadata[0].m_ways.size(), 1, (kErrorMessageOneWay));
88 for (size_t i = 1; i < speedCamerasMetadata.size(); ++i)
89 {
90 CHECK_EQUAL(speedCamerasMetadata[i].m_ways.size(), 1, (kErrorMessageOneWay));
91 CHECK_LESS_OR_EQUAL(speedCamerasMetadata[i - 1].m_ways.back().m_featureId,
92 speedCamerasMetadata[i].m_ways.back().m_featureId,
93 ("Ways of cameras should be sorted by featureId for delta coding"));
94 }
95
96 ScopedDir scopedDir(kTestDir);
97 auto const testFile = base::JoinPath(kTestDir, kTestFileForCamera);
98 ScopedFile scopedFile(testFile, "");
99 auto const & writableDir = GetPlatform().WritableDir();
100 auto const & filePath = base::JoinPath(writableDir, testFile);
101
102 {
103 FileWriter writer(filePath);
104 uint32_t prevFeatureId = 0;
105 for (auto const & metadata : speedCamerasMetadata)
106 SerializeSpeedCamera(writer, metadata, prevFeatureId);
107 }
108
109 {
110 FileReader reader(filePath);
111 ReaderSource<FileReader> src(reader);
112 uint32_t prevFeatureId = 0;
113 for (auto const & metadata : speedCamerasMetadata)
114 {
115 auto const & way = metadata.m_ways.back();
116 auto const res = DeserializeSpeedCamera(src, prevFeatureId);
117 TEST_EQUAL(res.first, SegmentCoord(way.m_featureId, way.m_segmentId), ());
118 TEST(AlmostEqualAbs(res.second.m_coef, way.m_coef, 1e-5), ());
119 TEST_EQUAL(res.second.m_maxSpeedKmPH, metadata.m_maxSpeedKmPH, ());
120 }
121 }
122
123 return true;
124}
125
126UNIT_TEST(SpeedCamera_SerDes_1)
127{

Callers 1

UNIT_TESTFunction · 0.85

Calls 8

JoinPathFunction · 0.85
SerializeSpeedCameraFunction · 0.85
DeserializeSpeedCameraFunction · 0.85
TESTFunction · 0.85
backMethod · 0.80
AlmostEqualAbsFunction · 0.50
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected