359 lines
9.8 KiB
Python
359 lines
9.8 KiB
Python
# Copyright 2010-2025 Google LLC
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
load("@protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
|
|
load("@protobuf//bazel:proto_library.bzl", "proto_library")
|
|
load("@rules_cc//cc:defs.bzl", "cc_library")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
proto_library(
|
|
name = "capacity_planning_proto",
|
|
srcs = ["capacity_planning.proto"],
|
|
)
|
|
|
|
cc_proto_library(
|
|
name = "capacity_planning_cc_proto",
|
|
deps = [":capacity_planning_proto"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "simple_graph",
|
|
srcs = ["simple_graph.cc"],
|
|
hdrs = ["simple_graph.h"],
|
|
deps = [
|
|
"@abseil-cpp//absl/hash",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "simple_graph_test",
|
|
size = "small",
|
|
srcs = ["simple_graph_test.cc"],
|
|
deps = [
|
|
":simple_graph",
|
|
"@abseil-cpp//absl/hash:hash_testing",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "solomon_parser",
|
|
srcs = ["solomon_parser.cc"],
|
|
hdrs = ["solomon_parser.h"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base",
|
|
"//ortools/base:map_util",
|
|
"//ortools/base:numbers",
|
|
"//ortools/base:path",
|
|
"//ortools/base:zipfile",
|
|
"//ortools/util:filelineiter",
|
|
"@abseil-cpp//absl/strings",
|
|
"@re2",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "solomon_parser_test",
|
|
size = "small",
|
|
srcs = ["solomon_parser_test.cc"],
|
|
data = [
|
|
"//ortools/routing/parsers/testdata:c1_10_2-90-42222.96.txt",
|
|
"//ortools/routing/parsers/testdata:solomon.zip",
|
|
],
|
|
deps = [
|
|
":solomon_parser",
|
|
"//ortools/base",
|
|
"//ortools/base:file",
|
|
"//ortools/base:gmock",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "lilim_parser",
|
|
srcs = ["lilim_parser.cc"],
|
|
hdrs = ["lilim_parser.h"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base:file",
|
|
"//ortools/base:numbers",
|
|
"//ortools/base:path",
|
|
"//ortools/base:zipfile",
|
|
"//ortools/util:filelineiter",
|
|
"@abseil-cpp//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "lilim_parser_test",
|
|
size = "small",
|
|
srcs = ["lilim_parser_test.cc"],
|
|
data = [
|
|
"//ortools/routing/parsers/testdata:lilim.zip",
|
|
"//ortools/routing/parsers/testdata:pdptw_LRC2_10_6.txt",
|
|
],
|
|
deps = [
|
|
":lilim_parser",
|
|
"//ortools/base:path",
|
|
"@abseil-cpp//absl/flags:flag",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "carp_parser",
|
|
srcs = ["carp_parser.cc"],
|
|
hdrs = ["carp_parser.h"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base",
|
|
"//ortools/base:linked_hash_map",
|
|
"//ortools/base:numbers",
|
|
"//ortools/util:filelineiter",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "carp_parser_test",
|
|
size = "small",
|
|
srcs = ["carp_parser_test.cc"],
|
|
data = [
|
|
"//ortools/routing/parsers/testdata:carp_gdb19.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_diferente_deposito.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecta_lista_aristas_req.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_arinoreq.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_arireq.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_capacidad.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_coste.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_deposito.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_tipo.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_vehiculos.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_incorrecto_vertices.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_mixed_arcs.dat",
|
|
"//ortools/routing/parsers/testdata:carp_gdb19_no_arista_req.dat",
|
|
],
|
|
deps = [
|
|
":carp_parser",
|
|
"//ortools/base:gmock_main",
|
|
"//ortools/base:path",
|
|
"@abseil-cpp//absl/base:log_severity",
|
|
"@abseil-cpp//absl/flags:flag",
|
|
"@abseil-cpp//absl/hash:hash_testing",
|
|
"@abseil-cpp//absl/log:scoped_mock_log",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "nearp_parser",
|
|
srcs = ["nearp_parser.cc"],
|
|
hdrs = ["nearp_parser.h"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base",
|
|
"//ortools/base:linked_hash_map",
|
|
"//ortools/base:numbers",
|
|
"//ortools/util:filelineiter",
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
"@abseil-cpp//absl/hash",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "nearp_parser_test",
|
|
size = "small",
|
|
srcs = ["nearp_parser_test.cc"],
|
|
data = [
|
|
"//ortools/routing/parsers/testdata:nearp_BHW1.dat",
|
|
"//ortools/routing/parsers/testdata:nearp_toy.dat",
|
|
],
|
|
deps = [
|
|
":nearp_parser",
|
|
"//ortools/base:file",
|
|
"//ortools/base:path",
|
|
"@abseil-cpp//absl/flags:flag",
|
|
"@abseil-cpp//absl/hash:hash_testing",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "pdtsp_parser",
|
|
srcs = ["pdtsp_parser.cc"],
|
|
hdrs = ["pdtsp_parser.h"],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//ortools/base",
|
|
"//ortools/base:file",
|
|
"//ortools/base:gzipfile",
|
|
"//ortools/base:mathutil",
|
|
"//ortools/base:numbers",
|
|
"//ortools/base:path",
|
|
"//ortools/base:strtoint",
|
|
"//ortools/util:filelineiter",
|
|
"@abseil-cpp//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "pdtsp_parser_test",
|
|
size = "small",
|
|
srcs = ["pdtsp_parser_test.cc"],
|
|
data = [
|
|
"//ortools/routing/parsers/testdata:pdtsp_prob10b.txt",
|
|
"//ortools/routing/parsers/testdata:pdtsp_prob10b.txt.gz",
|
|
],
|
|
deps = [
|
|
":pdtsp_parser",
|
|
"//ortools/base",
|
|
"//ortools/base:path",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tsplib_parser",
|
|
srcs = ["tsplib_parser.cc"],
|
|
hdrs = ["tsplib_parser.h"],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base",
|
|
"//ortools/base:map_util",
|
|
"//ortools/base:mathutil",
|
|
"//ortools/base:numbers",
|
|
"//ortools/base:path",
|
|
"//ortools/base:strtoint",
|
|
"//ortools/base:zipfile",
|
|
"//ortools/util:filelineiter",
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
"@abseil-cpp//absl/strings",
|
|
"@re2",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "tsplib_parser_test",
|
|
size = "small",
|
|
timeout = "moderate",
|
|
srcs = ["tsplib_parser_test.cc"],
|
|
data = [
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_atsp.tar",
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_hcp.tar",
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_sop.tar",
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_tsp.tar.gz",
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_tsp.zip",
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_vrp.tar",
|
|
#"@com_google_ortools_data//TSPLIB95:ALL_vrp.zip",
|
|
"//ortools/routing/parsers/testdata:tsplib_Kytojoki_33.vrp",
|
|
],
|
|
deps = [
|
|
":tsplib_parser",
|
|
"//ortools/base",
|
|
"//ortools/base:file",
|
|
"//ortools/base:memfile",
|
|
"@abseil-cpp//absl/container:btree",
|
|
"@abseil-cpp//absl/strings",
|
|
"@abseil-cpp//absl/strings:str_format",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tsptw_parser",
|
|
srcs = ["tsptw_parser.cc"],
|
|
hdrs = ["tsptw_parser.h"],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base",
|
|
"//ortools/base:mathutil",
|
|
"//ortools/base:numbers",
|
|
"//ortools/base:path",
|
|
"//ortools/base:strtoint",
|
|
"//ortools/base:zipfile",
|
|
"//ortools/util:filelineiter",
|
|
"@abseil-cpp//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "tsptw_parser_test",
|
|
size = "small",
|
|
srcs = ["tsptw_parser_test.cc"],
|
|
data = [
|
|
"//ortools/routing/parsers/testdata:n20w20.001.txt",
|
|
"//ortools/routing/parsers/testdata:n20w20.002.txt",
|
|
"//ortools/routing/parsers/testdata:rc201.0",
|
|
],
|
|
deps = [
|
|
":tsptw_parser",
|
|
"//ortools/base",
|
|
"@googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "solution_serializer",
|
|
srcs = ["solution_serializer.cc"],
|
|
hdrs = ["solution_serializer.h"],
|
|
deps = [
|
|
":simple_graph",
|
|
"//ortools/base",
|
|
"//ortools/base:file",
|
|
"@abseil-cpp//absl/strings",
|
|
"@abseil-cpp//absl/strings:str_format",
|
|
"@abseil-cpp//absl/time",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "solution_serializer_test",
|
|
size = "small",
|
|
srcs = ["solution_serializer_test.cc"],
|
|
target_compatible_with = select({
|
|
"@platforms//os:windows": ["@platforms//:incompatible"],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [
|
|
":solution_serializer",
|
|
"//ortools/base",
|
|
"//ortools/base:gmock_main",
|
|
"//ortools/base:mutable_memfile",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cvrptw_lib",
|
|
srcs = ["cvrptw_lib.cc"],
|
|
hdrs = ["cvrptw_lib.h"],
|
|
deps = [
|
|
"//ortools/base",
|
|
"//ortools/routing",
|
|
"//ortools/util:random_engine",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "dow_parser",
|
|
srcs = ["dow_parser.cc"],
|
|
hdrs = ["dow_parser.h"],
|
|
deps = [
|
|
":capacity_planning_cc_proto",
|
|
"//ortools/base",
|
|
"//ortools/routing",
|
|
"//ortools/util:random_engine",
|
|
],
|
|
)
|