@@ -1260,6 +1260,72 @@ function test_delete_variables()
12601260 return
12611261end
12621262
1263+ function test_set_attribute ()
1264+ for mode in (MOI. Utilities. AUTOMATIC, MOI. Utilities. MANUAL)
1265+ cache = MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ())
1266+ optimizer = MOI. Utilities. MockOptimizer (
1267+ MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
1268+ )
1269+ model = MOI. Utilities. CachingOptimizer (cache, mode)
1270+ MOI. Utilities. reset_optimizer (model, optimizer)
1271+ MOI. Utilities. attach_optimizer (model)
1272+ x = MOI. add_variable (model)
1273+ @test MOI. is_valid (optimizer, model. model_to_optimizer_map[x])
1274+ attr = MOI. VariablePrimalStart ()
1275+ MOI. set (model, attr, x, 1.23 )
1276+ opt_attr = MOI. Utilities. AttributeFromOptimizer (attr)
1277+ cache_attr = MOI. Utilities. AttributeFromModelCache (attr)
1278+ @test MOI. get (model, opt_attr, x) == 1.23
1279+ @test MOI. get (model, cache_attr, x) == 1.23
1280+ end
1281+ return
1282+ end
1283+
1284+ function test_get_AttributeFromOptimizer ()
1285+ cache = MOI. Utilities. Model {Float64} ()
1286+ optimizer = MOI. Utilities. MockOptimizer (
1287+ MOI. Utilities. Model {Float64} (),
1288+ )
1289+ model = MOI. Utilities. CachingOptimizer (cache, optimizer)
1290+ x = MOI. add_variable (model)
1291+ MOI. Utilities. attach_optimizer (model)
1292+ attr = MOI. VariableName ()
1293+ optimizer_attr = MOI. Utilities. AttributeFromOptimizer (attr)
1294+ @test MOI. supports (model, cache_attr, MOI. VariableIndex)
1295+ MOI. set (model, optimizer_attr, x, " x" )
1296+ @test MOI. get (model, attr, x) == " "
1297+ @test MOI. get (model, optimizer_attr, x) == " x"
1298+ @test MOI. get (model, optimizer_attr, [x]) == [" x" ]
1299+ return
1300+ end
1301+
1302+ function test_get_AttributeFromModelCache ()
1303+ cache = MOI. Utilities. Model {Float64} ()
1304+ optimizer = MOI. Utilities. MockOptimizer (
1305+ MOI. Utilities. Model {Float64} (),
1306+ )
1307+ model = MOI. Utilities. CachingOptimizer (cache, optimizer)
1308+ x = MOI. add_variable (model)
1309+ MOI. Utilities. attach_optimizer (model)
1310+ # VariableName
1311+ attr = MOI. VariableName ()
1312+ cache_attr = MOI. Utilities. AttributeFromModelCache (attr)
1313+ MOI. set (model, cache_attr, x, " x" )
1314+ @test MOI. supports (model, cache_attr, MOI. VariableIndex)
1315+ @test MOI. get (model, attr, x) == " x"
1316+ @test MOI. get (model, cache_attr, x) == " x"
1317+ @test MOI. get (model, MOI. Utilities. AttributeFromOptimizer (attr), x) == " "
1318+ # Name
1319+ attr = MOI. Name ()
1320+ cache_attr = MOI. Utilities. AttributeFromModelCache (attr)
1321+ MOI. set (model, cache_attr, " m" )
1322+ @test MOI. supports (model, cache_attr)
1323+ @test MOI. get (model, attr) == " m"
1324+ @test MOI. get (model, cache_attr) == " m"
1325+ @test MOI. get (model, MOI. Utilities. AttributeFromOptimizer (attr)) == " "
1326+ return
1327+ end
1328+
12631329end # module
12641330
12651331TestCachingOptimizer. runtests ()
0 commit comments