Add getNeighbors method to Graph.

This commit is contained in:
Oleksii Trekhleb 2018-04-11 08:42:17 +03:00
parent 04a2b08669
commit ddd7f9fe0d
2 changed files with 28 additions and 0 deletions

View File

@ -25,6 +25,13 @@ export default class Graph {
return this.vertices[vertexKey];
}
/**
* @param {GraphVertex} vertex
*/
getNeighbors(vertex) {
return vertex.getNeighbors();
}
/**
* @param {GraphEdge} edge
* @returns {Graph}

View File

@ -111,4 +111,25 @@ describe('Graph', () => {
expect(graphEdgeAB).toEqual(edgeAB);
expect(graphEdgeAB.weight).toBe(10);
});
it('should return vertex neighbors', () => {
const graph = new Graph(true);
const vertexA = new GraphVertex('A');
const vertexB = new GraphVertex('B');
const vertexC = new GraphVertex('C');
const edgeAB = new GraphEdge(vertexA, vertexB);
const edgeAC = new GraphEdge(vertexA, vertexC);
graph
.addEdge(edgeAB)
.addEdge(edgeAC);
const neighbors = graph.getNeighbors(vertexA);
expect(neighbors.length).toBe(2);
expect(neighbors[0]).toEqual(vertexB);
expect(neighbors[1]).toEqual(vertexC);
});
});