model = pyo.ConcreteModel()
model.v1 = pyo.Var()
model.v2 = pyo.Var()
model.c = pyo.Constraint(expr=model.v2 - model.v1 >= 0.1)
model.o = pyo.Objective(expr=model.v1 + model.v2)
solver = pyo.SolverFactory('glpk')
input_vars = [model.v1]
n_scen = 2
input_values = pyo.ComponentMap([(model.v1, [1.1, 2.1])])
output_values = pyo.ComponentMap([(model.v2, [1.2, 2.2])])
with ParamSweeper(
n_scen,
input_values,
output_values,
to_fix=input_vars,
) as param_sweeper:
for inputs, outputs in param_sweeper:
solver.solve(model)
# inputs and outputs contain the correct values for this
# instance of the model
for var, val in outputs.items():
# Test that model.v2 was calculated properly.
# First that it equals 1.2, then that it equals 2.2
assert var.value == val, f"{var.value} != {val}"