|
1 | | -const UndirectedGraph = require('./index'); |
| 1 | +const UndirectedGraph = require("./index"); |
2 | 2 |
|
3 | 3 | const adjacencyList = Object.keys(new UndirectedGraph())[0]; |
4 | 4 |
|
5 | 5 | function constructDefaultGraph() { |
6 | | - const graph = new UndirectedGraph(); |
7 | | - graph.addVertex('A'); |
8 | | - graph.addVertex('B'); |
9 | | - graph.addVertex('C'); |
10 | | - graph.addVertex('D'); |
11 | | - graph.addVertex('E'); |
12 | | - graph.addVertex('F'); |
13 | | - |
14 | | - graph.addEdge('A', 'B'); |
15 | | - graph.addEdge('A', 'C'); |
16 | | - graph.addEdge('B', 'D'); |
17 | | - graph.addEdge('C', 'E'); |
18 | | - graph.addEdge('D', 'E'); |
19 | | - graph.addEdge('D', 'F'); |
20 | | - graph.addEdge('E', 'F'); |
21 | | - |
22 | | - // A |
23 | | - // / \ |
24 | | - // B C |
25 | | - // | | |
26 | | - // D --- E |
27 | | - // \ / |
28 | | - // F |
29 | | - |
30 | | - return graph; |
| 6 | + const graph = new UndirectedGraph(); |
| 7 | + graph.addVertex("A"); |
| 8 | + graph.addVertex("B"); |
| 9 | + graph.addVertex("C"); |
| 10 | + graph.addVertex("D"); |
| 11 | + graph.addVertex("E"); |
| 12 | + graph.addVertex("F"); |
| 13 | + |
| 14 | + graph.addEdge("A", "B"); |
| 15 | + graph.addEdge("A", "C"); |
| 16 | + graph.addEdge("B", "D"); |
| 17 | + graph.addEdge("C", "E"); |
| 18 | + graph.addEdge("D", "E"); |
| 19 | + graph.addEdge("D", "F"); |
| 20 | + graph.addEdge("E", "F"); |
| 21 | + |
| 22 | + // A |
| 23 | + // / \ |
| 24 | + // B C |
| 25 | + // | | |
| 26 | + // D --- E |
| 27 | + // \ / |
| 28 | + // F |
| 29 | + |
| 30 | + return graph; |
31 | 31 | } |
32 | 32 |
|
33 | | -describe('Graph Setup', () => { |
34 | | - test('set up property for adjacency list', () => { |
35 | | - const graph = new UndirectedGraph(); |
36 | | - expect(typeof graph[adjacencyList]).toEqual('object'); |
37 | | - }); |
| 33 | +describe("Graph Setup", () => { |
| 34 | + test("set up property for adjacency list", () => { |
| 35 | + const graph = new UndirectedGraph(); |
| 36 | + expect(typeof graph[adjacencyList]).toEqual("object"); |
| 37 | + }); |
38 | 38 | }); |
39 | 39 |
|
40 | | -describe.skip('addVertex', () => { |
41 | | - test('works and does not overwrite if vertex already exists', () => { |
42 | | - const graph = new UndirectedGraph(); |
43 | | - graph.addVertex('Tokyo'); |
44 | | - expect(graph[adjacencyList]['Tokyo']).toEqual([]); |
| 40 | +describe.skip("addVertex", () => { |
| 41 | + test("works and does not overwrite if vertex already exists", () => { |
| 42 | + const graph = new UndirectedGraph(); |
| 43 | + graph.addVertex("Tokyo"); |
| 44 | + expect(graph[adjacencyList]["Tokyo"]).toEqual([]); |
45 | 45 |
|
46 | | - graph[adjacencyList]['Tokyo'].push('yo'); |
47 | | - graph.addVertex('Tokyo'); |
48 | | - expect(graph[adjacencyList]['Tokyo']).toEqual([ 'yo' ]); |
49 | | - }); |
| 46 | + graph[adjacencyList]["Tokyo"].push("yo"); |
| 47 | + graph.addVertex("Tokyo"); |
| 48 | + expect(graph[adjacencyList]["Tokyo"]).toEqual(["yo"]); |
| 49 | + }); |
50 | 50 | }); |
51 | 51 |
|
52 | | -describe.skip('addEdge', () => { |
53 | | - test('works', () => { |
54 | | - const graph = new UndirectedGraph(); |
55 | | - graph.addVertex('Tokyo'); |
56 | | - graph.addVertex('San Francisco'); |
57 | | - graph.addEdge('Tokyo', 'San Francisco'); |
58 | | - expect(graph[adjacencyList]['Tokyo']).toEqual([ 'San Francisco' ]); |
59 | | - expect(graph[adjacencyList]['San Francisco']).toEqual([ 'Tokyo' ]); |
60 | | - }); |
61 | | - test('checks for valid vertices', () => { |
62 | | - const graph = new UndirectedGraph(); |
63 | | - graph.addVertex('Tokyo'); |
64 | | - graph.addVertex('San Francisco'); |
65 | | - graph.addEdge('Tokyo', 'San Francisco'); |
66 | | - |
67 | | - graph.addEdge('sdasdasdas', 'San Francisco'); |
68 | | - graph.addEdge('Tokyo', 'reytjdy'); |
69 | | - expect(graph[adjacencyList]['Tokyo']).toEqual([ 'San Francisco' ]); |
70 | | - }); |
| 52 | +describe.skip("addEdge", () => { |
| 53 | + test("works", () => { |
| 54 | + const graph = new UndirectedGraph(); |
| 55 | + graph.addVertex("Tokyo"); |
| 56 | + graph.addVertex("San Francisco"); |
| 57 | + graph.addEdge("Tokyo", "San Francisco"); |
| 58 | + expect(graph[adjacencyList]["Tokyo"]).toEqual(["San Francisco"]); |
| 59 | + expect(graph[adjacencyList]["San Francisco"]).toEqual(["Tokyo"]); |
| 60 | + }); |
| 61 | + test("checks for valid vertices", () => { |
| 62 | + const graph = new UndirectedGraph(); |
| 63 | + graph.addVertex("Tokyo"); |
| 64 | + graph.addVertex("San Francisco"); |
| 65 | + graph.addEdge("Tokyo", "San Francisco"); |
| 66 | + |
| 67 | + graph.addEdge("sdasdasdas", "San Francisco"); |
| 68 | + graph.addEdge("Tokyo", "reytjdy"); |
| 69 | + expect(graph[adjacencyList]["Tokyo"]).toEqual(["San Francisco"]); |
| 70 | + }); |
71 | 71 | }); |
72 | 72 |
|
73 | | -describe.skip('removeEdge', () => { |
74 | | - test('works', () => { |
75 | | - const graph = new UndirectedGraph(); |
76 | | - graph.addVertex('Tokyo'); |
77 | | - graph.addVertex('San Francisco'); |
78 | | - graph.addEdge('Tokyo', 'San Francisco'); |
79 | | - graph.removeEdge('Tokyo', 'San Francisco'); |
80 | | - expect(graph[adjacencyList]['Tokyo']).toEqual([]); |
81 | | - expect(graph[adjacencyList]['San Francisco']).toEqual([]); |
82 | | - }); |
83 | | - test('checks for valid vertices', () => { |
84 | | - const graph = new UndirectedGraph(); |
85 | | - graph.addVertex('Tokyo'); |
86 | | - graph.addVertex('San Francisco'); |
87 | | - |
88 | | - graph.removeEdge('Tokyooo', 'San Francisco'); |
89 | | - graph.removeEdge('Tokyo', 'San Franciscooo'); |
90 | | - }); |
| 73 | +describe.skip("removeEdge", () => { |
| 74 | + test("works", () => { |
| 75 | + const graph = new UndirectedGraph(); |
| 76 | + graph.addVertex("Tokyo"); |
| 77 | + graph.addVertex("San Francisco"); |
| 78 | + graph.addEdge("Tokyo", "San Francisco"); |
| 79 | + graph.removeEdge("Tokyo", "San Francisco"); |
| 80 | + expect(graph[adjacencyList]["Tokyo"]).toEqual([]); |
| 81 | + expect(graph[adjacencyList]["San Francisco"]).toEqual([]); |
| 82 | + }); |
| 83 | + test("checks for valid vertices", () => { |
| 84 | + const graph = new UndirectedGraph(); |
| 85 | + graph.addVertex("Tokyo"); |
| 86 | + graph.addVertex("San Francisco"); |
| 87 | + |
| 88 | + graph.removeEdge("Tokyooo", "San Francisco"); |
| 89 | + graph.removeEdge("Tokyo", "San Franciscooo"); |
| 90 | + }); |
91 | 91 | }); |
92 | 92 |
|
93 | | -describe.skip('removeVertex', () => { |
94 | | - test('removes vertex from adjacency list and as a neighbor vertex for other vertices.', () => { |
95 | | - const graph = new UndirectedGraph(); |
96 | | - graph.addVertex('Tokyo'); |
97 | | - graph.addVertex('San Francisco'); |
98 | | - graph.addEdge('Tokyo', 'San Francisco'); |
99 | | - |
100 | | - graph.removeVertex('Tokyo'); |
101 | | - expect(graph[adjacencyList]['San Francisco']).toEqual([]); |
102 | | - expect(graph[adjacencyList]['Tokyo']).toBeFalsy(); |
103 | | - }); |
104 | | - test('checks for valid vertices.', () => { |
105 | | - const graph = new UndirectedGraph(); |
106 | | - graph.removeVertex('Tokyooo'); |
107 | | - }); |
| 93 | +describe.skip("removeVertex", () => { |
| 94 | + test("removes vertex from adjacency list and as a neighbor vertex for other vertices.", () => { |
| 95 | + const graph = new UndirectedGraph(); |
| 96 | + graph.addVertex("Tokyo"); |
| 97 | + graph.addVertex("San Francisco"); |
| 98 | + graph.addEdge("Tokyo", "San Francisco"); |
| 99 | + |
| 100 | + graph.removeVertex("Tokyo"); |
| 101 | + expect(graph[adjacencyList]["San Francisco"]).toEqual([]); |
| 102 | + expect(graph[adjacencyList]["Tokyo"]).toBeFalsy(); |
| 103 | + }); |
| 104 | + test("checks for valid vertices.", () => { |
| 105 | + const graph = new UndirectedGraph(); |
| 106 | + graph.removeVertex("Tokyooo"); |
| 107 | + }); |
108 | 108 | }); |
109 | 109 |
|
110 | | -describe.skip('dfs', () => { |
111 | | - const possibleResults = [ 'ABDECF', 'ACEFDB' ]; |
112 | | - test('works.', () => { |
113 | | - expect(possibleResults.includes(constructDefaultGraph().dfs('A').join(''))).toEqual(true); |
114 | | - }); |
| 110 | +describe.skip("dfs", () => { |
| 111 | + const possibleResults = ["ABDECF", "ACEFDB"]; |
| 112 | + test("works.", () => { |
| 113 | + expect( |
| 114 | + possibleResults.includes( |
| 115 | + constructDefaultGraph() |
| 116 | + .dfs("A") |
| 117 | + .join("") |
| 118 | + ) |
| 119 | + ).toEqual(true); |
| 120 | + }); |
115 | 121 | }); |
116 | 122 |
|
117 | | -describe.skip('bfs', () => { |
118 | | - test('works.', () => { |
119 | | - expect(constructDefaultGraph().bfs('A')).toEqual([ 'A', 'B', 'C', 'D', 'E', 'F' ]); |
120 | | - }); |
| 123 | +describe.skip("bfs", () => { |
| 124 | + test("works.", () => { |
| 125 | + expect(constructDefaultGraph().bfs("A")).toEqual([ |
| 126 | + "A", |
| 127 | + "B", |
| 128 | + "C", |
| 129 | + "D", |
| 130 | + "E", |
| 131 | + "F" |
| 132 | + ]); |
| 133 | + }); |
121 | 134 | }); |
0 commit comments