Files
UnitCommitment.jl/test/src/lmp/conventional_test.jl
2023-06-16 15:35:10 -04:00

56 lines
1.8 KiB
Julia

# 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, Cbc, HiGHS, JuMP
function solve_conventional_testcase(path::String)
instance = UnitCommitment.read(path)
model = UnitCommitment.build_model(
instance = instance,
optimizer = optimizer_with_attributes(Cbc.Optimizer, "logLevel" => 0),
variable_names = true,
)
JuMP.set_silent(model)
UnitCommitment.optimize!(model)
lmp = UnitCommitment.compute_lmp(
model,
ConventionalLMP(),
optimizer = optimizer_with_attributes(
HiGHS.Optimizer,
"log_to_console" => false,
),
)
return lmp
end
function lmp_conventional_test()
@testset "conventional" begin
# instance 1
path = fixture("lmp_simple_test_1.json.gz")
lmp = solve_conventional_testcase(path)
@test lmp["s1", "A", 1] == 50.0
@test lmp["s1", "B", 1] == 50.0
# instance 2
path = fixture("lmp_simple_test_2.json.gz")
lmp = solve_conventional_testcase(path)
@test lmp["s1", "A", 1] == 50.0
@test lmp["s1", "B", 1] == 60.0
# instance 3
path = fixture("lmp_simple_test_3.json.gz")
lmp = solve_conventional_testcase(path)
@test lmp["s1", "A", 1] == 50.0
@test lmp["s1", "B", 1] == 70.0
@test lmp["s1", "C", 1] == 100.0
# instance 4
path = fixture("lmp_simple_test_4.json.gz")
lmp = solve_conventional_testcase(path)
@test lmp["s1", "A", 1] == 50.0
@test lmp["s1", "B", 1] == 70.0
@test lmp["s1", "C", 1] == 90.0
end
end