add a few bazel tests to examples/cpp

This commit is contained in:
Laurent Perron
2023-08-09 17:36:49 -07:00
parent 38231024fa
commit 341bbec963
7 changed files with 3381 additions and 95 deletions

View File

@@ -27,6 +27,24 @@ cc_binary(
],
)
cc_test(
name = "binpacking_2d_sat_class01_instance2_test",
size = "medium",
srcs = [
"binpacking_2d_sat.cc",
],
args = ["--input $(rootpath //ortools/packing/testdata:Class_01.2bp) --instance 2"],
data = ["//ortools/packing/testdata:Class_01.2bp"],
deps = [
"//ortools/base",
"//ortools/packing:binpacking_2d_parser",
"//ortools/packing:multiple_dimensions_bin_packing_cc_proto",
"//ortools/sat:cp_model",
"@com_google_absl//absl/flags:flag",
"@com_google_protobuf//:protobuf",
],
)
cc_binary(
name = "constraint_programming_cp",
srcs = ["constraint_programming_cp.cc"],
@@ -72,6 +90,21 @@ cc_binary(
],
)
cc_test(
name = "dobble_ls_test",
srcs = ["dobble_ls.cc"],
size = "medium",
args = ["--time_limit_in_ms=10000"],
deps = [
"//ortools/base",
"//ortools/base:map_util",
"//ortools/constraint_solver:cp",
"//ortools/util:bitset",
"@com_google_absl//absl/random",
"@com_google_absl//absl/strings:str_format",
],
)
cc_binary(
name = "golomb_sat",
srcs = ["golomb_sat.cc"],
@@ -86,6 +119,22 @@ cc_binary(
],
)
cc_test(
name = "golomb_sat_test",
size = "medium",
srcs = ["golomb_sat.cc"],
args = ["--size 5"],
deps = [
"//ortools/base",
"//ortools/sat:cp_model",
"//ortools/sat:model",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
"@com_google_absl//absl/strings:str_format",
"@com_google_protobuf//:protobuf",
],
)
cc_binary(
name = "knapsack_2d_sat",
srcs = [
@@ -222,6 +271,28 @@ cc_binary(
],
)
cc_test(
name = "network_routing_sat_test",
size = "medium",
srcs = ["network_routing_sat.cc"],
args = ["--clients=10 --backbones=5 --demands=10 --traffic_min=5 --traffic_max=10 --min_client_degree=2 --max_client_degree=5 --min_backbone_degree=3 --max_backbone_degree=5 --max_capacity=20 --fixed_charge_cost=10"],
deps = [
"//ortools/base",
"//ortools/base:hash",
"//ortools/base:map_util",
"//ortools/graph:shortest_paths",
"//ortools/sat:cp_model",
"//ortools/sat:model",
"//ortools/util:tuple_set",
"@com_google_absl//absl/container:btree",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
],
)
cc_binary(
name = "nqueens",
srcs = ["nqueens.cc"],
@@ -247,6 +318,20 @@ cc_binary(
],
)
cc_test(
name = "sports_scheduling_sat_test",
size = "medium",
srcs = ["sports_scheduling_sat.cc"],
deps = [
"//ortools/base",
"//ortools/sat:cp_model",
"//ortools/sat:model",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
],
)
cc_binary(
name = "vector_bin_packing_solver",
srcs = [
@@ -480,6 +565,27 @@ cc_binary(
],
)
cc_test(
name = "mps_driver_test",
size = "small",
srcs = ["mps_driver.cc"],
args = ["--input $(rootpath //ortools/linear_solver/testdata:maximization.mps)"],
data = ["//ortools/linear_solver/testdata:maximization.mps"],
deps = [
"//ortools/base",
"//ortools/base:timer",
"//ortools/glop:lp_solver",
"//ortools/glop:parameters_cc_proto",
"//ortools/lp_data:mps_reader",
"//ortools/util:proto_tools",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/status",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
"@com_google_protobuf//:protobuf",
],
)
# Linear Assignment C++ Example
cc_binary(
name = "linear_assignment_api",

View File

@@ -56,7 +56,6 @@ list(FILTER CXX_SRCS EXCLUDE REGEX ".*/pdlp_solve.cc")
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/pdptw.cc")
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/shift_minimization_sat.cc")
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/pdlp_solve.cc")
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/sports_scheduling_sat.cc") # Too long
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/strawberry_fields_with_column_generation.cc") # Too long
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/vector_bin_packing_solver.cc")
list(FILTER CXX_SRCS EXCLUDE REGEX ".*/weighted_tardiness_sat.cc")

View File

@@ -1,58 +0,0 @@
NAME MIN_SIZE_MAX_FEATURES
ROWS
N COST
E ROW1
L ROW2
G ROW3
E ROW4
E ROW5
G ROW6
E ROW7
L ROW8
N UNCONST.
COLUMNS
X1 ROW1 1 UNCONST. 1
X2 ROW1 1 UNCONST. 2
X1 COST 1
X2 COST 2
X1 ROW2 3
X2 ROW2 4
X1 ROW3 1
X2 ROW3 2
X3 ROW3 3 ROW7 1
X4 ROW3 4 ROW7 1
X5 ROW3 5 ROW4 2
X6 ROW3 6 ROW4 13
X7 ROW5 1 ROW6 7
X8 ROW5 3 ROW6 2
X7 ROW8 1
X8 ROW8 1
RHS
ROW1 2
ROW2 6
ROW3 -85
ROW4 2
ROW5 8
ROW6 0
ROW7 50
ROW8 50
BOUNDS
FR X1
UP X2 125.
FX X3 12
MI X4
LO X5 5.
PL X6
RANGES
RANGE1 ROW2 20.
ROW3 25.
ROW4 12.
ROW7 -100.
ENDATA

View File

@@ -1,36 +0,0 @@
NAME EXAMPLE
ROWS
N OBJ
G ROW01
L ROW02
E ROW03
G ROW04
L ROW05
COLUMNS
COL01 OBJ 1.0
COL01 ROW01 3.0 ROW05 5.6
COL02 ROW01 1.0 ROW02 2.0
COL03 ROW02 1.1 ROW03 1.0
COL04 ROW01 -2.0 ROW04 2.8
COL05 OBJ 2.0
COL05 ROW01 -1.0 ROW05 1.0
COL06 ROW03 1.0
COL07 ROW04 -1.2
COL08 OBJ -1.0
COL08 ROW01 -1.0 ROW05 1.9
RHS
RHS1 ROW01 2.5
RHS1 ROW02 2.1
RHS1 ROW03 4.0
RHS1 ROW04 1.8
RHS1 ROW05 15.0
RANGES
RNG1 ROW04 3.2
RNG1 ROW05 12.0
BOUNDS
LO BND1 COL01 2.5
UP BND1 COL02 4.1
LO BND1 COL05 0.5
UP BND1 COL05 4.0
UP BND1 COL08 4.3
ENDATA

View File

@@ -135,5 +135,10 @@
"java.configuration.updateBuildConfiguration": "interactive",
"maven.view": "hierarchical",
"git.ignoreLimitWarning": true,
"python.analysis.extraPaths": [
"${workspaceRoot}",
"${workspaceRoot}/ortools/gen",
"${workspaceRoot}/dependencies/sources/protobuf-3.6.1/python"
],
}
}

20
ortools/packing/testdata/BUILD.bazel vendored Normal file
View File

@@ -0,0 +1,20 @@
# Copyright 2010-2022 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.
package(default_visibility = ["//visibility:public"])
exports_files(
[
"Class_01.2bp",
],
)

3250
ortools/packing/testdata/Class_01.2bp vendored Normal file

File diff suppressed because it is too large Load Diff