From 66e0bc2a67d669df4a5431a01a4782ce762c8629 Mon Sep 17 00:00:00 2001 From: Saul Ivan Rivas Vega Date: Sat, 13 Sep 2025 13:27:04 +0200 Subject: [PATCH] feat(constructor): Add nodeIDs set --- src/bmssp.mjs | 7 +++++++ test/main.test.mjs | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/bmssp.mjs b/src/bmssp.mjs index c20c410..13c7343 100644 --- a/src/bmssp.mjs +++ b/src/bmssp.mjs @@ -1,9 +1,16 @@ class BMSSP { constructor(inputGraph) { + // Main graph represented as an array of edges this.graph = []; + // Set to store unique node IDs + this.nodeIDs = new Set(); + for (let edge of inputGraph) { // Create a deep copy of each edge array this.graph.push([...edge]); + // Add node IDs to the set + this.nodeIDs.add(edge[0]); + this.nodeIDs.add(edge[1]); } } } diff --git a/test/main.test.mjs b/test/main.test.mjs index 18e58b4..37b9522 100644 --- a/test/main.test.mjs +++ b/test/main.test.mjs @@ -25,3 +25,15 @@ describe("BMSSP constructor", () => { expect(myBMSSP.graph).toEqual(roadNetCA); }); }); + +describe("BMSSP nodeIDs", () => { + test("stores unique node IDs correctly", () => { + const myBMSSP = new BMSSP(roadNetCA); + const uniqueNodeIDs = new Set(); + roadNetCA.forEach((edge) => { + uniqueNodeIDs.add(edge[0]); + uniqueNodeIDs.add(edge[1]); + }); + expect(myBMSSP.nodeIDs).toEqual(uniqueNodeIDs); + }); +});