diff --git a/test/performance/performance_test_cats.jl b/test/performance/performance_test_cats.jl index ebb397f..6b77039 100644 --- a/test/performance/performance_test_cats.jl +++ b/test/performance/performance_test_cats.jl @@ -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 @@ -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) @@ -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