Skip to content

Commit df881f6

Browse files
committed
WIP on cleaning up backendset
1 parent 88883d8 commit df881f6

File tree

8 files changed

+30
-69
lines changed

8 files changed

+30
-69
lines changed

src/CloudGraphsDFG/services/CloudGraphsDFG.jl

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -593,15 +593,10 @@ hasOrphans(dfg::CloudGraphsDFG)::Bool = !isFullyConnected(dfg)
593593
$(SIGNATURES)
594594
Retrieve a list of labels of the immediate neighbors around a given variable or factor.
595595
"""
596-
function getNeighbors(dfg::CloudGraphsDFG, node::T; ready::Union{Nothing, Int}=nothing, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol} where T <: DFGNode
596+
function getNeighbors(dfg::CloudGraphsDFG, node::T; ready::Union{Nothing, Int}=nothing)::Vector{Symbol} where T <: DFGNode
597597
query = "(n:$(dfg.userId):$(dfg.robotId):$(dfg.sessionId):$(node.label))--(node) where (node:VARIABLE or node:FACTOR) "
598-
if ready != nothing || backendset != nothing
599-
if ready != nothing
600-
query = query * " and node.ready >= $(ready)"
601-
end
602-
if backendset != nothing
603-
query = query * " and node.backendset = $(backendset)"
604-
end
598+
if ready != nothing
599+
query = query * " and node.ready >= $(ready)"
605600
end
606601
@debug "[Query] $query"
607602
neighbors = _getLabelsFromCyphonQuery(dfg.neo4jInstance, query)
@@ -616,15 +611,10 @@ end
616611
$(SIGNATURES)
617612
Retrieve a list of labels of the immediate neighbors around a given variable or factor specified by its label.
618613
"""
619-
function getNeighbors(dfg::CloudGraphsDFG, label::Symbol; ready::Union{Nothing, Int}=nothing, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol}
614+
function getNeighbors(dfg::CloudGraphsDFG, label::Symbol; ready::Union{Nothing, Int}=nothing)::Vector{Symbol}
620615
query = "(n:$(dfg.userId):$(dfg.robotId):$(dfg.sessionId):$(label))--(node) where (node:VARIABLE or node:FACTOR) "
621-
if ready != nothing || backendset != nothing
622-
if ready != nothing
623-
query = query * " and node.ready >= $(ready)"
624-
end
625-
if backendset != nothing
626-
query = query * " and node.backendset = $(backendset)"
627-
end
616+
if ready != nothing
617+
query = query * " and node.ready >= $(ready)"
628618
end
629619
@debug "[Query] $query"
630620
neighbors = _getLabelsFromCyphonQuery(dfg.neo4jInstance, query)

src/GraphsDFG/services/GraphsDFG.jl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,15 +282,14 @@ end
282282
$(SIGNATURES)
283283
Retrieve a list of labels of the immediate neighbors around a given variable or factor.
284284
"""
285-
function getNeighbors(dfg::GraphsDFG, node::T; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol} where T <: DFGNode
285+
function getNeighbors(dfg::GraphsDFG, node::T; solvable::Int=0)::Vector{Symbol} where T <: DFGNode
286286
if !haskey(dfg.labelDict, node.label)
287287
error("Variable/factor with label '$(node.label)' does not exist in the factor graph")
288288
end
289289
vert = dfg.g.vertices[dfg.labelDict[node.label]]
290290
neighbors = in_neighbors(vert, dfg.g) #Don't use out_neighbors! It enforces directiveness even if we don't want it
291291
# Additional filtering
292292
neighbors = solvable != 0 ? filter(v -> solvable <= isSolvable(v.dfgNode), neighbors) : neighbors
293-
neighbors = backendset != nothing ? filter(v -> isSolveInProgress(v.dfgNode) == backendset, neighbors) : neighbors
294293
# Variable sorting (order is important)
295294
if node isa DFGFactor
296295
order = intersect(node._variableOrderSymbols, map(v->v.dfgNode.label, neighbors))
@@ -303,15 +302,14 @@ end
303302
$(SIGNATURES)
304303
Retrieve a list of labels of the immediate neighbors around a given variable or factor specified by its label.
305304
"""
306-
function getNeighbors(dfg::GraphsDFG, label::Symbol; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol} where T <: DFGNode
305+
function getNeighbors(dfg::GraphsDFG, label::Symbol; solvable::Int=0)::Vector{Symbol} where T <: DFGNode
307306
if !haskey(dfg.labelDict, label)
308307
error("Variable/factor with label '$(label)' does not exist in the factor graph")
309308
end
310309
vert = dfg.g.vertices[dfg.labelDict[label]]
311310
neighbors = in_neighbors(vert, dfg.g) #Don't use out_neighbors! It enforces directiveness even if we don't want it
312311
# Additional filtering
313312
neighbors = solvable != 0 ? filter(v -> isSolvable(v.dfgNode) >= solvable, neighbors) : neighbors
314-
neighbors = backendset != nothing ? filter(v -> isSolveInProgress(v.dfgNode) == backendset, neighbors) : neighbors
315313
# Variable sorting when using a factor (function order is important)
316314
if vert.dfgNode isa DFGFactor
317315
vert.dfgNode._variableOrderSymbols

src/LightDFG/services/LightDFG.jl

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -291,20 +291,11 @@ function _isSolvable(dfg::LightDFG, label::Symbol, ready::Int)::Bool
291291
return false
292292
end
293293

294-
function _isbackendset(dfg::LightDFG, label::Symbol, backendset::Int)::Bool
295-
haskey(dfg.g.variables, label) && (return dfg.g.variables[label].solveInProgress == backendset)
296-
haskey(dfg.g.factors, label) && (return dfg.g.factors[label].solveInProgress == backendset)
297-
298-
#TODO should this be a breaking error?
299-
@error "Node not a factor or variable"
300-
return false
301-
end
302-
303294
"""
304295
$(SIGNATURES)
305296
Retrieve a list of labels of the immediate neighbors around a given variable or factor.
306297
"""
307-
function getNeighbors(dfg::LightDFG, node::DFGNode; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol}
298+
function getNeighbors(dfg::LightDFG, node::DFGNode; solvable::Int=0)::Vector{Symbol}
308299
label = node.label
309300
if !exists(dfg, label)
310301
error("Variable/factor with label '$(node.label)' does not exist in the factor graph")
@@ -314,7 +305,6 @@ function getNeighbors(dfg::LightDFG, node::DFGNode; solvable::Int=0, backendset:
314305
neighbors_ll = [dfg.g.labels[i] for i in neighbors_il]
315306
# Additional filtering
316307
solvable != 0 && filter!(lbl -> _isSolvable(dfg, lbl, solvable), neighbors_ll)
317-
backendset != nothing && filter!(lbl -> _isbackendset(dfg, lbl, backendset), neighbors_ll)
318308

319309
# Variable sorting (order is important)
320310
if typeof(node) <: AbstractDFGFactor
@@ -330,7 +320,7 @@ end
330320
$(SIGNATURES)
331321
Retrieve a list of labels of the immediate neighbors around a given variable or factor specified by its label.
332322
"""
333-
function getNeighbors(dfg::LightDFG, label::Symbol; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol}
323+
function getNeighbors(dfg::LightDFG, label::Symbol; solvable::Int=0)::Vector{Symbol}
334324
if !exists(dfg, label)
335325
error("Variable/factor with label '$(label)' does not exist in the factor graph")
336326
end
@@ -339,7 +329,6 @@ function getNeighbors(dfg::LightDFG, label::Symbol; solvable::Int=0, backendset:
339329
neighbors_ll = [dfg.g.labels[i] for i in neighbors_il]
340330
# Additional filtering
341331
solvable != 0 && filter!(lbl -> _isSolvable(dfg, lbl, solvable), neighbors_ll)
342-
backendset != nothing && filter!(lbl -> _isbackendset(dfg, lbl, backendset), neighbors_ll)
343332

344333
# Variable sorting (order is important)
345334
if haskey(dfg.g.factors, label)

src/SymbolDFG/services/SymbolDFG.jl

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -273,20 +273,11 @@ function _isSolvable(dfg::SymbolDFG, label::Symbol, solvable::Int)::Bool
273273
return false
274274
end
275275

276-
function _isbackendset(dfg::SymbolDFG, label::Symbol, backendset::Int)::Bool
277-
haskey(dfg.g.variables, label) && (return dfg.g.variables[label].solveInProgress == backendset)
278-
haskey(dfg.g.factors, label) && (return dfg.g.factors[label].solveInProgress == backendset)
279-
280-
#TODO should this be a breaking error?
281-
@error "Node not a factor or variable"
282-
return false
283-
end
284-
285276
"""
286277
$(SIGNATURES)
287278
Retrieve a list of labels of the immediate neighbors around a given variable or factor.
288279
"""
289-
function getNeighbors(dfg::SymbolDFG, node::DFGNode; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol}
280+
function getNeighbors(dfg::SymbolDFG, node::DFGNode; solvable::Int=0)::Vector{Symbol}
290281
label = node.label
291282
if !haskey(dfg.g.fadjdict, label)
292283
error("Variable/factor with label '$(node.label)' does not exist in the factor graph")
@@ -295,7 +286,6 @@ function getNeighbors(dfg::SymbolDFG, node::DFGNode; solvable::Int=0, backendset
295286
neighbors_ll = copy(outneighbors(dfg.g, label))
296287
# Additional filtering
297288
solvable != 0 && filter!(lbl -> _isSolvable(dfg, lbl, solvable), neighbors_ll)
298-
backendset != nothing && filter!(lbl -> _isbackendset(dfg, lbl, backendset), neighbors_ll)
299289

300290
# Variable sorting (order is important)
301291
if node isa DFGFactor
@@ -311,15 +301,14 @@ end
311301
$(SIGNATURES)
312302
Retrieve a list of labels of the immediate neighbors around a given variable or factor specified by its label.
313303
"""
314-
function getNeighbors(dfg::SymbolDFG, label::Symbol; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol} where T <: DFGNode
304+
function getNeighbors(dfg::SymbolDFG, label::Symbol; solvable::Int=0)::Vector{Symbol} where T <: DFGNode
315305
if !haskey(dfg.g.fadjdict, label)
316306
error("Variable/factor with label '$(label)' does not exist in the factor graph")
317307
end
318308

319309
neighbors_ll = copy(outneighbors(dfg.g, label))
320310
# Additional filtering
321311
solvable != 0 && filter!(lbl -> _isSolvable(dfg, lbl, solvable), neighbors_ll)
322-
backendset != nothing && filter!(lbl -> _isbackendset(dfg, lbl, backendset), neighbors_ll)
323312

324313
# Variable sorting (order is important)
325314
if haskey(dfg.g.factors, label)

src/services/AbstractDFG.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,14 +299,14 @@ end
299299
$(SIGNATURES)
300300
Retrieve a list of labels of the immediate neighbors around a given variable or factor.
301301
"""
302-
function getNeighbors(dfg::G, node::T; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol} where {G <: AbstractDFG, T <: DFGNode}
302+
function getNeighbors(dfg::G, node::T; solvable::Int=0)::Vector{Symbol} where {G <: AbstractDFG, T <: DFGNode}
303303
error("getNeighbors not implemented for $(typeof(dfg))")
304304
end
305305
"""
306306
$(SIGNATURES)
307307
Retrieve a list of labels of the immediate neighbors around a given variable or factor specified by its label.
308308
"""
309-
function getNeighbors(dfg::G, label::Symbol; solvable::Int=0, backendset::Union{Nothing, Int}=nothing)::Vector{Symbol} where G <: AbstractDFG
309+
function getNeighbors(dfg::G, label::Symbol; solvable::Int=0)::Vector{Symbol} where G <: AbstractDFG
310310
error("getNeighbors not implemented for $(typeof(dfg))")
311311
end
312312

test/LightDFGSummaryTypes.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,6 @@ end
199199
numNodes = 10
200200
dfg = LightDFG{NoSolverParams, VARTYPE, FACTYPE}()
201201
verts = map(n -> VARTYPE(Symbol("x$n")), 1:numNodes)
202-
#change ready and backendset for x7,x8 for improved tests on x7x8f1
203-
# verts[7].ready = 1
204-
# verts[8].backendset = 1
205202
map(v -> addVariable!(dfg, v), verts)
206203
map(n -> addFactor!(dfg, [verts[n], verts[n+1]], FACTYPE(Symbol("x$(n)x$(n+1)f1"))), 1:(numNodes-1))
207204

test/iifInterfaceTests.jl

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -346,11 +346,10 @@ numNodes = 10
346346
# clearSession!!(dfg)
347347
# end
348348

349-
#change ready and backendset for x7,x8 for improved tests on x7x8f1
349+
#change solvable and solveInProgress for x7,x8 for improved tests on x7x8f1
350350
verts = map(n -> addVariable!(dfg, Symbol("x$n"), ContinuousScalar, labels = [:POSE]), 1:numNodes)
351351
#TODO fix this to use accessors
352352
verts[7].solvable = 1
353-
# verts[7].backendset = 0
354353
verts[8].solvable = 0
355354
verts[8].solveInProgress = 1
356355
#call update to set it on cloud
@@ -372,20 +371,20 @@ facts = map(n ->
372371
@test getNeighbors(dfg, getFactor(dfg, :x1x2f1)) == ls(dfg, getFactor(dfg, :x1x2f1))
373372
@test getNeighbors(dfg, :x1x2f1) == ls(dfg, :x1x2f1)
374373

375-
# ready and backendset
374+
# solvable checks
376375
@test getNeighbors(dfg, :x5, solvable=1) == Symbol[]
377376
#TODO Confirm: test failed on GraphsDFG, don't know if the order is important for isa variable.
378377
@test symdiff(getNeighbors(dfg, :x5, solvable=0), [:x4x5f1,:x5x6f1]) == []
379-
@test getNeighbors(dfg, :x5, backendset=1) == Symbol[]
380-
@test symdiff(getNeighbors(dfg, :x5, backendset=0),[:x4x5f1,:x5x6f1]) == []
378+
@test getNeighbors(dfg, :x5) == Symbol[]
379+
@test symdiff(getNeighbors(dfg, :x5),[:x4x5f1,:x5x6f1]) == []
381380
@test getNeighbors(dfg, :x7x8f1, solvable=0) == [:x7, :x8]
382-
@test getNeighbors(dfg, :x7x8f1, backendset=0) == [:x7]
381+
@test getNeighbors(dfg, :x7x8f1) == [:x7]
383382
@test getNeighbors(dfg, :x7x8f1, solvable=1) == [:x7]
384-
@test getNeighbors(dfg, :x7x8f1, backendset=1) == [:x8]
383+
@test getNeighbors(dfg, :x7x8f1) == [:x8]
385384
@test getNeighbors(dfg, verts[1], solvable=0) == [:x1x2f1]
386385
@test getNeighbors(dfg, verts[1], solvable=1) == Symbol[]
387-
@test getNeighbors(dfg, verts[1], backendset=0) == [:x1x2f1]
388-
@test getNeighbors(dfg, verts[1], backendset=1) == Symbol[]
386+
@test getNeighbors(dfg, verts[1]) == [:x1x2f1]
387+
@test getNeighbors(dfg, verts[1]) == Symbol[]
389388

390389
end
391390

test/interfaceTests.jl

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,8 @@ end
298298
numNodes = 10
299299
dfg = testDFGAPI{NoSolverParams}()
300300
verts = map(n -> DFGVariable(Symbol("x$n"), TestInferenceVariable1()), 1:numNodes)
301-
#change ready and backendset for x7,x8 for improved tests on x7x8f1
301+
#change ready and solveInProgress for x7,x8 for improved tests on x7x8f1
302302
verts[7].solvable = 1
303-
verts[8].solveInProgress = 1
304303

305304
# Can't change the softtypes now.
306305
# #force softytypes to first 2 vertices.
@@ -322,19 +321,19 @@ map(n -> addFactor!(dfg, [verts[n], verts[n+1]], DFGFactor{Int, :Symbol}(Symbol(
322321
@test getNeighbors(dfg, getFactor(dfg, :x1x2f1)) == ls(dfg, getFactor(dfg, :x1x2f1))
323322
@test getNeighbors(dfg, :x1x2f1) == ls(dfg, :x1x2f1)
324323

325-
# ready and backendset
324+
# Solvable
326325
@test getNeighbors(dfg, :x5, solvable=1) == Symbol[]
327326
@test getNeighbors(dfg, :x5, solvable=0) == [:x4x5f1,:x5x6f1]
328-
@test getNeighbors(dfg, :x5, backendset=1) == Symbol[]
329-
@test getNeighbors(dfg, :x5, backendset=0) == [:x4x5f1,:x5x6f1]
327+
@test getNeighbors(dfg, :x5) == Symbol[]
328+
@test getNeighbors(dfg, :x5) == [:x4x5f1,:x5x6f1]
330329
@test getNeighbors(dfg, :x7x8f1, solvable=0) == [:x7, :x8]
331-
@test getNeighbors(dfg, :x7x8f1, backendset=0) == [:x7]
330+
@test getNeighbors(dfg, :x7x8f1) == [:x7]
332331
@test getNeighbors(dfg, :x7x8f1, solvable=1) == [:x7]
333-
@test getNeighbors(dfg, :x7x8f1, backendset=1) == [:x8]
332+
@test getNeighbors(dfg, :x7x8f1) == [:x8]
334333
@test getNeighbors(dfg, verts[1], solvable=0) == [:x1x2f1]
335334
@test getNeighbors(dfg, verts[1], solvable=1) == Symbol[]
336-
@test getNeighbors(dfg, verts[1], backendset=0) == [:x1x2f1]
337-
@test getNeighbors(dfg, verts[1], backendset=1) == Symbol[]
335+
@test getNeighbors(dfg, verts[1]) == [:x1x2f1]
336+
@test getNeighbors(dfg, verts[1]) == Symbol[]
338337

339338
end
340339

0 commit comments

Comments
 (0)