diff --git a/test/fixtures/case24-iberian-storage.json.gz b/test/fixtures/case24-iberian-storage.json.gz new file mode 100644 index 0000000..65a5528 Binary files /dev/null and b/test/fixtures/case24-iberian-storage.json.gz differ diff --git a/test/src/UnitCommitmentT.jl b/test/src/UnitCommitmentT.jl index ae28329..77ee669 100644 --- a/test/src/UnitCommitmentT.jl +++ b/test/src/UnitCommitmentT.jl @@ -9,6 +9,7 @@ include("import/egret_test.jl") include("instance/read_test.jl") include("instance/migrate_test.jl") include("model/formulations_test.jl") +include("model/storage_optimization_test.jl") include("solution/methods/XavQiuWanThi19/filter_test.jl") include("solution/methods/XavQiuWanThi19/find_test.jl") include("solution/methods/XavQiuWanThi19/sensitivity_test.jl") @@ -39,6 +40,7 @@ function runtests() instance_read_test() instance_migrate_test() model_formulations_test() + storage_optimization_test() solution_methods_XavQiuWanThi19_filter_test() solution_methods_XavQiuWanThi19_find_test() solution_methods_XavQiuWanThi19_sensitivity_test() diff --git a/test/src/model/storage_optimization_test.jl b/test/src/model/storage_optimization_test.jl new file mode 100644 index 0000000..2950f61 --- /dev/null +++ b/test/src/model/storage_optimization_test.jl @@ -0,0 +1,32 @@ +# 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 +using JuMP +using HiGHS +using JSON + +function storage_optimization_test() + @testset "storage_optimization" begin + instance = + UnitCommitment.read(fixture("case24-iberian-storage.json.gz")) + model = UnitCommitment.build_model( + instance = instance, + optimizer = HiGHS.Optimizer, + variable_names = true, + ) + set_silent(model) + UnitCommitment.optimize!(model) + solution = UnitCommitment.solution(model) + # results must be valid + @test UnitCommitment.validate(instance, solution) + # storages are being used + charging_rates = solution["Storage charging rates (MW)"] + discharging_rates = solution["Storage discharging rates (MW)"] + @test sum(charging_rates["su1"]) > 0 + @test sum(charging_rates["su2"]) > 0 + @test sum(discharging_rates["su1"]) > 0 + @test sum(discharging_rates["su2"]) > 0 + end +end