Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/MOI_wrapper.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ function dual_optimizer(
kwargs...,
) where {T<:Number}
return () ->
DualOptimizer{T}(MOI.instantiate(optimizer_constructor), kwargs...)
DualOptimizer{T}(MOI.instantiate(optimizer_constructor); kwargs...)
end

struct DualOptimizer{T,OT<:MOI.ModelLike} <: MOI.AbstractOptimizer
Expand Down Expand Up @@ -77,7 +77,7 @@ Solver name: Dual model with HiGHS attached
```
"""
function DualOptimizer(dual_optimizer::OT; kwargs...) where {OT<:MOI.ModelLike}
return DualOptimizer{Float64}(dual_optimizer, kwargs...)
return DualOptimizer{Float64}(dual_optimizer; kwargs...)
end

function DualOptimizer{T}(
Expand All @@ -96,7 +96,7 @@ function DualOptimizer{T}(
# discover the type of
# MOI.Utilities.CachingOptimizer(MOI.Utilities.Model{T}(), dual_optimizer)
OptimizerType = typeof(dual_problem.dual_model)
return DualOptimizer{T,OptimizerType}(dual_problem, kwargs...)
return DualOptimizer{T,OptimizerType}(dual_problem; kwargs...)
end

DualOptimizer() = error("DualOptimizer must have a solver attached")
Expand Down
19 changes: 19 additions & 0 deletions test/Tests/test_MOI_wrapper.jl
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,23 @@
DualOptimizer{Float32,Caching_OptimizerType}
end
end

@testset "dual_optimizer_kwargs" begin
constructor = Dualization.dual_optimizer(
HiGHS.Optimizer;
assume_min_if_feasibility = true,
)
model = MOI.instantiate(constructor)
@test model.assume_min_if_feasibility
model = Dualization.DualOptimizer(
HiGHS.Optimizer();
assume_min_if_feasibility = true,
)
@test model.assume_min_if_feasibility
model = Dualization.DualOptimizer{Float64}(
HiGHS.Optimizer();
assume_min_if_feasibility = true,
)
@test model.assume_min_if_feasibility
end
end
Loading