typescript-ds-lib 0.2.5 → 0.2.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 (34) hide show
  1. package/package.json +1 -1
  2. package/dist/tests/binary-search-tree.test.d.ts +0 -1
  3. package/dist/tests/binary-search-tree.test.js +0 -163
  4. package/dist/tests/binary-search-tree.test.js.map +0 -1
  5. package/dist/tests/deque.test.d.ts +0 -1
  6. package/dist/tests/deque.test.js +0 -78
  7. package/dist/tests/deque.test.js.map +0 -1
  8. package/dist/tests/hash-table.test.d.ts +0 -1
  9. package/dist/tests/hash-table.test.js +0 -94
  10. package/dist/tests/hash-table.test.js.map +0 -1
  11. package/dist/tests/linked-list.test.d.ts +0 -1
  12. package/dist/tests/linked-list.test.js +0 -344
  13. package/dist/tests/linked-list.test.js.map +0 -1
  14. package/dist/tests/map.test.d.ts +0 -1
  15. package/dist/tests/map.test.js +0 -176
  16. package/dist/tests/map.test.js.map +0 -1
  17. package/dist/tests/matrix.test.d.ts +0 -1
  18. package/dist/tests/matrix.test.js +0 -278
  19. package/dist/tests/matrix.test.js.map +0 -1
  20. package/dist/tests/priority-queue.test.d.ts +0 -1
  21. package/dist/tests/priority-queue.test.js +0 -118
  22. package/dist/tests/priority-queue.test.js.map +0 -1
  23. package/dist/tests/queue.test.d.ts +0 -1
  24. package/dist/tests/queue.test.js +0 -48
  25. package/dist/tests/queue.test.js.map +0 -1
  26. package/dist/tests/red-black-tree.test.d.ts +0 -1
  27. package/dist/tests/red-black-tree.test.js +0 -167
  28. package/dist/tests/red-black-tree.test.js.map +0 -1
  29. package/dist/tests/set.test.d.ts +0 -1
  30. package/dist/tests/set.test.js +0 -119
  31. package/dist/tests/set.test.js.map +0 -1
  32. package/dist/tests/stack.test.d.ts +0 -1
  33. package/dist/tests/stack.test.js +0 -57
  34. package/dist/tests/stack.test.js.map +0 -1
@@ -1,344 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const linked_list_1 = require("../lib/linked-list");
4
- describe('LinkedList', () => {
5
- let list;
6
- beforeEach(() => {
7
- list = new linked_list_1.LinkedList();
8
- });
9
- describe('Adding elements', () => {
10
- test('should add elements to the end', () => {
11
- list.pushBack(1);
12
- list.pushBack(2);
13
- list.pushBack(3);
14
- expect(list.size()).toBe(3);
15
- expect(list.get(0)).toBe(1);
16
- expect(list.get(1)).toBe(2);
17
- expect(list.get(2)).toBe(3);
18
- });
19
- test('should add elements to the front', () => {
20
- list.pushFront(1);
21
- list.pushFront(2);
22
- list.pushFront(3);
23
- expect(list.size()).toBe(3);
24
- expect(list.get(0)).toBe(3);
25
- expect(list.get(1)).toBe(2);
26
- expect(list.get(2)).toBe(1);
27
- });
28
- });
29
- describe('Inserting elements', () => {
30
- test('should insert at valid positions', () => {
31
- list.pushBack(1);
32
- list.pushBack(3);
33
- expect(list.insert(2, 1)).toBe(true);
34
- expect(list.get(0)).toBe(1);
35
- expect(list.get(1)).toBe(2);
36
- expect(list.get(2)).toBe(3);
37
- });
38
- test('should insert at beginning', () => {
39
- list.pushBack(1);
40
- list.pushBack(2);
41
- expect(list.insert(0, 0)).toBe(true);
42
- expect(list.get(0)).toBe(0);
43
- expect(list.get(1)).toBe(1);
44
- expect(list.get(2)).toBe(2);
45
- });
46
- test('should insert at end', () => {
47
- list.pushBack(1);
48
- list.pushBack(2);
49
- expect(list.insert(3, 2)).toBe(true);
50
- expect(list.get(0)).toBe(1);
51
- expect(list.get(1)).toBe(2);
52
- expect(list.get(2)).toBe(3);
53
- });
54
- test('should return false for invalid positions', () => {
55
- expect(list.insert(1, -1)).toBe(false);
56
- expect(list.insert(1, 1)).toBe(false);
57
- });
58
- });
59
- describe('Removing elements', () => {
60
- describe('removeIf', () => {
61
- test('should remove elements that satisfy the condition', () => {
62
- list.pushBack(1);
63
- list.pushBack(2);
64
- list.pushBack(3);
65
- expect(list.removeIf(x => x === 2)).toBe(true);
66
- expect(list.size()).toBe(2);
67
- expect(list.get(0)).toBe(1);
68
- expect(list.get(1)).toBe(3);
69
- });
70
- test('should remove multiple elements that satisfy the condition', () => {
71
- list.pushBack(1);
72
- list.pushBack(2);
73
- list.pushBack(2);
74
- list.pushBack(3);
75
- expect(list.removeIf(x => x === 2)).toBe(true);
76
- expect(list.size()).toBe(3);
77
- expect(list.get(0)).toBe(1);
78
- expect(list.get(1)).toBe(2);
79
- expect(list.get(2)).toBe(3);
80
- });
81
- test('should remove first element that satisfies condition', () => {
82
- list.pushBack(1);
83
- list.pushBack(2);
84
- list.pushBack(3);
85
- expect(list.removeIf(x => x === 1)).toBe(true);
86
- expect(list.size()).toBe(2);
87
- expect(list.get(0)).toBe(2);
88
- expect(list.get(1)).toBe(3);
89
- });
90
- test('should remove last element that satisfies condition', () => {
91
- list.pushBack(1);
92
- list.pushBack(2);
93
- list.pushBack(3);
94
- expect(list.removeIf(x => x === 3)).toBe(true);
95
- expect(list.size()).toBe(2);
96
- expect(list.get(0)).toBe(1);
97
- expect(list.get(1)).toBe(2);
98
- });
99
- test('should return false if no element satisfies the condition', () => {
100
- list.pushBack(1);
101
- list.pushBack(2);
102
- expect(list.removeIf(x => x === 3)).toBe(false);
103
- expect(list.size()).toBe(2);
104
- });
105
- });
106
- describe('removeAt', () => {
107
- test('should remove elements at valid positions', () => {
108
- list.pushBack(1);
109
- list.pushBack(2);
110
- list.pushBack(3);
111
- expect(list.removeAt(1)).toBe(2);
112
- expect(list.size()).toBe(2);
113
- expect(list.get(0)).toBe(1);
114
- expect(list.get(1)).toBe(3);
115
- });
116
- test('should remove first element', () => {
117
- list.pushBack(1);
118
- list.pushBack(2);
119
- list.pushBack(3);
120
- expect(list.removeAt(0)).toBe(1);
121
- expect(list.size()).toBe(2);
122
- expect(list.get(0)).toBe(2);
123
- expect(list.get(1)).toBe(3);
124
- });
125
- test('should remove last element', () => {
126
- list.pushBack(1);
127
- list.pushBack(2);
128
- list.pushBack(3);
129
- expect(list.removeAt(2)).toBe(3);
130
- expect(list.size()).toBe(2);
131
- expect(list.get(0)).toBe(1);
132
- expect(list.get(1)).toBe(2);
133
- });
134
- test('should return undefined for invalid positions', () => {
135
- list.pushBack(1);
136
- expect(list.removeAt(-1)).toBeUndefined();
137
- expect(list.removeAt(1)).toBeUndefined();
138
- });
139
- });
140
- });
141
- describe('Accessing elements', () => {
142
- test('should return elements at valid positions', () => {
143
- list.pushBack(1);
144
- list.pushBack(2);
145
- expect(list.get(0)).toBe(1);
146
- expect(list.get(1)).toBe(2);
147
- });
148
- test('should return undefined for invalid positions', () => {
149
- list.pushBack(1);
150
- expect(list.get(-1)).toBeUndefined();
151
- expect(list.get(1)).toBeUndefined();
152
- });
153
- });
154
- describe('List state', () => {
155
- test('should return true for empty list', () => {
156
- expect(list.isEmpty()).toBe(true);
157
- });
158
- test('should return false for non-empty list', () => {
159
- list.pushBack(1);
160
- expect(list.isEmpty()).toBe(false);
161
- });
162
- test('should return correct size', () => {
163
- expect(list.size()).toBe(0);
164
- list.pushBack(1);
165
- expect(list.size()).toBe(1);
166
- list.pushBack(2);
167
- expect(list.size()).toBe(2);
168
- });
169
- test('should remove all elements', () => {
170
- list.pushBack(1);
171
- list.pushBack(2);
172
- list.clear();
173
- expect(list.isEmpty()).toBe(true);
174
- expect(list.size()).toBe(0);
175
- });
176
- });
177
- describe('Pop operations', () => {
178
- describe('popBack', () => {
179
- test('should pop elements from back', () => {
180
- list.pushBack(1);
181
- list.pushBack(2);
182
- list.pushBack(3);
183
- expect(list.popBack()).toBe(3);
184
- expect(list.size()).toBe(2);
185
- expect(list.popBack()).toBe(2);
186
- expect(list.size()).toBe(1);
187
- expect(list.popBack()).toBe(1);
188
- expect(list.size()).toBe(0);
189
- });
190
- test('should return undefined when popping from empty list from back', () => {
191
- expect(list.popBack()).toBeUndefined();
192
- });
193
- });
194
- describe('popFront', () => {
195
- test('should pop elements from front', () => {
196
- list.pushBack(1);
197
- list.pushBack(2);
198
- list.pushBack(3);
199
- expect(list.popFront()).toBe(1);
200
- expect(list.size()).toBe(2);
201
- expect(list.popFront()).toBe(2);
202
- expect(list.size()).toBe(1);
203
- expect(list.popFront()).toBe(3);
204
- expect(list.size()).toBe(0);
205
- });
206
- test('should return undefined when popping from empty list from front', () => {
207
- expect(list.popFront()).toBeUndefined();
208
- });
209
- });
210
- });
211
- describe('Mixed operations', () => {
212
- test('should handle mixed push and pop operations', () => {
213
- list.pushBack(1);
214
- list.pushFront(2);
215
- expect(list.popBack()).toBe(1);
216
- list.pushBack(3);
217
- expect(list.popFront()).toBe(2);
218
- expect(list.size()).toBe(1);
219
- expect(list.get(0)).toBe(3);
220
- });
221
- test('should maintain correct order after multiple operations', () => {
222
- list.pushBack(1);
223
- list.pushFront(2);
224
- list.pushBack(3);
225
- list.pushFront(4);
226
- expect(list.size()).toBe(4);
227
- expect(list.get(0)).toBe(4);
228
- expect(list.get(1)).toBe(2);
229
- expect(list.get(2)).toBe(1);
230
- expect(list.get(3)).toBe(3);
231
- });
232
- });
233
- describe('Conditional insertion', () => {
234
- describe('insertBefore', () => {
235
- test('should insert before element that satisfies condition', () => {
236
- list.pushBack(1);
237
- list.pushBack(3);
238
- list.pushBack(5);
239
- expect(list.insertBefore(2, x => x === 3)).toBe(true);
240
- expect(list.get(0)).toBe(1);
241
- expect(list.get(1)).toBe(2);
242
- expect(list.get(2)).toBe(3);
243
- expect(list.get(3)).toBe(5);
244
- });
245
- test('should insert before first element when condition matches', () => {
246
- list.pushBack(1);
247
- list.pushBack(2);
248
- expect(list.insertBefore(0, x => x === 1)).toBe(true);
249
- expect(list.get(0)).toBe(0);
250
- expect(list.get(1)).toBe(1);
251
- expect(list.get(2)).toBe(2);
252
- });
253
- test('should return false when inserting before with no match', () => {
254
- list.pushBack(1);
255
- list.pushBack(2);
256
- expect(list.insertBefore(3, x => x === 4)).toBe(false);
257
- });
258
- });
259
- describe('insertAfter', () => {
260
- test('should insert after element that satisfies condition', () => {
261
- list.pushBack(1);
262
- list.pushBack(3);
263
- list.pushBack(5);
264
- expect(list.insertAfter(4, x => x === 3)).toBe(true);
265
- expect(list.get(0)).toBe(1);
266
- expect(list.get(1)).toBe(3);
267
- expect(list.get(2)).toBe(4);
268
- expect(list.get(3)).toBe(5);
269
- });
270
- test('should insert after last element when condition matches', () => {
271
- list.pushBack(1);
272
- list.pushBack(2);
273
- expect(list.insertAfter(3, x => x === 2)).toBe(true);
274
- expect(list.get(0)).toBe(1);
275
- expect(list.get(1)).toBe(2);
276
- expect(list.get(2)).toBe(3);
277
- });
278
- test('should return false when inserting after with no match', () => {
279
- list.pushBack(1);
280
- list.pushBack(2);
281
- expect(list.insertAfter(3, x => x === 4)).toBe(false);
282
- });
283
- });
284
- });
285
- describe('Accessing ends', () => {
286
- describe('front', () => {
287
- test('should return first element with front()', () => {
288
- list.pushBack(1);
289
- list.pushBack(2);
290
- list.pushBack(3);
291
- expect(list.front()).toBe(1);
292
- expect(list.size()).toBe(3); // Check size hasn't changed
293
- });
294
- test('should return undefined when calling front() on empty list', () => {
295
- expect(list.front()).toBeUndefined();
296
- });
297
- });
298
- describe('back', () => {
299
- test('should return last element with back()', () => {
300
- list.pushBack(1);
301
- list.pushBack(2);
302
- list.pushBack(3);
303
- expect(list.back()).toBe(3);
304
- expect(list.size()).toBe(3); // Check size hasn't changed
305
- });
306
- test('should return undefined when calling back() on empty list', () => {
307
- expect(list.back()).toBeUndefined();
308
- });
309
- });
310
- });
311
- describe('Iteration', () => {
312
- test('should iterate through all elements with forEach', () => {
313
- list.pushBack(1);
314
- list.pushBack(2);
315
- list.pushBack(3);
316
- const elements = [];
317
- list.forEach(x => elements.push(x));
318
- expect(elements).toEqual([1, 2, 3]);
319
- });
320
- test('should not call callback for empty list', () => {
321
- const callback = jest.fn();
322
- list.forEach(callback);
323
- expect(callback).not.toHaveBeenCalled();
324
- });
325
- test('should call callback with correct elements in order', () => {
326
- list.pushBack(1);
327
- list.pushBack(2);
328
- const callback = jest.fn();
329
- list.forEach(callback);
330
- expect(callback).toHaveBeenNthCalledWith(1, 1);
331
- expect(callback).toHaveBeenNthCalledWith(2, 2);
332
- expect(callback).toHaveBeenCalledTimes(2);
333
- });
334
- test('should allow callback to modify elements', () => {
335
- list.pushBack(1);
336
- list.pushBack(2);
337
- list.pushBack(3);
338
- const doubled = [];
339
- list.forEach(x => doubled.push(x * 2));
340
- expect(doubled).toEqual([2, 4, 6]);
341
- });
342
- });
343
- });
344
- //# sourceMappingURL=linked-list.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linked-list.test.js","sourceRoot":"","sources":["../../tests/linked-list.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,176 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const map_1 = require("../lib/map");
4
- describe('Map', () => {
5
- let map;
6
- beforeEach(() => {
7
- map = new map_1.Map();
8
- });
9
- describe('initialization', () => {
10
- test('should start empty', () => {
11
- expect(map.isEmpty()).toBe(true);
12
- expect(map.size()).toBe(0);
13
- });
14
- test('should initialize with custom comparator', () => {
15
- const reverseMap = new map_1.Map((a, b) => a > b);
16
- reverseMap.insert('a', 1);
17
- reverseMap.insert('b', 2);
18
- reverseMap.insert('c', 3);
19
- const keys = [];
20
- reverseMap.forEach((key) => keys.push(key));
21
- expect(keys).toEqual(['c', 'b', 'a']);
22
- });
23
- });
24
- describe('insertion and lookup', () => {
25
- test('should insert and find key-value pairs correctly', () => {
26
- map.insert('one', 1);
27
- map.insert('two', 2);
28
- map.insert('three', 3);
29
- expect(map.isEmpty()).toBe(false);
30
- expect(map.size()).toBe(3);
31
- expect(map.find('one')).toBe(1);
32
- expect(map.find('two')).toBe(2);
33
- expect(map.find('three')).toBe(3);
34
- expect(map.find('four')).toBeUndefined();
35
- });
36
- test('should handle duplicate keys by updating values', () => {
37
- map.insert('test', 1);
38
- map.insert('test', 2);
39
- map.insert('test', 3);
40
- expect(map.size()).toBe(1);
41
- expect(map.find('test')).toBe(3);
42
- });
43
- test('should handle inserting undefined or null values', () => {
44
- map.insert('undefined', undefined);
45
- map.insert('null', null);
46
- expect(map.find('undefined')).toBeUndefined();
47
- expect(map.find('null')).toBeNull();
48
- expect(map.size()).toBe(2);
49
- });
50
- test('should handle large number of insertions', () => {
51
- const numInsertions = 1000;
52
- for (let i = 0; i < numInsertions; i++) {
53
- map.insert(`key${i}`, i);
54
- }
55
- expect(map.size()).toBe(numInsertions);
56
- expect(map.find('key500')).toBe(500);
57
- });
58
- });
59
- describe('deletion', () => {
60
- test('should delete key-value pairs correctly', () => {
61
- map.insert('one', 1);
62
- map.insert('two', 2);
63
- map.insert('three', 3);
64
- expect(map.size()).toBe(3);
65
- map.delete('two');
66
- expect(map.find('two')).toBeUndefined();
67
- expect(map.size()).toBe(2);
68
- map.delete('one');
69
- expect(map.find('one')).toBeUndefined();
70
- expect(map.size()).toBe(1);
71
- });
72
- test('should handle deleting non-existent keys', () => {
73
- map.insert('one', 1);
74
- map.insert('two', 2);
75
- const initialSize = map.size();
76
- map.delete('three');
77
- expect(map.size()).toBe(initialSize);
78
- });
79
- test('should clear all entries', () => {
80
- map.insert('one', 1);
81
- map.insert('two', 2);
82
- map.insert('three', 3);
83
- expect(map.isEmpty()).toBe(false);
84
- map.clear();
85
- expect(map.isEmpty()).toBe(true);
86
- expect(map.size()).toBe(0);
87
- });
88
- test('should handle repeated delete operations', () => {
89
- map.insert('test', 1);
90
- map.delete('test');
91
- map.delete('test');
92
- map.delete('test');
93
- expect(map.size()).toBe(0);
94
- expect(map.find('test')).toBeUndefined();
95
- });
96
- test('should handle delete after clear', () => {
97
- map.insert('one', 1);
98
- map.clear();
99
- map.delete('one');
100
- expect(map.size()).toBe(0);
101
- expect(map.find('one')).toBeUndefined();
102
- });
103
- });
104
- describe('iteration', () => {
105
- test('should iterate over all key-value pairs', () => {
106
- const entries = [
107
- ['one', 1],
108
- ['two', 2],
109
- ['three', 3]
110
- ];
111
- entries.forEach(([key, value]) => map.insert(key, value));
112
- const result = [];
113
- map.forEach((key, value) => {
114
- result.push([key, value]);
115
- });
116
- expect(result).toHaveLength(entries.length);
117
- entries.forEach(([key, value]) => {
118
- expect(result).toContainEqual([key, value]);
119
- });
120
- });
121
- test('should iterate in order based on keys', () => {
122
- map.insert('c', 3);
123
- map.insert('a', 1);
124
- map.insert('b', 2);
125
- const keys = [];
126
- map.forEach((key) => {
127
- keys.push(key);
128
- });
129
- expect(keys).toEqual(['a', 'b', 'c']);
130
- });
131
- test('should handle empty map', () => {
132
- const mockCallback = jest.fn();
133
- map.forEach(mockCallback);
134
- expect(mockCallback).not.toHaveBeenCalled();
135
- });
136
- test('should handle iteration after modifications', () => {
137
- map.insert('a', 1);
138
- map.insert('b', 2);
139
- map.insert('c', 3);
140
- map.delete('b');
141
- map.insert('d', 4);
142
- const result = [];
143
- map.forEach((key) => result.push(key));
144
- expect(result).toEqual(['a', 'c', 'd']);
145
- });
146
- test('should handle callback that modifies the map', () => {
147
- map.insert('a', 1);
148
- map.insert('b', 2);
149
- map.forEach((key, value) => {
150
- map.insert(key, value * 2);
151
- });
152
- expect(map.find('a')).toBe(2);
153
- expect(map.find('b')).toBe(4);
154
- });
155
- });
156
- describe('edge cases', () => {
157
- test('should handle special characters in keys', () => {
158
- const specialKeys = ['!@#$', ' ', '\n\t', ''];
159
- specialKeys.forEach((key, index) => {
160
- map.insert(key, index);
161
- });
162
- specialKeys.forEach((key, index) => {
163
- expect(map.find(key)).toBe(index);
164
- });
165
- });
166
- test('should handle operations after clear', () => {
167
- map.insert('a', 1);
168
- map.clear();
169
- map.insert('b', 2);
170
- expect(map.size()).toBe(1);
171
- expect(map.find('a')).toBeUndefined();
172
- expect(map.find('b')).toBe(2);
173
- });
174
- });
175
- });
176
- //# sourceMappingURL=map.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map.test.js","sourceRoot":"","sources":["../../tests/map.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};