UNPKG

ts-ds-tool

Version:

Data structure and algorithm of TypeScript

36 lines (34 loc) 1.51 kB
import { Graph } from "../../../../graph/Graph"; import { GraphVertex } from "../../../../graph/GraphVertex"; import { getEulerCircuit } from "../getEulerCircuit"; describe("getEulerCircuit test", () => { it("getEulerCircuit test", () => { expect(getEulerCircuit(null)).toEqual([]); const graph = new Graph<string>(false); expect(getEulerCircuit(graph)).toEqual([]); const vertexs = Array(100).fill(1).map((item, index) => { return new GraphVertex((index + item).toString()); }); vertexs.forEach(item => graph.addVertex(item)); graph .addEdge(vertexs[0], vertexs[8]) .addEdge(vertexs[0], vertexs[9]) .addEdge(vertexs[8], vertexs[7]) .addEdge(vertexs[9], vertexs[2]) .addEdge(vertexs[9], vertexs[3]) .addEdge(vertexs[2], vertexs[1]) .addEdge(vertexs[3], vertexs[1]) .addEdge(vertexs[9], vertexs[7]) .addEdge(vertexs[7], vertexs[6]) .addEdge(vertexs[7], vertexs[5]) .addEdge(vertexs[6], vertexs[5]); const pathArr = [["1", "9"], ["9", "8"], ["8", "7"], ["7", "6"], ["6", "8"], ["8", "10"], ["10", "3"], ["3", "2"], ["2", "4"], ["4", "10"], ["10", "1"]]; expect(getEulerCircuit(graph) .map(item => [item.StartVertex.Key, item.EndVertex.Key])) .toEqual(pathArr); expect(getEulerCircuit(graph, vertexs[0]) .map(item => [item.StartVertex.Key, item.EndVertex.Key])) .toEqual(pathArr); }); });