# UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment # Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved. # Released under the modified BSD license. See COPYING.md for more details. using UnitCommitment, LinearAlgebra, Cbc, JuMP @testset "Model" begin @testset "Run" begin instance = UnitCommitment.read_benchmark("test/case14") for line in instance.lines, t in 1:4 line.normal_flow_limit[t] = 10.0 end optimizer = optimizer_with_attributes(Cbc.Optimizer, "logLevel" => 0) model = build_model( instance=instance, optimizer=optimizer, variable_names=true, ) @test name(model[:is_on]["g1", 1]) == "is_on[g1,1]" JuMP.write_to_file(model, "test.mps") # Optimize and retrieve solution UnitCommitment.optimize!(model) solution = UnitCommitment.solution(model) # Verify solution @test UnitCommitment.validate(instance, solution) # Reoptimize with fixed solution UnitCommitment.fix!(model, solution) UnitCommitment.optimize!(model) @test UnitCommitment.validate(instance, solution) end end