Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions test/performance/performance_test_cats.jl
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,29 @@ using Dates

@info pkgdir(PowerOperationsModels)

function is_running_on_ci()
return get(ENV, "CI", "false") == "true" || haskey(ENV, "GITHUB_ACTIONS")
end

open("cats_precompile_time.txt", "a") do io
if length(ARGS) == 0 && !is_running_on_ci()
push!(ARGS, "Local Test")
end
write(io, "| $(ARGS[1]) | $(precompile_time.time) |\n")
end

try
# TODO Should probably be passed through argv but I think Github CI uses
# argv already somehow?
cats_dir = "/Users/acostare/Documents/CATS-CaliforniaTestSystem/"
cats_dir = ARGS[1]
include(joinpath(cats_dir, "Sienna/build_CATS.jl"))
sys = build_CATS_system(first_order = true)
transform_single_time_series!(sys, Hour(48), Hour(24))
sys = build_CATS_system(; first_order = true)
transform_single_time_series!(sys, Hour(1), Hour(1))

for i in 1:2
template = ProblemTemplate(NetworkModel(PTDFPowerModel))
template = ProblemTemplate(
NetworkModel(PTDFPowerModel;
use_slacks = true,
duals = [CopperPlateBalanceConstraint],
),
)
set_device_model!(template, ThermalStandard, ThermalBasicUnitCommitment)
set_device_model!(template, RenewableDispatch, RenewableFullDispatch)
set_device_model!(template, HydroDispatch, HydroDispatchRunOfRiver)
set_device_model!(template, PowerLoad, StaticPowerLoad)
set_device_model!(template, Line, StaticBranch)
set_device_model!(template, Transformer2W, StaticBranch)
model = DecisionModel(template, sys; name = "CATS_UC", optimizer = HiGHS.Optimizer)

# Build
Expand All @@ -53,18 +55,18 @@ try
end

# TODO CATS fails to solve at the moment.
# # Solve
# _, time_solve, _, _ = @timed begin
# solve = solve!(model)
# end
# solve_ok = solve == IOM.RunStatus.SUCCESSFULLY_FINALIZED
# open("cats_solve_time.txt", "a") do io
# if solve_ok
# write(io, "| $(ARGS[1])-Solve Time $name | $(time_solve) |\n")
# else
# write(io, "| $(ARGS[1])-Solve Time $name | FAILED TO TEST |\n")
# end
# end
# Solve
_, time_solve, _, _ = @timed begin
solve = solve!(model)
end
solve_ok = solve == IOM.RunStatus.SUCCESSFULLY_FINALIZED
open("cats_solve_time.txt", "a") do io
if solve_ok
write(io, "| $(ARGS[1])-Solve Time $name | $(time_solve) |\n")
else
write(io, "| $(ARGS[1])-Solve Time $name | FAILED TO TEST |\n")
end
end
end
catch e
rethrow(e)
Expand All @@ -73,12 +75,10 @@ catch e
end
end

if !is_running_on_ci()
for file in ["cats_precompile_time.txt", "cats_build_time.txt", "cats_solve_time.txt"]
name = replace(file, "_" => " ")[begin:(end - 4)]
println("$name:")
for line in eachline(open(file))
println("\t", line)
end
for file in ["cats_precompile_time.txt", "cats_build_time.txt", "cats_solve_time.txt"]
name = replace(file, "_" => " ")[begin:(end - 4)]
println("$name:")
for line in eachline(open(file))
println("\t", line)
end
end
Loading