@futdevpro/nts-dynamo 1.14.65 → 1.14.67

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lvs-vector-pool.control-service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-vector-pool.control-service.spec.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lvs_search_mode_enum_1 = require("../_enums/lvs-search-mode.enum");
4
+ const lvs_vector_pool_control_service_1 = require("./lvs-vector-pool.control-service");
5
+ describe('| LVS_VectorPool_ControlService', () => {
6
+ let vectorPool;
7
+ beforeEach(() => {
8
+ vectorPool = new lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService();
9
+ });
10
+ describe('| Constructor/Initialization', () => {
11
+ it('| should initialize with empty pools', () => {
12
+ const all = vectorPool.getAll();
13
+ expect(all.size).toBe(0);
14
+ });
15
+ });
16
+ describe('| addVector', () => {
17
+ it('| should add a valid vector to the pool', () => {
18
+ const id = 'vector1';
19
+ const vector = [1, 2, 3];
20
+ vectorPool.addVector(id, vector);
21
+ const all = vectorPool.getAll();
22
+ expect(all.size).toBe(1);
23
+ expect(all.has(id)).toBeTrue();
24
+ expect(all.get(id)).toEqual(vector);
25
+ });
26
+ it('| should add multiple vectors to the pool', () => {
27
+ vectorPool.addVector('vector1', [1, 2, 3]);
28
+ vectorPool.addVector('vector2', [4, 5, 6]);
29
+ vectorPool.addVector('vector3', [7, 8, 9]);
30
+ const all = vectorPool.getAll();
31
+ expect(all.size).toBe(3);
32
+ });
33
+ it('| should throw error when ID is empty string', () => {
34
+ expect(() => {
35
+ vectorPool.addVector('', [1, 2, 3]);
36
+ }).toThrowError('Vector ID is required');
37
+ });
38
+ it('| should throw error when vector is empty array', () => {
39
+ expect(() => {
40
+ vectorPool.addVector('vector1', []);
41
+ }).toThrowError('Vector must be a non-empty array');
42
+ });
43
+ it('| should throw error when vector is not an array', () => {
44
+ expect(() => {
45
+ vectorPool.addVector('vector1', null);
46
+ }).toThrowError('Vector must be a non-empty array');
47
+ });
48
+ it('| should throw error when vector contains non-finite number', () => {
49
+ expect(() => {
50
+ vectorPool.addVector('vector1', [1, 2, Infinity]);
51
+ }).toThrowError('Vector must contain only finite numbers at index 2');
52
+ });
53
+ it('| should throw error when vector contains NaN', () => {
54
+ expect(() => {
55
+ vectorPool.addVector('vector1', [1, 2, NaN]);
56
+ }).toThrowError('Vector must contain only finite numbers at index 2');
57
+ });
58
+ it('| should store normalized vector internally', () => {
59
+ const id = 'vector1';
60
+ const vector = [3, 4]; // Magnitude = 5, normalized = [0.6, 0.8]
61
+ vectorPool.addVector(id, vector);
62
+ // Verify original vector is stored
63
+ const all = vectorPool.getAll();
64
+ expect(all.get(id)).toEqual(vector);
65
+ });
66
+ });
67
+ describe('| removeVector', () => {
68
+ it('| should remove an existing vector from the pool', () => {
69
+ vectorPool.addVector('vector1', [1, 2, 3]);
70
+ vectorPool.addVector('vector2', [4, 5, 6]);
71
+ vectorPool.removeVector('vector1');
72
+ const all = vectorPool.getAll();
73
+ expect(all.size).toBe(1);
74
+ expect(all.has('vector1')).toBeFalse();
75
+ expect(all.has('vector2')).toBeTrue();
76
+ });
77
+ it('| should not throw when removing non-existent vector', () => {
78
+ expect(() => {
79
+ vectorPool.removeVector('non-existent');
80
+ }).not.toThrow();
81
+ });
82
+ it('| should remove vector from both pools', () => {
83
+ vectorPool.addVector('vector1', [1, 2, 3]);
84
+ vectorPool.removeVector('vector1');
85
+ const all = vectorPool.getAll();
86
+ expect(all.size).toBe(0);
87
+ });
88
+ });
89
+ describe('| updateVector', () => {
90
+ it('| should update an existing vector', () => {
91
+ vectorPool.addVector('vector1', [1, 2, 3]);
92
+ const newVector = [4, 5, 6];
93
+ vectorPool.updateVector('vector1', newVector);
94
+ const all = vectorPool.getAll();
95
+ expect(all.get('vector1')).toEqual(newVector);
96
+ });
97
+ it('| should throw error when updating non-existent vector', () => {
98
+ expect(() => {
99
+ vectorPool.updateVector('non-existent', [1, 2, 3]);
100
+ }).toThrowError('Vector with ID "non-existent" does not exist');
101
+ });
102
+ });
103
+ describe('| clearPool', () => {
104
+ it('| should clear a populated pool', () => {
105
+ vectorPool.addVector('vector1', [1, 2, 3]);
106
+ vectorPool.addVector('vector2', [4, 5, 6]);
107
+ vectorPool.addVector('vector3', [7, 8, 9]);
108
+ vectorPool.clearPool();
109
+ const all = vectorPool.getAll();
110
+ expect(all.size).toBe(0);
111
+ });
112
+ it('| should not throw when clearing empty pool', () => {
113
+ expect(() => {
114
+ vectorPool.clearPool();
115
+ }).not.toThrow();
116
+ });
117
+ });
118
+ describe('| getAll', () => {
119
+ it('| should return a copy of the pool, not a reference', () => {
120
+ vectorPool.addVector('vector1', [1, 2, 3]);
121
+ const all1 = vectorPool.getAll();
122
+ const all2 = vectorPool.getAll();
123
+ expect(all1).not.toBe(all2);
124
+ expect(all1.size).toBe(all2.size);
125
+ });
126
+ it('| should return empty map when pool is empty', () => {
127
+ const all = vectorPool.getAll();
128
+ expect(all.size).toBe(0);
129
+ });
130
+ });
131
+ describe('| cosineSimilarity (static)', () => {
132
+ it('| should return 1 for identical vectors', () => {
133
+ const vector = [1, 2, 3];
134
+ const similarity = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.cosineSimilarity(vector, vector);
135
+ expect(similarity).toBeCloseTo(1, 10);
136
+ });
137
+ it('| should return approximately 0 for orthogonal vectors', () => {
138
+ const vector1 = [1, 0, 0];
139
+ const vector2 = [0, 1, 0];
140
+ const similarity = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
141
+ expect(similarity).toBeCloseTo(0, 10);
142
+ });
143
+ it('| should throw error for vectors with different dimensions', () => {
144
+ const vector1 = [1, 2, 3];
145
+ const vector2 = [1, 2];
146
+ expect(() => {
147
+ lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
148
+ }).toThrowError('Vectors must have the same dimension. Got 3 and 2');
149
+ });
150
+ it('| should calculate correct cosine similarity for known vectors', () => {
151
+ // Two vectors pointing in similar direction
152
+ const vector1 = [1, 1, 0];
153
+ const vector2 = [1, 0, 0];
154
+ // Normalized: [1/√2, 1/√2, 0] and [1, 0, 0]
155
+ // Dot product: 1/√2 ≈ 0.707
156
+ const similarity = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
157
+ expect(similarity).toBeCloseTo(1 / Math.sqrt(2), 10);
158
+ });
159
+ it('| should handle zero vector', () => {
160
+ const vector1 = [0, 0, 0];
161
+ const vector2 = [1, 2, 3];
162
+ const similarity = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
163
+ expect(similarity).toBeCloseTo(0, 10);
164
+ });
165
+ });
166
+ describe('| l2Distance (static)', () => {
167
+ it('| should return 0 for identical vectors', () => {
168
+ const vector = [1, 2, 3];
169
+ const distance = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.l2Distance(vector, vector);
170
+ expect(distance).toBe(0);
171
+ });
172
+ it('| should throw error for vectors with different dimensions', () => {
173
+ const vector1 = [1, 2, 3];
174
+ const vector2 = [1, 2];
175
+ expect(() => {
176
+ lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.l2Distance(vector1, vector2);
177
+ }).toThrowError('Vectors must have the same dimension. Got 3 and 2');
178
+ });
179
+ it('| should calculate correct L2 distance for known vectors', () => {
180
+ const vector1 = [0, 0, 0];
181
+ const vector2 = [3, 4, 0];
182
+ // Distance = √(3² + 4² + 0²) = √25 = 5
183
+ const distance = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.l2Distance(vector1, vector2);
184
+ expect(distance).toBe(5);
185
+ });
186
+ it('| should calculate correct L2 distance for 1D vectors', () => {
187
+ const vector1 = [5];
188
+ const vector2 = [2];
189
+ const distance = lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService.l2Distance(vector1, vector2);
190
+ expect(distance).toBe(3);
191
+ });
192
+ });
193
+ describe('| search', () => {
194
+ beforeEach(() => {
195
+ // Add test vectors
196
+ vectorPool.addVector('vec1', [1, 0, 0]);
197
+ vectorPool.addVector('vec2', [0, 1, 0]);
198
+ vectorPool.addVector('vec3', [0, 0, 1]);
199
+ vectorPool.addVector('vec4', [1, 1, 0]);
200
+ });
201
+ it('| should return empty array for empty pool', () => {
202
+ const emptyPool = new lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService();
203
+ const results = emptyPool.search([1, 0, 0], 3, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
204
+ expect(results.length).toBe(0);
205
+ });
206
+ it('| should return results in descending order for cosine similarity', () => {
207
+ const query = [1, 0, 0];
208
+ const results = vectorPool.search(query, 4, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
209
+ expect(results.length).toBe(4);
210
+ // vec1 should be most similar (identical)
211
+ expect(results[0].id).toBe('vec1');
212
+ expect(results[0].score).toBeCloseTo(1, 10);
213
+ // Results should be in descending order
214
+ for (let i = 0; i < results.length - 1; i++) {
215
+ expect(results[i].score).toBeGreaterThanOrEqual(results[i + 1].score);
216
+ }
217
+ });
218
+ it('| should return results in ascending order for L2 distance', () => {
219
+ const query = [1, 0, 0];
220
+ const results = vectorPool.search(query, 4, lvs_search_mode_enum_1.LVS_Search_Mode.l2Distance);
221
+ expect(results.length).toBe(4);
222
+ // vec1 should be closest (distance = 0)
223
+ expect(results[0].id).toBe('vec1');
224
+ expect(results[0].score).toBe(0);
225
+ // Results should be in ascending order
226
+ for (let i = 0; i < results.length - 1; i++) {
227
+ expect(results[i].score).toBeLessThanOrEqual(results[i + 1].score);
228
+ }
229
+ });
230
+ it('| should limit results to top-K when k < pool size', () => {
231
+ const query = [1, 0, 0];
232
+ const results = vectorPool.search(query, 2, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
233
+ expect(results.length).toBe(2);
234
+ });
235
+ it('| should return all results when k > pool size', () => {
236
+ const query = [1, 0, 0];
237
+ const results = vectorPool.search(query, 10, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
238
+ expect(results.length).toBe(4);
239
+ });
240
+ it('| should return all results when k = pool size', () => {
241
+ const query = [1, 0, 0];
242
+ const results = vectorPool.search(query, 4, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
243
+ expect(results.length).toBe(4);
244
+ });
245
+ it('| should throw error for dimension mismatch', () => {
246
+ const query = [1, 0]; // 2D query, pool has 3D vectors
247
+ expect(() => {
248
+ vectorPool.search(query, 3, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
249
+ }).toThrowError('Query vector dimension (2) does not match pool vector dimension (3)');
250
+ });
251
+ it('| should throw error for empty query vector', () => {
252
+ expect(() => {
253
+ vectorPool.search([], 3, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
254
+ }).toThrowError('Query vector must be a non-empty array');
255
+ });
256
+ it('| should throw error for non-array query', () => {
257
+ expect(() => {
258
+ vectorPool.search(null, 3, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
259
+ }).toThrowError('Query vector must be a non-empty array');
260
+ });
261
+ it('| should throw error for k = 0', () => {
262
+ expect(() => {
263
+ vectorPool.search([1, 0, 0], 0, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
264
+ }).toThrowError('k must be a positive number');
265
+ });
266
+ it('| should throw error for negative k', () => {
267
+ expect(() => {
268
+ vectorPool.search([1, 0, 0], -1, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
269
+ }).toThrowError('k must be a positive number');
270
+ });
271
+ it('| should throw error for unknown search mode', () => {
272
+ expect(() => {
273
+ vectorPool.search([1, 0, 0], 3, 'unknown-mode');
274
+ }).toThrowError('Unknown search mode: unknown-mode');
275
+ });
276
+ it('| should return correct scores for cosine similarity', () => {
277
+ const query = [1, 0, 0];
278
+ const results = vectorPool.search(query, 4, lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity);
279
+ // vec1 should have score = 1 (identical)
280
+ const vec1Result = results.find((r) => r.id === 'vec1');
281
+ expect(vec1Result).toBeDefined();
282
+ expect(vec1Result.score).toBeCloseTo(1, 10);
283
+ });
284
+ it('| should return correct scores for L2 distance', () => {
285
+ const query = [1, 0, 0];
286
+ const results = vectorPool.search(query, 4, lvs_search_mode_enum_1.LVS_Search_Mode.l2Distance);
287
+ // vec1 should have score = 0 (identical)
288
+ const vec1Result = results.find((r) => r.id === 'vec1');
289
+ expect(vec1Result).toBeDefined();
290
+ expect(vec1Result.score).toBe(0);
291
+ });
292
+ });
293
+ });
294
+ //# sourceMappingURL=lvs-vector-pool.control-service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-vector-pool.control-service.spec.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts"],"names":[],"mappings":"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"}
@@ -234,7 +234,7 @@ export declare class DyNTS_DataService<T extends DyFM_Metadata> {
234
234
  update: DyNTS_DBUpdate<T>;
235
235
  }, dontUpdateModified?: boolean): Promise<void>;
236
236
  protected ensureData(data?: T): T;
237
- patchData(data?: T): Promise<T>;
237
+ patchData(data?: Partial<T>): Promise<T>;
238
238
  /**
239
239
  * modifies data if the data have ID and already exists in the DB,
240
240
  * creates new if the ID is not present or cant find in DB,
@@ -1 +1 @@
1
- {"version":3,"file":"data.service.d.ts","sourceRoot":"","sources":["../../../src/_services/base/data.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.service.d.ts","sourceRoot":"","sources":["../../../src/_services/base/data.service.ts"],"names":[],"mappings":"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"}
@@ -611,7 +611,6 @@ class DyNTS_DataService {
611
611
  }
612
612
  async patchData(data) {
613
613
  try {
614
- data = this.ensureData(data);
615
614
  if (!data._id) {
616
615
  throw new fsm_dynamo_1.DyFM_Error({
617
616
  ...this._getDefaultErrorSettings('patchData', new Error(`no ID to patch data! (${this.dataParams.dataName})`)),
@@ -623,6 +622,13 @@ class DyNTS_DataService {
623
622
  ...this._getDefaultErrorSettings('patchData', new Error(`data not found! (${this.dataParams.dataName})`)),
624
623
  });
625
624
  }
625
+ for (const key in this.depSettings) {
626
+ if (data[key] && data[key] !== dataExists[key]) {
627
+ throw new fsm_dynamo_1.DyFM_Error({
628
+ ...this._getDefaultErrorSettings('patchData', new Error(`Cannot patch data: dependency data mismatch! (${this.dataParams.dataName})`)),
629
+ });
630
+ }
631
+ }
626
632
  fsm_dynamo_1.DyFM_Object.cleanAssign(dataExists, data);
627
633
  await this.validateForSave(dataExists);
628
634
  return await this.dataDBService.modifyData(dataExists, this.issuer);
@@ -1 +1 @@
1
- {"version":3,"file":"data.service.js","sourceRoot":"","sources":["../../../src/_services/base/data.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.service.js","sourceRoot":"","sources":["../../../src/_services/base/data.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.14.65",
3
+ "version": "01.14.67",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",
@@ -0,0 +1,393 @@
1
+ import { LVS_Search_Mode } from '../_enums/lvs-search-mode.enum';
2
+ import { LVS_SearchResult } from '../_models/lvs-search-result.interface';
3
+ import { LVS_VectorPool_ControlService } from './lvs-vector-pool.control-service';
4
+
5
+ describe('| LVS_VectorPool_ControlService', () => {
6
+ let vectorPool: LVS_VectorPool_ControlService;
7
+
8
+ beforeEach(() => {
9
+ vectorPool = new LVS_VectorPool_ControlService();
10
+ });
11
+
12
+ describe('| Constructor/Initialization', () => {
13
+ it('| should initialize with empty pools', () => {
14
+ const all: Map<string, number[]> = vectorPool.getAll();
15
+ expect(all.size).toBe(0);
16
+ });
17
+ });
18
+
19
+ describe('| addVector', () => {
20
+ it('| should add a valid vector to the pool', () => {
21
+ const id: string = 'vector1';
22
+ const vector: number[] = [1, 2, 3];
23
+
24
+ vectorPool.addVector(id, vector);
25
+
26
+ const all: Map<string, number[]> = vectorPool.getAll();
27
+ expect(all.size).toBe(1);
28
+ expect(all.has(id)).toBeTrue();
29
+ expect(all.get(id)).toEqual(vector);
30
+ });
31
+
32
+ it('| should add multiple vectors to the pool', () => {
33
+ vectorPool.addVector('vector1', [1, 2, 3]);
34
+ vectorPool.addVector('vector2', [4, 5, 6]);
35
+ vectorPool.addVector('vector3', [7, 8, 9]);
36
+
37
+ const all: Map<string, number[]> = vectorPool.getAll();
38
+ expect(all.size).toBe(3);
39
+ });
40
+
41
+ it('| should throw error when ID is empty string', () => {
42
+ expect(() => {
43
+ vectorPool.addVector('', [1, 2, 3]);
44
+ }).toThrowError('Vector ID is required');
45
+ });
46
+
47
+ it('| should throw error when vector is empty array', () => {
48
+ expect(() => {
49
+ vectorPool.addVector('vector1', []);
50
+ }).toThrowError('Vector must be a non-empty array');
51
+ });
52
+
53
+ it('| should throw error when vector is not an array', () => {
54
+ expect(() => {
55
+ vectorPool.addVector('vector1', null as any);
56
+ }).toThrowError('Vector must be a non-empty array');
57
+ });
58
+
59
+ it('| should throw error when vector contains non-finite number', () => {
60
+ expect(() => {
61
+ vectorPool.addVector('vector1', [1, 2, Infinity]);
62
+ }).toThrowError('Vector must contain only finite numbers at index 2');
63
+ });
64
+
65
+ it('| should throw error when vector contains NaN', () => {
66
+ expect(() => {
67
+ vectorPool.addVector('vector1', [1, 2, NaN]);
68
+ }).toThrowError('Vector must contain only finite numbers at index 2');
69
+ });
70
+
71
+ it('| should store normalized vector internally', () => {
72
+ const id: string = 'vector1';
73
+ const vector: number[] = [3, 4]; // Magnitude = 5, normalized = [0.6, 0.8]
74
+
75
+ vectorPool.addVector(id, vector);
76
+
77
+ // Verify original vector is stored
78
+ const all: Map<string, number[]> = vectorPool.getAll();
79
+ expect(all.get(id)).toEqual(vector);
80
+ });
81
+ });
82
+
83
+ describe('| removeVector', () => {
84
+ it('| should remove an existing vector from the pool', () => {
85
+ vectorPool.addVector('vector1', [1, 2, 3]);
86
+ vectorPool.addVector('vector2', [4, 5, 6]);
87
+
88
+ vectorPool.removeVector('vector1');
89
+
90
+ const all: Map<string, number[]> = vectorPool.getAll();
91
+ expect(all.size).toBe(1);
92
+ expect(all.has('vector1')).toBeFalse();
93
+ expect(all.has('vector2')).toBeTrue();
94
+ });
95
+
96
+ it('| should not throw when removing non-existent vector', () => {
97
+ expect(() => {
98
+ vectorPool.removeVector('non-existent');
99
+ }).not.toThrow();
100
+ });
101
+
102
+ it('| should remove vector from both pools', () => {
103
+ vectorPool.addVector('vector1', [1, 2, 3]);
104
+ vectorPool.removeVector('vector1');
105
+
106
+ const all: Map<string, number[]> = vectorPool.getAll();
107
+ expect(all.size).toBe(0);
108
+ });
109
+ });
110
+
111
+ describe('| updateVector', () => {
112
+ it('| should update an existing vector', () => {
113
+ vectorPool.addVector('vector1', [1, 2, 3]);
114
+ const newVector: number[] = [4, 5, 6];
115
+
116
+ vectorPool.updateVector('vector1', newVector);
117
+
118
+ const all: Map<string, number[]> = vectorPool.getAll();
119
+ expect(all.get('vector1')).toEqual(newVector);
120
+ });
121
+
122
+ it('| should throw error when updating non-existent vector', () => {
123
+ expect(() => {
124
+ vectorPool.updateVector('non-existent', [1, 2, 3]);
125
+ }).toThrowError('Vector with ID "non-existent" does not exist');
126
+ });
127
+ });
128
+
129
+ describe('| clearPool', () => {
130
+ it('| should clear a populated pool', () => {
131
+ vectorPool.addVector('vector1', [1, 2, 3]);
132
+ vectorPool.addVector('vector2', [4, 5, 6]);
133
+ vectorPool.addVector('vector3', [7, 8, 9]);
134
+
135
+ vectorPool.clearPool();
136
+
137
+ const all: Map<string, number[]> = vectorPool.getAll();
138
+ expect(all.size).toBe(0);
139
+ });
140
+
141
+ it('| should not throw when clearing empty pool', () => {
142
+ expect(() => {
143
+ vectorPool.clearPool();
144
+ }).not.toThrow();
145
+ });
146
+ });
147
+
148
+ describe('| getAll', () => {
149
+ it('| should return a copy of the pool, not a reference', () => {
150
+ vectorPool.addVector('vector1', [1, 2, 3]);
151
+ const all1: Map<string, number[]> = vectorPool.getAll();
152
+ const all2: Map<string, number[]> = vectorPool.getAll();
153
+
154
+ expect(all1).not.toBe(all2);
155
+ expect(all1.size).toBe(all2.size);
156
+ });
157
+
158
+ it('| should return empty map when pool is empty', () => {
159
+ const all: Map<string, number[]> = vectorPool.getAll();
160
+ expect(all.size).toBe(0);
161
+ });
162
+ });
163
+
164
+ describe('| cosineSimilarity (static)', () => {
165
+ it('| should return 1 for identical vectors', () => {
166
+ const vector: number[] = [1, 2, 3];
167
+ const similarity: number = LVS_VectorPool_ControlService.cosineSimilarity(vector, vector);
168
+ expect(similarity).toBeCloseTo(1, 10);
169
+ });
170
+
171
+ it('| should return approximately 0 for orthogonal vectors', () => {
172
+ const vector1: number[] = [1, 0, 0];
173
+ const vector2: number[] = [0, 1, 0];
174
+ const similarity: number =
175
+ LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
176
+ expect(similarity).toBeCloseTo(0, 10);
177
+ });
178
+
179
+ it('| should throw error for vectors with different dimensions', () => {
180
+ const vector1: number[] = [1, 2, 3];
181
+ const vector2: number[] = [1, 2];
182
+
183
+ expect(() => {
184
+ LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
185
+ }).toThrowError('Vectors must have the same dimension. Got 3 and 2');
186
+ });
187
+
188
+ it('| should calculate correct cosine similarity for known vectors', () => {
189
+ // Two vectors pointing in similar direction
190
+ const vector1: number[] = [1, 1, 0];
191
+ const vector2: number[] = [1, 0, 0];
192
+ // Normalized: [1/√2, 1/√2, 0] and [1, 0, 0]
193
+ // Dot product: 1/√2 ≈ 0.707
194
+ const similarity: number =
195
+ LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
196
+ expect(similarity).toBeCloseTo(1 / Math.sqrt(2), 10);
197
+ });
198
+
199
+ it('| should handle zero vector', () => {
200
+ const vector1: number[] = [0, 0, 0];
201
+ const vector2: number[] = [1, 2, 3];
202
+ const similarity: number =
203
+ LVS_VectorPool_ControlService.cosineSimilarity(vector1, vector2);
204
+ expect(similarity).toBeCloseTo(0, 10);
205
+ });
206
+ });
207
+
208
+ describe('| l2Distance (static)', () => {
209
+ it('| should return 0 for identical vectors', () => {
210
+ const vector: number[] = [1, 2, 3];
211
+ const distance: number = LVS_VectorPool_ControlService.l2Distance(vector, vector);
212
+ expect(distance).toBe(0);
213
+ });
214
+
215
+ it('| should throw error for vectors with different dimensions', () => {
216
+ const vector1: number[] = [1, 2, 3];
217
+ const vector2: number[] = [1, 2];
218
+
219
+ expect(() => {
220
+ LVS_VectorPool_ControlService.l2Distance(vector1, vector2);
221
+ }).toThrowError('Vectors must have the same dimension. Got 3 and 2');
222
+ });
223
+
224
+ it('| should calculate correct L2 distance for known vectors', () => {
225
+ const vector1: number[] = [0, 0, 0];
226
+ const vector2: number[] = [3, 4, 0];
227
+ // Distance = √(3² + 4² + 0²) = √25 = 5
228
+ const distance: number = LVS_VectorPool_ControlService.l2Distance(vector1, vector2);
229
+ expect(distance).toBe(5);
230
+ });
231
+
232
+ it('| should calculate correct L2 distance for 1D vectors', () => {
233
+ const vector1: number[] = [5];
234
+ const vector2: number[] = [2];
235
+ const distance: number = LVS_VectorPool_ControlService.l2Distance(vector1, vector2);
236
+ expect(distance).toBe(3);
237
+ });
238
+ });
239
+
240
+ describe('| search', () => {
241
+ beforeEach(() => {
242
+ // Add test vectors
243
+ vectorPool.addVector('vec1', [1, 0, 0]);
244
+ vectorPool.addVector('vec2', [0, 1, 0]);
245
+ vectorPool.addVector('vec3', [0, 0, 1]);
246
+ vectorPool.addVector('vec4', [1, 1, 0]);
247
+ });
248
+
249
+ it('| should return empty array for empty pool', () => {
250
+ const emptyPool: LVS_VectorPool_ControlService = new LVS_VectorPool_ControlService();
251
+ const results: LVS_SearchResult[] = emptyPool.search([1, 0, 0], 3, LVS_Search_Mode.cosineSimilarity);
252
+ expect(results.length).toBe(0);
253
+ });
254
+
255
+ it('| should return results in descending order for cosine similarity', () => {
256
+ const query: number[] = [1, 0, 0];
257
+ const results: LVS_SearchResult[] = vectorPool.search(
258
+ query,
259
+ 4,
260
+ LVS_Search_Mode.cosineSimilarity
261
+ );
262
+
263
+ expect(results.length).toBe(4);
264
+ // vec1 should be most similar (identical)
265
+ expect(results[0].id).toBe('vec1');
266
+ expect(results[0].score).toBeCloseTo(1, 10);
267
+ // Results should be in descending order
268
+ for (let i: number = 0; i < results.length - 1; i++) {
269
+ expect(results[i].score).toBeGreaterThanOrEqual(results[i + 1].score);
270
+ }
271
+ });
272
+
273
+ it('| should return results in ascending order for L2 distance', () => {
274
+ const query: number[] = [1, 0, 0];
275
+ const results: LVS_SearchResult[] = vectorPool.search(
276
+ query,
277
+ 4,
278
+ LVS_Search_Mode.l2Distance
279
+ );
280
+
281
+ expect(results.length).toBe(4);
282
+ // vec1 should be closest (distance = 0)
283
+ expect(results[0].id).toBe('vec1');
284
+ expect(results[0].score).toBe(0);
285
+ // Results should be in ascending order
286
+ for (let i: number = 0; i < results.length - 1; i++) {
287
+ expect(results[i].score).toBeLessThanOrEqual(results[i + 1].score);
288
+ }
289
+ });
290
+
291
+ it('| should limit results to top-K when k < pool size', () => {
292
+ const query: number[] = [1, 0, 0];
293
+ const results: LVS_SearchResult[] = vectorPool.search(
294
+ query,
295
+ 2,
296
+ LVS_Search_Mode.cosineSimilarity
297
+ );
298
+
299
+ expect(results.length).toBe(2);
300
+ });
301
+
302
+ it('| should return all results when k > pool size', () => {
303
+ const query: number[] = [1, 0, 0];
304
+ const results: LVS_SearchResult[] = vectorPool.search(
305
+ query,
306
+ 10,
307
+ LVS_Search_Mode.cosineSimilarity
308
+ );
309
+
310
+ expect(results.length).toBe(4);
311
+ });
312
+
313
+ it('| should return all results when k = pool size', () => {
314
+ const query: number[] = [1, 0, 0];
315
+ const results: LVS_SearchResult[] = vectorPool.search(
316
+ query,
317
+ 4,
318
+ LVS_Search_Mode.cosineSimilarity
319
+ );
320
+
321
+ expect(results.length).toBe(4);
322
+ });
323
+
324
+ it('| should throw error for dimension mismatch', () => {
325
+ const query: number[] = [1, 0]; // 2D query, pool has 3D vectors
326
+
327
+ expect(() => {
328
+ vectorPool.search(query, 3, LVS_Search_Mode.cosineSimilarity);
329
+ }).toThrowError('Query vector dimension (2) does not match pool vector dimension (3)');
330
+ });
331
+
332
+ it('| should throw error for empty query vector', () => {
333
+ expect(() => {
334
+ vectorPool.search([], 3, LVS_Search_Mode.cosineSimilarity);
335
+ }).toThrowError('Query vector must be a non-empty array');
336
+ });
337
+
338
+ it('| should throw error for non-array query', () => {
339
+ expect(() => {
340
+ vectorPool.search(null as any, 3, LVS_Search_Mode.cosineSimilarity);
341
+ }).toThrowError('Query vector must be a non-empty array');
342
+ });
343
+
344
+ it('| should throw error for k = 0', () => {
345
+ expect(() => {
346
+ vectorPool.search([1, 0, 0], 0, LVS_Search_Mode.cosineSimilarity);
347
+ }).toThrowError('k must be a positive number');
348
+ });
349
+
350
+ it('| should throw error for negative k', () => {
351
+ expect(() => {
352
+ vectorPool.search([1, 0, 0], -1, LVS_Search_Mode.cosineSimilarity);
353
+ }).toThrowError('k must be a positive number');
354
+ });
355
+
356
+ it('| should throw error for unknown search mode', () => {
357
+ expect(() => {
358
+ vectorPool.search([1, 0, 0], 3, 'unknown-mode' as LVS_Search_Mode);
359
+ }).toThrowError('Unknown search mode: unknown-mode');
360
+ });
361
+
362
+ it('| should return correct scores for cosine similarity', () => {
363
+ const query: number[] = [1, 0, 0];
364
+ const results: LVS_SearchResult[] = vectorPool.search(
365
+ query,
366
+ 4,
367
+ LVS_Search_Mode.cosineSimilarity
368
+ );
369
+
370
+ // vec1 should have score = 1 (identical)
371
+ const vec1Result: LVS_SearchResult | undefined =
372
+ results.find((r: LVS_SearchResult) => r.id === 'vec1');
373
+ expect(vec1Result).toBeDefined();
374
+ expect(vec1Result!.score).toBeCloseTo(1, 10);
375
+ });
376
+
377
+ it('| should return correct scores for L2 distance', () => {
378
+ const query: number[] = [1, 0, 0];
379
+ const results: LVS_SearchResult[] = vectorPool.search(
380
+ query,
381
+ 4,
382
+ LVS_Search_Mode.l2Distance
383
+ );
384
+
385
+ // vec1 should have score = 0 (identical)
386
+ const vec1Result: LVS_SearchResult | undefined =
387
+ results.find((r: LVS_SearchResult) => r.id === 'vec1');
388
+ expect(vec1Result).toBeDefined();
389
+ expect(vec1Result!.score).toBe(0);
390
+ });
391
+ });
392
+ });
393
+
@@ -804,10 +804,8 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
804
804
  return data;
805
805
  }
806
806
 
807
- async patchData(data?: T): Promise<T> {
807
+ async patchData(data?: Partial<T>): Promise<T> {
808
808
  try {
809
- data = this.ensureData(data);
810
-
811
809
  if (!data._id) {
812
810
  throw new DyFM_Error({
813
811
  ...this._getDefaultErrorSettings(
@@ -828,6 +826,17 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
828
826
  });
829
827
  }
830
828
 
829
+ for (const key in this.depSettings) {
830
+ if (data[key] && data[key] !== dataExists[key]) {
831
+ throw new DyFM_Error({
832
+ ...this._getDefaultErrorSettings(
833
+ 'patchData',
834
+ new Error(`Cannot patch data: dependency data mismatch! (${this.dataParams.dataName})`)
835
+ ),
836
+ });
837
+ }
838
+ }
839
+
831
840
  DyFM_Object.cleanAssign(dataExists, data);
832
841
 
833
842
  await this.validateForSave(dataExists);