(patch) fix incoming algorithm -- inverted boolean
All checks were successful
/ Build and Test Library Snapshot (pull_request) Successful in 2m28s

This commit is contained in:
Pat Garrity 2026-01-25 21:00:33 -06:00
parent ebd7d98ebb
commit a8351ed516
Signed by: pfm
GPG key ID: 5CA5D21BAB7F3A76
2 changed files with 28 additions and 1 deletions

View file

@ -32,7 +32,7 @@ final class Adjacency(val neighbors: Vector[Vector[Vertex]]):
if vertex.ordinal >= neighbors.length then Vector.empty if vertex.ordinal >= neighbors.length then Vector.empty
else else
neighbors.zipWithIndex neighbors.zipWithIndex
.filterNot { .filter {
// ignore the neighbors of the input vertex // ignore the neighbors of the input vertex
case (_, index) => index != vertex.ordinal case (_, index) => index != vertex.ordinal
} }

View file

@ -0,0 +1,27 @@
package gs.graph.v0
class AdjacencyTests extends munit.FunSuite:
test("should provide incoming") {
val N = Size(7)
val vs = (0 until N.value).map(Vertex(_)).toArray
val E = List(
Edge(vs(0), vs(1)),
Edge(vs(0), vs(2)),
Edge(vs(0), vs(3)),
Edge(vs(1), vs(4)),
Edge(vs(2), vs(4)),
Edge(vs(3), vs(4)),
Edge(vs(3), vs(5)),
Edge(vs(4), vs(6))
)
val A = Adjacency.fromDirectedEdges(N, E)
assertEquals(A.incoming(vs(0)), Vector.empty)
assertEquals(A.incoming(vs(1)), Vector(vs(0)))
assertEquals(A.incoming(vs(2)), Vector(vs(0)))
assertEquals(A.incoming(vs(3)), Vector(vs(0)))
assertEquals(A.incoming(vs(4)), Vector(vs(1), vs(2), vs(3)))
assertEquals(A.incoming(vs(5)), Vector(vs(3)))
assertEquals(A.incoming(vs(6)), Vector(vs(4)))
}