From f8a84c278b0f66750dec833bbd5fd7adf0e32f73 Mon Sep 17 00:00:00 2001 From: AmirMohammad Hosseini Nasab Date: Sat, 30 Jul 2022 15:09:42 +0430 Subject: [PATCH] Add test for graph reverse with cycle of length two --- .../graph/__test__/Graph.test.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/data-structures/graph/__test__/Graph.test.js b/src/data-structures/graph/__test__/Graph.test.js index 936a69b8..bc0f17e3 100644 --- a/src/data-structures/graph/__test__/Graph.test.js +++ b/src/data-structures/graph/__test__/Graph.test.js @@ -305,6 +305,35 @@ describe('Graph', () => { expect(graph.getNeighbors(vertexD)[0].getKey()).toBe(vertexC.getKey()); }); + it('should be possible to reverse directed graph with cycle of lenght two', () => { + const vertexA = new GraphVertex('A'); + const vertexB = new GraphVertex('B'); + + const edgeAB = new GraphEdge(vertexA, vertexB); + const edgeBA = new GraphEdge(vertexB, vertexA); + + const graph = new Graph(true); + graph + .addEdge(edgeAB) + .addEdge(edgeBA); + + expect(graph.toString()).toBe('A,B'); + expect(graph.getAllEdges().length).toBe(2); + expect(graph.getNeighbors(vertexA).length).toBe(1); + expect(graph.getNeighbors(vertexA)[0].getKey()).toBe(vertexB.getKey()); + expect(graph.getNeighbors(vertexB).length).toBe(1); + expect(graph.getNeighbors(vertexB)[0].getKey()).toBe(vertexA.getKey()); + + graph.reverse(); + + expect(graph.toString()).toBe('A,B'); + expect(graph.getAllEdges().length).toBe(2); + expect(graph.getNeighbors(vertexA).length).toBe(1); + expect(graph.getNeighbors(vertexA)[0].getKey()).toBe(vertexB.getKey()); + expect(graph.getNeighbors(vertexB).length).toBe(1); + expect(graph.getNeighbors(vertexB)[0].getKey()).toBe(vertexA.getKey()); + }); + it('should return vertices indices', () => { const vertexA = new GraphVertex('A'); const vertexB = new GraphVertex('B');