data-structure-typed 1.48.4 → 1.48.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +109 -59
  3. package/README_zh-CN.md +1028 -0
  4. package/benchmark/report.html +16 -16
  5. package/benchmark/report.json +204 -174
  6. package/dist/cjs/data-structures/base/iterable-base.d.ts +6 -6
  7. package/dist/cjs/data-structures/base/iterable-base.js +3 -3
  8. package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
  9. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +5 -3
  10. package/dist/cjs/data-structures/binary-tree/avl-tree.js +6 -4
  11. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  12. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +24 -22
  13. package/dist/cjs/data-structures/binary-tree/binary-tree.js +35 -22
  14. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  15. package/dist/cjs/data-structures/binary-tree/bst.d.ts +30 -22
  16. package/dist/cjs/data-structures/binary-tree/bst.js +38 -26
  17. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  18. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +19 -13
  19. package/dist/cjs/data-structures/binary-tree/rb-tree.js +20 -14
  20. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
  21. package/dist/cjs/data-structures/binary-tree/tree-multimap.d.ts +21 -14
  22. package/dist/cjs/data-structures/binary-tree/tree-multimap.js +25 -18
  23. package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +1 -1
  24. package/dist/cjs/data-structures/graph/abstract-graph.d.ts +52 -52
  25. package/dist/cjs/data-structures/graph/abstract-graph.js +78 -78
  26. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
  27. package/dist/cjs/data-structures/graph/directed-graph.d.ts +47 -47
  28. package/dist/cjs/data-structures/graph/directed-graph.js +56 -56
  29. package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
  30. package/dist/cjs/data-structures/graph/map-graph.d.ts +5 -5
  31. package/dist/cjs/data-structures/graph/map-graph.js +8 -8
  32. package/dist/cjs/data-structures/graph/map-graph.js.map +1 -1
  33. package/dist/cjs/data-structures/graph/undirected-graph.d.ts +29 -29
  34. package/dist/cjs/data-structures/graph/undirected-graph.js +57 -57
  35. package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
  36. package/dist/cjs/data-structures/hash/hash-map.d.ts +8 -8
  37. package/dist/cjs/data-structures/hash/hash-map.js +2 -2
  38. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  39. package/dist/cjs/interfaces/binary-tree.d.ts +2 -2
  40. package/dist/cjs/types/data-structures/base/base.d.ts +3 -3
  41. package/dist/mjs/data-structures/base/iterable-base.d.ts +6 -6
  42. package/dist/mjs/data-structures/base/iterable-base.js +1 -1
  43. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +5 -3
  44. package/dist/mjs/data-structures/binary-tree/avl-tree.js +6 -4
  45. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +24 -22
  46. package/dist/mjs/data-structures/binary-tree/binary-tree.js +36 -23
  47. package/dist/mjs/data-structures/binary-tree/bst.d.ts +30 -22
  48. package/dist/mjs/data-structures/binary-tree/bst.js +38 -26
  49. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +19 -13
  50. package/dist/mjs/data-structures/binary-tree/rb-tree.js +20 -14
  51. package/dist/mjs/data-structures/binary-tree/tree-multimap.d.ts +21 -14
  52. package/dist/mjs/data-structures/binary-tree/tree-multimap.js +25 -18
  53. package/dist/mjs/data-structures/graph/abstract-graph.d.ts +52 -52
  54. package/dist/mjs/data-structures/graph/abstract-graph.js +79 -79
  55. package/dist/mjs/data-structures/graph/directed-graph.d.ts +47 -47
  56. package/dist/mjs/data-structures/graph/directed-graph.js +56 -56
  57. package/dist/mjs/data-structures/graph/map-graph.d.ts +5 -5
  58. package/dist/mjs/data-structures/graph/map-graph.js +8 -8
  59. package/dist/mjs/data-structures/graph/undirected-graph.d.ts +29 -29
  60. package/dist/mjs/data-structures/graph/undirected-graph.js +59 -59
  61. package/dist/mjs/data-structures/hash/hash-map.d.ts +8 -8
  62. package/dist/mjs/data-structures/hash/hash-map.js +3 -3
  63. package/dist/mjs/interfaces/binary-tree.d.ts +2 -2
  64. package/dist/mjs/types/data-structures/base/base.d.ts +3 -3
  65. package/dist/umd/data-structure-typed.js +336 -295
  66. package/dist/umd/data-structure-typed.min.js +2 -2
  67. package/dist/umd/data-structure-typed.min.js.map +1 -1
  68. package/package.json +2 -2
  69. package/src/data-structures/base/iterable-base.ts +6 -6
  70. package/src/data-structures/binary-tree/avl-tree.ts +7 -4
  71. package/src/data-structures/binary-tree/binary-tree.ts +47 -27
  72. package/src/data-structures/binary-tree/bst.ts +52 -32
  73. package/src/data-structures/binary-tree/rb-tree.ts +20 -14
  74. package/src/data-structures/binary-tree/tree-multimap.ts +26 -18
  75. package/src/data-structures/graph/abstract-graph.ts +82 -82
  76. package/src/data-structures/graph/directed-graph.ts +56 -56
  77. package/src/data-structures/graph/map-graph.ts +8 -8
  78. package/src/data-structures/graph/undirected-graph.ts +59 -59
  79. package/src/data-structures/hash/hash-map.ts +8 -8
  80. package/src/interfaces/binary-tree.ts +2 -2
  81. package/src/types/data-structures/base/base.ts +3 -3
  82. package/test/integration/bst.test.ts +1 -1
  83. package/test/performance/data-structures/binary-tree/rb-tree.test.ts +1 -1
  84. package/test/performance/data-structures/hash/hash-map.test.ts +8 -8
  85. package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
  86. package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +12 -1
  87. package/test/performance/data-structures/priority-queue/priority-queue.test.ts +1 -1
  88. package/test/performance/data-structures/queue/deque.test.ts +27 -15
  89. package/test/performance/data-structures/queue/queue.test.ts +27 -4
  90. package/test/performance/data-structures/stack/stack.test.ts +2 -2
  91. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +1 -1
  92. package/test/unit/data-structures/binary-tree/bst.test.ts +29 -29
  93. package/test/unit/data-structures/binary-tree/overall.test.ts +1 -1
  94. package/test/unit/data-structures/binary-tree/tree-multimap.test.ts +3 -3
  95. package/test/unit/data-structures/graph/directed-graph.test.ts +15 -15
  96. package/test/unit/data-structures/graph/map-graph.test.ts +3 -3
  97. package/test/unit/data-structures/graph/undirected-graph.test.ts +12 -12
@@ -5,7 +5,7 @@ import { magnitude } from '../../../utils';
5
5
  import { isCompetitor } from '../../../config';
6
6
 
7
7
  const suite = new Benchmark.Suite();
8
- const { LINEAR } = magnitude;
8
+ const { LINEAR, HUNDRED_THOUSAND } = magnitude;
9
9
 
10
10
  suite.add(`${LINEAR.toLocaleString()} push`, () => {
11
11
  const queue = new Queue<number>();
@@ -15,7 +15,7 @@ suite.add(`${LINEAR.toLocaleString()} push`, () => {
15
15
  }
16
16
  });
17
17
  if (isCompetitor) {
18
- suite.add(`${LINEAR.toLocaleString()} CPT push`, () => {
18
+ suite.add(`CPT ${LINEAR.toLocaleString()} push`, () => {
19
19
  const queue = new CQueue<number>();
20
20
 
21
21
  for (let i = 0; i < LINEAR; i++) {
@@ -23,13 +23,36 @@ if (isCompetitor) {
23
23
  }
24
24
  });
25
25
  }
26
- suite.add(`${LINEAR.toLocaleString()} push & shift`, () => {
26
+ suite.add(`${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
27
27
  const queue = new Queue<number>();
28
28
 
29
- for (let i = 0; i < LINEAR; i++) {
29
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) {
30
30
  queue.push(i);
31
+ }
32
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) {
31
33
  queue.shift();
32
34
  }
33
35
  });
36
+ suite.add(`Native Array ${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
37
+ const arr = new Array<number>();
38
+
39
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) {
40
+ arr.push(i);
41
+ }
42
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) {
43
+ arr.shift();
44
+ }
45
+ })
46
+ .add(`Native Array ${HUNDRED_THOUSAND.toLocaleString()} push & pop`, () => {
47
+ const arr = new Array<number>();
48
+
49
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) {
50
+ arr.push(i);
51
+ }
52
+
53
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) {
54
+ arr.pop();
55
+ }
56
+ });
34
57
 
35
58
  export { suite };
@@ -15,7 +15,7 @@ suite.add(`${LINEAR.toLocaleString()} push`, () => {
15
15
  }
16
16
  });
17
17
  if (isCompetitor) {
18
- suite.add(`${LINEAR.toLocaleString()} CPT push`, () => {
18
+ suite.add(`CPT ${LINEAR.toLocaleString()} push`, () => {
19
19
  const queue = new CStack<number>();
20
20
 
21
21
  for (let i = 0; i < LINEAR; i++) {
@@ -34,7 +34,7 @@ suite.add(`${LINEAR.toLocaleString()} push & pop`, () => {
34
34
  }
35
35
  });
36
36
  if (isCompetitor) {
37
- suite.add(`${LINEAR.toLocaleString()} CPT push & pop`, () => {
37
+ suite.add(`CPT ${LINEAR.toLocaleString()} push & pop`, () => {
38
38
  const queue = new CStack<number>();
39
39
 
40
40
  for (let i = 0; i < LINEAR; i++) {
@@ -569,7 +569,7 @@ describe('BinaryTree iterative methods test', () => {
569
569
  beforeEach(() => {
570
570
  binaryTree = new BinaryTree();
571
571
  binaryTree.add([1, 'a']);
572
- binaryTree.add([2, 'b']);
572
+ binaryTree.add(2, 'b');
573
573
  binaryTree.add([3, 'c']);
574
574
  });
575
575
 
@@ -10,7 +10,7 @@ describe('BST operations test', () => {
10
10
  bst.add([11, 11]);
11
11
  bst.add([3, 3]);
12
12
  const idsAndValues: [number, number][] = [[15, 15], [1, 1], [8, 8], [13, 13], [16, 16], [2, 2], [6, 6], [9, 9], [12, 12], [14, 14], [4, 4], [7, 7], [10, 10], [5, 5]];
13
- bst.addMany(idsAndValues, false);
13
+ bst.addMany(idsAndValues, undefined, false);
14
14
  expect(bst.root).toBeInstanceOf(BSTNode);
15
15
 
16
16
  if (bst.root) expect(bst.root.key).toBe(11);
@@ -189,28 +189,27 @@ describe('BST operations test', () => {
189
189
  });
190
190
 
191
191
  it('should perform various operations on a Binary Search Tree with object values', () => {
192
- const objBST = new BST<number, { key: number; keyA: number }>();
192
+ const objBST = new BST<number, { name: string; age: number }>();
193
193
  expect(objBST).toBeInstanceOf(BST);
194
- objBST.add([11, { key: 11, keyA: 11 }]);
195
- objBST.add([3, { key: 3, keyA: 3 }]);
196
- const values: [number, { key: number; keyA: number }][] = [
197
- [15, { key: 15, keyA: 15 }],
198
- [1, { key: 1, keyA: 1 }],
199
- [8, { key: 8, keyA: 8 }],
200
- [13, { key: 13, keyA: 13 }],
201
- [16, { key: 16, keyA: 16 }],
202
- [2, { key: 2, keyA: 2 }],
203
- [6, { key: 6, keyA: 6 }],
204
- [9, { key: 9, keyA: 9 }],
205
- [12, { key: 12, keyA: 12 }],
206
- [14, { key: 14, keyA: 14 }],
207
- [4, { key: 4, keyA: 4 }],
208
- [7, { key: 7, keyA: 7 }],
209
- [10, { key: 10, keyA: 10 }],
210
- [5, { key: 5, keyA: 5 }]
211
- ];
212
-
213
- objBST.addMany(values, false);
194
+ objBST.add([11, { name: '11', age: 11 }]);
195
+ objBST.add([3, { name: '3', age: 3 }]);
196
+
197
+ objBST.addMany([15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5], [
198
+ { "name": "Alice", "age": 15 },
199
+ { "name": "Bob", "age": 1 },
200
+ { "name": "Charlie", "age": 8 },
201
+ { "name": "David", "age": 13 },
202
+ { "name": "Emma", "age": 16 },
203
+ { "name": "Frank", "age": 2 },
204
+ { "name": "Grace", "age": 6 },
205
+ { "name": "Hannah", "age": 9 },
206
+ { "name": "Isaac", "age": 12 },
207
+ { "name": "Jack", "age": 14 },
208
+ { "name": "Katie", "age": 4 },
209
+ { "name": "Liam", "age": 7 },
210
+ { "name": "Mia", "age": 10 },
211
+ { "name": "Noah", "age": 5 }
212
+ ], false);
214
213
 
215
214
  expect(objBST.root).toBeInstanceOf(BSTNode);
216
215
 
@@ -232,7 +231,7 @@ describe('BST operations test', () => {
232
231
  expect(leftMost?.key).toBe(1);
233
232
 
234
233
  const node15 = objBST.getNode(15);
235
- expect(node15?.value).toEqual({ key: 15, keyA: 15 });
234
+ expect(node15?.value).toEqual({ name: 'Alice', age: 15 });
236
235
  const minNodeBySpecificNode = node15 && objBST.getLeftMost(node15);
237
236
  expect(minNodeBySpecificNode?.key).toBe(12);
238
237
 
@@ -256,7 +255,7 @@ describe('BST operations test', () => {
256
255
  objBST.perfectlyBalance();
257
256
  expect(objBST.isPerfectlyBalanced()).toBe(true);
258
257
 
259
- const bfsNodesAfterBalanced: BSTNode<number, { key: number; keyA: number }>[] = [];
258
+ const bfsNodesAfterBalanced: BSTNode<number, { name: string; age: number }>[] = [];
260
259
  objBST.bfs(node => bfsNodesAfterBalanced.push(node));
261
260
  expect(bfsNodesAfterBalanced[0].key).toBe(8);
262
261
  expect(bfsNodesAfterBalanced[bfsNodesAfterBalanced.length - 1].key).toBe(16);
@@ -381,7 +380,7 @@ describe('BST operations test', () => {
381
380
  expect(bfsIDs[1]).toBe(12);
382
381
  expect(bfsIDs[2]).toBe(16);
383
382
 
384
- const bfsNodes: BSTNode<number, { key: number; keyA: number }>[] = [];
383
+ const bfsNodes: BSTNode<number, { name: string; age: number }>[] = [];
385
384
  objBST.bfs(node => bfsNodes.push(node));
386
385
  expect(bfsNodes[0].key).toBe(2);
387
386
  expect(bfsNodes[1].key).toBe(12);
@@ -396,7 +395,7 @@ describe('BST operations test recursively', () => {
396
395
  bst.add([11, 11]);
397
396
  bst.add([3, 3]);
398
397
  const idsAndValues = [15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5];
399
- bst.addMany(idsAndValues, false);
398
+ bst.addMany(idsAndValues, undefined, false);
400
399
  expect(bst.root).toBeInstanceOf(BSTNode);
401
400
 
402
401
  if (bst.root) expect(bst.root.key).toBe(11);
@@ -580,7 +579,7 @@ describe('BST operations test recursively', () => {
580
579
  expect(objBST).toBeInstanceOf(BST);
581
580
  objBST.add([11, { key: 11, keyA: 11 }]);
582
581
  objBST.add([3, { key: 3, keyA: 3 }]);
583
- const values: [number, { key: number; keyA: number }][] = [
582
+ const entries: [number, { key: number; keyA: number }][] = [
584
583
  [15, { key: 15, keyA: 15 }],
585
584
  [1, { key: 1, keyA: 1 }],
586
585
  [8, { key: 8, keyA: 8 }],
@@ -598,7 +597,8 @@ describe('BST operations test recursively', () => {
598
597
  ];
599
598
 
600
599
  objBST.addMany(
601
- values,
600
+ entries,
601
+ undefined,
602
602
  false
603
603
  );
604
604
 
@@ -829,7 +829,7 @@ describe('BST Performance test', function () {
829
829
 
830
830
  it('should the lastKey of a BST to be the largest key', function () {
831
831
  const bst = new BST();
832
- bst.addMany([9, 8, 7, 3, 1, 2, 5, 4, 6], false);
832
+ bst.addMany([9, 8, 7, 3, 1, 2, 5, 4, 6], undefined, false);
833
833
  // TODO
834
834
  // expect(bst.lastKey()).toBe(9);
835
835
  });
@@ -5,7 +5,7 @@ describe('Overall BinaryTree Test', () => {
5
5
  const bst = new BST();
6
6
  bst.add(11);
7
7
  bst.add(3);
8
- bst.addMany([15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5], false);
8
+ bst.addMany([15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5], undefined, false);
9
9
  bst.size === 16; // true
10
10
  expect(bst.size).toBe(16); // true
11
11
  bst.has(6); // true
@@ -605,9 +605,9 @@ describe('TreeMultimap iterative methods test', () => {
605
605
  let treeMM: TreeMultimap<number, string>;
606
606
  beforeEach(() => {
607
607
  treeMM = new TreeMultimap<number, string>();
608
- treeMM.add([1, 'a'], 10);
609
- treeMM.add([2, 'b'], 10);
610
- treeMM.add([3, 'c'], 1);
608
+ treeMM.add(1, 'a', 10);
609
+ treeMM.add([2, 'b'], undefined, 10);
610
+ treeMM.add([3, 'c'], undefined, 1);
611
611
  });
612
612
 
613
613
  test('The node obtained by get Node should match the node type', () => {
@@ -7,7 +7,7 @@ describe('DirectedGraph Operation Test', () => {
7
7
  graph = new DirectedGraph();
8
8
  });
9
9
 
10
- it('should add vertices', () => {
10
+ it('should add vertexMap', () => {
11
11
  const vertex1 = new DirectedVertex('A');
12
12
  const vertex2 = new DirectedVertex('B');
13
13
 
@@ -155,7 +155,7 @@ describe('Inherit from DirectedGraph and perform operations', () => {
155
155
  myGraph = new MyDirectedGraph();
156
156
  });
157
157
 
158
- it('Add vertices', () => {
158
+ it('Add vertexMap', () => {
159
159
  myGraph.addVertex(1, 'data1');
160
160
  myGraph.addVertex(2, 'data2');
161
161
  myGraph.addVertex(3, 'data3');
@@ -204,7 +204,7 @@ describe('Inherit from DirectedGraph and perform operations', () => {
204
204
  expect(true).toBeTruthy();
205
205
  });
206
206
 
207
- it('Remove edge between vertices', () => {
207
+ it('Remove edge between vertexMap', () => {
208
208
  myGraph.addVertex(1, 'data1');
209
209
  myGraph.addVertex(2, 'data2');
210
210
  myGraph.addEdge(1, 2, 10, 'edge-data1-2');
@@ -232,14 +232,14 @@ describe('Inherit from DirectedGraph and perform operations', () => {
232
232
  }
233
233
  });
234
234
 
235
- it('Minimum path between vertices', () => {
235
+ it('Minimum path between vertexMap', () => {
236
236
  myGraph.addVertex(new MyVertex(1, 'data1'));
237
237
  myGraph.addVertex(new MyVertex(2, 'data2'));
238
238
  myGraph.addEdge(new MyEdge(1, 2, 10, 'edge-data1-2'));
239
239
  });
240
240
 
241
- it('All paths between vertices', () => {
242
- // Add vertices and edges as needed for this test
241
+ it('All paths between vertexMap', () => {
242
+ // Add vertexMap and edges as needed for this test
243
243
  myGraph.addVertex(new MyVertex(1, 'data1'));
244
244
  myGraph.addVertex(new MyVertex(2, 'data2'));
245
245
  myGraph.addEdge(new MyEdge(1, 2, 10, 'edge-data1-2'));
@@ -598,41 +598,41 @@ describe('cycles, strongly connected components, bridges, articular points in Di
598
598
 
599
599
  describe('DirectedGraph iterative Methods', () => {
600
600
  let graph: DirectedGraph<string>;
601
- let vertices: string[];
601
+ let vertexMap: string[];
602
602
 
603
603
  beforeEach(() => {
604
604
  graph = new DirectedGraph();
605
- vertices = ['A', 'B', 'C', 'D'];
606
- vertices.forEach(vertex => graph.addVertex(vertex));
605
+ vertexMap = ['A', 'B', 'C', 'D'];
606
+ vertexMap.forEach(vertex => graph.addVertex(vertex));
607
607
  });
608
608
 
609
- test('[Symbol.iterator] should iterate over all vertices', () => {
609
+ test('[Symbol.iterator] should iterate over all vertexMap', () => {
610
610
  const iteratedVertices = [];
611
611
  for (const vertex of graph) {
612
612
  iteratedVertices.push(vertex[0]);
613
613
  }
614
- expect(iteratedVertices).toEqual(vertices);
614
+ expect(iteratedVertices).toEqual(vertexMap);
615
615
  });
616
616
 
617
617
  test('forEach should apply a function to each vertex', () => {
618
618
  const result: VertexKey[] = [];
619
619
  graph.forEach((value, key) => key && result.push(key));
620
- expect(result).toEqual(vertices);
620
+ expect(result).toEqual(vertexMap);
621
621
  });
622
622
 
623
- test('filter should return vertices that satisfy the condition', () => {
623
+ test('filter should return vertexMap that satisfy the condition', () => {
624
624
  const filtered = graph.filter((value, vertex) => vertex === 'A' || vertex === 'B');
625
625
  expect(filtered).toEqual([["A", undefined], ["B", undefined]]);
626
626
  });
627
627
 
628
628
  test('map should apply a function to each vertex and return a new array', () => {
629
629
  const mapped = graph.map((value, vertex) => vertex + '_mapped');
630
- expect(mapped).toEqual(vertices.map(v => v + '_mapped'));
630
+ expect(mapped).toEqual(vertexMap.map(v => v + '_mapped'));
631
631
  });
632
632
 
633
633
  test('reduce should accumulate a value based on each vertex', () => {
634
634
  const concatenated = graph.reduce((acc, value, key) => acc + key, '');
635
- expect(concatenated).toBe(vertices.join(''));
635
+ expect(concatenated).toBe(vertexMap.join(''));
636
636
  });
637
637
 
638
638
  test('Removing an edge of a DirectedGraph should not delete additional edges', () => {
@@ -52,8 +52,8 @@ describe('MapGraph', () => {
52
52
  mapGraph = new MapGraph<string, string>([0, 0], [100, 100]);
53
53
  });
54
54
 
55
- // Test adding vertices to the graph
56
- it('should add vertices to the graph', () => {
55
+ // Test adding vertexMap to the graph
56
+ it('should add vertexMap to the graph', () => {
57
57
  const locationA = new MapVertex('A', 'Location A', 10, 20);
58
58
  const locationB = new MapVertex('B', 'Location B', 30, 40);
59
59
 
@@ -88,7 +88,7 @@ describe('MapGraph', () => {
88
88
  const edgeAB = new MapEdge('A', 'B', 50, 'Edge from A to B');
89
89
  const edgeBC = new MapEdge('B', 'C', 60, 'Edge from B to C');
90
90
 
91
- expect(mapGraph.origin).toEqual([0, 0]);
91
+ expect(mapGraph.originCoord).toEqual([0, 0]);
92
92
  expect(mapGraph.bottomRight).toEqual([100, 100]);
93
93
 
94
94
  mapGraph.addVertex(locationA);
@@ -17,7 +17,7 @@ describe('UndirectedGraph Operation Test', () => {
17
17
  expect(graph.getEndsOfEdge(new UndirectedEdge('c', 'd'))).toBe(undefined);
18
18
  });
19
19
 
20
- it('should add vertices', () => {
20
+ it('should add vertexMap', () => {
21
21
  const vertex1 = new UndirectedVertex('A');
22
22
  const vertex2 = new UndirectedVertex('B');
23
23
 
@@ -76,8 +76,8 @@ describe('UndirectedGraph', () => {
76
76
  undirectedGraph = new UndirectedGraph<string, string>();
77
77
  });
78
78
 
79
- // Test adding vertices to the graph
80
- it('should add vertices to the graph', () => {
79
+ // Test adding vertexMap to the graph
80
+ it('should add vertexMap to the graph', () => {
81
81
  const vertexA = new UndirectedVertex('A', 'Location A');
82
82
  const vertexB = new UndirectedVertex('B', 'Location B');
83
83
 
@@ -130,8 +130,8 @@ describe('UndirectedGraph', () => {
130
130
  const edgeAB = new UndirectedEdge('A', 'B', 3, 'Edge between A and B');
131
131
  const edgeBC = new UndirectedEdge('B', 'C', 4, 'Edge between B and C');
132
132
 
133
- edgeAB.vertices = edgeAB.vertices;
134
- expect(undirectedGraph.edges.size).toBe(0);
133
+ edgeAB.vertexMap = edgeAB.vertexMap;
134
+ expect(undirectedGraph.edgeMap.size).toBe(0);
135
135
  undirectedGraph.addVertex(vertexA);
136
136
  undirectedGraph.addVertex(vertexB);
137
137
  undirectedGraph.addVertex(vertexC);
@@ -181,10 +181,10 @@ describe('UndirectedGraph', () => {
181
181
  dg.addVertex('hey')
182
182
  dg.addEdge('hello', 'hi')
183
183
  dg.addEdge('hello', 'hey')
184
- expect(dg.getEdge('hello', 'hi')?.vertices[0]).toBe('hello')
185
- expect(dg.getEdge('hello', 'hi')?.vertices[1]).toBe('hi')
186
- expect(dg.getEdge('hello', 'hey')?.vertices[0]).toBe('hello')
187
- expect(dg.getEdge('hello', 'hey')?.vertices[1]).toBe('hey')
184
+ expect(dg.getEdge('hello', 'hi')?.vertexMap[0]).toBe('hello')
185
+ expect(dg.getEdge('hello', 'hi')?.vertexMap[1]).toBe('hi')
186
+ expect(dg.getEdge('hello', 'hey')?.vertexMap[0]).toBe('hello')
187
+ expect(dg.getEdge('hello', 'hey')?.vertexMap[1]).toBe('hey')
188
188
  dg.deleteEdge('hello', 'hi')
189
189
  expect(dg.getEdge('hello', 'hi')).toBe(undefined)
190
190
  expect(dg.getEdge('hello', 'hey')).toBeInstanceOf(UndirectedEdge)
@@ -200,13 +200,13 @@ describe('UndirectedGraph', () => {
200
200
  dg.addEdge('hello', 'earth')
201
201
  dg.addEdge('world', 'earth')
202
202
 
203
- expect(dg.getEdge('hello', 'world')?.vertices[0]).toBe('hello');
203
+ expect(dg.getEdge('hello', 'world')?.vertexMap[0]).toBe('hello');
204
204
  expect(dg.edgeSet().length).toBe(3)
205
- expect(dg.edgeSet()[0].vertices).toEqual(['hello', 'world'])
205
+ expect(dg.edgeSet()[0].vertexMap).toEqual(['hello', 'world'])
206
206
 
207
207
  dg.deleteVertex('hello')
208
208
  expect(dg.edgeSet().length).toBe(1)
209
- expect(dg.edgeSet()?.[0].vertices[0]).toBe('world')
209
+ expect(dg.edgeSet()?.[0].vertexMap[0]).toBe('world')
210
210
 
211
211
  expect(dg.getEdge('hello', 'world')).toBe(undefined);
212
212
  })