1212# limitations under the License.
1313
1414load ("@rules_cc//cc:cc_library.bzl" , "cc_library" )
15+ load ("@rules_cc//cc:cc_test.bzl" , "cc_test" )
1516
1617package (default_visibility = ["//ortools/math_opt:__subpackages__" ])
1718
@@ -41,6 +42,24 @@ cc_library(
4142 ],
4243)
4344
45+ cc_test (
46+ name = "math_opt_proto_utils_test" ,
47+ srcs = ["math_opt_proto_utils_test.cc" ],
48+ deps = [
49+ ":math_opt_proto_utils" ,
50+ ":sparse_collection_matchers" ,
51+ "//ortools/base" ,
52+ "//ortools/base:gmock_main" ,
53+ "//ortools/math_opt:model_cc_proto" ,
54+ "//ortools/math_opt:model_parameters_cc_proto" ,
55+ "//ortools/math_opt:model_update_cc_proto" ,
56+ "//ortools/math_opt:result_cc_proto" ,
57+ "//ortools/math_opt:solution_cc_proto" ,
58+ "//ortools/math_opt:sparse_containers_cc_proto" ,
59+ "@abseil-cpp//absl/status" ,
60+ ],
61+ )
62+
4463cc_library (
4564 name = "sparse_vector_view" ,
4665 hdrs = ["sparse_vector_view.h" ],
@@ -57,6 +76,24 @@ cc_library(
5776 ],
5877)
5978
79+ cc_test (
80+ name = "sparse_vector_view_test" ,
81+ srcs = ["sparse_vector_view_test.cc" ],
82+ deps = [
83+ ":sparse_vector" ,
84+ ":sparse_vector_view" ,
85+ "//ortools/base:gmock_main" ,
86+ "//ortools/base:intops" ,
87+ "//ortools/base:logging" ,
88+ "//ortools/base:types" ,
89+ "//ortools/math_opt:model_cc_proto" ,
90+ "//ortools/math_opt:sparse_containers_cc_proto" ,
91+ "@abseil-cpp//absl/container:flat_hash_map" ,
92+ "@abseil-cpp//absl/strings" ,
93+ "@protobuf" ,
94+ ],
95+ )
96+
6097cc_library (
6198 name = "model_summary" ,
6299 srcs = ["model_summary.cc" ],
@@ -76,6 +113,21 @@ cc_library(
76113 ],
77114)
78115
116+ cc_test (
117+ name = "model_summary_test" ,
118+ srcs = ["model_summary_test.cc" ],
119+ deps = [
120+ ":model_summary" ,
121+ "//ortools/base:gmock" ,
122+ "//ortools/base:gmock_main" ,
123+ "//ortools/base:parse_text_proto" ,
124+ "//ortools/math_opt:model_cc_proto" ,
125+ "//ortools/math_opt:model_update_cc_proto" ,
126+ "@abseil-cpp//absl/status" ,
127+ "@abseil-cpp//absl/types:span" ,
128+ ],
129+ )
130+
79131cc_library (
80132 name = "solver_interface" ,
81133 srcs = ["solver_interface.cc" ],
@@ -94,7 +146,10 @@ cc_library(
94146 "//ortools/port:proto_utils" ,
95147 "//ortools/util:solve_interrupter" ,
96148 "@abseil-cpp//absl/base:core_headers" ,
149+ "@abseil-cpp//absl/base:nullability" ,
97150 "@abseil-cpp//absl/container:flat_hash_map" ,
151+ "@abseil-cpp//absl/container:flat_hash_set" ,
152+ "@abseil-cpp//absl/log" ,
98153 "@abseil-cpp//absl/log:check" ,
99154 "@abseil-cpp//absl/status:statusor" ,
100155 "@abseil-cpp//absl/strings" ,
@@ -137,13 +192,71 @@ cc_library(
137192 ],
138193)
139194
195+ cc_library (
196+ name = "solver_interface_mock" ,
197+ testonly = True ,
198+ srcs = ["solver_interface_mock.cc" ],
199+ hdrs = ["solver_interface_mock.h" ],
200+ deps = [
201+ ":solver_interface" ,
202+ ":solver_interface_testing" ,
203+ "//ortools/base:gmock" ,
204+ "//ortools/math_opt:callback_cc_proto" ,
205+ "//ortools/math_opt:infeasible_subsystem_cc_proto" ,
206+ "//ortools/math_opt:model_cc_proto" ,
207+ "//ortools/math_opt:model_parameters_cc_proto" ,
208+ "//ortools/math_opt:model_update_cc_proto" ,
209+ "//ortools/math_opt:parameters_cc_proto" ,
210+ "//ortools/math_opt:result_cc_proto" ,
211+ "//ortools/util:solve_interrupter" ,
212+ "@abseil-cpp//absl/base:core_headers" ,
213+ "@abseil-cpp//absl/log" ,
214+ "@abseil-cpp//absl/log:check" ,
215+ "@abseil-cpp//absl/log:die_if_null" ,
216+ "@abseil-cpp//absl/random" ,
217+ "@abseil-cpp//absl/status:statusor" ,
218+ "@abseil-cpp//absl/synchronization" ,
219+ ],
220+ )
221+
222+ cc_library (
223+ name = "sparse_collection_matchers" ,
224+ testonly = True ,
225+ srcs = ["sparse_collection_matchers.cc" ],
226+ hdrs = ["sparse_collection_matchers.h" ],
227+ deps = [
228+ ":sparse_vector_view" ,
229+ "//ortools/base:gmock" ,
230+ "//ortools/math_opt:sparse_containers_cc_proto" ,
231+ ],
232+ )
233+
234+ cc_test (
235+ name = "sparse_collection_matchers_test" ,
236+ srcs = ["sparse_collection_matchers_test.cc" ],
237+ deps = [
238+ ":sparse_collection_matchers" ,
239+ "//ortools/base:gmock_main" ,
240+ "//ortools/math_opt:sparse_containers_cc_proto" ,
241+ ],
242+ )
243+
140244cc_library (
141245 name = "non_streamable_solver_init_arguments" ,
142246 srcs = ["non_streamable_solver_init_arguments.cc" ],
143247 hdrs = ["non_streamable_solver_init_arguments.h" ],
144248 deps = ["//ortools/math_opt:parameters_cc_proto" ],
145249)
146250
251+ cc_test (
252+ name = "non_streamable_solver_init_arguments_test" ,
253+ srcs = ["non_streamable_solver_init_arguments_test.cc" ],
254+ deps = [
255+ ":non_streamable_solver_init_arguments" ,
256+ "//ortools/base:gmock_main" ,
257+ ],
258+ )
259+
147260cc_library (
148261 name = "solver_debug" ,
149262 srcs = ["solver_debug.cc" ],
@@ -175,6 +288,46 @@ cc_library(
175288 ],
176289)
177290
291+ cc_test (
292+ name = "sparse_submatrix_test" ,
293+ srcs = ["sparse_submatrix_test.cc" ],
294+ deps = [
295+ ":sparse_collection_matchers" ,
296+ ":sparse_submatrix" ,
297+ ":sparse_vector" ,
298+ ":sparse_vector_view" ,
299+ "//ortools/base:gmock_main" ,
300+ "//ortools/math_opt:sparse_containers_cc_proto" ,
301+ "@abseil-cpp//absl/types:span" ,
302+ ],
303+ )
304+
305+ cc_library (
306+ name = "solver_interface_testing" ,
307+ testonly = True ,
308+ srcs = ["solver_interface_testing.cc" ],
309+ hdrs = ["solver_interface_testing.h" ],
310+ deps = [
311+ ":solver_interface" ,
312+ "@abseil-cpp//absl/base:nullability" ,
313+ "@abseil-cpp//absl/container:flat_hash_map" ,
314+ "@abseil-cpp//absl/container:flat_hash_set" ,
315+ ],
316+ )
317+
318+ cc_test (
319+ name = "solver_interface_testing_test" ,
320+ srcs = ["solver_interface_testing_test.cc" ],
321+ deps = [
322+ ":solver_interface" ,
323+ ":solver_interface_testing" ,
324+ "//ortools/base:gmock" ,
325+ "@abseil-cpp//absl/base:nullability" ,
326+ "@abseil-cpp//absl/status" ,
327+ "@abseil-cpp//absl/status:statusor" ,
328+ ],
329+ )
330+
178331cc_library (
179332 name = "inverted_bounds" ,
180333 srcs = ["inverted_bounds.cc" ],
@@ -187,6 +340,16 @@ cc_library(
187340 ],
188341)
189342
343+ cc_test (
344+ name = "inverted_bounds_test" ,
345+ srcs = ["inverted_bounds_test.cc" ],
346+ deps = [
347+ ":inverted_bounds" ,
348+ "//ortools/base:gmock_main" ,
349+ "@abseil-cpp//absl/status" ,
350+ ],
351+ )
352+
190353cc_library (
191354 name = "invalid_indicators" ,
192355 srcs = ["invalid_indicators.cc" ],
@@ -199,6 +362,16 @@ cc_library(
199362 ],
200363)
201364
365+ cc_test (
366+ name = "invalid_indicators_test" ,
367+ srcs = ["invalid_indicators_test.cc" ],
368+ deps = [
369+ ":invalid_indicators" ,
370+ "//ortools/base:gmock_main" ,
371+ "@abseil-cpp//absl/status" ,
372+ ],
373+ )
374+
202375cc_library (
203376 name = "concurrent_calls_guard" ,
204377 srcs = ["concurrent_calls_guard.cc" ],
@@ -212,6 +385,19 @@ cc_library(
212385 ],
213386)
214387
388+ cc_test (
389+ name = "concurrent_calls_guard_test" ,
390+ srcs = ["concurrent_calls_guard_test.cc" ],
391+ deps = [
392+ ":concurrent_calls_guard" ,
393+ "//ortools/base:gmock_main" ,
394+ "//ortools/base:status_macros" ,
395+ "@abseil-cpp//absl/status" ,
396+ "@abseil-cpp//absl/status:statusor" ,
397+ "@abseil-cpp//absl/strings" ,
398+ ],
399+ )
400+
215401cc_library (
216402 name = "empty_bounds" ,
217403 srcs = ["empty_bounds.cc" ],
@@ -223,6 +409,17 @@ cc_library(
223409 ],
224410)
225411
412+ cc_test (
413+ name = "empty_bounds_test" ,
414+ srcs = ["empty_bounds_test.cc" ],
415+ deps = [
416+ ":empty_bounds" ,
417+ ":model_summary" ,
418+ "//ortools/base:gmock_main" ,
419+ "//ortools/math_opt/validators:result_validator" ,
420+ ],
421+ )
422+
226423cc_library (
227424 name = "sorted" ,
228425 hdrs = ["sorted.h" ],
@@ -234,6 +431,17 @@ cc_library(
234431 ],
235432)
236433
434+ cc_test (
435+ name = "sorted_test" ,
436+ srcs = ["sorted_test.cc" ],
437+ deps = [
438+ ":sorted" ,
439+ "//ortools/base:gmock_main" ,
440+ "@abseil-cpp//absl/container:flat_hash_map" ,
441+ "@protobuf" ,
442+ ],
443+ )
444+
237445cc_library (
238446 name = "base_solver" ,
239447 srcs = ["base_solver.cc" ],
0 commit comments