Google OR-Tools
v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
lp_model_solve_parameters_tests.h
Go to the documentation of this file.
1
// Copyright 2010-2025 Google LLC
2
// Licensed under the Apache License, Version 2.0 (the "License");
3
// you may not use this file except in compliance with the License.
4
// You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software
9
// distributed under the License is distributed on an "AS IS" BASIS,
10
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
// See the License for the specific language governing permissions and
12
// limitations under the License.
13
14
#ifndef ORTOOLS_MATH_OPT_SOLVER_TESTS_LP_MODEL_SOLVE_PARAMETERS_TESTS_H_
15
#define ORTOOLS_MATH_OPT_SOLVER_TESTS_LP_MODEL_SOLVE_PARAMETERS_TESTS_H_
16
17
#include <ostream>
18
#include <utility>
19
20
#include "gtest/gtest.h"
21
#include "
ortools/math_opt/cpp/math_opt.h
"
22
#include "
ortools/math_opt/solver_tests/base_solver_test.h
"
23
24
namespace
operations_research
{
25
namespace
math_opt
{
26
27
struct
LpModelSolveParametersTestParameters
{
28
SolverType
solver_type
;
29
// If true, we EXPECT that the solver to return a value of exactly 0.0 for
30
// decisions variables >= 0 that take zero at the optimum on a very small
31
// problem. In general, simplex solvers are more likely to do this, but very
32
// few solvers actually guarantee this. All tests relying on this behavior are
33
// brittle and we should try to eliminate them.
34
bool
exact_zeros
;
35
bool
supports_duals
;
36
// True if the solver supports warm starts on the primal solution only.
37
bool
supports_primal_only_warm_starts
;
38
SolveParameters
parameters
;
39
40
LpModelSolveParametersTestParameters
(
41
const
SolverType
solver_type
,
const
bool
exact_zeros
,
42
const
bool
supports_duals
,
const
bool
supports_primal_only_warm_starts
,
43
SolveParameters
parameters
= {})
44
:
solver_type
(
solver_type
),
45
exact_zeros
(
exact_zeros
),
46
supports_duals
(
supports_duals
),
47
supports_primal_only_warm_starts
(
supports_primal_only_warm_starts
),
48
parameters
(
std
::move(
parameters
)) {}
49
50
friend
std::ostream&
operator<<
(
51
std::ostream& out,
const
LpModelSolveParametersTestParameters
& params);
52
};
53
54
// Parameterized test suite that validates that an implementation of
55
// SolverInterface::Solve() for a LP solver takes into account correctly the
56
// input ModelSolveParametersProto.
57
//
58
// Usage:
59
//
60
// INSTANTIATE_TEST_SUITE_P(<Solver>LpModelSolveParametersTest,
61
// LpModelSolveParametersTest,
62
// testing::Values(
63
// LpModelSolveParametersTestParameters(
64
// SolverType::k<Solver>)));
65
//
66
class
LpModelSolveParametersTest
67
:
public
::testing::TestWithParam<LpModelSolveParametersTestParameters> {};
68
69
}
// namespace math_opt
70
}
// namespace operations_research
71
72
#endif
// ORTOOLS_MATH_OPT_SOLVER_TESTS_LP_MODEL_SOLVE_PARAMETERS_TESTS_H_
base_solver_test.h
operations_research::math_opt::LpModelSolveParametersTest
Definition
lp_model_solve_parameters_tests.h:67
math_opt.h
operations_research::math_opt
Definition
gurobi_isv.cc:28
operations_research::math_opt::SolverType
SolverType
Definition
parameters.h:41
operations_research
OR-Tools root namespace.
Definition
binary_indexed_tree.h:21
std
STL namespace.
operations_research::math_opt::LpModelSolveParametersTestParameters::supports_duals
bool supports_duals
Definition
lp_model_solve_parameters_tests.h:35
operations_research::math_opt::LpModelSolveParametersTestParameters::exact_zeros
bool exact_zeros
Definition
lp_model_solve_parameters_tests.h:34
operations_research::math_opt::LpModelSolveParametersTestParameters::parameters
SolveParameters parameters
Definition
lp_model_solve_parameters_tests.h:38
operations_research::math_opt::LpModelSolveParametersTestParameters::operator<<
friend std::ostream & operator<<(std::ostream &out, const LpModelSolveParametersTestParameters ¶ms)
Definition
lp_model_solve_parameters_tests.cc:31
operations_research::math_opt::LpModelSolveParametersTestParameters::supports_primal_only_warm_starts
bool supports_primal_only_warm_starts
Definition
lp_model_solve_parameters_tests.h:37
operations_research::math_opt::LpModelSolveParametersTestParameters::LpModelSolveParametersTestParameters
LpModelSolveParametersTestParameters(const SolverType solver_type, const bool exact_zeros, const bool supports_duals, const bool supports_primal_only_warm_starts, SolveParameters parameters={})
Definition
lp_model_solve_parameters_tests.h:40
operations_research::math_opt::LpModelSolveParametersTestParameters::solver_type
SolverType solver_type
Definition
lp_model_solve_parameters_tests.h:28
operations_research::math_opt::SolveParameters
Definition
parameters.h:308
ortools
math_opt
solver_tests
lp_model_solve_parameters_tests.h
Generated by
1.15.0