From 05d8f2d2a11047577f52bcf03e0c5fc59c25f930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 10 May 2025 08:09:27 +0200 Subject: [PATCH] Use Base.only when appropriate --- src/Bridges/Constraint/bridges/VectorizeBridge.jl | 14 +++++--------- src/Bridges/Variable/bridges/VectorizeBridge.jl | 7 ++----- src/FileFormats/MPS/MPS.jl | 3 +-- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/Bridges/Constraint/bridges/VectorizeBridge.jl b/src/Bridges/Constraint/bridges/VectorizeBridge.jl index 7d9f7a3601..e39b1ae8e9 100644 --- a/src/Bridges/Constraint/bridges/VectorizeBridge.jl +++ b/src/Bridges/Constraint/bridges/VectorizeBridge.jl @@ -123,8 +123,7 @@ function MOI.get( if x === nothing return nothing end - @assert length(x) == 1 - return x[1] + bridge.set_constant + return only(x) + bridge.set_constant end function MOI.get( @@ -133,16 +132,15 @@ function MOI.get( bridge::VectorizeBridge, ) x = MOI.get(model, attr, bridge.vector_constraint) - @assert length(x) == 1 if MOI.Utilities.is_ray(MOI.get(model, MOI.PrimalStatus(attr.result_index))) # If it is an infeasibility certificate, it is a ray and satisfies the # homogenized problem, see https://github.com/jump-dev/MathOptInterface.jl/issues/433 - return x[1] + return only(x) else # Otherwise, we need to add the set constant since the ConstraintPrimal # is defined as the value of the function and the set_constant was # removed from the original function - return x[1] + bridge.set_constant + return only(x) + bridge.set_constant end end @@ -180,8 +178,7 @@ function MOI.get( if x === nothing return nothing end - @assert length(x) == 1 - return x[1] + return only(x) end function MOI.set( @@ -235,8 +232,7 @@ function MOI.get( MOI.get(model, attr, bridge.vector_constraint), true, ) - @assert length(f) == 1 - return convert(G, f[1]) + return convert(G, only(f)) end function MOI.get( diff --git a/src/Bridges/Variable/bridges/VectorizeBridge.jl b/src/Bridges/Variable/bridges/VectorizeBridge.jl index efe8a5ab59..3d658733b9 100644 --- a/src/Bridges/Variable/bridges/VectorizeBridge.jl +++ b/src/Bridges/Variable/bridges/VectorizeBridge.jl @@ -141,8 +141,7 @@ function MOI.get( bridge::VectorizeBridge, ) x = MOI.get(model, attr, bridge.vector_constraint) - @assert length(x) == 1 - y = x[1] + y = only(x) status = MOI.get(model, MOI.PrimalStatus(attr.result_index)) if !MOI.Utilities.is_ray(status) # If it is an infeasibility certificate, it is a ray and satisfies the @@ -160,9 +159,7 @@ function MOI.get( attr::MOI.ConstraintDual, bridge::VectorizeBridge, ) - x = MOI.get(model, attr, bridge.vector_constraint) - @assert length(x) == 1 - return x[1] + return only(MOI.get(model, attr, bridge.vector_constraint)) end function MOI.get( diff --git a/src/FileFormats/MPS/MPS.jl b/src/FileFormats/MPS/MPS.jl index c9ea639fae..bcce30a0e7 100644 --- a/src/FileFormats/MPS/MPS.jl +++ b/src/FileFormats/MPS/MPS.jl @@ -1199,8 +1199,7 @@ function Base.read!(io::IO, model::Model) if header == HEADER_NAME parse_name_line(data, line) elseif header == HEADER_OBJSENSE - @assert length(items) == 1 - sense = uppercase(items[1]) + sense = uppercase(only(items)) @assert sense == "MAX" || sense == "MIN" data.is_minimization = sense == "MIN" elseif header == HEADER_ROWS