67#ifndef ORTOOLS_MATH_OPT_CORE_SOLVER_INTERFACE_MOCK_H_
68#define ORTOOLS_MATH_OPT_CORE_SOLVER_INTERFACE_MOCK_H_
74#include "absl/base/attributes.h"
75#include "absl/base/nullability.h"
76#include "absl/base/thread_annotations.h"
77#include "absl/log/die_if_null.h"
78#include "absl/status/statusor.h"
79#include "absl/synchronization/mutex.h"
109 MOCK_METHOD(absl::StatusOr<ComputeInfeasibleSubsystemResultProto>,
127 std::function<
void()> destructor_cb =
nullptr)
128 : solver_(ABSL_DIE_IF_NULL(solver)),
129 destructor_cb_(
std::move(destructor_cb)) {}
132 if (destructor_cb_ !=
nullptr) {
137 absl::StatusOr<SolveResultProto>
Solve(
143 return solver_->Solve(parameters, model_parameters, std::move(message_cb),
144 callback_registration, std::move(cb), interrupter);
148 return solver_->Update(model_update);
151 absl::StatusOr<ComputeInfeasibleSubsystemResultProto>
155 return solver_->ComputeInfeasibleSubsystem(
156 parameters, std::move(message_cb), interrupter);
161 const std::function<void()> destructor_cb_;
169 testing::MockFunction<absl::StatusOr<std::unique_ptr<SolverInterface>>(
210 std::shared_ptr<CallerData> caller_data_;
217 const WithAlternateAllSolversRegistry alternate_registry_{
DelegatingSolver(SolverInterface *const solver, std::function< void()> destructor_cb=nullptr)
~DelegatingSolver() override
absl::StatusOr< ComputeInfeasibleSubsystemResultProto > ComputeInfeasibleSubsystem(const SolveParametersProto ¶meters, MessageCallback message_cb, const SolveInterrupter *absl_nullable const interrupter) override
absl::StatusOr< bool > Update(const ModelUpdateProto &model_update) override
absl::StatusOr< SolveResultProto > Solve(const SolveParametersProto ¶meters, const ModelSolveParametersProto &model_parameters, MessageCallback message_cb, const CallbackRegistrationProto &callback_registration, Callback cb, const SolveInterrupter *absl_nullable const interrupter) override
SolverFactoryRegistration(SolverInterface::Factory factory)
SolverTypeProto solver_type() const
~SolverFactoryRegistration()
MOCK_METHOD(absl::StatusOr< bool >, Update,(const ModelUpdateProto &model_update),(override))
MOCK_METHOD(absl::StatusOr< SolveResultProto >, Solve,(const SolveParametersProto ¶meters, const ModelSolveParametersProto &model_parameters, MessageCallback message_cb, const CallbackRegistrationProto &callback_registration, Callback cb, const SolveInterrupter *absl_nullable interrupter),(override))
MOCK_METHOD(absl::StatusOr< ComputeInfeasibleSubsystemResultProto >, ComputeInfeasibleSubsystem,(const SolveParametersProto ¶meters, MessageCallback message_cb, const SolveInterrupter *absl_nullable interrupter),(override))
std::function< void(const std::vector< std::string > &)> MessageCallback
SolverInterface()=default
virtual absl::StatusOr< bool > Update(const ModelUpdateProto &model_update)=0
virtual absl::StatusOr< SolveResultProto > Solve(const SolveParametersProto ¶meters, const ModelSolveParametersProto &model_parameters, MessageCallback message_cb, const CallbackRegistrationProto &callback_registration, Callback cb, const SolveInterrupter *absl_nullable interrupter)=0
virtual absl::StatusOr< ComputeInfeasibleSubsystemResultProto > ComputeInfeasibleSubsystem(const SolveParametersProto ¶meters, MessageCallback message_cb, const SolveInterrupter *absl_nullable interrupter)=0
std::function< absl::StatusOr< CallbackResultProto >( const CallbackDataProto &)> Callback
std::function< absl::StatusOr< std::unique_ptr< SolverInterface > >( const ModelProto &model, const InitArgs &init_args)> Factory
testing::MockFunction< absl::StatusOr< std::unique_ptr< SolverInterface > >( const ModelProto &model, const SolverInterface::InitArgs &init_args)> SolverInterfaceFactoryMock