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.
- package/CHANGELOG.md +1 -1
- package/README.md +6 -6
- package/dist/cjs/data-structures/base/iterable-base.d.ts +6 -6
- package/dist/cjs/data-structures/base/iterable-base.js +3 -3
- package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +5 -3
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +6 -4
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +18 -15
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +16 -13
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +15 -11
- package/dist/cjs/data-structures/binary-tree/bst.js +17 -13
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +19 -13
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +20 -14
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multimap.d.ts +21 -14
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js +25 -18
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.d.ts +53 -52
- package/dist/cjs/data-structures/graph/abstract-graph.js +82 -78
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/directed-graph.d.ts +70 -52
- package/dist/cjs/data-structures/graph/directed-graph.js +111 -65
- package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/map-graph.d.ts +5 -5
- package/dist/cjs/data-structures/graph/map-graph.js +8 -8
- package/dist/cjs/data-structures/graph/map-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/undirected-graph.d.ts +51 -32
- package/dist/cjs/data-structures/graph/undirected-graph.js +117 -54
- package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.d.ts +8 -8
- package/dist/cjs/data-structures/hash/hash-map.js +2 -2
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +1 -1
- package/dist/cjs/types/data-structures/base/base.d.ts +3 -3
- package/dist/mjs/data-structures/base/iterable-base.d.ts +6 -6
- package/dist/mjs/data-structures/base/iterable-base.js +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +5 -3
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +6 -4
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +18 -15
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +17 -14
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +15 -11
- package/dist/mjs/data-structures/binary-tree/bst.js +17 -13
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +19 -13
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +20 -14
- package/dist/mjs/data-structures/binary-tree/tree-multimap.d.ts +21 -14
- package/dist/mjs/data-structures/binary-tree/tree-multimap.js +25 -18
- package/dist/mjs/data-structures/graph/abstract-graph.d.ts +53 -52
- package/dist/mjs/data-structures/graph/abstract-graph.js +83 -79
- package/dist/mjs/data-structures/graph/directed-graph.d.ts +70 -52
- package/dist/mjs/data-structures/graph/directed-graph.js +111 -65
- package/dist/mjs/data-structures/graph/map-graph.d.ts +5 -5
- package/dist/mjs/data-structures/graph/map-graph.js +8 -8
- package/dist/mjs/data-structures/graph/undirected-graph.d.ts +51 -32
- package/dist/mjs/data-structures/graph/undirected-graph.js +119 -56
- package/dist/mjs/data-structures/hash/hash-map.d.ts +8 -8
- package/dist/mjs/data-structures/hash/hash-map.js +3 -3
- package/dist/mjs/interfaces/binary-tree.d.ts +1 -1
- package/dist/mjs/types/data-structures/base/base.d.ts +3 -3
- package/dist/umd/data-structure-typed.js +413 -285
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +1 -1
- package/src/data-structures/base/iterable-base.ts +6 -6
- package/src/data-structures/binary-tree/avl-tree.ts +8 -5
- package/src/data-structures/binary-tree/binary-tree.ts +23 -19
- package/src/data-structures/binary-tree/bst.ts +19 -14
- package/src/data-structures/binary-tree/rb-tree.ts +20 -14
- package/src/data-structures/binary-tree/tree-multimap.ts +27 -19
- package/src/data-structures/graph/abstract-graph.ts +87 -82
- package/src/data-structures/graph/directed-graph.ts +114 -65
- package/src/data-structures/graph/map-graph.ts +8 -8
- package/src/data-structures/graph/undirected-graph.ts +124 -56
- package/src/data-structures/hash/hash-map.ts +8 -8
- package/src/interfaces/binary-tree.ts +1 -1
- package/src/types/data-structures/base/base.ts +3 -3
- package/test/integration/bst.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/tree-multimap.test.ts +3 -3
- package/test/unit/data-structures/graph/directed-graph.test.ts +52 -15
- package/test/unit/data-structures/graph/map-graph.test.ts +3 -3
- 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
|
|
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
|
|
80
|
-
it('should add
|
|
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.
|
|
134
|
-
expect(undirectedGraph.
|
|
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', () => {
|