Skip to content

Commit 1c693e4

Browse files
ocotsgithub-actions[bot]
authored andcommitted
🤖 Format .jl files
1 parent fd4a77a commit 1c693e4

5 files changed

Lines changed: 209 additions & 157 deletions

File tree

ext/CTModelsJSON.jl

Lines changed: 65 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,33 @@ Export OCP solution in JSON format
1414
function CTModels.export_ocp_solution(
1515
::CTModels.JSON3Tag, sol::CTModels.Solution; filename_prefix="solution"
1616
)
17-
1817
T = CTModels.time_grid(sol)
1918

2019
blob = Dict(
21-
"time_grid" => CTModels.time_grid(sol),
22-
"state" => CTModels.state_discretized(sol),
23-
"control" => CTModels.control_discretized(sol),
24-
"variable" => CTModels.variable(sol),
25-
"costate" => CTModels.costate_discretized(sol)[1:(end - 1), :],
26-
"objective" => CTModels.objective(sol),
27-
"iterations" => CTModels.iterations(sol),
20+
"time_grid" => CTModels.time_grid(sol),
21+
"state" => CTModels.state_discretized(sol),
22+
"control" => CTModels.control_discretized(sol),
23+
"variable" => CTModels.variable(sol),
24+
"costate" => CTModels.costate_discretized(sol)[1:(end - 1), :],
25+
"objective" => CTModels.objective(sol),
26+
"iterations" => CTModels.iterations(sol),
2827
"constraints_violation" => CTModels.constraints_violation(sol),
29-
"message" => CTModels.message(sol),
30-
"stopping" => CTModels.stopping(sol),
31-
"success" => CTModels.success(sol),
32-
"path_constraints" => CTModels.discretize(CTModels.path_constraints(sol), T),
33-
"path_constraints_dual" => CTModels.discretize(CTModels.path_constraints_dual(sol), T),
34-
"state_constraints_lb_dual" => CTModels.discretize(CTModels.state_constraints_lb_dual(sol), T),
35-
"state_constraints_ub_dual" => CTModels.discretize(CTModels.state_constraints_ub_dual(sol), T),
36-
"control_constraints_lb_dual" => CTModels.discretize(CTModels.control_constraints_lb_dual(sol), T),
37-
"control_constraints_ub_dual" => CTModels.discretize(CTModels.control_constraints_ub_dual(sol), T),
38-
"boundary_constraints" => CTModels.boundary_constraints(sol), # ctVector or Nothing
39-
"boundary_constraints_dual" => CTModels.boundary_constraints_dual(sol), # ctVector or Nothing
28+
"message" => CTModels.message(sol),
29+
"stopping" => CTModels.stopping(sol),
30+
"success" => CTModels.success(sol),
31+
"path_constraints" => CTModels.discretize(CTModels.path_constraints(sol), T),
32+
"path_constraints_dual" =>
33+
CTModels.discretize(CTModels.path_constraints_dual(sol), T),
34+
"state_constraints_lb_dual" =>
35+
CTModels.discretize(CTModels.state_constraints_lb_dual(sol), T),
36+
"state_constraints_ub_dual" =>
37+
CTModels.discretize(CTModels.state_constraints_ub_dual(sol), T),
38+
"control_constraints_lb_dual" =>
39+
CTModels.discretize(CTModels.control_constraints_lb_dual(sol), T),
40+
"control_constraints_ub_dual" =>
41+
CTModels.discretize(CTModels.control_constraints_ub_dual(sol), T),
42+
"boundary_constraints" => CTModels.boundary_constraints(sol), # ctVector or Nothing
43+
"boundary_constraints_dual" => CTModels.boundary_constraints_dual(sol), # ctVector or Nothing
4044
"variable_constraints_lb_dual" => CTModels.variable_constraints_lb_dual(sol), # ctVector or Nothing
4145
"variable_constraints_ub_dual" => CTModels.variable_constraints_ub_dual(sol), # ctVector or Nothing
4246
)
@@ -56,7 +60,6 @@ Read OCP solution in JSON format
5660
function CTModels.import_ocp_solution(
5761
::CTModels.JSON3Tag, ocp::CTModels.Model; filename_prefix="solution"
5862
)
59-
6063
json_string = read(filename_prefix * ".json", String)
6164
blob = JSON3.read(json_string)
6265

@@ -79,33 +82,65 @@ function CTModels.import_ocp_solution(
7982
end
8083

8184
# get path constraints (and dual): convert to matrix
82-
path_constraints = isnothing(blob["path_constraints"]) ? nothing : stack(blob["path_constraints"]; dims=1)
85+
path_constraints = if isnothing(blob["path_constraints"])
86+
nothing
87+
else
88+
stack(blob["path_constraints"]; dims=1)
89+
end
8390
if path_constraints isa Vector # if path_constraints is a Vector, convert it to a Matrix
8491
path_constraints = Matrix{Float64}(reduce(hcat, path_constraints)')
8592
end
86-
path_constraints_dual = isnothing(blob["path_constraints_dual"]) ? nothing : stack(blob["path_constraints_dual"]; dims=1)
93+
path_constraints_dual = if isnothing(blob["path_constraints_dual"])
94+
nothing
95+
else
96+
stack(blob["path_constraints_dual"]; dims=1)
97+
end
8798
if path_constraints_dual isa Vector # if path_constraints_dual is a Vector, convert it to a Matrix
8899
path_constraints_dual = Matrix{Float64}(reduce(hcat, path_constraints_dual)')
89100
end
90101

91102
# get state constraints (and dual): convert to matrix
92-
state_constraints_lb_dual = isnothing(blob["state_constraints_lb_dual"]) ? nothing : stack(blob["state_constraints_lb_dual"]; dims=1)
103+
state_constraints_lb_dual = if isnothing(blob["state_constraints_lb_dual"])
104+
nothing
105+
else
106+
stack(blob["state_constraints_lb_dual"]; dims=1)
107+
end
93108
if state_constraints_lb_dual isa Vector # if state_constraints_lb_dual is a Vector, convert it to a Matrix
94-
state_constraints_lb_dual = Matrix{Float64}(reduce(hcat, state_constraints_lb_dual)')
109+
state_constraints_lb_dual = Matrix{Float64}(
110+
reduce(hcat, state_constraints_lb_dual)'
111+
)
112+
end
113+
state_constraints_ub_dual = if isnothing(blob["state_constraints_ub_dual"])
114+
nothing
115+
else
116+
stack(blob["state_constraints_ub_dual"]; dims=1)
95117
end
96-
state_constraints_ub_dual = isnothing(blob["state_constraints_ub_dual"]) ? nothing : stack(blob["state_constraints_ub_dual"]; dims=1)
97118
if state_constraints_ub_dual isa Vector # if state_constraints_ub_dual is a Vector, convert it to a Matrix
98-
state_constraints_ub_dual = Matrix{Float64}(reduce(hcat, state_constraints_ub_dual)')
119+
state_constraints_ub_dual = Matrix{Float64}(
120+
reduce(hcat, state_constraints_ub_dual)'
121+
)
99122
end
100123

101124
# get control constraints (and dual): convert to matrix
102-
control_constraints_lb_dual = isnothing(blob["control_constraints_lb_dual"]) ? nothing : stack(blob["control_constraints_lb_dual"]; dims=1)
125+
control_constraints_lb_dual = if isnothing(blob["control_constraints_lb_dual"])
126+
nothing
127+
else
128+
stack(blob["control_constraints_lb_dual"]; dims=1)
129+
end
103130
if control_constraints_lb_dual isa Vector # if control_constraints_lb_dual is a Vector, convert it to a Matrix
104-
control_constraints_lb_dual = Matrix{Float64}(reduce(hcat, control_constraints_lb_dual)')
131+
control_constraints_lb_dual = Matrix{Float64}(
132+
reduce(hcat, control_constraints_lb_dual)'
133+
)
134+
end
135+
control_constraints_ub_dual = if isnothing(blob["control_constraints_ub_dual"])
136+
nothing
137+
else
138+
stack(blob["control_constraints_ub_dual"]; dims=1)
105139
end
106-
control_constraints_ub_dual = isnothing(blob["control_constraints_ub_dual"]) ? nothing : stack(blob["control_constraints_ub_dual"]; dims=1)
107140
if control_constraints_ub_dual isa Vector # if control_constraints_ub_dual is a Vector, convert it to a Matrix
108-
control_constraints_ub_dual = Matrix{Float64}(reduce(hcat, control_constraints_ub_dual)')
141+
control_constraints_ub_dual = Matrix{Float64}(
142+
reduce(hcat, control_constraints_ub_dual)'
143+
)
109144
end
110145

111146
# get boundary constraints (and dual): no conversion needed
@@ -141,7 +176,6 @@ function CTModels.import_ocp_solution(
141176
variable_constraints_lb_dual=variable_constraints_lb_dual,
142177
variable_constraints_ub_dual=variable_constraints_ub_dual,
143178
)
144-
145179
end
146180

147181
end

src/CTModels.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import_ocp_solution(::JSON3Tag, args...; kwargs...) = throw(CTBase.ExtensionErro
4545

4646
function export_ocp_solution(args...; format=__format(), kwargs...)
4747
if format == :JLD
48-
return export_ocp_solution(JLD2Tag(), args...; kwargs...)
48+
return export_ocp_solution(JLD2Tag(), args...; kwargs...)
4949
elseif format == :JSON
5050
return export_ocp_solution(JSON3Tag(), args...; kwargs...)
5151
else
@@ -59,7 +59,7 @@ end
5959

6060
function import_ocp_solution(args...; format=__format(), kwargs...)
6161
if format == :JLD
62-
return import_ocp_solution(JLD2Tag(), args...; kwargs...)
62+
return import_ocp_solution(JLD2Tag(), args...; kwargs...)
6363
elseif format == :JSON
6464
return import_ocp_solution(JSON3Tag(), args...; kwargs...)
6565
else

0 commit comments

Comments
 (0)