18 #include "absl/flags/flag.h"
19 #include "gtest/gtest.h"
23 #define ROOT_DIR "../../../../../../../"
28 ABSL_FLAG(std::string, test_srcdir,
"",
"REQUIRED: src dir");
32 TEST(NearpParserTest, Constructor) {
34 EXPECT_EQ(parser.name(),
"");
35 EXPECT_EQ(parser.comment(),
"");
36 EXPECT_EQ(parser.NumberOfNodes(), 0);
37 EXPECT_EQ(parser.NumberOfEdgesWithServicing(), 0);
38 EXPECT_EQ(parser.NumberOfEdgesWithoutServicing(), 0);
39 EXPECT_EQ(parser.NumberOfEdges(), 0);
40 EXPECT_EQ(parser.NumberOfVehicles(), 0);
41 EXPECT_EQ(parser.capacity(), 0);
42 EXPECT_EQ(parser.depot(), 0);
45 TEST(NearpParserTest, LoadEmptyFileName) {
46 std::string empty_file_name;
48 EXPECT_FALSE(parser.LoadFile(empty_file_name));
51 TEST(NearpParserTest, LoadNonExistingFile) {
53 EXPECT_FALSE(parser.LoadFile(
"google2/nonexistent.dat"));
56 TEST(NearpParserTest, LoadBHW1) {
57 std::string file_name =
59 ROOT_DIR "ortools/routing/testdata/nearp_BHW1.dat");
61 EXPECT_TRUE(parser.LoadFile(file_name));
62 EXPECT_EQ(parser.name(),
"BHW1");
63 EXPECT_EQ(parser.comment(),
"-1");
64 EXPECT_EQ(parser.NumberOfNodes(), 12);
65 EXPECT_EQ(parser.NumberOfNodesWithServicing(), 7);
66 EXPECT_EQ(parser.NumberOfNodesWithoutServicing(), 5);
67 EXPECT_EQ(parser.NumberOfEdges(), 11);
68 EXPECT_EQ(parser.NumberOfEdgesWithServicing(), 11);
69 EXPECT_EQ(parser.NumberOfEdgesWithoutServicing(), 0);
70 EXPECT_EQ(parser.NumberOfArcs(), 22);
71 EXPECT_EQ(parser.NumberOfArcsWithServicing(), 11);
72 EXPECT_EQ(parser.NumberOfArcsWithoutServicing(), 11);
73 EXPECT_EQ(parser.NumberOfVehicles(), -1);
74 EXPECT_EQ(parser.capacity(), 5);
75 EXPECT_EQ(parser.depot(), 0);
77 EXPECT_EQ(parser.arc_traversing_costs().size(), 22);
78 EXPECT_EQ(parser.arc_servicing_costs().size(), 11);
79 EXPECT_EQ(parser.arc_servicing_demands().size(), 11);
80 EXPECT_EQ(parser.edge_traversing_costs().size(), 11);
81 EXPECT_EQ(parser.edge_servicing_demands().size(), 11);
82 EXPECT_EQ(parser.edge_servicing_costs().size(), 11);
83 EXPECT_EQ(parser.node_servicing_demands().size(), 7);
84 EXPECT_EQ(parser.node_servicing_costs().size(), 7);
86 EXPECT_EQ(parser.GetArcName(0, 1),
"A1");
87 EXPECT_EQ(parser.GetArcName(Arc(0, 1)),
"A1");
88 EXPECT_EQ(parser.GetArcName(3, 0),
"NrA2");
89 EXPECT_EQ(parser.GetArcName(Arc(3, 0)),
"NrA2");
90 EXPECT_EQ(parser.GetEdgeName(2, 1),
"E1");
91 EXPECT_EQ(parser.GetEdgeName(Edge(2, 1)),
"E1");
92 EXPECT_EQ(parser.GetEdgeName(1, 2),
"E1");
93 EXPECT_EQ(parser.GetEdgeName(Edge(1, 2)),
"E1");
94 EXPECT_EQ(parser.GetNodeName(3),
"N4");
97 TEST(NearpParserTest, LoadToy) {
98 std::string file_name =
100 ROOT_DIR "ortools/routing/testdata/nearp_toy.dat");
102 EXPECT_TRUE(parser.LoadFile(file_name));
103 EXPECT_EQ(parser.name(),
"Toy");
104 EXPECT_EQ(parser.comment(),
"-1");
105 EXPECT_EQ(parser.NumberOfNodes(), 4);
106 EXPECT_EQ(parser.NumberOfNodesWithServicing(), 1);
107 EXPECT_EQ(parser.NumberOfNodesWithoutServicing(), 3);
108 EXPECT_EQ(parser.NumberOfEdges(), 3);
109 EXPECT_EQ(parser.NumberOfEdgesWithServicing(), 2);
110 EXPECT_EQ(parser.NumberOfEdgesWithoutServicing(), 1);
111 EXPECT_EQ(parser.NumberOfArcs(), 3);
112 EXPECT_EQ(parser.NumberOfArcsWithServicing(), 2);
113 EXPECT_EQ(parser.NumberOfArcsWithoutServicing(), 1);
114 EXPECT_EQ(parser.NumberOfVehicles(), -1);
115 EXPECT_EQ(parser.capacity(), 5);
116 EXPECT_EQ(parser.depot(), 0);
118 EXPECT_EQ(parser.arc_traversing_costs().size(), 3);
119 EXPECT_EQ(parser.arc_servicing_costs().size(), 2);
120 EXPECT_EQ(parser.arc_servicing_demands().size(), 2);
121 EXPECT_EQ(parser.edge_traversing_costs().size(), 3);
122 EXPECT_EQ(parser.edge_servicing_demands().size(), 2);
123 EXPECT_EQ(parser.edge_servicing_costs().size(), 2);
124 EXPECT_EQ(parser.node_servicing_demands().size(), 1);
125 EXPECT_EQ(parser.node_servicing_costs().size(), 1);
127 EXPECT_DEATH(parser.GetArcName(0, 1),
"");
128 EXPECT_DEATH(parser.GetArcName(3, 0),
"");
129 EXPECT_DEATH(parser.GetEdgeName(3, 1),
"");
130 EXPECT_DEATH(parser.GetEdgeName(1, 3),
"");
132 EXPECT_EQ(parser.GetArcName(1, 3),
"A1");
133 EXPECT_EQ(parser.GetArcName(3, 1),
"NrA1");
134 EXPECT_EQ(parser.GetEdgeName(2, 1),
"E2");
135 EXPECT_EQ(parser.GetEdgeName(1, 2),
"E2");
136 EXPECT_EQ(parser.GetNodeName(3),
"N4");
std::string JoinPath(absl::string_view path1, absl::string_view path2)
Collection of objects used to extend the Constraint Solver library.
TEST(LinearAssignmentTest, NullMatrix)
ABSL_FLAG(std::string, test_srcdir, "", "REQUIRED: src dir")