Description of bug
In edge cases with poorly defined matching problems (e.g. empty graphs), JuMP behaves differently depending on the solver being used, leading to unhelpful errors instead of returning an empty matching.
How to reproduce
using Graphs
using GraphsMatching
using JuMP: optimizer_with_attributes, MOI
using HiGHS: HiGHS
using Cbc: Cbc
# try either one of these two
opt = optimizer_with_attributes(HiGHS.Optimizer, MOI.Silent() => true)
opt = optimizer_with_attributes(Cbc.Optimizer, MOI.Silent() => true)
g = SimpleGraph{Int64}(0, [Int64[]])
w = [0;;]
maximum_weight_matching(g,opt,w)
Expected behavior
Return an empty matching.
Actual behavior
For some optimizers, an error is raised.