Repo created
This commit is contained in:
parent
4af19165ec
commit
68073add76
12458 changed files with 12350765 additions and 2 deletions
10
libs/transit/transit_experimental_tests/CMakeLists.txt
Normal file
10
libs/transit/transit_experimental_tests/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
project(transit_experimental_tests)
|
||||
|
||||
set(SRC
|
||||
parse_transit_from_json_tests.cpp
|
||||
transit_serdes_tests.cpp
|
||||
)
|
||||
|
||||
omim_add_test(${PROJECT_NAME} ${SRC})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} transit)
|
||||
|
|
@ -0,0 +1,281 @@
|
|||
#include "testing/testing.hpp"
|
||||
|
||||
#include "transit/transit_tests/transit_tools.hpp"
|
||||
|
||||
#include "transit/experimental/transit_data.hpp"
|
||||
|
||||
#include "base/assert.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
namespace transit
|
||||
{
|
||||
namespace experimental
|
||||
{
|
||||
template <typename... Args>
|
||||
void FillContainer(std::vector<std::string> const & lineByLineJsons, Args &&... args)
|
||||
{
|
||||
for (auto const & line : lineByLineJsons)
|
||||
Read(base::Json(line.c_str()), std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Network)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":4032061478,
|
||||
"title":"Tránsito Golden Gate"
|
||||
})",
|
||||
R"({
|
||||
"id":4035419389,
|
||||
"title":"Caltrain"
|
||||
})"};
|
||||
|
||||
std::vector<Network> const networksPlan = {Network(4032061478 /* transitId */, "Tránsito Golden Gate" /* title */),
|
||||
Network(4035419389 /* transitId */, "Caltrain" /* title */)};
|
||||
|
||||
std::vector<Network> networksFact;
|
||||
|
||||
FillContainer(lineByLineJson, networksFact);
|
||||
TestEqual(networksFact, networksPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Route)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":4036206863,
|
||||
"network_id":4036206862,
|
||||
"color":"pink_dark",
|
||||
"type":"rail",
|
||||
"title":"Línea principal"
|
||||
})",
|
||||
R"({
|
||||
"id":4027700598,
|
||||
"network_id":4027700597,
|
||||
"color":"blue",
|
||||
"type":"bus",
|
||||
"title":"East Route"
|
||||
})"};
|
||||
|
||||
std::vector<Route> const routesPlan = {Route(4036206863 /* id */, 4036206862 /* networkId */, "rail" /* routeType */,
|
||||
"Línea principal" /* title */, "pink_dark" /* color */),
|
||||
Route(4027700598 /* id */, 4027700597 /* networkId */, "bus" /* routeType */,
|
||||
"East Route" /* title */, "blue" /* color */)};
|
||||
|
||||
std::vector<Route> routesFact;
|
||||
|
||||
FillContainer(lineByLineJson, routesFact);
|
||||
TestEqual(routesFact, routesPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Line)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":4036591532,
|
||||
"route_id":4036591423,
|
||||
"shape":{
|
||||
"id":4036591460,
|
||||
"start_index":415,
|
||||
"end_index":1691
|
||||
},
|
||||
"title":"Downtown",
|
||||
"stops_ids":[
|
||||
4036592571,
|
||||
4036592572,
|
||||
4036592573
|
||||
],
|
||||
"schedule":{
|
||||
"def_frequency":4060,
|
||||
"intervals":[
|
||||
{
|
||||
"dates_interval":75007489,
|
||||
"time_intervals":[{"time_interval":6530334760, "frequency":3000}]
|
||||
}],
|
||||
"exceptions":[
|
||||
{"exception":519, "time_intervals": []},
|
||||
{"exception":357, "time_intervals": []}
|
||||
]
|
||||
}
|
||||
})"};
|
||||
|
||||
FrequencyIntervals frequencies;
|
||||
frequencies.AddInterval(TimeInterval(6530334760), 3000);
|
||||
|
||||
Schedule schedule;
|
||||
schedule.SetDefaultFrequency(4060);
|
||||
|
||||
schedule.AddDatesInterval(DatesInterval(75007489), frequencies);
|
||||
schedule.AddDateException(DateException(519), {});
|
||||
schedule.AddDateException(DateException(357), {});
|
||||
|
||||
std::vector<Line> const linesPlan = {Line(4036591532 /* id */, 4036591423 /* routeId */,
|
||||
ShapeLink(4036591460 /* id */, 415 /* startIndex */, 1691 /* endIndex */),
|
||||
"Downtown" /* title */, IdList{4036592571, 4036592572, 4036592573},
|
||||
schedule)};
|
||||
|
||||
std::vector<Line> linesFact;
|
||||
|
||||
FillContainer(lineByLineJson, linesFact);
|
||||
TestEqual(linesFact, linesPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_LineMetadata)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":56,
|
||||
"shape_segments":[
|
||||
{
|
||||
"order":-1,
|
||||
"start_index":34,
|
||||
"end_index":99
|
||||
},
|
||||
{
|
||||
"order":-3,
|
||||
"start_index":99,
|
||||
"end_index":1069
|
||||
}
|
||||
]
|
||||
})"};
|
||||
|
||||
std::vector<LineMetadata> const linesMetadataPlan = {
|
||||
LineMetadata(56 /* id */, LineSegmentsOrder{LineSegmentOrder({34, 99}, -1), LineSegmentOrder({99, 1069}, -3)})};
|
||||
|
||||
std::vector<LineMetadata> linesMetadataFact;
|
||||
|
||||
FillContainer(lineByLineJson, linesMetadataFact);
|
||||
TestEqual(linesMetadataFact, linesMetadataPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Stop)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":4036592706,
|
||||
"point":{
|
||||
"x":-121.74124399999999,
|
||||
"y":41.042765953900343
|
||||
},
|
||||
"title":"Balfour Rd & Foothill Dr",
|
||||
"timetable":[{"line_id":204,"intervals":[11400205248]}],
|
||||
"transfer_ids":[
|
||||
4036593809,
|
||||
4036595406
|
||||
]
|
||||
})"};
|
||||
|
||||
std::vector<Stop> const stopsPlan = {
|
||||
Stop(4036592706 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */,
|
||||
"Balfour Rd & Foothill Dr", TimeTable{{204, std::vector<TimeInterval>{TimeInterval(11400205248)}}},
|
||||
m2::PointD(-121.74124, 41.04276), {4036593809, 4036595406} /* transferIds */)};
|
||||
|
||||
std::vector<Stop> stopsFact;
|
||||
|
||||
OsmIdToFeatureIdsMap dummyMapping;
|
||||
FillContainer(lineByLineJson, stopsFact, dummyMapping);
|
||||
TestEqual(stopsFact, stopsPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Gate)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":4034666808,
|
||||
"weights":[
|
||||
{
|
||||
"stop_id":4034666299,
|
||||
"time_to_stop":76
|
||||
},
|
||||
{
|
||||
"stop_id":4034666190,
|
||||
"time_to_stop":61
|
||||
}
|
||||
],
|
||||
"exit":true,
|
||||
"entrance":true,
|
||||
"point":{
|
||||
"x":-121.840608,
|
||||
"y":40.19395285260439
|
||||
}
|
||||
})"};
|
||||
|
||||
std::vector<Gate> const gatesPlan = {
|
||||
Gate(4034666808 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */, true /* entrance */,
|
||||
true /* exit */,
|
||||
std::vector<TimeFromGateToStop>{TimeFromGateToStop(4034666299 /* stopId */, 76 /* timeSeconds */),
|
||||
TimeFromGateToStop(4034666190 /* stopId */, 61 /* timeSeconds */)},
|
||||
m2::PointD(-121.8406, 40.19395))};
|
||||
|
||||
std::vector<Gate> gatesFact;
|
||||
|
||||
OsmIdToFeatureIdsMap dummyMapping;
|
||||
FillContainer(lineByLineJson, gatesFact, dummyMapping);
|
||||
TestEqual(gatesFact, gatesPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Edge)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"line_id":4036591958,
|
||||
"stop_id_from":4036592295,
|
||||
"stop_id_to":4036592296,
|
||||
"feature_id":10731,
|
||||
"weight":69,
|
||||
"shape":{
|
||||
"id":4036591484,
|
||||
"start_index":592,
|
||||
"end_index":609
|
||||
}
|
||||
})",
|
||||
R"({
|
||||
"stop_id_from":4030648032,
|
||||
"stop_id_to":4030648073,
|
||||
"feature_id":860522,
|
||||
"weight":40
|
||||
}
|
||||
)"};
|
||||
|
||||
std::vector<Edge> const edgesPlan = {
|
||||
Edge(4036592295 /* stop1Id */, 4036592296 /* stop2Id */, 69 /* weight */, 4036591958 /* lineId */,
|
||||
false /* transfer */, ShapeLink(4036591484 /* shapeId */, 592 /* startIndex */, 609 /* endIndex */)),
|
||||
Edge(4030648032 /* stop1Id */, 4030648073 /* stop2Id */, 40 /* weight */, kInvalidTransitId /* lineId */,
|
||||
true /* transfer */, ShapeLink(kInvalidTransitId /* shapeId */, 0 /* startIndex */, 0 /* endIndex */))};
|
||||
|
||||
std::vector<Edge> edgesFact;
|
||||
EdgeIdToFeatureId edgeIdToFeatureId;
|
||||
|
||||
FillContainer(lineByLineJson, edgesFact, edgeIdToFeatureId);
|
||||
TestEqual(edgesFact, edgesPlan);
|
||||
}
|
||||
|
||||
UNIT_TEST(ReadJson_Transfer)
|
||||
{
|
||||
std::vector<std::string> const lineByLineJson{
|
||||
R"({
|
||||
"id":4029752024,
|
||||
"point":{
|
||||
"x":-122.16915443000001,
|
||||
"y":40.41578164679229
|
||||
},
|
||||
"stops_ids":[
|
||||
4029751945,
|
||||
4029752010
|
||||
]
|
||||
}
|
||||
)"};
|
||||
|
||||
std::vector<Transfer> const transfersPlan = {Transfer(
|
||||
4029752024 /* id */, m2::PointD(-122.16915, 40.41578) /* point */, IdList{4029751945, 4029752010} /* stopIds */)};
|
||||
|
||||
std::vector<Transfer> transfersFact;
|
||||
|
||||
FillContainer(lineByLineJson, transfersFact);
|
||||
TestEqual(transfersFact, transfersPlan);
|
||||
}
|
||||
} // namespace experimental
|
||||
} // namespace transit
|
||||
212
libs/transit/transit_experimental_tests/transit_serdes_tests.cpp
Normal file
212
libs/transit/transit_experimental_tests/transit_serdes_tests.cpp
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
#include "testing/testing.hpp"
|
||||
|
||||
#include "transit/transit_tests/transit_tools.hpp"
|
||||
|
||||
#include "transit/experimental/transit_data.hpp"
|
||||
|
||||
#include "base/assert.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace transit
|
||||
{
|
||||
namespace experimental
|
||||
{
|
||||
enum class TransitUseCase
|
||||
{
|
||||
AllData,
|
||||
Routing,
|
||||
Rendering,
|
||||
CrossMwm
|
||||
};
|
||||
|
||||
void TestEqual(TransitData const & actualTransit, TransitData const & expectedTransit, TransitUseCase const & useCase)
|
||||
{
|
||||
switch (useCase)
|
||||
{
|
||||
case TransitUseCase::AllData:
|
||||
TestEqual(actualTransit.GetStops(), expectedTransit.GetStops());
|
||||
TestEqual(actualTransit.GetGates(), expectedTransit.GetGates());
|
||||
TestEqual(actualTransit.GetEdges(), expectedTransit.GetEdges());
|
||||
TestEqual(actualTransit.GetTransfers(), expectedTransit.GetTransfers());
|
||||
TestEqual(actualTransit.GetLines(), expectedTransit.GetLines());
|
||||
TestEqual(actualTransit.GetLinesMetadata(), expectedTransit.GetLinesMetadata());
|
||||
TestEqual(actualTransit.GetShapes(), expectedTransit.GetShapes());
|
||||
TestEqual(actualTransit.GetRoutes(), expectedTransit.GetRoutes());
|
||||
TestEqual(actualTransit.GetNetworks(), expectedTransit.GetNetworks());
|
||||
break;
|
||||
|
||||
case TransitUseCase::Routing:
|
||||
TestEqual(actualTransit.GetStops(), expectedTransit.GetStops());
|
||||
TestEqual(actualTransit.GetGates(), expectedTransit.GetGates());
|
||||
TestEqual(actualTransit.GetEdges(), expectedTransit.GetEdges());
|
||||
TEST(actualTransit.GetTransfers().empty(), ());
|
||||
TestEqual(actualTransit.GetLines(), expectedTransit.GetLines());
|
||||
TEST(actualTransit.GetShapes().empty(), ());
|
||||
TEST(actualTransit.GetRoutes().empty(), ());
|
||||
TEST(actualTransit.GetNetworks().empty(), ());
|
||||
break;
|
||||
|
||||
case TransitUseCase::Rendering:
|
||||
TestEqual(actualTransit.GetStops(), expectedTransit.GetStops());
|
||||
TEST(actualTransit.GetGates().empty(), ());
|
||||
TestEqual(actualTransit.GetEdges(), expectedTransit.GetEdges());
|
||||
TestEqual(actualTransit.GetTransfers(), expectedTransit.GetTransfers());
|
||||
TestEqual(actualTransit.GetLines(), expectedTransit.GetLines());
|
||||
TestEqual(actualTransit.GetLinesMetadata(), expectedTransit.GetLinesMetadata());
|
||||
TestEqual(actualTransit.GetShapes(), expectedTransit.GetShapes());
|
||||
TestEqual(actualTransit.GetRoutes(), expectedTransit.GetRoutes());
|
||||
TEST(actualTransit.GetNetworks().empty(), ());
|
||||
break;
|
||||
|
||||
case TransitUseCase::CrossMwm:
|
||||
TestEqual(actualTransit.GetStops(), expectedTransit.GetStops());
|
||||
TEST(actualTransit.GetGates().empty(), ());
|
||||
TestEqual(actualTransit.GetEdges(), expectedTransit.GetEdges());
|
||||
TEST(actualTransit.GetTransfers().empty(), ());
|
||||
TEST(actualTransit.GetLines().empty(), ());
|
||||
TEST(actualTransit.GetShapes().empty(), ());
|
||||
TEST(actualTransit.GetRoutes().empty(), ());
|
||||
TEST(actualTransit.GetNetworks().empty(), ());
|
||||
break;
|
||||
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
void SerDesTransit(TransitData & src, TransitData & dst, TransitUseCase const & useCase)
|
||||
{
|
||||
std::vector<uint8_t> buffer;
|
||||
MemWriter<decltype(buffer)> writer(buffer);
|
||||
src.Serialize(writer);
|
||||
|
||||
MemReader reader(buffer.data(), buffer.size());
|
||||
switch (useCase)
|
||||
{
|
||||
case TransitUseCase::AllData: dst.Deserialize(reader); break;
|
||||
case TransitUseCase::Routing: dst.DeserializeForRouting(reader); break;
|
||||
case TransitUseCase::Rendering: dst.DeserializeForRendering(reader); break;
|
||||
case TransitUseCase::CrossMwm: dst.DeserializeForCrossMwm(reader); break;
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
|
||||
dst.CheckValid();
|
||||
}
|
||||
|
||||
TransitData FillTestTransitData()
|
||||
{
|
||||
TransitData data;
|
||||
data.m_networks = {Network(4032061671 /* transitId */, "ГУП МосГорТранс" /* title */),
|
||||
Network(4035419440 /* transitId */, "EMPRESA DE TRANSPORTE DEL SUR SRL" /* title */),
|
||||
Network(4035418196 /* transitId */, "Buslink Sunraysia" /* title */)};
|
||||
|
||||
data.m_routes = {Route(4036206872 /* id */, 4035419440 /* networkId */, "bus" /* routeType */,
|
||||
"Echuca/Moama - Melbourne Via Shepparton" /* title */, "gray" /* color */),
|
||||
Route(4027700598 /* id */, 4035418196 /* networkId */, "ferry" /* routeType */,
|
||||
"Mount Beauty - Melbourne Via Brigh" /* title */, "purple" /* color */),
|
||||
Route(4027700599 /* id */, 4032061671 /* networkId */, "ferry" /* routeType */,
|
||||
"Киевский вокзал - парк Зарядье" /* title */, "purple" /* color */)};
|
||||
|
||||
FrequencyIntervals frequencies;
|
||||
frequencies.AddInterval(TimeInterval(6530334760), 3000);
|
||||
|
||||
Schedule schedule;
|
||||
schedule.SetDefaultFrequency(4060);
|
||||
|
||||
schedule.AddDatesInterval(DatesInterval(75007489), frequencies);
|
||||
|
||||
data.m_lines = {Line(4036598626 /* id */, 4036206872 /* routeId */,
|
||||
ShapeLink(4036591460 /* id */, 0 /* startIndex */, 2690 /* endIndex */), "740G" /* title */,
|
||||
IdList{4036592571, 4036592572, 4036592573, 4036592574, 4036592575, 4036592576}, schedule),
|
||||
Line(4036598627 /* id */, 4036206872 /* routeId */,
|
||||
ShapeLink(4036591461 /* id */, 356 /* startIndex */, 40690 /* endIndex */), "" /* title */,
|
||||
IdList{4027013783, 4027013784, 4027013785, 4027013786, 4027013787, 4027013788, 4027013789,
|
||||
4027013790, 4027013791, 4027013792, 4027013793, 4027013794, 4027013795, 4027013796,
|
||||
4027013797, 4027013798, 4027013799, 4027013800, 4027013801},
|
||||
schedule)};
|
||||
|
||||
data.m_linesMetadata = {LineMetadata(4036598626 /* id */, LineSegmentsOrder{LineSegmentOrder({0, 100}, 0),
|
||||
LineSegmentOrder({100, 205}, 2)}),
|
||||
LineMetadata(4036598627 /* id */, LineSegmentsOrder{})};
|
||||
|
||||
data.m_stops = {
|
||||
Stop(4026990853 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */,
|
||||
"CARLOS DIHEL 2500-2598" /* title */, TimeTable{{204, std::vector<TimeInterval>{TimeInterval(11400205248)}}},
|
||||
m2::PointD(-58.57196, -36.82596), {} /* transferIds */),
|
||||
Stop(4026990854 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */,
|
||||
"QUIROGA 1901-1999" /* title */, TimeTable{}, m2::PointD(-58.57196, -36.82967), {} /* transferIds */)};
|
||||
|
||||
data.SetStopPedestrianSegments(0 /* stopIdx */,
|
||||
{SingleMwmSegment(981 /* featureId */, 0 /* segmentIdx */, true /* forward */),
|
||||
SingleMwmSegment(91762 /* featureId */, 108 /* segmentIdx */, false /* forward */)});
|
||||
data.SetStopPedestrianSegments(1 /* stopIdx */,
|
||||
{SingleMwmSegment(15000 /* featureId */, 100 /* segmentIdx */, false /* forward */)});
|
||||
|
||||
data.m_gates = {
|
||||
Gate(4034666808 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */, true /* entrance */,
|
||||
true /* exit */,
|
||||
std::vector<TimeFromGateToStop>{TimeFromGateToStop(4026990854 /* stopId */, 76 /* timeSeconds */)},
|
||||
m2::PointD(-121.84063, 40.19393)),
|
||||
Gate(4034666809 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */, false /* entrance */,
|
||||
true /* exit */,
|
||||
std::vector<TimeFromGateToStop>{TimeFromGateToStop(4026990857 /* stopId */, 0 /* timeSeconds */),
|
||||
TimeFromGateToStop(4026990858 /* stopId */, 0 /* timeSeconds */)},
|
||||
m2::PointD(-58.96030, -36.40335)),
|
||||
Gate(4034666810 /* id */, kInvalidFeatureId /* featureId */, kInvalidOsmId /* osmId */, true /* entrance */,
|
||||
false /* exit */,
|
||||
std::vector<TimeFromGateToStop>{TimeFromGateToStop(4026990889 /* stopId */, 80 /* timeSeconds */),
|
||||
TimeFromGateToStop(4026990890 /* stopId */, 108 /* timeSeconds */),
|
||||
TimeFromGateToStop(4026990891 /* stopId */, 90 /* timeSeconds */)},
|
||||
m2::PointD(-58.96030, -36.40335))};
|
||||
|
||||
data.SetGatePedestrianSegments(1 /* gateIdx */,
|
||||
{SingleMwmSegment(6861 /* featureId */, 15 /* segmentIdx */, true /* forward */),
|
||||
SingleMwmSegment(307920 /* featureId */, 2 /* segmentIdx */, false /* forward */)});
|
||||
|
||||
data.m_edges = {
|
||||
Edge(4036592295 /* stop1Id */, 4036592296 /* stop2Id */, 69 /* weight */, 4036591958 /* lineId */,
|
||||
false /* transfer */, ShapeLink(4036591484 /* shapeId */, 592 /* startIndex */, 609 /* endIndex */)),
|
||||
Edge(4030648032 /* stop1Id */, 4030648073 /* stop2Id */, 40 /* weight */, kInvalidTransitId /* lineId */,
|
||||
true /* transfer */, ShapeLink(kInvalidTransitId /* shapeId */, 0 /* startIndex */, 0 /* endIndex */))};
|
||||
|
||||
data.m_transfers = {Transfer(4029752024 /* id */, m2::PointD(-122.16915, 40.41578) /* point */,
|
||||
IdList{4029751945, 4029752010} /* stopIds */)};
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
UNIT_TEST(SerDes_All)
|
||||
{
|
||||
TransitData plan = FillTestTransitData();
|
||||
TransitData fact;
|
||||
SerDesTransit(plan, fact, TransitUseCase::AllData);
|
||||
TestEqual(fact, plan, TransitUseCase::AllData);
|
||||
}
|
||||
|
||||
UNIT_TEST(SerDes_ForRouting)
|
||||
{
|
||||
TransitData plan = FillTestTransitData();
|
||||
TransitData fact;
|
||||
SerDesTransit(plan, fact, TransitUseCase::Routing);
|
||||
TestEqual(fact, plan, TransitUseCase::Routing);
|
||||
}
|
||||
|
||||
UNIT_TEST(SerDes_ForRendering)
|
||||
{
|
||||
TransitData plan = FillTestTransitData();
|
||||
TransitData fact;
|
||||
SerDesTransit(plan, fact, TransitUseCase::Rendering);
|
||||
TestEqual(fact, plan, TransitUseCase::Rendering);
|
||||
}
|
||||
|
||||
UNIT_TEST(SerDes_ForCrossMwm)
|
||||
{
|
||||
TransitData plan = FillTestTransitData();
|
||||
TransitData fact;
|
||||
SerDesTransit(plan, fact, TransitUseCase::CrossMwm);
|
||||
TestEqual(fact, plan, TransitUseCase::CrossMwm);
|
||||
}
|
||||
} // namespace experimental
|
||||
} // namespace transit
|
||||
Loading…
Add table
Add a link
Reference in a new issue