@@ -1390,27 +1390,110 @@ end
13901390# @test is_valid(model, con)
13911391# optimize!(model)
13921392# @test value(x) ≈ 0.416888 atol = 1e-5
1393- # function test_jump_psd_cone_with_parameter_quadratic()
1394- # cached = MOI.Bridges.full_bridge_optimizer(
1395- # MOI.Utilities.CachingOptimizer(
1396- # MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()),
1397- # SCS.Optimizer(),
1398- # ),
1399- # Float64,
1400- # )
1401- # optimizer = POI.Optimizer(cached)
1402- # model = direct_model(optimizer)
1403- # @variable(model, x)
1404- # @variable(model, p in MOI.Parameter(1.0))
1405- # @constraint(
1406- # model,
1407- # con,
1408- # [p * x, (2 * x - 3), p * 3 * x] in MOI.PositiveSemidefiniteConeTriangle(2)
1409- # )
1410- # @objective(model, Min, x)
1411- # @test is_valid(model, con)
1412- # optimize!(model)
1413- # @test value(x) ≈ 0.803845 atol = 1e-5
1414- # end
1393+ function test_jump_psd_cone_with_parameter_px_x_px ()
1394+ cached = MOI. Bridges. full_bridge_optimizer (
1395+ MOI. Utilities. CachingOptimizer (
1396+ MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
1397+ SCS. Optimizer (),
1398+ ),
1399+ Float64,
1400+ )
1401+ optimizer = POI. Optimizer (cached)
1402+ model = direct_model (optimizer)
1403+ @variable (model, x)
1404+ @variable (model, p in MOI. Parameter (1.0 ))
1405+ @constraint (
1406+ model,
1407+ con,
1408+ [p * x, (2 * x - 3 ), p * 3 * x] in MOI. PositiveSemidefiniteConeTriangle (2 )
1409+ )
1410+ @objective (model, Min, x)
1411+ @test is_valid (model, con)
1412+ optimize! (model)
1413+ @test value (x) ≈ 0.803845 atol = 1e-5
1414+ set_parameter_value (p, 3.0 )
1415+ optimize! (model)
1416+ @test value (x) ≈ 0.416888 atol = 1e-5
1417+ delete (model, con)
1418+ end
14151419
1416-
1420+ function test_jump_psd_cone_with_parameter_pp_x_px ()
1421+ cached = MOI. Bridges. full_bridge_optimizer (
1422+ MOI. Utilities. CachingOptimizer (
1423+ MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
1424+ SCS. Optimizer (),
1425+ ),
1426+ Float64,
1427+ )
1428+ optimizer = POI. Optimizer (cached)
1429+ model = direct_model (optimizer)
1430+ @variable (model, x)
1431+ @variable (model, p in MOI. Parameter (1.0 ))
1432+ @constraint (
1433+ model,
1434+ con,
1435+ [p * p, (2 * x - 3 ), p * 3 * x] in MOI. PositiveSemidefiniteConeTriangle (2 )
1436+ )
1437+ @objective (model, Min, x)
1438+ @test is_valid (model, con)
1439+ optimize! (model)
1440+ @test value (x) ≈ 0.7499854 atol = 1e-5
1441+ set_parameter_value (p, 3.0 )
1442+ optimize! (model)
1443+ @test value (x) ≈ 0.0971795 atol = 1e-5
1444+ delete (model, con)
1445+ end
1446+
1447+ function test_jump_psd_cone_with_parameter_p_x_px ()
1448+ cached = MOI. Bridges. full_bridge_optimizer (
1449+ MOI. Utilities. CachingOptimizer (
1450+ MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
1451+ SCS. Optimizer (),
1452+ ),
1453+ Float64,
1454+ )
1455+ optimizer = POI. Optimizer (cached)
1456+ model = direct_model (optimizer)
1457+ @variable (model, x)
1458+ @variable (model, p in MOI. Parameter (1.0 ))
1459+ @constraint (
1460+ model,
1461+ con,
1462+ [p, (2 * x - 3 ), p * 3 * x] in MOI. PositiveSemidefiniteConeTriangle (2 )
1463+ )
1464+ @objective (model, Min, x)
1465+ @test is_valid (model, con)
1466+ optimize! (model)
1467+ @test value (x) ≈ 0.7499854 atol = 1e-5
1468+ set_parameter_value (p, 3.0 )
1469+ optimize! (model)
1470+ @test value (x) ≈ 0.0971795 atol = 1e-5
1471+ delete (model, con)
1472+ end
1473+
1474+ function test_jump_psd_cone_with_parameter_p_x_pp ()
1475+ cached = MOI. Bridges. full_bridge_optimizer (
1476+ MOI. Utilities. CachingOptimizer (
1477+ MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
1478+ SCS. Optimizer (),
1479+ ),
1480+ Float64,
1481+ )
1482+ optimizer = POI. Optimizer (cached)
1483+ model = direct_model (optimizer)
1484+ @variable (model, x)
1485+ @variable (model, p in MOI. Parameter (1.0 ))
1486+ @constraint (
1487+ model,
1488+ con,
1489+ [p, (2 * x - 3 ), p * 3 * p] in MOI. PositiveSemidefiniteConeTriangle (2 )
1490+ )
1491+ @objective (model, Min, x)
1492+ @test is_valid (model, con)
1493+ optimize! (model)
1494+ @test value (x) ≈ 0.633969 atol = 1e-5
1495+ set_parameter_value (p, 3.0 )
1496+ optimize! (model)
1497+ @test value (x) ≈ - 2.9999734 atol = 1e-5
1498+ delete (model, con)
1499+ end
0 commit comments