Skip to content

Commit a4ba672

Browse files
authored
Merge pull request #928 from JuliaRobotics/22Q4/enh/moregetppe
add dispatch on getPPE
2 parents 3b78bb0 + 41056f2 commit a4ba672

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

src/services/DFGVariable.jl

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ getPPEMean(fg::AbstractDFG, varlabel::Symbol, solveKey::Symbol=:default) =
1616

1717
"$(SIGNATURES)"
1818
getPPESuggested(est::AbstractPointParametricEst) = est.suggested
19-
getPPESuggested(fg::AbstractDFG, varlabel::Symbol, solveKey::Symbol=:default) =
20-
getPPE(fg, varlabel, solveKey) |> getPPESuggested
19+
getPPESuggested(var::DFGVariable, solveKey::Symbol=:default) = getPPE(var, solveKey) |> getPPESuggested
20+
getPPESuggested(dfg::AbstractDFG, varlabel::Symbol, solveKey::Symbol=:default) = getPPE(getVariable(dfg, varlabel), solveKey) |> getPPESuggested
2121

2222
"$(SIGNATURES)"
2323
getLastUpdatedTimestamp(est::AbstractPointParametricEst) = est.lastUpdatedTimestamp
@@ -570,7 +570,7 @@ Get variable solverdata for a given solve key.
570570
"""
571571
function getVariableSolverData(dfg::AbstractDFG, variablekey::Symbol, solvekey::Symbol=:default)
572572
v = getVariable(dfg, variablekey)
573-
!haskey(v.solverDataDict, solvekey) && error("Solve key '$solvekey' not found in variable '$variablekey'")
573+
!haskey(v.solverDataDict, solvekey) && throw(KeyError("Solve key '$solvekey' not found in variable '$variablekey'"))
574574
return v.solverDataDict[solvekey]
575575
end
576576

@@ -736,7 +736,7 @@ function deleteVariableSolverData!(dfg::AbstractDFG, variablekey::Symbol, solveK
736736
var = getVariable(dfg, variablekey)
737737

738738
if !haskey(var.solverDataDict, solveKey)
739-
error("VariableNodeData '$(solveKey)' does not exist")
739+
throw(KeyError("VariableNodeData '$(solveKey)' does not exist"))
740740
end
741741
vnd = pop!(var.solverDataDict, solveKey)
742742
return vnd
@@ -793,14 +793,13 @@ Notes
793793
- Defaults on keywords `solveKey` and `method`
794794
795795
Related
796-
getMeanPPE, getMaxPPE, getKDEMean, getKDEFit, getPPEs, getVariablePPEs
796+
[`getMeanPPE`](@ref), [`getMaxPPE`](@ref), [`updatePPE!`](@ref), getKDEMean, getKDEFit, getPPEs, getVariablePPEs
797797
"""
798-
function getPPE(dfg::AbstractDFG, variablekey::Symbol, ppekey::Symbol=:default)
799-
v = getVariable(dfg, variablekey)
800-
!haskey(v.ppeDict, ppekey) && error("PPE key '$ppekey' not found in variable '$variablekey'")
798+
function getPPE(v::DFGVariable, ppekey::Symbol=:default)
799+
!haskey(v.ppeDict, ppekey) && throw(KeyError("PPE key '$ppekey' not found in variable '$(getLabel(v))'"))
801800
return v.ppeDict[ppekey]
802801
end
803-
802+
getPPE(dfg::AbstractDFG, variablekey::Symbol, ppekey::Symbol=:default) = getPPE(getVariable(dfg, variablekey), ppekey)
804803
# Not the most efficient call but it at least reuses above (in memory it's probably ok)
805804
getPPE(dfg::AbstractDFG, sourceVariable::VariableDataLevel1, ppekey::Symbol=:default) = getPPE(dfg, sourceVariable.label, ppekey)
806805

@@ -870,7 +869,7 @@ function deletePPE!(dfg::AbstractDFG, variablekey::Symbol, ppekey::Symbol=:defau
870869
var = getVariable(dfg, variablekey)
871870

872871
if !haskey(var.ppeDict, ppekey)
873-
error("VariableNodeData '$(ppekey)' does not exist")
872+
throw(KeyError("VariableNodeData '$(ppekey)' does not exist"))
874873
end
875874
vnd = pop!(var.ppeDict, ppekey)
876875
return vnd

test/testBlocks.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -590,9 +590,9 @@ function PPETestBlock!(fg, v1)
590590
@test_throws ErrorException addPPE!(fg, :a, ppe)
591591

592592
@test listPPEs(fg, :a) == [:default]
593-
# Get the data back - note that this is a reference to above.
594-
@test getPPE(fg, :a, :default) == ppe
595593

594+
# Get the data back - note that this is a reference to above.
595+
@test getPPE(getVariable(fg, :a), :default) == ppe
596596
@test getPPE(fg, :a, :default) == ppe
597597
@test getPPEMean(fg, :a, :default) == ppe.mean
598598
@test getPPEMax(fg, :a, :default) == ppe.max
@@ -601,7 +601,7 @@ function PPETestBlock!(fg, v1)
601601
# Delete it
602602
@test deletePPE!(fg, :a, :default) == ppe
603603

604-
@test_throws ErrorException getPPE(fg, :a, :default)
604+
@test_throws KeyError getPPE(fg, :a, :default)
605605
# Update add it
606606
@test @test_logs (:warn, Regex("'$(ppe.solveKey)' does not exist")) match_mode=:any updatePPE!(fg, :a, ppe) == ppe
607607
# Update update it
@@ -761,7 +761,7 @@ function VSDTestBlock!(fg, v1)
761761
# Delete parametric from v1
762762
@test deleteVariableSolverData!(fg, :a, :parametric) == vnd
763763

764-
@test_throws ErrorException getVariableSolverData(fg, :a, :parametric)
764+
@test_throws KeyError getVariableSolverData(fg, :a, :parametric)
765765

766766
#FIXME copied from lower
767767
@test getSolverData(v1) === v1.solverDataDict[:default]

0 commit comments

Comments
 (0)