diff --git a/docs/format.md b/docs/format.md index 985511e..dc02a0d 100644 --- a/docs/format.md +++ b/docs/format.md @@ -240,13 +240,13 @@ This section describes the hourly amount of reserves required. ```json { "Reserves": { - "up-flexiramp (MW)": [ + "Up-flexiramp (MW)": [ 20.31042, 23.65273, 27.41784, 25.34057 ], - "down-flexiramp (MW)": [ + "Down-flexiramp (MW)": [ 19.41546, 21.45377, 23.53402, diff --git a/instances/test/case14-flex.json.gz b/instances/test/case14-flex.json.gz new file mode 100644 index 0000000..b02c6df Binary files /dev/null and b/instances/test/case14-flex.json.gz differ diff --git a/test/model/formulations_test.jl b/test/model/formulations_test.jl index 01277a2..f46717b 100644 --- a/test/model/formulations_test.jl +++ b/test/model/formulations_test.jl @@ -4,6 +4,7 @@ using UnitCommitment using JuMP +using Cbc import UnitCommitment: ArrCon2000, CarArr2006, @@ -13,23 +14,35 @@ import UnitCommitment: KnuOstWat2018, MorLatRam2013, PanGua2016, - XavQiuWanThi2019 + XavQiuWanThi2019, + WanHob2016 if ENABLE_LARGE_TESTS using Gurobi end -function _small_test(formulation::Formulation)::Nothing - instances = ["matpower/case118/2017-02-01", "test/case14"] - for instance in instances - # Should not crash - @show "$(instance)" - UnitCommitment.build_model( - instance = UnitCommitment.read_benchmark(instance), +function _small_test( + formulation::Formulation; + instances::Array{String} = ["test/case14"], + optimizer = optimizer_with_attributes( + Cbc.Optimizer, + "logLevel" => 0, + ) +)::Nothing + for instance_name in instances + instance = UnitCommitment.read_benchmark(instance_name) + model = UnitCommitment.build_model( + instance = instance, formulation = formulation, + optimizer = optimizer, + ) + UnitCommitment.optimize!( + model, + XavQiuWanThi2019.Method(two_phase_gap = false, gap_limit = 0.1), ) + solution = UnitCommitment.solution(model) + @test UnitCommitment.validate(instance, solution) end - return end function _large_test(formulation::Formulation)::Nothing @@ -80,5 +93,8 @@ end _test(Formulation(pwl_costs = CarArr2006.PwlCosts())) @show "KnuOstWat2018 PwlCosts" _test(Formulation(pwl_costs = KnuOstWat2018.PwlCosts())) - @show "formulations completed" + _small_test( + Formulation(ramping = WanHob2016.Ramping()), + instances=["test/case14-flex"], + ) end