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

Function TestSerialization

libs/routing/routing_tests/cross_mwm_connector_test.cpp:162–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

160
161template <typename CrossMwmId>
162void TestSerialization(CrossMwmConnectorBuilderEx<CrossMwmId> & builder)
163{
164 double constexpr kEdgesWeight = 4444.0;
165
166 vector<uint8_t> buffer;
167 builder.PrepareConnector(VehicleType::Car);
168 builder.FillWeights([&](Segment const &, Segment const &) { return kEdgesWeight; });
169
170 MemWriter<vector<uint8_t>> writer(buffer);
171 builder.Serialize(writer);
172
173 MemReader reader(buffer.data(), buffer.size());
174
175 CrossMwmBuilderTestFixture<CrossMwmId> test;
176
177 test.builder.DeserializeTransitions(VehicleType::Car, reader);
178
179 TestConnectorConsistency(test.connector);
180
181 TEST_EQUAL(test.connector.GetNumEnters(), 2, ());
182 TEST_EQUAL(test.connector.GetNumExits(), 1, ());
183
184 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 0, 0, true), true /* isOutgoing */), ());
185
186 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 10, 1, true /* forward */), true /* isOutgoing */), ());
187 TEST(test.connector.IsTransition(Segment(kTestMwmId, 10, 1, true /* forward */), false /* isOutgoing */), ());
188 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 10, 1, false /* forward */), true /* isOutgoing */), ());
189 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 10, 1, false /* forward */), false /* isOutgoing */), ());
190
191 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 20, 2, true /* forward */), true /* isOutgoing */), ());
192 TEST(test.connector.IsTransition(Segment(kTestMwmId, 20, 2, true /* forward */), false /* isOutgoing */), ());
193 TEST(test.connector.IsTransition(Segment(kTestMwmId, 20, 2, false /* forward */), true /* isOutgoing */), ());
194 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 20, 2, false /* forward */), false /* isOutgoing */), ());
195
196 TEST(!test.connector.IsTransition(Segment(kTestMwmId, 30, 3, true /* forward */), true /* isOutgoing */), ());
197
198 TEST(!test.connector.WeightsWereLoaded(), ());
199 TEST(!test.connector.HasWeights(), ());
200
201 test.builder.DeserializeWeights(reader);
202
203 TEST(test.connector.WeightsWereLoaded(), ());
204 TEST(test.connector.HasWeights(), ());
205
206 TestOutgoingEdges(test.connector, Segment(kTestMwmId, 10, 1, true /* forward */),
207 {{Segment(kTestMwmId, 20, 2, false /* forward */), RouteWeight::FromCrossMwmWeight(kEdgesWeight)}});
208
209 TestOutgoingEdges(test.connector, Segment(kTestMwmId, 20, 2, true /* forward */),
210 {{Segment(kTestMwmId, 20, 2, false /* forward */), RouteWeight::FromCrossMwmWeight(kEdgesWeight)}});
211}
212
213void GetCrossMwmId(uint32_t i, base::GeoObjectId & id)
214{

Callers 1

UNIT_TESTFunction · 0.70

Calls 15

TestConnectorConsistencyFunction · 0.85
TESTFunction · 0.85
FillWeightsMethod · 0.80
WeightsWereLoadedMethod · 0.80
HasWeightsMethod · 0.80
DeserializeWeightsMethod · 0.80
TestOutgoingEdgesFunction · 0.70
SegmentClass · 0.50
SerializeMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected