Skip to content

Commit 5a2772f

Browse files
Added skips
1 parent e055948 commit 5a2772f

3 files changed

Lines changed: 172 additions & 155 deletions

File tree

DirectedGraph/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
class DirectedGraph {
2-
constructor() {}
2+
constructor() {
3+
this.adjacencyList = {};
4+
}
35
}
46

57
module.exports = DirectedGraph;

DirectedGraph/test.js

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,65 @@
1-
const DirectedGraph = require('./index');
1+
const DirectedGraph = require("./index");
22

33
const adjacencyList = Object.keys(new DirectedGraph())[0];
44

5-
describe('addVertex and addEdge', () => {
6-
test('addVertex works and does not overwrite if vertex already exists', () => {
7-
const graph = new DirectedGraph();
8-
graph.addVertex('Tokyo');
9-
expect(graph[adjacencyList]['Tokyo']).toEqual([]);
10-
graph[adjacencyList]['Tokyo'].push('yo');
11-
graph.addVertex('Tokyo');
12-
expect(graph[adjacencyList]['Tokyo']).toEqual([ 'yo' ]);
13-
});
14-
test('addEdge works and checks for valid vertices', () => {
15-
const graph = new DirectedGraph();
16-
graph.addVertex('Tokyo');
17-
graph.addVertex('San Francisco');
18-
graph.addEdge('Tokyo', 'San Francisco');
19-
expect(graph[adjacencyList]['Tokyo']).toEqual([ 'San Francisco' ]);
20-
expect(graph[adjacencyList]['San Francisco']).toEqual([]);
5+
describe("addVertex and addEdge", () => {
6+
test("addVertex works and does not overwrite if vertex already exists", () => {
7+
const graph = new DirectedGraph();
8+
graph.addVertex("Tokyo");
9+
expect(graph[adjacencyList]["Tokyo"]).toEqual([]);
10+
graph[adjacencyList]["Tokyo"].push("yo");
11+
graph.addVertex("Tokyo");
12+
expect(graph[adjacencyList]["Tokyo"]).toEqual(["yo"]);
13+
});
14+
test("addEdge works and checks for valid vertices", () => {
15+
const graph = new DirectedGraph();
16+
graph.addVertex("Tokyo");
17+
graph.addVertex("San Francisco");
18+
graph.addEdge("Tokyo", "San Francisco");
19+
expect(graph[adjacencyList]["Tokyo"]).toEqual(["San Francisco"]);
20+
expect(graph[adjacencyList]["San Francisco"]).toEqual([]);
2121

22-
graph.addEdge('sdasdasdas', 'San Francisco');
23-
graph.addEdge('Tokyo', 'reytjdy');
24-
expect(graph[adjacencyList]['Tokyo']).toEqual([ 'San Francisco' ]);
25-
});
22+
graph.addEdge("sdasdasdas", "San Francisco");
23+
graph.addEdge("Tokyo", "reytjdy");
24+
expect(graph[adjacencyList]["Tokyo"]).toEqual(["San Francisco"]);
25+
});
2626
});
2727

28-
describe('topological sort', () => {
29-
test('works', () => {
30-
const graph = new DirectedGraph();
31-
graph.addVertex('0');
32-
graph.addVertex('1');
33-
graph.addVertex('2');
34-
graph.addVertex('3');
35-
graph.addVertex('4');
36-
graph.addVertex('5');
28+
describe.skip("topological sort", () => {
29+
test("works", () => {
30+
const graph = new DirectedGraph();
31+
graph.addVertex("0");
32+
graph.addVertex("1");
33+
graph.addVertex("2");
34+
graph.addVertex("3");
35+
graph.addVertex("4");
36+
graph.addVertex("5");
3737

38-
graph.addEdge('5', '2');
39-
graph.addEdge('5', '0');
40-
graph.addEdge('4', '0');
41-
graph.addEdge('4', '1');
42-
graph.addEdge('2', '3');
43-
graph.addEdge('3', '1');
38+
graph.addEdge("5", "2");
39+
graph.addEdge("5", "0");
40+
graph.addEdge("4", "0");
41+
graph.addEdge("4", "1");
42+
graph.addEdge("2", "3");
43+
graph.addEdge("3", "1");
4444

45-
const possibleResults = [
46-
'450231',
47-
'452031',
48-
'452301',
49-
'452310',
50-
'523401',
51-
'523410',
52-
'524031',
53-
'524301',
54-
'524310',
55-
'540231',
56-
'542031',
57-
'542301',
58-
'542310'
59-
];
45+
const possibleResults = [
46+
"450231",
47+
"452031",
48+
"452301",
49+
"452310",
50+
"523401",
51+
"523410",
52+
"524031",
53+
"524301",
54+
"524310",
55+
"540231",
56+
"542031",
57+
"542301",
58+
"542310"
59+
];
6060

61-
expect(possibleResults.includes(graph.topologicalSort().join(''))).toEqual(true);
62-
});
61+
expect(possibleResults.includes(graph.topologicalSort().join(""))).toEqual(
62+
true
63+
);
64+
});
6365
});

UndirectedGraph/test.js

Lines changed: 114 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,134 @@
1-
const UndirectedGraph = require('./index');
1+
const UndirectedGraph = require("./index");
22

33
const adjacencyList = Object.keys(new UndirectedGraph())[0];
44

55
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;
3131
}
3232

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+
});
3838
});
3939

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([]);
4545

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+
});
5050
});
5151

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+
});
7171
});
7272

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+
});
9191
});
9292

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+
});
108108
});
109109

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+
});
115121
});
116122

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+
});
121134
});

0 commit comments

Comments
 (0)