mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 08:18:51 -06:00
Rename internal methods to _something; reformat code
This commit is contained in:
@@ -6,7 +6,7 @@ using UnitCommitment
|
||||
|
||||
@testset "convert" begin
|
||||
@testset "EGRET solution" begin
|
||||
solution = UnitCommitment.read_egret_solution("fixtures/egret_output.json.gz")
|
||||
solution = UnitCommitment._read_egret_solution("fixtures/egret_output.json.gz")
|
||||
for attr in ["Is on", "Production (MW)", "Production cost (\$)"]
|
||||
@test attr in keys(solution)
|
||||
@test "115_STEAM_1" in keys(solution[attr])
|
||||
@@ -16,4 +16,4 @@ using UnitCommitment
|
||||
@test solution["Startup cost (\$)"]["315_CT_6"][15:20] == [0., 0., 5665.23, 0., 0., 0.]
|
||||
@test length(keys(solution["Is on"])) == 154
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
using Test
|
||||
using UnitCommitment
|
||||
|
||||
UnitCommitment.setup_logger()
|
||||
UnitCommitment._setup_logger()
|
||||
|
||||
@testset "UnitCommitment" begin
|
||||
include("instance_test.jl")
|
||||
|
||||
@@ -3,51 +3,83 @@
|
||||
# Released under the modified BSD license. See COPYING.md for more details.
|
||||
|
||||
using UnitCommitment, Test, LinearAlgebra
|
||||
import UnitCommitment: Violation, _offer, _query
|
||||
|
||||
@testset "Screening" begin
|
||||
@testset "Violation filter" begin
|
||||
instance = UnitCommitment.read_benchmark("test/case14")
|
||||
filter = ViolationFilter(max_per_line=1, max_total=2)
|
||||
filter = UnitCommitment.ViolationFilter(max_per_line=1, max_total=2)
|
||||
|
||||
offer(filter, Violation(time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=nothing,
|
||||
amount=100.))
|
||||
|
||||
offer(filter, Violation(time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[1],
|
||||
amount=300.))
|
||||
|
||||
offer(filter, Violation(time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[5],
|
||||
amount=500.))
|
||||
|
||||
offer(filter, Violation(time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[4],
|
||||
amount=400.))
|
||||
|
||||
offer(filter, Violation(time=1,
|
||||
monitored_line=instance.lines[2],
|
||||
outage_line=instance.lines[1],
|
||||
amount=200.))
|
||||
|
||||
offer(filter, Violation(time=1,
|
||||
monitored_line=instance.lines[2],
|
||||
outage_line=instance.lines[8],
|
||||
amount=100.))
|
||||
_offer(
|
||||
filter,
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=nothing,
|
||||
amount=100.,
|
||||
),
|
||||
)
|
||||
_offer(
|
||||
filter,
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[1],
|
||||
amount=300.,
|
||||
),
|
||||
)
|
||||
_offer(
|
||||
filter,
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[5],
|
||||
amount=500.,
|
||||
),
|
||||
)
|
||||
_offer(
|
||||
filter,
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[4],
|
||||
amount=400.,
|
||||
),
|
||||
)
|
||||
_offer(
|
||||
filter,
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[2],
|
||||
outage_line=instance.lines[1],
|
||||
amount=200.,
|
||||
),
|
||||
)
|
||||
_offer(
|
||||
filter,
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[2],
|
||||
outage_line=instance.lines[8],
|
||||
amount=100.,
|
||||
)
|
||||
)
|
||||
|
||||
actual = query(filter)
|
||||
expected = [Violation(time=1,
|
||||
monitored_line=instance.lines[2],
|
||||
outage_line=instance.lines[1],
|
||||
amount=200.),
|
||||
Violation(time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[5],
|
||||
amount=500.)]
|
||||
actual = _query(filter)
|
||||
expected = [
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[2],
|
||||
outage_line=instance.lines[1],
|
||||
amount=200.,
|
||||
),
|
||||
Violation(
|
||||
time=1,
|
||||
monitored_line=instance.lines[1],
|
||||
outage_line=instance.lines[5],
|
||||
amount=500.,
|
||||
),
|
||||
]
|
||||
@test actual == expected
|
||||
end
|
||||
|
||||
@@ -57,19 +89,24 @@ using UnitCommitment, Test, LinearAlgebra
|
||||
line.normal_flow_limit[t] = 1.0
|
||||
line.emergency_flow_limit[t] = 1.0
|
||||
end
|
||||
isf = UnitCommitment.injection_shift_factors(lines=instance.lines,
|
||||
buses=instance.buses)
|
||||
lodf = UnitCommitment.line_outage_factors(lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
isf=isf)
|
||||
isf = UnitCommitment._injection_shift_factors(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
)
|
||||
lodf = UnitCommitment._line_outage_factors(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
isf=isf,
|
||||
)
|
||||
inj = [1000.0 for b in 1:13, t in 1:instance.time]
|
||||
overflow = [0.0 for l in instance.lines, t in 1:instance.time]
|
||||
violations = UnitCommitment.find_violations(instance=instance,
|
||||
net_injections=inj,
|
||||
overflow=overflow,
|
||||
isf=isf,
|
||||
lodf=lodf)
|
||||
|
||||
violations = UnitCommitment._find_violations(
|
||||
instance=instance,
|
||||
net_injections=inj,
|
||||
overflow=overflow,
|
||||
isf=isf,
|
||||
lodf=lodf,
|
||||
)
|
||||
@test length(violations) == 20
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ using UnitCommitment, Test, LinearAlgebra
|
||||
@testset "Sensitivity" begin
|
||||
@testset "Susceptance matrix" begin
|
||||
instance = UnitCommitment.read_benchmark("test/case14")
|
||||
actual = UnitCommitment.susceptance_matrix(instance.lines)
|
||||
actual = UnitCommitment._susceptance_matrix(instance.lines)
|
||||
@test size(actual) == (20, 20)
|
||||
expected = Diagonal([29.5, 7.83, 8.82, 9.9, 10.04,
|
||||
10.2, 41.45, 8.35, 3.14, 6.93,
|
||||
@@ -18,8 +18,10 @@ using UnitCommitment, Test, LinearAlgebra
|
||||
|
||||
@testset "Reduced incidence matrix" begin
|
||||
instance = UnitCommitment.read_benchmark("test/case14")
|
||||
actual = UnitCommitment.reduced_incidence_matrix(lines=instance.lines,
|
||||
buses=instance.buses)
|
||||
actual = UnitCommitment._reduced_incidence_matrix(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
)
|
||||
@test size(actual) == (20, 13)
|
||||
@test actual[1, 1] == -1.0
|
||||
@test actual[3, 1] == 1.0
|
||||
@@ -63,8 +65,10 @@ using UnitCommitment, Test, LinearAlgebra
|
||||
|
||||
@testset "Injection Shift Factors (ISF)" begin
|
||||
instance = UnitCommitment.read_benchmark("test/case14")
|
||||
actual = UnitCommitment.injection_shift_factors(lines=instance.lines,
|
||||
buses=instance.buses)
|
||||
actual = UnitCommitment._injection_shift_factors(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
)
|
||||
@test size(actual) == (20, 13)
|
||||
@test round.(actual, digits=2) == [
|
||||
-0.84 -0.75 -0.67 -0.61 -0.63 -0.66 -0.66 -0.65 -0.65 -0.64 -0.63 -0.63 -0.64;
|
||||
@@ -91,17 +95,23 @@ using UnitCommitment, Test, LinearAlgebra
|
||||
|
||||
@testset "Line Outage Distribution Factors (LODF)" begin
|
||||
instance = UnitCommitment.read_benchmark("test/case14")
|
||||
isf_before = UnitCommitment.injection_shift_factors(lines=instance.lines,
|
||||
buses=instance.buses)
|
||||
lodf = UnitCommitment.line_outage_factors(lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
isf=isf_before)
|
||||
isf_before = UnitCommitment._injection_shift_factors(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
)
|
||||
lodf = UnitCommitment._line_outage_factors(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
isf=isf_before,
|
||||
)
|
||||
for contingency in instance.contingencies
|
||||
for lc in contingency.lines
|
||||
prev_susceptance = lc.susceptance
|
||||
lc.susceptance = 0.0
|
||||
isf_after = UnitCommitment.injection_shift_factors(lines=instance.lines,
|
||||
buses=instance.buses)
|
||||
isf_after = UnitCommitment._injection_shift_factors(
|
||||
lines=instance.lines,
|
||||
buses=instance.buses,
|
||||
)
|
||||
lc.susceptance = prev_susceptance
|
||||
for lm in instance.lines
|
||||
expected = isf_after[lm.offset, :]
|
||||
|
||||
@@ -14,7 +14,7 @@ parse_case14() = JSON.parse(GZip.gzopen("../instances/test/case14.json.gz"),
|
||||
json = parse_case14()
|
||||
json["Generators"]["g1"]["Production cost curve (MW)"] = [100, 150, 200]
|
||||
json["Generators"]["g1"]["Production cost curve (\$)"] = [10, 25, 30]
|
||||
instance = UnitCommitment.from_json(json, repair=false)
|
||||
instance = UnitCommitment._from_json(json, repair=false)
|
||||
@test UnitCommitment.repair!(instance) == 4
|
||||
end
|
||||
|
||||
@@ -23,7 +23,7 @@ parse_case14() = JSON.parse(GZip.gzopen("../instances/test/case14.json.gz"),
|
||||
json["Generators"]["g1"]["Production cost curve (MW)"] = [100, 150]
|
||||
json["Generators"]["g1"]["Production cost curve (\$)"] = [100, 150]
|
||||
json["Generators"]["g1"]["Startup limit (MW)"] = 80
|
||||
instance = UnitCommitment.from_json(json, repair=false)
|
||||
instance = UnitCommitment._from_json(json, repair=false)
|
||||
@test UnitCommitment.repair!(instance) == 1
|
||||
end
|
||||
|
||||
@@ -31,7 +31,7 @@ parse_case14() = JSON.parse(GZip.gzopen("../instances/test/case14.json.gz"),
|
||||
json = parse_case14()
|
||||
json["Generators"]["g1"]["Startup costs (\$)"] = [300, 200, 100]
|
||||
json["Generators"]["g1"]["Startup delays (h)"] = [8, 4, 2]
|
||||
instance = UnitCommitment.from_json(json, repair=false)
|
||||
instance = UnitCommitment._from_json(json, repair=false)
|
||||
@test UnitCommitment.repair!(instance) == 4
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user