data-structure-typed 1.48.3 → 1.48.5

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 (84) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +6 -6
  3. package/dist/cjs/data-structures/base/iterable-base.d.ts +6 -6
  4. package/dist/cjs/data-structures/base/iterable-base.js +3 -3
  5. package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
  6. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +5 -3
  7. package/dist/cjs/data-structures/binary-tree/avl-tree.js +6 -4
  8. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  9. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +18 -15
  10. package/dist/cjs/data-structures/binary-tree/binary-tree.js +16 -13
  11. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  12. package/dist/cjs/data-structures/binary-tree/bst.d.ts +15 -11
  13. package/dist/cjs/data-structures/binary-tree/bst.js +17 -13
  14. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  15. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +19 -13
  16. package/dist/cjs/data-structures/binary-tree/rb-tree.js +20 -14
  17. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
  18. package/dist/cjs/data-structures/binary-tree/tree-multimap.d.ts +21 -14
  19. package/dist/cjs/data-structures/binary-tree/tree-multimap.js +25 -18
  20. package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +1 -1
  21. package/dist/cjs/data-structures/graph/abstract-graph.d.ts +53 -52
  22. package/dist/cjs/data-structures/graph/abstract-graph.js +82 -78
  23. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
  24. package/dist/cjs/data-structures/graph/directed-graph.d.ts +70 -52
  25. package/dist/cjs/data-structures/graph/directed-graph.js +111 -65
  26. package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
  27. package/dist/cjs/data-structures/graph/map-graph.d.ts +5 -5
  28. package/dist/cjs/data-structures/graph/map-graph.js +8 -8
  29. package/dist/cjs/data-structures/graph/map-graph.js.map +1 -1
  30. package/dist/cjs/data-structures/graph/undirected-graph.d.ts +51 -32
  31. package/dist/cjs/data-structures/graph/undirected-graph.js +117 -54
  32. package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
  33. package/dist/cjs/data-structures/hash/hash-map.d.ts +8 -8
  34. package/dist/cjs/data-structures/hash/hash-map.js +2 -2
  35. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  36. package/dist/cjs/interfaces/binary-tree.d.ts +1 -1
  37. package/dist/cjs/types/data-structures/base/base.d.ts +3 -3
  38. package/dist/mjs/data-structures/base/iterable-base.d.ts +6 -6
  39. package/dist/mjs/data-structures/base/iterable-base.js +1 -1
  40. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +5 -3
  41. package/dist/mjs/data-structures/binary-tree/avl-tree.js +6 -4
  42. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +18 -15
  43. package/dist/mjs/data-structures/binary-tree/binary-tree.js +17 -14
  44. package/dist/mjs/data-structures/binary-tree/bst.d.ts +15 -11
  45. package/dist/mjs/data-structures/binary-tree/bst.js +17 -13
  46. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +19 -13
  47. package/dist/mjs/data-structures/binary-tree/rb-tree.js +20 -14
  48. package/dist/mjs/data-structures/binary-tree/tree-multimap.d.ts +21 -14
  49. package/dist/mjs/data-structures/binary-tree/tree-multimap.js +25 -18
  50. package/dist/mjs/data-structures/graph/abstract-graph.d.ts +53 -52
  51. package/dist/mjs/data-structures/graph/abstract-graph.js +83 -79
  52. package/dist/mjs/data-structures/graph/directed-graph.d.ts +70 -52
  53. package/dist/mjs/data-structures/graph/directed-graph.js +111 -65
  54. package/dist/mjs/data-structures/graph/map-graph.d.ts +5 -5
  55. package/dist/mjs/data-structures/graph/map-graph.js +8 -8
  56. package/dist/mjs/data-structures/graph/undirected-graph.d.ts +51 -32
  57. package/dist/mjs/data-structures/graph/undirected-graph.js +119 -56
  58. package/dist/mjs/data-structures/hash/hash-map.d.ts +8 -8
  59. package/dist/mjs/data-structures/hash/hash-map.js +3 -3
  60. package/dist/mjs/interfaces/binary-tree.d.ts +1 -1
  61. package/dist/mjs/types/data-structures/base/base.d.ts +3 -3
  62. package/dist/umd/data-structure-typed.js +413 -285
  63. package/dist/umd/data-structure-typed.min.js +2 -2
  64. package/dist/umd/data-structure-typed.min.js.map +1 -1
  65. package/package.json +1 -1
  66. package/src/data-structures/base/iterable-base.ts +6 -6
  67. package/src/data-structures/binary-tree/avl-tree.ts +8 -5
  68. package/src/data-structures/binary-tree/binary-tree.ts +23 -19
  69. package/src/data-structures/binary-tree/bst.ts +19 -14
  70. package/src/data-structures/binary-tree/rb-tree.ts +20 -14
  71. package/src/data-structures/binary-tree/tree-multimap.ts +27 -19
  72. package/src/data-structures/graph/abstract-graph.ts +87 -82
  73. package/src/data-structures/graph/directed-graph.ts +114 -65
  74. package/src/data-structures/graph/map-graph.ts +8 -8
  75. package/src/data-structures/graph/undirected-graph.ts +124 -56
  76. package/src/data-structures/hash/hash-map.ts +8 -8
  77. package/src/interfaces/binary-tree.ts +1 -1
  78. package/src/types/data-structures/base/base.ts +3 -3
  79. package/test/integration/bst.test.ts +1 -1
  80. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +1 -1
  81. package/test/unit/data-structures/binary-tree/tree-multimap.test.ts +3 -3
  82. package/test/unit/data-structures/graph/directed-graph.test.ts +52 -15
  83. package/test/unit/data-structures/graph/map-graph.test.ts +3 -3
  84. package/test/unit/data-structures/graph/undirected-graph.test.ts +42 -5
@@ -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);
@@ -173,6 +173,43 @@ describe('UndirectedGraph', () => {
173
173
  expect(minWeightedPath?.minPath?.[3]?.key).toBe('Intersection_4');
174
174
  expect(minWeightedPath?.minPath?.[4]?.key).toBe('Intersection_5');
175
175
  });
176
+
177
+ test('Removing an edge of a UndirectedGraph should not delete additional edges', () => {
178
+ const dg = new UndirectedGraph();
179
+ dg.addVertex('hello')
180
+ dg.addVertex('hi')
181
+ dg.addVertex('hey')
182
+ dg.addEdge('hello', 'hi')
183
+ dg.addEdge('hello', '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
+ dg.deleteEdge('hello', 'hi')
189
+ expect(dg.getEdge('hello', 'hi')).toBe(undefined)
190
+ expect(dg.getEdge('hello', 'hey')).toBeInstanceOf(UndirectedEdge)
191
+ });
192
+
193
+ test('Removing a vertex from a UndirectedGraph should remove its edges', () => {
194
+ const dg = new UndirectedGraph();
195
+ dg.addVertex('hello')
196
+ dg.addVertex('world')
197
+ dg.addVertex('earth')
198
+
199
+ dg.addEdge('hello', 'world')
200
+ dg.addEdge('hello', 'earth')
201
+ dg.addEdge('world', 'earth')
202
+
203
+ expect(dg.getEdge('hello', 'world')?.vertexMap[0]).toBe('hello');
204
+ expect(dg.edgeSet().length).toBe(3)
205
+ expect(dg.edgeSet()[0].vertexMap).toEqual(['hello', 'world'])
206
+
207
+ dg.deleteVertex('hello')
208
+ expect(dg.edgeSet().length).toBe(1)
209
+ expect(dg.edgeSet()?.[0].vertexMap[0]).toBe('world')
210
+
211
+ expect(dg.getEdge('hello', 'world')).toBe(undefined);
212
+ })
176
213
  });
177
214
 
178
215
  describe('cycles, strongly connected components, bridges, articular points in UndirectedGraph', () => {