mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-07 00:38:51 -06:00
Make test/ a standalone project
This commit is contained in:
40
test/src/lmp/aelmp_test.jl
Normal file
40
test/src/lmp/aelmp_test.jl
Normal file
@@ -0,0 +1,40 @@
|
||||
# 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
|
||||
import UnitCommitment: AELMP
|
||||
|
||||
function lmp_aelmp_test()
|
||||
@testset "aelmp" begin
|
||||
path = fixture("aelmp_simple.json.gz")
|
||||
# model has to be solved first
|
||||
instance = UnitCommitment.read(path)
|
||||
model = UnitCommitment.build_model(
|
||||
instance = instance,
|
||||
optimizer = Cbc.Optimizer,
|
||||
variable_names = true,
|
||||
)
|
||||
JuMP.set_silent(model)
|
||||
UnitCommitment.optimize!(model)
|
||||
|
||||
# policy 1: allow offlines; consider startups
|
||||
aelmp_1 = UnitCommitment.compute_lmp(
|
||||
model,
|
||||
AELMP(),
|
||||
optimizer = HiGHS.Optimizer,
|
||||
)
|
||||
@test aelmp_1["s1", "B1", 1] ≈ 231.7 atol = 0.1
|
||||
|
||||
# policy 2: do not allow offlines; but consider startups
|
||||
aelmp_2 = UnitCommitment.compute_lmp(
|
||||
model,
|
||||
AELMP(
|
||||
allow_offline_participation = false,
|
||||
consider_startup_costs = true,
|
||||
),
|
||||
optimizer = HiGHS.Optimizer,
|
||||
)
|
||||
@test aelmp_2["s1", "B1", 1] ≈ 274.3 atol = 0.1
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user