dist-javascript-algorithms-and-data-structures
Version:
Algorithms and data-structures implemented on JavaScript
33 lines (27 loc) • 1.64 kB
JavaScript
"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);
});
});