UNPKG

dist-javascript-algorithms-and-data-structures

Version:

Algorithms and data-structures implemented on JavaScript

33 lines (27 loc) 1.64 kB
"use strict"; var _GraphVertex = _interopRequireDefault(require("../../../../data-structures/graph/GraphVertex")); var _GraphEdge = _interopRequireDefault(require("../../../../data-structures/graph/GraphEdge")); var _Graph = _interopRequireDefault(require("../../../../data-structures/graph/Graph")); var _detectUndirectedCycleUsingDisjointSet = _interopRequireDefault(require("../detectUndirectedCycleUsingDisjointSet")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('detectUndirectedCycleUsingDisjointSet', () => { it('should detect undirected cycle', () => { const vertexA = new _GraphVertex.default('A'); const vertexB = new _GraphVertex.default('B'); const vertexC = new _GraphVertex.default('C'); const vertexD = new _GraphVertex.default('D'); const vertexE = new _GraphVertex.default('E'); const vertexF = new _GraphVertex.default('F'); const edgeAF = new _GraphEdge.default(vertexA, vertexF); const edgeAB = new _GraphEdge.default(vertexA, vertexB); const edgeBE = new _GraphEdge.default(vertexB, vertexE); const edgeBC = new _GraphEdge.default(vertexB, vertexC); const edgeCD = new _GraphEdge.default(vertexC, vertexD); const edgeDE = new _GraphEdge.default(vertexD, vertexE); const graph = new _Graph.default(); graph.addEdge(edgeAF).addEdge(edgeAB).addEdge(edgeBE).addEdge(edgeBC).addEdge(edgeCD); expect((0, _detectUndirectedCycleUsingDisjointSet.default)(graph)).toBe(false); graph.addEdge(edgeDE); expect((0, _detectUndirectedCycleUsingDisjointSet.default)(graph)).toBe(true); }); });