diff --git a/Project.toml b/Project.toml index ea7f9a31..ae45bce0 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "CTModels" uuid = "34c4fa32-2049-4079-8329-de33c2a22e2d" authors = ["Olivier Cots "] -version = "0.6.7" +version = "0.6.8" [deps] CTBase = "54762871-cc72-4466-b8e8-f6c8b58076cd" diff --git a/src/solution.jl b/src/solution.jl index c8daca71..435d6e50 100644 --- a/src/solution.jl +++ b/src/solution.jl @@ -697,68 +697,29 @@ end """ $(TYPEDSIGNATURES) -Prints the solution. +Print the solution. """ function Base.show(io::IO, ::MIME"text/plain", sol::Solution) - println(io, "Optimal Control Solution") - println(io, "────────────────────────") - - # Status - println(io, "• Successful : ", successful(sol)) - println(io, "• Status : ", status(sol)) - println(io, "• Message : ", message(sol)) - println(io, "• Iterations : ", iterations(sol)) - println(io, "• Objective : ", objective(sol)) - println(io, "• Constraint violation: ", constraints_violation(sol)) - - println(io) - println(io, "Time") - println(io, "────") - println(io, "• Name : ", time_name(sol)) - println(io, "• Grid : ", time_grid(sol)) - println(io, "• Grid length : ", length(time_grid(sol))) - - println(io) - println(io, "State") - println(io, "─────") - println(io, "• Name : ", state_name(sol)) - println(io, "• Dimension : ", state_dimension(sol)) - println(io, "• Components : ", join(state_components(sol), ", ")) - - println(io) - println(io, "Control") - println(io, "───────") - println(io, "• Name : ", control_name(sol)) - println(io, "• Dimension : ", control_dimension(sol)) - println(io, "• Components : ", join(control_components(sol), ", ")) - - # Variable block (optional) - v_dim = variable_dimension(sol) - if v_dim > 0 - println(io) - println(io, "Variable") - println(io, "────────") - println(io, "• Name : ", variable_name(sol)) - println(io, "• Dimension : ", v_dim) - println(io, "• Components : ", join(variable_components(sol), ", ")) - println(io, "• Value : ", variable(sol)) + # Résumé solveur + println(io, "• Solver:") + println(io, " ✓ Successful : ", successful(sol)) + println(io, " │ Status : ", status(sol)) + println(io, " │ Message : ", message(sol)) + println(io, " │ Iterations : ", iterations(sol)) + println(io, " │ Objective : ", objective(sol)) + println(io, " └─ Constraints violation : ", constraints_violation(sol)) + + # Variable (si définie) + if variable_dimension(sol) > 0 + println(io, "\n• Variable: ", variable_name(sol), " = (", join(variable_components(sol), ", "), ") = ", variable(sol)) + if dim_variable_constraints_box(model(sol)) > 0 + println(io, " │ Var dual (lb) : ", variable_constraints_lb_dual(sol)) + println(io, " └─ Var dual (ub) : ", variable_constraints_ub_dual(sol)) + end end - println(io) - println(io, "Duals") - println(io, "─────") - println(io, "• Boundary constraints dual: ", boundary_constraints_dual(sol)) - if v_dim > 0 - println(io, "• Variable constraints dual (lb): ", variable_constraints_lb_dual(sol)) - println(io, "• Variable constraints dual (ub): ", variable_constraints_ub_dual(sol)) + # Boundary constraints duals + if dim_boundary_constraints_nl(model(sol)) > 0 + println(io, "\n• Boundary duals: ", boundary_constraints_dual(sol)) end end - -# """ -# $(TYPEDSIGNATURES) - -# """ -# function Base.show_default(io::IO, sol::Solution) -# return print(io, "Optimal Control Solution") -# #show(io, MIME("text/plain"), sol) -# end diff --git a/test/extras/print_model.jl b/test/extras/print_model.jl index 89b25016..24d19829 100644 --- a/test/extras/print_model.jl +++ b/test/extras/print_model.jl @@ -12,3 +12,5 @@ ocp, sol, pre_ocp = solution_example(); ocp pre_ocp + +sol \ No newline at end of file