From c297f2f2ca7d6bd21d9e79fddff4633b4995947a Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Mon, 26 Jan 2026 03:03:36 +0000 Subject: [PATCH] (patch) fix incoming algorithm -- inverted boolean (#7) Reviewed-on: https://git.garrity.co/garrity-software/gs-graph/pulls/7 --- .../main/scala/gs/graph/v0/Adjacency.scala | 2 +- .../scala/gs/graph/v0/AdjacencyTests.scala | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 modules/core/src/test/scala/gs/graph/v0/AdjacencyTests.scala diff --git a/modules/core/src/main/scala/gs/graph/v0/Adjacency.scala b/modules/core/src/main/scala/gs/graph/v0/Adjacency.scala index bc4966a..afd3666 100644 --- a/modules/core/src/main/scala/gs/graph/v0/Adjacency.scala +++ b/modules/core/src/main/scala/gs/graph/v0/Adjacency.scala @@ -32,7 +32,7 @@ final class Adjacency(val neighbors: Vector[Vector[Vertex]]): if vertex.ordinal >= neighbors.length then Vector.empty else neighbors.zipWithIndex - .filterNot { + .filter { // ignore the neighbors of the input vertex case (_, index) => index != vertex.ordinal } diff --git a/modules/core/src/test/scala/gs/graph/v0/AdjacencyTests.scala b/modules/core/src/test/scala/gs/graph/v0/AdjacencyTests.scala new file mode 100644 index 0000000..57fbfed --- /dev/null +++ b/modules/core/src/test/scala/gs/graph/v0/AdjacencyTests.scala @@ -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))) + }