@derivation/relational 0.1.7

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 (69) hide show
  1. package/dist/index.d.ts +23 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +31 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/log-change-input.d.ts +13 -0
  6. package/dist/log-change-input.d.ts.map +1 -0
  7. package/dist/log-change-input.js +26 -0
  8. package/dist/log-change-input.js.map +1 -0
  9. package/dist/reactive-log-source.d.ts +10 -0
  10. package/dist/reactive-log-source.d.ts.map +1 -0
  11. package/dist/reactive-log-source.js +19 -0
  12. package/dist/reactive-log-source.js.map +1 -0
  13. package/dist/reactive-log.d.ts +22 -0
  14. package/dist/reactive-log.d.ts.map +1 -0
  15. package/dist/reactive-log.js +73 -0
  16. package/dist/reactive-log.js.map +1 -0
  17. package/dist/reactive-map-source.d.ts +10 -0
  18. package/dist/reactive-map-source.d.ts.map +1 -0
  19. package/dist/reactive-map-source.js +19 -0
  20. package/dist/reactive-map-source.js.map +1 -0
  21. package/dist/reactive-map.d.ts +24 -0
  22. package/dist/reactive-map.d.ts.map +1 -0
  23. package/dist/reactive-map.js +59 -0
  24. package/dist/reactive-map.js.map +1 -0
  25. package/dist/reactive-set-source.d.ts +10 -0
  26. package/dist/reactive-set-source.d.ts.map +1 -0
  27. package/dist/reactive-set-source.js +19 -0
  28. package/dist/reactive-set-source.js.map +1 -0
  29. package/dist/reactive-set.d.ts +21 -0
  30. package/dist/reactive-set.d.ts.map +1 -0
  31. package/dist/reactive-set.js +58 -0
  32. package/dist/reactive-set.js.map +1 -0
  33. package/dist/rimbu-utils.d.ts +28 -0
  34. package/dist/rimbu-utils.d.ts.map +1 -0
  35. package/dist/rimbu-utils.js +46 -0
  36. package/dist/rimbu-utils.js.map +1 -0
  37. package/dist/test/reactive-log.test.d.ts +2 -0
  38. package/dist/test/reactive-log.test.d.ts.map +1 -0
  39. package/dist/test/reactive-log.test.js +228 -0
  40. package/dist/test/reactive-log.test.js.map +1 -0
  41. package/dist/test/reactive.test.d.ts +2 -0
  42. package/dist/test/reactive.test.d.ts.map +1 -0
  43. package/dist/test/reactive.test.js +240 -0
  44. package/dist/test/reactive.test.js.map +1 -0
  45. package/dist/test/z-map-set.test.d.ts +2 -0
  46. package/dist/test/z-map-set.test.d.ts.map +1 -0
  47. package/dist/test/z-map-set.test.js +251 -0
  48. package/dist/test/z-map-set.test.js.map +1 -0
  49. package/dist/tuple.d.ts +6 -0
  50. package/dist/tuple.d.ts.map +1 -0
  51. package/dist/tuple.js +5 -0
  52. package/dist/tuple.js.map +1 -0
  53. package/dist/z-map-change-input.d.ts +13 -0
  54. package/dist/z-map-change-input.d.ts.map +1 -0
  55. package/dist/z-map-change-input.js +26 -0
  56. package/dist/z-map-change-input.js.map +1 -0
  57. package/dist/z-map.d.ts +25 -0
  58. package/dist/z-map.d.ts.map +1 -0
  59. package/dist/z-map.js +161 -0
  60. package/dist/z-map.js.map +1 -0
  61. package/dist/z-set-change-input.d.ts +13 -0
  62. package/dist/z-set-change-input.d.ts.map +1 -0
  63. package/dist/z-set-change-input.js +26 -0
  64. package/dist/z-set-change-input.js.map +1 -0
  65. package/dist/z-set.d.ts +24 -0
  66. package/dist/z-set.d.ts.map +1 -0
  67. package/dist/z-set.js +148 -0
  68. package/dist/z-set.js.map +1 -0
  69. package/package.json +41 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-log.test.d.ts","sourceRoot":"","sources":["../../src/test/reactive-log.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,228 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { List } from "@rimbu/core";
3
+ import { Graph } from "derivation";
4
+ import { LogChangeInput } from "../log-change-input.js";
5
+ import { ReactiveLog } from "../reactive-log.js";
6
+ import { inputLog } from "../index.js";
7
+ import { ZSet } from "../z-set.js";
8
+ describe("ReactiveLog", () => {
9
+ it("accumulates items over steps", () => {
10
+ const c = new Graph();
11
+ const input = new LogChangeInput(c);
12
+ const log = new ReactiveLog(input);
13
+ expect(log.snapshot.length).toBe(0);
14
+ input.push("a");
15
+ input.push("b");
16
+ c.step();
17
+ expect(log.snapshot.toArray()).toEqual(["a", "b"]);
18
+ input.push("c");
19
+ c.step();
20
+ expect(log.snapshot.toArray()).toEqual(["a", "b", "c"]);
21
+ });
22
+ it("tracks changes per step", () => {
23
+ const c = new Graph();
24
+ const input = new LogChangeInput(c);
25
+ const log = new ReactiveLog(input);
26
+ input.push("a");
27
+ c.step();
28
+ expect(log.changes.value.toArray()).toEqual(["a"]);
29
+ input.push("b");
30
+ input.push("c");
31
+ c.step();
32
+ expect(log.changes.value.toArray()).toEqual(["b", "c"]);
33
+ });
34
+ it("tracks previous snapshot", () => {
35
+ const c = new Graph();
36
+ const input = new LogChangeInput(c);
37
+ const log = new ReactiveLog(input);
38
+ input.push("a");
39
+ c.step();
40
+ expect(log.previousSnapshot.toArray()).toEqual([]);
41
+ expect(log.snapshot.toArray()).toEqual(["a"]);
42
+ input.push("b");
43
+ c.step();
44
+ expect(log.previousSnapshot.toArray()).toEqual(["a"]);
45
+ expect(log.snapshot.toArray()).toEqual(["a", "b"]);
46
+ });
47
+ it("initializes with snapshot", () => {
48
+ const c = new Graph();
49
+ const input = new LogChangeInput(c);
50
+ const initial = List.from(["x", "y"]);
51
+ const log = new ReactiveLog(input, initial);
52
+ expect(log.snapshot.toArray()).toEqual(["x", "y"]);
53
+ input.push("z");
54
+ c.step();
55
+ expect(log.snapshot.toArray()).toEqual(["x", "y", "z"]);
56
+ });
57
+ it("fold derives state from log", () => {
58
+ const c = new Graph();
59
+ const input = new LogChangeInput(c);
60
+ const log = new ReactiveLog(input);
61
+ const sum = log.fold(0, (acc, item) => acc + item);
62
+ expect(sum.value).toBe(0);
63
+ input.push(1);
64
+ input.push(2);
65
+ c.step();
66
+ expect(sum.value).toBe(3);
67
+ input.push(3);
68
+ c.step();
69
+ expect(sum.value).toBe(6);
70
+ });
71
+ it("fold with initial snapshot", () => {
72
+ const c = new Graph();
73
+ const input = new LogChangeInput(c);
74
+ const initial = List.from([10, 20]);
75
+ const log = new ReactiveLog(input, initial);
76
+ const sum = log.fold(0, (acc, item) => acc + item);
77
+ // Should have folded over snapshot: 0 + 10 + 20 = 30
78
+ expect(sum.value).toBe(30);
79
+ input.push(5);
80
+ c.step();
81
+ // Now: 30 + 5 = 35
82
+ expect(sum.value).toBe(35);
83
+ });
84
+ it("works with inputLog function", () => {
85
+ const graph = new Graph();
86
+ const log = inputLog(graph);
87
+ log.push("hello");
88
+ graph.step();
89
+ expect(log.snapshot.toArray()).toEqual(["hello"]);
90
+ log.push("world");
91
+ graph.step();
92
+ expect(log.snapshot.toArray()).toEqual(["hello", "world"]);
93
+ });
94
+ it("pushAll adds multiple items", () => {
95
+ const c = new Graph();
96
+ const input = new LogChangeInput(c);
97
+ const log = new ReactiveLog(input);
98
+ input.pushAll(List.from(["a", "b", "c"]));
99
+ c.step();
100
+ expect(log.snapshot.toArray()).toEqual(["a", "b", "c"]);
101
+ });
102
+ it("length tracks count from changes only", () => {
103
+ const c = new Graph();
104
+ const input = new LogChangeInput(c);
105
+ const log = new ReactiveLog(input);
106
+ expect(log.length.value).toBe(0);
107
+ input.push("a");
108
+ input.push("b");
109
+ c.step();
110
+ expect(log.length.value).toBe(2);
111
+ input.push("c");
112
+ c.step();
113
+ expect(log.length.value).toBe(3);
114
+ });
115
+ it("length initializes with snapshot size", () => {
116
+ const c = new Graph();
117
+ const input = new LogChangeInput(c);
118
+ const initial = List.from(["x", "y", "z"]);
119
+ const log = new ReactiveLog(input, initial);
120
+ expect(log.length.value).toBe(3);
121
+ input.push("w");
122
+ c.step();
123
+ expect(log.length.value).toBe(4);
124
+ });
125
+ it("map transforms log items", () => {
126
+ const c = new Graph();
127
+ const input = new LogChangeInput(c);
128
+ const log = new ReactiveLog(input);
129
+ const doubled = log.map((x) => x * 2);
130
+ input.push(1);
131
+ input.push(2);
132
+ c.step();
133
+ expect(doubled.snapshot.toArray()).toEqual([2, 4]);
134
+ input.push(3);
135
+ c.step();
136
+ expect(doubled.snapshot.toArray()).toEqual([2, 4, 6]);
137
+ });
138
+ it("map with initial snapshot", () => {
139
+ const c = new Graph();
140
+ const input = new LogChangeInput(c);
141
+ const initial = List.from([10, 20]);
142
+ const log = new ReactiveLog(input, initial);
143
+ const doubled = log.map((x) => x * 2);
144
+ expect(doubled.snapshot.toArray()).toEqual([20, 40]);
145
+ input.push(5);
146
+ c.step();
147
+ expect(doubled.snapshot.toArray()).toEqual([20, 40, 10]);
148
+ });
149
+ it("filter selects log items", () => {
150
+ const c = new Graph();
151
+ const input = new LogChangeInput(c);
152
+ const log = new ReactiveLog(input);
153
+ const evens = log.filter((x) => x % 2 === 0);
154
+ input.push(1);
155
+ input.push(2);
156
+ input.push(3);
157
+ input.push(4);
158
+ c.step();
159
+ expect(evens.snapshot.toArray()).toEqual([2, 4]);
160
+ input.push(5);
161
+ input.push(6);
162
+ c.step();
163
+ expect(evens.snapshot.toArray()).toEqual([2, 4, 6]);
164
+ });
165
+ it("filter with initial snapshot", () => {
166
+ const c = new Graph();
167
+ const input = new LogChangeInput(c);
168
+ const initial = List.from([1, 2, 3, 4]);
169
+ const log = new ReactiveLog(input, initial);
170
+ const evens = log.filter((x) => x % 2 === 0);
171
+ expect(evens.snapshot.toArray()).toEqual([2, 4]);
172
+ input.push(6);
173
+ c.step();
174
+ expect(evens.snapshot.toArray()).toEqual([2, 4, 6]);
175
+ });
176
+ it("toSet converts log of ZSets to ReactiveSet", () => {
177
+ const c = new Graph();
178
+ const input = new LogChangeInput(c);
179
+ const log = new ReactiveLog(input);
180
+ const set = log.toSet();
181
+ expect([...set.snapshot.getEntries()]).toEqual([]);
182
+ // Add items
183
+ input.push(new ZSet().add("a").add("b"));
184
+ c.step();
185
+ expect(set.snapshot.get("a")).toBe(1);
186
+ expect(set.snapshot.get("b")).toBe(1);
187
+ expect(set.snapshot.length).toBe(2);
188
+ // Add more and remove one
189
+ input.push(new ZSet().add("c").add("a", -1));
190
+ c.step();
191
+ expect(set.snapshot.get("a")).toBe(0);
192
+ expect(set.snapshot.get("b")).toBe(1);
193
+ expect(set.snapshot.get("c")).toBe(1);
194
+ expect(set.snapshot.length).toBe(2);
195
+ });
196
+ it("toSet with initial snapshot", () => {
197
+ const c = new Graph();
198
+ const input = new LogChangeInput(c);
199
+ const initial = List.from([new ZSet().add("x").add("y")]);
200
+ const log = new ReactiveLog(input, initial);
201
+ const set = log.toSet();
202
+ expect(set.snapshot.get("x")).toBe(1);
203
+ expect(set.snapshot.get("y")).toBe(1);
204
+ expect(set.snapshot.length).toBe(2);
205
+ input.push(new ZSet().add("z"));
206
+ c.step();
207
+ expect(set.snapshot.get("x")).toBe(1);
208
+ expect(set.snapshot.get("y")).toBe(1);
209
+ expect(set.snapshot.get("z")).toBe(1);
210
+ expect(set.snapshot.length).toBe(3);
211
+ });
212
+ it("toSet tracks changes correctly", () => {
213
+ const c = new Graph();
214
+ const input = new LogChangeInput(c);
215
+ const log = new ReactiveLog(input);
216
+ const set = log.toSet();
217
+ input.push(new ZSet().add("a"));
218
+ c.step();
219
+ expect(set.changes.value.get("a")).toBe(1);
220
+ expect(set.changes.value.length).toBe(1);
221
+ input.push(new ZSet().add("b").add("a", -1));
222
+ c.step();
223
+ expect(set.changes.value.get("b")).toBe(1);
224
+ expect(set.changes.value.get("a")).toBe(-1);
225
+ expect(set.changes.value.length).toBe(2);
226
+ });
227
+ });
228
+ //# sourceMappingURL=reactive-log.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-log.test.js","sourceRoot":"","sources":["../../src/test/reactive-log.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reactive.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.test.d.ts","sourceRoot":"","sources":["../../src/test/reactive.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,240 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { Graph } from "derivation";
3
+ import { ZSetChangeInput } from "../z-set-change-input.js";
4
+ import { ZMapChangeInput } from "../z-map-change-input.js";
5
+ import { ReactiveSet } from "../reactive-set.js";
6
+ import { ReactiveMap } from "../reactive-map.js";
7
+ import { ZMap } from "../z-map.js";
8
+ describe("ReactiveSet", () => {
9
+ it("accumulates and materializes over steps", () => {
10
+ const c = new Graph();
11
+ const input = new ZSetChangeInput(c);
12
+ const rset = new ReactiveSet(input);
13
+ expect(rset.snapshot.isEmpty()).toBe(true);
14
+ input.add("apple");
15
+ c.step();
16
+ expect(rset.snapshot.get("apple")).toBe(1);
17
+ input.add("apple");
18
+ expect(rset.snapshot.get("apple")).toBe(1);
19
+ c.step();
20
+ expect(rset.snapshot.get("apple")).toBe(2);
21
+ });
22
+ it("performs groupby", () => {
23
+ const c = new Graph();
24
+ const input = new ZSetChangeInput(c);
25
+ const rset = new ReactiveSet(input);
26
+ input.add("apple");
27
+ c.step();
28
+ const grouped = rset.groupBy((key) => key[0]);
29
+ expect(grouped.snapshot.get("a").get("apple")).toBe(1);
30
+ });
31
+ it("ReactiveSet groupBy creates ReactiveMap and joins correctly", () => {
32
+ const c = new Graph();
33
+ const inputA = new ZSetChangeInput(c);
34
+ const inputB = new ZSetChangeInput(c);
35
+ inputA.add(1);
36
+ inputA.add(2);
37
+ inputB.add(2);
38
+ inputB.add(3);
39
+ c.step();
40
+ const rsA = new ReactiveSet(inputA);
41
+ const rsB = new ReactiveSet(inputB);
42
+ const joined = rsA.join(rsB, (x) => x, (y) => y, (a, b) => a + b);
43
+ const snapshot = joined.snapshot;
44
+ const entries = [...snapshot.getEntries()].map(([v, w]) => [v, w]);
45
+ expect(entries).toContainEqual([4, 1]);
46
+ expect(entries).not.toContainEqual([2, expect.anything()]);
47
+ });
48
+ it("ReactiveMap mapValues and flatten work", () => {
49
+ const c = new Graph();
50
+ const input = new ZMapChangeInput(c);
51
+ input.add("a", 1);
52
+ input.add("b", 2);
53
+ const rm = new ReactiveMap(input);
54
+ c.step();
55
+ const doubled = rm.mapValues((v) => v * 2);
56
+ const flat = doubled.flatten();
57
+ const entries = [...flat.snapshot.getEntries()];
58
+ expect(entries).toContainEqual([2, 1]);
59
+ expect(entries).toContainEqual([4, 1]);
60
+ });
61
+ it("ReactiveMap setup", () => {
62
+ const c = new Graph();
63
+ const change = new ZMapChangeInput(c);
64
+ const reactive = new ReactiveMap(change);
65
+ change.add("foo", 1);
66
+ expect([...reactive.previousMaterialized.value.getEntries()].length).toBe(0);
67
+ expect([...reactive.materialized.value.getEntries()].length).toBe(0);
68
+ expect([...reactive.changes.value.getEntries()].length).toBe(0);
69
+ c.step();
70
+ expect([...reactive.previousMaterialized.value.getEntries()].length).toBe(0);
71
+ expect([...reactive.materialized.value.getEntries()].length).toBe(1);
72
+ expect([...reactive.changes.value.getEntries()].length).toBe(1);
73
+ });
74
+ it("ReactiveMap join combines maps by key", () => {
75
+ const c = new Graph();
76
+ const left = new ZMapChangeInput(c);
77
+ const right = new ZMapChangeInput(c);
78
+ left.add("x", 10);
79
+ right.add("x", "A");
80
+ right.add("y", "B");
81
+ const rmLeft = new ReactiveMap(left);
82
+ const rmRight = new ReactiveMap(right);
83
+ const joined = rmLeft.join(rmRight);
84
+ c.step();
85
+ let entries = [...joined.snapshot.getEntries()];
86
+ expect(entries.length).toBe(1);
87
+ expect(entries[0][0]).toBe("x");
88
+ expect(entries[0][1].get(0)).toBe(10);
89
+ expect(entries[0][1].get(1)).toBe("A");
90
+ expect(entries[0][2]).toBe(1);
91
+ expect(entries.some(([k]) => k === "y")).toBe(false);
92
+ left.add("y", 20);
93
+ c.step();
94
+ entries = [...joined.snapshot.getEntries()];
95
+ expect(entries.length).toBe(2);
96
+ const xEntry = entries.find(([k]) => k === "x");
97
+ const yEntry = entries.find(([k]) => k === "y");
98
+ expect(xEntry).toBeDefined();
99
+ expect(yEntry).toBeDefined();
100
+ expect(xEntry[1].get(0)).toBe(10);
101
+ expect(xEntry[1].get(1)).toBe("A");
102
+ expect(xEntry[2]).toBe(1);
103
+ expect(yEntry[1].get(0)).toBe(20);
104
+ expect(yEntry[1].get(1)).toBe("B");
105
+ expect(yEntry[2]).toBe(1);
106
+ });
107
+ it("ReactiveMap initializes correctly with snapshot", () => {
108
+ const c = new Graph();
109
+ const initial = new ZMap().add("a", 1);
110
+ const input = new ZMapChangeInput(c);
111
+ const rm = new ReactiveMap(input, initial);
112
+ expect([...rm.snapshot.getEntries()].length).toBe(1);
113
+ });
114
+ it("ReactiveSet union combines two sets", () => {
115
+ const c = new Graph();
116
+ const input1 = new ZSetChangeInput(c);
117
+ const input2 = new ZSetChangeInput(c);
118
+ const rs1 = new ReactiveSet(input1);
119
+ const rs2 = new ReactiveSet(input2);
120
+ const union = rs1.union(rs2);
121
+ input1.add("a", 2);
122
+ input2.add("a", 3);
123
+ input2.add("b", 1);
124
+ c.step();
125
+ expect(union.snapshot.get("a")).toBe(5);
126
+ expect(union.snapshot.get("b")).toBe(1);
127
+ });
128
+ it("ReactiveSet intersection incremental updates", () => {
129
+ const c = new Graph();
130
+ const input1 = new ZSetChangeInput(c);
131
+ const input2 = new ZSetChangeInput(c);
132
+ input1.add("x", 2);
133
+ input1.add("y", 3);
134
+ input2.add("x", 4);
135
+ input2.add("z", 5);
136
+ c.step();
137
+ const rs1 = new ReactiveSet(input1);
138
+ const rs2 = new ReactiveSet(input2);
139
+ const intersection = rs1.intersection(rs2);
140
+ expect(intersection.snapshot.get("x")).toBe(8);
141
+ expect(intersection.snapshot.get("y")).toBe(0);
142
+ expect(intersection.snapshot.get("z")).toBe(0);
143
+ input1.add("z", 2);
144
+ c.step();
145
+ expect(intersection.snapshot.get("x")).toBe(8);
146
+ expect(intersection.snapshot.get("z")).toBe(10);
147
+ });
148
+ it("ReactiveSet difference incremental updates", () => {
149
+ const c = new Graph();
150
+ const input1 = new ZSetChangeInput(c);
151
+ const input2 = new ZSetChangeInput(c);
152
+ input1.add("x", 5);
153
+ input1.add("y", 2);
154
+ input2.add("x", 3);
155
+ c.step();
156
+ const rs1 = new ReactiveSet(input1);
157
+ const rs2 = new ReactiveSet(input2);
158
+ const diff = rs1.difference(rs2);
159
+ expect(diff.snapshot.get("x")).toBe(2);
160
+ expect(diff.snapshot.get("y")).toBe(2);
161
+ input2.add("y", 1);
162
+ c.step();
163
+ expect(diff.snapshot.get("x")).toBe(2);
164
+ expect(diff.snapshot.get("y")).toBe(1);
165
+ });
166
+ it("ReactiveSet filter incremental updates", () => {
167
+ const c = new Graph();
168
+ const input = new ZSetChangeInput(c);
169
+ input.add(5, 1);
170
+ input.add(15, 2);
171
+ input.add(25, 1);
172
+ c.step();
173
+ const rs = new ReactiveSet(input);
174
+ const filtered = rs.filter((x) => x > 10);
175
+ expect(filtered.snapshot.get(5)).toBe(0);
176
+ expect(filtered.snapshot.get(15)).toBe(2);
177
+ expect(filtered.snapshot.get(25)).toBe(1);
178
+ input.add(5, 3);
179
+ input.add(20, 1);
180
+ c.step();
181
+ expect(filtered.snapshot.get(5)).toBe(0);
182
+ expect(filtered.snapshot.get(15)).toBe(2);
183
+ expect(filtered.snapshot.get(20)).toBe(1);
184
+ expect(filtered.snapshot.get(25)).toBe(1);
185
+ });
186
+ it("ReactiveMap intersection incremental updates", () => {
187
+ const c = new Graph();
188
+ const input1 = new ZMapChangeInput(c);
189
+ const input2 = new ZMapChangeInput(c);
190
+ input1.add("k1", "x", 2);
191
+ input1.add("k2", "y", 3);
192
+ input2.add("k1", "x", 4);
193
+ c.step();
194
+ const rm1 = new ReactiveMap(input1);
195
+ const rm2 = new ReactiveMap(input2);
196
+ const intersection = rm1.intersection(rm2);
197
+ expect(intersection.snapshot.getValue("k1", "x")).toBe(8);
198
+ expect(intersection.snapshot.getValue("k2", "y")).toBe(0);
199
+ input2.add("k2", "y", 2);
200
+ c.step();
201
+ expect(intersection.snapshot.getValue("k1", "x")).toBe(8);
202
+ expect(intersection.snapshot.getValue("k2", "y")).toBe(6);
203
+ });
204
+ it("ReactiveMap difference incremental updates", () => {
205
+ const c = new Graph();
206
+ const input1 = new ZMapChangeInput(c);
207
+ const input2 = new ZMapChangeInput(c);
208
+ input1.add("k1", "x", 5);
209
+ input2.add("k1", "x", 3);
210
+ c.step();
211
+ const rm1 = new ReactiveMap(input1);
212
+ const rm2 = new ReactiveMap(input2);
213
+ const diff = rm1.difference(rm2);
214
+ expect(diff.snapshot.getValue("k1", "x")).toBe(2);
215
+ input1.add("k1", "y", 2);
216
+ input2.add("k1", "x", 1);
217
+ c.step();
218
+ expect(diff.snapshot.getValue("k1", "x")).toBe(1);
219
+ expect(diff.snapshot.getValue("k1", "y")).toBe(2);
220
+ });
221
+ it("ReactiveMap filter incremental updates", () => {
222
+ const c = new Graph();
223
+ const input = new ZMapChangeInput(c);
224
+ input.add("k1", 5, 1);
225
+ input.add("k1", 15, 2);
226
+ input.add("k2", 25, 1);
227
+ c.step();
228
+ const rm = new ReactiveMap(input);
229
+ const filtered = rm.filter((k, v) => v > 10);
230
+ expect(filtered.snapshot.getValue("k1", 5)).toBe(0);
231
+ expect(filtered.snapshot.getValue("k1", 15)).toBe(2);
232
+ expect(filtered.snapshot.getValue("k2", 25)).toBe(1);
233
+ input.add("k1", 20, 3);
234
+ c.step();
235
+ expect(filtered.snapshot.getValue("k1", 15)).toBe(2);
236
+ expect(filtered.snapshot.getValue("k1", 20)).toBe(3);
237
+ expect(filtered.snapshot.getValue("k2", 25)).toBe(1);
238
+ });
239
+ });
240
+ //# sourceMappingURL=reactive.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.test.js","sourceRoot":"","sources":["../../src/test/reactive.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=z-map-set.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-map-set.test.d.ts","sourceRoot":"","sources":["../../src/test/z-map-set.test.ts"],"names":[],"mappings":""}