|
224 | 224 | output::String; |
225 | 225 | variable_start = 1.2, |
226 | 226 | constraint_start = 1.2, |
| 227 | + eltype = Float64, |
227 | 228 | ) |
228 | 229 |
|
229 | 230 | Run a series of tests that check the correctness of `Bridge`. |
@@ -254,20 +255,21 @@ function runtests( |
254 | 255 | output::String; |
255 | 256 | variable_start = 1.2, |
256 | 257 | constraint_start = 1.2, |
| 258 | + eltype = Float64, |
257 | 259 | ) |
258 | 260 | # Load model and bridge it |
259 | | - inner = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()) |
260 | | - model = _bridged_model(Bridge, inner) |
| 261 | + inner = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{eltype}()) |
| 262 | + model = _bridged_model(Bridge{eltype}, inner) |
261 | 263 | MOI.Utilities.loadfromstring!(model, input) |
262 | 264 | final_touch(model) |
263 | 265 | # Should be able to call final_touch multiple times. |
264 | 266 | final_touch(model) |
265 | 267 | # Load a non-bridged input model, and check that getters are the same. |
266 | | - test = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()) |
| 268 | + test = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{eltype}()) |
267 | 269 | MOI.Utilities.loadfromstring!(test, input) |
268 | 270 | _test_structural_identical(test, model) |
269 | 271 | # Load a bridged target model, and check that getters are the same. |
270 | | - target = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()) |
| 272 | + target = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{eltype}()) |
271 | 273 | MOI.Utilities.loadfromstring!(target, output) |
272 | 274 | _test_structural_identical(target, inner) |
273 | 275 | # Test VariablePrimalStart |
@@ -337,15 +339,15 @@ _fake_start(value, ::MOI.AbstractScalarSet) = value |
337 | 339 | _fake_start(value, set::MOI.AbstractVectorSet) = fill(value, MOI.dimension(set)) |
338 | 340 |
|
339 | 341 | function _bridged_model(Bridge::Type{<:Constraint.AbstractBridge}, inner) |
340 | | - return Constraint.SingleBridgeOptimizer{Bridge{Float64}}(inner) |
| 342 | + return Constraint.SingleBridgeOptimizer{Bridge}(inner) |
341 | 343 | end |
342 | 344 |
|
343 | 345 | function _bridged_model(Bridge::Type{<:Objective.AbstractBridge}, inner) |
344 | | - return Objective.SingleBridgeOptimizer{Bridge{Float64}}(inner) |
| 346 | + return Objective.SingleBridgeOptimizer{Bridge}(inner) |
345 | 347 | end |
346 | 348 |
|
347 | 349 | function _bridged_model(Bridge::Type{<:Variable.AbstractBridge}, inner) |
348 | | - return Variable.SingleBridgeOptimizer{Bridge{Float64}}(inner) |
| 350 | + return Variable.SingleBridgeOptimizer{Bridge}(inner) |
349 | 351 | end |
350 | 352 |
|
351 | 353 | function _general_bridge_tests(bridge::B) where {B<:AbstractBridge} |
|
0 commit comments