risei 2.0.0 → 2.0.1
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/README.md +114 -222
- package/package.json +1 -1
- package/Read-me reduced.md +0 -294
- package/Read-me redux.md +0 -581
- package/test-target-objects/ConditionalThrowTarget.js +0 -11
- package/test-target-objects/Counter.js +0 -46
- package/test-target-objects/DomTarget.js +0 -37
- package/test-target-objects/InterSpoofer.js +0 -230
- package/test-target-objects/MixedContents.js +0 -33
- package/test-target-objects/MutationTarget.js +0 -37
- package/test-target-objects/ObjectComposer.js +0 -34
- package/test-target-objects/PolySpoofableInner.js +0 -29
- package/test-target-objects/PolySpoofableOuter.js +0 -52
- package/test-target-objects/PropertiesTarget.js +0 -98
- package/test-target-objects/Returner.js +0 -7
- package/test-target-objects/Searcher.js +0 -25
- package/test-target-objects/Sorter.js +0 -91
- package/test-target-objects/Spoofable.js +0 -36
- package/test-target-objects/StateTarget.js +0 -34
- package/test-target-objects/StaticTarget.js +0 -17
- package/test-target-objects/TestableTarget.js +0 -57
- package/trial-tests/SelfTests.outward-rt.js +0 -511
- package/trial-tests/TopicTests.outward-rt.js +0 -313
- package/usage-examples/Gold-bar-example.png +0 -0
- package/usage-examples/Output-example.png +0 -0
- package/usage-examples/Summary-example.png +0 -0
- package/usage-examples/Syntax-example.png +0 -0
- package/usage-examples/Title-example.png +0 -0
- package/xternal-tests/ASpoofingFixture.tests.js +0 -242
- package/xternal-tests/MethodSpoofer.tests.js +0 -130
- package/xternal-tests/SpoofDef.tests.js +0 -91
- package/xternal-tests/TotalComparer.tests.js +0 -1055
- package/xternal-tests/package.json +0 -7
|
@@ -1,1055 +0,0 @@
|
|
|
1
|
-
/**/
|
|
2
|
-
|
|
3
|
-
import TotalComparer from "../system/TotalComparer.js";
|
|
4
|
-
import Spoofable from "../test-target-objects/Spoofable.js";
|
|
5
|
-
import { expect } from "chai";
|
|
6
|
-
|
|
7
|
-
describe("TotalComparer", () => {
|
|
8
|
-
describe("compare()", () => {
|
|
9
|
-
describe("Comparing booleans", () => {
|
|
10
|
-
it("Should return true when given two `true` booleans.", /* good */ () => {
|
|
11
|
-
/* Arrange. */
|
|
12
|
-
let target = new TotalComparer();
|
|
13
|
-
|
|
14
|
-
let left = true;
|
|
15
|
-
let right = true;
|
|
16
|
-
|
|
17
|
-
/* Act. */
|
|
18
|
-
let actual = target.compare(left, right);
|
|
19
|
-
|
|
20
|
-
/* Assert. */
|
|
21
|
-
expect(actual).to.be.true;
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it("Should return true when given two `false` booleans.", /* good */ () => {
|
|
25
|
-
/* Arrange. */
|
|
26
|
-
let target = new TotalComparer();
|
|
27
|
-
|
|
28
|
-
let left = false;
|
|
29
|
-
let right = false;
|
|
30
|
-
|
|
31
|
-
/* Act. */
|
|
32
|
-
let actual = target.compare(left, right);
|
|
33
|
-
|
|
34
|
-
/* Assert. */
|
|
35
|
-
expect(actual).to.be.true;
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it("Should return false when given `true` and `false` booleans.", /* good */ () => {
|
|
39
|
-
/* Arrange. */
|
|
40
|
-
let target = new TotalComparer();
|
|
41
|
-
|
|
42
|
-
let left = true;
|
|
43
|
-
let right = false;
|
|
44
|
-
|
|
45
|
-
/* Act. */
|
|
46
|
-
let actual = target.compare(left, right);
|
|
47
|
-
|
|
48
|
-
/* Assert. */
|
|
49
|
-
expect(actual).to.be.false;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it("Should return false when given `false` and `true` booleans.", /* good */ () => {
|
|
53
|
-
/* Arrange. */
|
|
54
|
-
let target = new TotalComparer();
|
|
55
|
-
|
|
56
|
-
let left = false;
|
|
57
|
-
let right = true;
|
|
58
|
-
|
|
59
|
-
/* Act. */
|
|
60
|
-
let actual = target.compare(left, right);
|
|
61
|
-
|
|
62
|
-
/* Assert. */
|
|
63
|
-
expect(actual).to.be.false;
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
describe("Comparing values", () => {
|
|
68
|
-
it("Should return false when given different values.", /* good */ () => {
|
|
69
|
-
/* Arrange. */
|
|
70
|
-
let target = new TotalComparer();
|
|
71
|
-
|
|
72
|
-
let left = 10;
|
|
73
|
-
let right = 3;
|
|
74
|
-
|
|
75
|
-
/* Act. */
|
|
76
|
-
let actual = target.compare(left, right);
|
|
77
|
-
|
|
78
|
-
/* Assert. */
|
|
79
|
-
expect(actual).to.be.false;
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it("Should return true when given equal values.", /* good */ () => {
|
|
83
|
-
/* Arrange. */
|
|
84
|
-
let target = new TotalComparer();
|
|
85
|
-
|
|
86
|
-
let left = 9;
|
|
87
|
-
let right = 9;
|
|
88
|
-
|
|
89
|
-
/* Act. */
|
|
90
|
-
let actual = target.compare(left, right);
|
|
91
|
-
|
|
92
|
-
/* Assert. */
|
|
93
|
-
expect(actual).to.be.true;
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("Should return false when given the same value but of different types.", /* good */ () => {
|
|
97
|
-
/* Arrange. */
|
|
98
|
-
let target = new TotalComparer();
|
|
99
|
-
|
|
100
|
-
let left = 18;
|
|
101
|
-
let right = "18";
|
|
102
|
-
|
|
103
|
-
/* Act. */
|
|
104
|
-
let actual = target.compare(left, right);
|
|
105
|
-
|
|
106
|
-
/* Assert. */
|
|
107
|
-
expect(actual).to.be.false;
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
describe("Comparing dates", () => {
|
|
112
|
-
it("Should return false when given a date and something else.", /* good */ () => {
|
|
113
|
-
/* Arrange. */
|
|
114
|
-
let target = new TotalComparer();
|
|
115
|
-
|
|
116
|
-
let left = new Date("November 10, 2024");
|
|
117
|
-
let right = "November 10, 2024";
|
|
118
|
-
|
|
119
|
-
/* Act. */
|
|
120
|
-
let actual = target.compare(left, right);
|
|
121
|
-
|
|
122
|
-
/* Assert. */
|
|
123
|
-
expect(actual).to.be.false;
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
it("Should return false when dates are different values.", /* good */ () => {
|
|
127
|
-
/* Arrange. */
|
|
128
|
-
let target = new TotalComparer();
|
|
129
|
-
|
|
130
|
-
let left = new Date("November 10, 2024");
|
|
131
|
-
let right = new Date("November 12, 2024");
|
|
132
|
-
|
|
133
|
-
/* Act. */
|
|
134
|
-
let actual = target.compare(left, right);
|
|
135
|
-
|
|
136
|
-
/* Assert. */
|
|
137
|
-
expect(actual).to.be.false;
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
it("Should return false when dates are the same, but times are different.", /* good */ () => {
|
|
141
|
-
/* Arrange. */
|
|
142
|
-
let target = new TotalComparer();
|
|
143
|
-
|
|
144
|
-
let left = new Date("November 10, 2024 3:45 AM");
|
|
145
|
-
let right = new Date("November 10, 2024 6:15 PM");
|
|
146
|
-
|
|
147
|
-
/* Act. */
|
|
148
|
-
let actual = target.compare(left, right);
|
|
149
|
-
|
|
150
|
-
/* Assert. */
|
|
151
|
-
expect(actual).to.be.false;
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
it("Should return true when dates are the same value.", /* good */ () => {
|
|
155
|
-
/* Arrange. */
|
|
156
|
-
let target = new TotalComparer();
|
|
157
|
-
|
|
158
|
-
let left = new Date("November 10, 2024");
|
|
159
|
-
let right = new Date("November 10, 2024");
|
|
160
|
-
|
|
161
|
-
/* Act. */
|
|
162
|
-
let actual = target.compare(left, right);
|
|
163
|
-
|
|
164
|
-
/* Assert. */
|
|
165
|
-
expect(actual).to.be.true;
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it("Should return true when dates and times are the same value.", /* good */ () => {
|
|
169
|
-
/* Arrange. */
|
|
170
|
-
let target = new TotalComparer();
|
|
171
|
-
|
|
172
|
-
let left = new Date("November 10, 2024 8:22 PM");
|
|
173
|
-
let right = new Date("November 10, 2024 8:22 PM");
|
|
174
|
-
|
|
175
|
-
/* Act. */
|
|
176
|
-
let actual = target.compare(left, right);
|
|
177
|
-
|
|
178
|
-
/* Assert. */
|
|
179
|
-
expect(actual).to.be.true;
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
describe("Comparing arrays", () => {
|
|
184
|
-
it("Should return false when given an array and something else.", /* good */ () => {
|
|
185
|
-
/* Arrange. */
|
|
186
|
-
let target = new TotalComparer();
|
|
187
|
-
|
|
188
|
-
let left = [ 2, 4, 9 ];
|
|
189
|
-
let right = "text";
|
|
190
|
-
|
|
191
|
-
/* Act. */
|
|
192
|
-
let actual = target.compare(left, right);
|
|
193
|
-
|
|
194
|
-
/* Assert. */
|
|
195
|
-
expect(actual).to.be.false;
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
it("Should return false when given different arrays.", /* good */ () => {
|
|
199
|
-
/* Arrange. */
|
|
200
|
-
let target = new TotalComparer();
|
|
201
|
-
|
|
202
|
-
let left = [ 2, 4, 7 ];
|
|
203
|
-
let right = [ 2, 5, 6 ];
|
|
204
|
-
|
|
205
|
-
/* Act. */
|
|
206
|
-
let actual = target.compare(left, right);
|
|
207
|
-
|
|
208
|
-
/* Assert. */
|
|
209
|
-
expect(actual).to.be.false;
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
it("Should return false when `expected` array has more elements.", /* good */ () => {
|
|
213
|
-
/* Arrange. */
|
|
214
|
-
let target = new TotalComparer();
|
|
215
|
-
|
|
216
|
-
let left = [ 2, 4, 7, 18 ];
|
|
217
|
-
let right = [ 2, 4, 7 ];
|
|
218
|
-
|
|
219
|
-
/* Act. */
|
|
220
|
-
let actual = target.compare(left, right);
|
|
221
|
-
|
|
222
|
-
/* Assert. */
|
|
223
|
-
expect(actual).to.be.false;
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
it("Should return false when `actual` array has more elements.", /* good */ () => {
|
|
227
|
-
/* Arrange. */
|
|
228
|
-
let target = new TotalComparer();
|
|
229
|
-
|
|
230
|
-
let left = [ 2, 4, 7 ];
|
|
231
|
-
let right = [ 2, 4, 7, 9 ];
|
|
232
|
-
|
|
233
|
-
/* Act. */
|
|
234
|
-
let actual = target.compare(left, right);
|
|
235
|
-
|
|
236
|
-
/* Assert. */
|
|
237
|
-
expect(actual).to.be.false;
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
it("Should return true when given arrays with equal contents.", /* good */ () => {
|
|
241
|
-
/* Arrange. */
|
|
242
|
-
let target = new TotalComparer();
|
|
243
|
-
|
|
244
|
-
let left = [ 2, 4, "7", 9 ];
|
|
245
|
-
let right = [ 2, 4, "7", 9 ];
|
|
246
|
-
|
|
247
|
-
/* Act. */
|
|
248
|
-
let actual = target.compare(left, right);
|
|
249
|
-
|
|
250
|
-
/* Assert. */
|
|
251
|
-
expect(actual).to.be.true;
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
it("Should return true when given arrays with identical objects.", /* good */ () => {
|
|
255
|
-
/* Arrange. */
|
|
256
|
-
let target = new TotalComparer();
|
|
257
|
-
|
|
258
|
-
let left = [ { a: 1, b: "2" }, { c: true, d: 3 } ];
|
|
259
|
-
let right = [ { a: 1, b: "2" }, { c: true, d: 3 } ];
|
|
260
|
-
|
|
261
|
-
/* Act. */
|
|
262
|
-
let actual = target.compare(left, right);
|
|
263
|
-
|
|
264
|
-
/* Assert. */
|
|
265
|
-
expect(actual).to.be.true;
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
it("Should return false when given arrays with different objects.", /* good */ () => {
|
|
269
|
-
/* Arrange. */
|
|
270
|
-
let target = new TotalComparer();
|
|
271
|
-
|
|
272
|
-
let left = [ { a: 1, b: "2" }, { c: true, d: 3 } ];
|
|
273
|
-
let right = [ { a: 1, b: "2" }, { c: true, notD: 3 } ];
|
|
274
|
-
|
|
275
|
-
/* Act. */
|
|
276
|
-
let actual = target.compare(left, right);
|
|
277
|
-
|
|
278
|
-
/* Assert. */
|
|
279
|
-
expect(actual).to.be.false;
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
describe("Comparing Maps", () => {
|
|
284
|
-
it("Should return false when given a Map and something else.", /* good */ () => {
|
|
285
|
-
/* Arrange. */
|
|
286
|
-
let target = new TotalComparer();
|
|
287
|
-
|
|
288
|
-
let left = new Map([
|
|
289
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "c" ] ]) ],
|
|
290
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
291
|
-
]);
|
|
292
|
-
let right = "text";
|
|
293
|
-
|
|
294
|
-
/* Act. */
|
|
295
|
-
let actual = target.compare(left, right);
|
|
296
|
-
|
|
297
|
-
/* Assert. */
|
|
298
|
-
expect(actual).to.be.false;
|
|
299
|
-
});
|
|
300
|
-
|
|
301
|
-
it("Should return false when given flat Maps with different contents.", /* good */ () => {
|
|
302
|
-
/* Arrange. */
|
|
303
|
-
let target = new TotalComparer();
|
|
304
|
-
|
|
305
|
-
let left = new Map([ [ "A", 1 ], [ "B", 2 ], [ "C", 3 ] ]);
|
|
306
|
-
let right = new Map([ [ "A", 3 ], [ "B", 2 ], [ "C", 1 ] ]);
|
|
307
|
-
|
|
308
|
-
/* Act. */
|
|
309
|
-
let actual = target.compare(left, right);
|
|
310
|
-
|
|
311
|
-
/* Assert. */
|
|
312
|
-
expect(actual).to.be.false;
|
|
313
|
-
});
|
|
314
|
-
|
|
315
|
-
it("Should return false when `actual` flat Map has fewer elements.", /* good */ () => {
|
|
316
|
-
/* Arrange. */
|
|
317
|
-
let target = new TotalComparer();
|
|
318
|
-
|
|
319
|
-
let left = new Map([ [ "A", 1 ], [ "B", 2 ], [ "C", 3 ] ]);
|
|
320
|
-
let right = new Map([ [ "A", 1 ], [ "C", 3 ] ]);
|
|
321
|
-
|
|
322
|
-
/* Act. */
|
|
323
|
-
let actual = target.compare(left, right);
|
|
324
|
-
|
|
325
|
-
/* Assert. */
|
|
326
|
-
expect(actual).to.be.false;
|
|
327
|
-
});
|
|
328
|
-
|
|
329
|
-
it("Should return false when `actual` flat Map has more elements.", /* good */ () => {
|
|
330
|
-
/* Arrange. */
|
|
331
|
-
let target = new TotalComparer();
|
|
332
|
-
|
|
333
|
-
let left = new Map([ [ "A", 1 ], [ "C", 3 ] ]);
|
|
334
|
-
let right = new Map([ [ "A", 1 ], [ "B", 2 ], [ "C", 3 ] ]);
|
|
335
|
-
|
|
336
|
-
/* Act. */
|
|
337
|
-
let actual = target.compare(left, right);
|
|
338
|
-
|
|
339
|
-
/* Assert. */
|
|
340
|
-
expect(actual).to.be.false;
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
it("Should return true when given flat Maps with equal contents.", /* good */ () => {
|
|
344
|
-
/* Arrange. */
|
|
345
|
-
let target = new TotalComparer();
|
|
346
|
-
|
|
347
|
-
let left = new Map([ [ "A", 1 ], [ "B", 2 ], [ "C", 3 ] ]);
|
|
348
|
-
let right = new Map([ [ "A", 1 ], [ "B", 2 ], [ "C", 3 ] ]);
|
|
349
|
-
|
|
350
|
-
/* Act. */
|
|
351
|
-
let actual = target.compare(left, right);
|
|
352
|
-
|
|
353
|
-
/* Assert. */
|
|
354
|
-
expect(actual).to.be.true;
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
it("Should return false when given two Maps of Maps with different contents.", /* good */ () => {
|
|
358
|
-
/* Arrange. */
|
|
359
|
-
let target = new TotalComparer();
|
|
360
|
-
|
|
361
|
-
let left = new Map([
|
|
362
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "c" ] ]) ],
|
|
363
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
364
|
-
]);
|
|
365
|
-
let right = new Map([
|
|
366
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "d" ] ]) ],
|
|
367
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "c" ] ]) ]
|
|
368
|
-
]);
|
|
369
|
-
|
|
370
|
-
/* Act. */
|
|
371
|
-
let actual = target.compare(left, right);
|
|
372
|
-
|
|
373
|
-
/* Assert. */
|
|
374
|
-
expect(actual).to.be.false;
|
|
375
|
-
});
|
|
376
|
-
|
|
377
|
-
it("Should return false when given two Maps of Maps, if the `actual` is missing a leaf.", /* good */ () => {
|
|
378
|
-
/* Arrange. */
|
|
379
|
-
let target = new TotalComparer();
|
|
380
|
-
|
|
381
|
-
let left = new Map([
|
|
382
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "c" ] ]) ],
|
|
383
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
384
|
-
]);
|
|
385
|
-
let right = new Map([
|
|
386
|
-
[ "One", new Map([ [ "TypeA", "a" ] ]) ],
|
|
387
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
388
|
-
]);
|
|
389
|
-
|
|
390
|
-
/* Act. */
|
|
391
|
-
let actual = target.compare(left, right);
|
|
392
|
-
|
|
393
|
-
/* Assert. */
|
|
394
|
-
expect(actual).to.be.false;
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
it("Should return false when given two Maps of Maps, if the `actual` has an extra leaf.", /* good */ () => {
|
|
398
|
-
/* Arrange. */
|
|
399
|
-
let target = new TotalComparer();
|
|
400
|
-
|
|
401
|
-
let left = new Map([
|
|
402
|
-
[ "One", new Map([ [ "TypeA", "a" ] ]) ],
|
|
403
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
404
|
-
]);
|
|
405
|
-
let right = new Map([
|
|
406
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "c" ] ]) ],
|
|
407
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
408
|
-
]);
|
|
409
|
-
|
|
410
|
-
/* Act. */
|
|
411
|
-
let actual = target.compare(left, right);
|
|
412
|
-
|
|
413
|
-
/* Assert. */
|
|
414
|
-
expect(actual).to.be.false;
|
|
415
|
-
});
|
|
416
|
-
|
|
417
|
-
it("Should return true when given two Maps of Maps, if their contents are equivalent.", /* good */ () => {
|
|
418
|
-
/* Arrange. */
|
|
419
|
-
let target = new TotalComparer();
|
|
420
|
-
|
|
421
|
-
let left = new Map([
|
|
422
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "c" ] ]) ],
|
|
423
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
424
|
-
]);
|
|
425
|
-
let right = new Map([
|
|
426
|
-
[ "One", new Map([ [ "TypeA", "a" ], [ "TypeC", "c" ] ]) ],
|
|
427
|
-
[ "Two", new Map([ [ "TypeB", "b" ], [ "TypeD", "d" ] ]) ]
|
|
428
|
-
]);
|
|
429
|
-
|
|
430
|
-
/* Act. */
|
|
431
|
-
let actual = target.compare(left, right);
|
|
432
|
-
|
|
433
|
-
/* Assert. */
|
|
434
|
-
expect(actual).to.be.true;
|
|
435
|
-
});
|
|
436
|
-
});
|
|
437
|
-
|
|
438
|
-
describe("Comparing Errors", () => {
|
|
439
|
-
/* cruft */
|
|
440
|
-
// it("Should return tf when some situation.", () => {
|
|
441
|
-
// let actual = 48/
|
|
442
|
-
// expect(actual).to.be.true;
|
|
443
|
-
// expect(actual).to.be.false;
|
|
444
|
-
// });
|
|
445
|
-
|
|
446
|
-
it("Should return false when given two Error objects that have different messages.", /* good */ () => {
|
|
447
|
-
/* Arrange. */
|
|
448
|
-
let target = new TotalComparer();
|
|
449
|
-
|
|
450
|
-
let left = new Error("message 1");
|
|
451
|
-
let right = new Error("message 2");
|
|
452
|
-
|
|
453
|
-
/* Act. */
|
|
454
|
-
let actual = target.compare(left, right);
|
|
455
|
-
|
|
456
|
-
/* Assert. */
|
|
457
|
-
expect(actual).to.be.false;
|
|
458
|
-
});
|
|
459
|
-
|
|
460
|
-
it("Should return false when given two Error objects that have the same message but different causes.", /* good */ () => {
|
|
461
|
-
/* Arrange. */
|
|
462
|
-
let target = new TotalComparer();
|
|
463
|
-
|
|
464
|
-
let left = new Error("top 1", { cause: new Error("1") });
|
|
465
|
-
let right = new Error("top 1", { cause: new Error("2") });
|
|
466
|
-
|
|
467
|
-
/* Act. */
|
|
468
|
-
let actual = target.compare(left, right);
|
|
469
|
-
|
|
470
|
-
/* Assert. */
|
|
471
|
-
expect(actual).to.be.false;
|
|
472
|
-
});
|
|
473
|
-
|
|
474
|
-
it("Should return false when given two Error objects that have the same message but different non-Error causes.", /* good */ () => {
|
|
475
|
-
/* Arrange. */
|
|
476
|
-
let target = new TotalComparer();
|
|
477
|
-
|
|
478
|
-
let left = new Error("top 1", { cause: { sole: "a" } });
|
|
479
|
-
let right = new Error("top 1", { cause: { sole: "b" } });
|
|
480
|
-
|
|
481
|
-
/* Act. */
|
|
482
|
-
let actual = target.compare(left, right);
|
|
483
|
-
|
|
484
|
-
/* Assert. */
|
|
485
|
-
expect(actual).to.be.false;
|
|
486
|
-
});
|
|
487
|
-
|
|
488
|
-
it("Should return false when given Error subclass objects of different types but otherwise the same.", /* good */ () => {
|
|
489
|
-
/* Arrange. */
|
|
490
|
-
let target = new TotalComparer();
|
|
491
|
-
|
|
492
|
-
let left = new RangeError("message 1");
|
|
493
|
-
let right = new TypeError("message 1");
|
|
494
|
-
|
|
495
|
-
/* Act. */
|
|
496
|
-
let actual = target.compare(left, right);
|
|
497
|
-
|
|
498
|
-
/* Assert. */
|
|
499
|
-
expect(actual).to.be.false;
|
|
500
|
-
});
|
|
501
|
-
|
|
502
|
-
it("Should return true when given two Error subclass objects of the same type and otherwise the same.", /* good */ () => {
|
|
503
|
-
/* Arrange. */
|
|
504
|
-
let target = new TotalComparer();
|
|
505
|
-
|
|
506
|
-
let left = new RangeError("message 1");
|
|
507
|
-
let right = new RangeError("message 1");
|
|
508
|
-
|
|
509
|
-
/* Act. */
|
|
510
|
-
let actual = target.compare(left, right);
|
|
511
|
-
|
|
512
|
-
/* Assert. */
|
|
513
|
-
expect(actual).to.be.true;
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
it("Should return true when given two Error objects that have no message.", /* good */ () => {
|
|
517
|
-
/* Arrange. */
|
|
518
|
-
let target = new TotalComparer();
|
|
519
|
-
|
|
520
|
-
let left = new Error();
|
|
521
|
-
let right = new Error();
|
|
522
|
-
|
|
523
|
-
/* Act. */
|
|
524
|
-
let actual = target.compare(left, right);
|
|
525
|
-
|
|
526
|
-
/* Assert. */
|
|
527
|
-
expect(actual).to.be.true;
|
|
528
|
-
});
|
|
529
|
-
|
|
530
|
-
it("Should return true when given two Error objects that have the same message.", /* good */ () => {
|
|
531
|
-
/* Arrange. */
|
|
532
|
-
let target = new TotalComparer();
|
|
533
|
-
|
|
534
|
-
let left = new Error("message 1");
|
|
535
|
-
let right = new Error("message 1");
|
|
536
|
-
|
|
537
|
-
/* Act. */
|
|
538
|
-
let actual = target.compare(left, right);
|
|
539
|
-
|
|
540
|
-
/* Assert. */
|
|
541
|
-
expect(actual).to.be.true;
|
|
542
|
-
});
|
|
543
|
-
|
|
544
|
-
it("Should return true when given two Error objects that have the same message and the same cause.", /* good */ () => {
|
|
545
|
-
/* Arrange. */
|
|
546
|
-
let target = new TotalComparer();
|
|
547
|
-
|
|
548
|
-
let left = new Error("top 1", { cause: new Error("2") });
|
|
549
|
-
let right = new Error("top 1", { cause: new Error("2") });
|
|
550
|
-
|
|
551
|
-
/* Act. */
|
|
552
|
-
let actual = target.compare(left, right);
|
|
553
|
-
|
|
554
|
-
/* Assert. */
|
|
555
|
-
expect(actual).to.be.true;
|
|
556
|
-
});
|
|
557
|
-
|
|
558
|
-
it("Should return true when given two Error objects that have the same message and the same non-Error cause.", /* good */ () => {
|
|
559
|
-
/* Arrange. */
|
|
560
|
-
let target = new TotalComparer();
|
|
561
|
-
|
|
562
|
-
let left = new Error("top 1", { cause: { sole: "a" } });
|
|
563
|
-
let right = new Error("top 1", { cause: { sole: "a" } });
|
|
564
|
-
|
|
565
|
-
/* Act. */
|
|
566
|
-
let actual = target.compare(left, right);
|
|
567
|
-
|
|
568
|
-
/* Assert. */
|
|
569
|
-
expect(actual).to.be.true;
|
|
570
|
-
});
|
|
571
|
-
});
|
|
572
|
-
|
|
573
|
-
describe("Comparing objects", () => {
|
|
574
|
-
it("Should return false when given an object and a value.", /* good */ () => {
|
|
575
|
-
/* Arrange. */
|
|
576
|
-
let target = new TotalComparer();
|
|
577
|
-
|
|
578
|
-
let left = { seven: 7 };
|
|
579
|
-
let right = 7;
|
|
580
|
-
|
|
581
|
-
/* Act. */
|
|
582
|
-
let actual = target.compare(left, right);
|
|
583
|
-
|
|
584
|
-
/* Assert. */
|
|
585
|
-
expect(actual).to.be.false;
|
|
586
|
-
});
|
|
587
|
-
|
|
588
|
-
it("Should return true when given the same object for both args.", /* good */ () => {
|
|
589
|
-
/* Arrange. */
|
|
590
|
-
let target = new TotalComparer();
|
|
591
|
-
|
|
592
|
-
let sameObject = { a: "b" };
|
|
593
|
-
|
|
594
|
-
let left = sameObject;
|
|
595
|
-
let right = sameObject;
|
|
596
|
-
|
|
597
|
-
/* Act. */
|
|
598
|
-
let actual = target.compare(left, right);
|
|
599
|
-
|
|
600
|
-
/* Assert. */
|
|
601
|
-
expect(actual).to.be.true;
|
|
602
|
-
});
|
|
603
|
-
|
|
604
|
-
it("Should return false when given two flat objects, if different member values.", /* good */ () => {
|
|
605
|
-
/* Arrange. */
|
|
606
|
-
let target = new TotalComparer();
|
|
607
|
-
|
|
608
|
-
let left = { a: "b", d: "e" };
|
|
609
|
-
let right = { a: "c", d: "e" };
|
|
610
|
-
|
|
611
|
-
/* Act. */
|
|
612
|
-
let actual = target.compare(left, right);
|
|
613
|
-
|
|
614
|
-
/* Assert. */
|
|
615
|
-
expect(actual).to.be.false;
|
|
616
|
-
});
|
|
617
|
-
|
|
618
|
-
it("Should return false when given two flat objects, if `actual` missing a member.", /* good */ () => {
|
|
619
|
-
/* Arrange. */
|
|
620
|
-
let target = new TotalComparer();
|
|
621
|
-
|
|
622
|
-
let left = { a: "b", d: "e" };
|
|
623
|
-
let right = { a: "b" };
|
|
624
|
-
|
|
625
|
-
/* Act. */
|
|
626
|
-
let actual = target.compare(left, right);
|
|
627
|
-
|
|
628
|
-
/* Assert. */
|
|
629
|
-
expect(actual).to.be.false;
|
|
630
|
-
});
|
|
631
|
-
|
|
632
|
-
it("Should return false when given two flat objects, if extra `actual` member.", /* good */ () => {
|
|
633
|
-
/* Arrange. */
|
|
634
|
-
let target = new TotalComparer();
|
|
635
|
-
|
|
636
|
-
let left = { a: "b" };
|
|
637
|
-
let right = { a: "b", d: "e" };
|
|
638
|
-
|
|
639
|
-
/* Act. */
|
|
640
|
-
let actual = target.compare(left, right);
|
|
641
|
-
|
|
642
|
-
/* Assert. */
|
|
643
|
-
expect(actual).to.be.false;
|
|
644
|
-
});
|
|
645
|
-
|
|
646
|
-
it("Should return false when given two flat objects, if different members.", /* good */ () => {
|
|
647
|
-
/* Arrange. */
|
|
648
|
-
let target = new TotalComparer();
|
|
649
|
-
|
|
650
|
-
let left = { a: "b" };
|
|
651
|
-
let right = { c: "b" };
|
|
652
|
-
|
|
653
|
-
/* Act. */
|
|
654
|
-
let actual = target.compare(left, right);
|
|
655
|
-
|
|
656
|
-
/* Assert. */
|
|
657
|
-
expect(actual).to.be.false;
|
|
658
|
-
});
|
|
659
|
-
|
|
660
|
-
it("Should return true when given two flat objects, if same member values.", /* good */ () => {
|
|
661
|
-
/* Arrange. */
|
|
662
|
-
let target = new TotalComparer();
|
|
663
|
-
|
|
664
|
-
let left = { a: "b", d: "e" };
|
|
665
|
-
let right = { a: "b", d: "e" };
|
|
666
|
-
|
|
667
|
-
/* Act. */
|
|
668
|
-
let actual = target.compare(left, right);
|
|
669
|
-
|
|
670
|
-
/* Assert. */
|
|
671
|
-
expect(actual).to.be.true;
|
|
672
|
-
});
|
|
673
|
-
|
|
674
|
-
it("Should return false when given two deep objects with different object members.", /* good */ () => {
|
|
675
|
-
/* Arrange. */
|
|
676
|
-
let target = new TotalComparer();
|
|
677
|
-
|
|
678
|
-
let left = { a: "b", c: { d: "e" } };
|
|
679
|
-
let right = { a: "b", c: { f: "g" } };
|
|
680
|
-
|
|
681
|
-
/* Act. */
|
|
682
|
-
let actual = target.compare(left, right);
|
|
683
|
-
|
|
684
|
-
/* Assert. */
|
|
685
|
-
expect(actual).to.be.false;
|
|
686
|
-
});
|
|
687
|
-
|
|
688
|
-
it("Should return false when given two deep objects, if the `actual` is missing a leaf value.", /* good */ () => {
|
|
689
|
-
/* Arrange. */
|
|
690
|
-
let target = new TotalComparer();
|
|
691
|
-
|
|
692
|
-
let left = { a: "b", c: { d: "e", f: "g" } };
|
|
693
|
-
let right = { a: "b", c: { f: "g" } };
|
|
694
|
-
|
|
695
|
-
/* Act. */
|
|
696
|
-
let actual = target.compare(left, right);
|
|
697
|
-
|
|
698
|
-
/* Assert. */
|
|
699
|
-
expect(actual).to.be.false;
|
|
700
|
-
});
|
|
701
|
-
|
|
702
|
-
it("Should return false when given two deep objects, if the `actual` has an extra leaf value.", /* good */ () => {
|
|
703
|
-
/* Arrange. */
|
|
704
|
-
let target = new TotalComparer();
|
|
705
|
-
|
|
706
|
-
let left = { a: "b", c: { d: "e" } };
|
|
707
|
-
let right = { a: "b", c: { d: "e", f: "g" } };
|
|
708
|
-
|
|
709
|
-
/* Act. */
|
|
710
|
-
let actual = target.compare(left, right);
|
|
711
|
-
|
|
712
|
-
/* Assert. */
|
|
713
|
-
expect(actual).to.be.false;
|
|
714
|
-
});
|
|
715
|
-
|
|
716
|
-
it("Should return true when given two deep objects with equivalent members.", /* good */ () => {
|
|
717
|
-
/* Arrange. */
|
|
718
|
-
let target = new TotalComparer();
|
|
719
|
-
|
|
720
|
-
let left = { a: "b", c: { d: "e" } };
|
|
721
|
-
let right = { a: "b", c: { d: "e" } };
|
|
722
|
-
|
|
723
|
-
/* Act. */
|
|
724
|
-
let actual = target.compare(left, right);
|
|
725
|
-
|
|
726
|
-
/* Assert. */
|
|
727
|
-
expect(actual).to.be.true;
|
|
728
|
-
});
|
|
729
|
-
|
|
730
|
-
it("Should return false when given two flat objects with different method members.", /* good */ () => {
|
|
731
|
-
/* Arrange. */
|
|
732
|
-
let target = new TotalComparer();
|
|
733
|
-
|
|
734
|
-
let left = { a: "a", b: function () { return true; } };
|
|
735
|
-
let right = { a: "a", b: function () { return false; } };
|
|
736
|
-
|
|
737
|
-
/* Act. */
|
|
738
|
-
let actual = target.compare(left, right);
|
|
739
|
-
|
|
740
|
-
/* Assert. */
|
|
741
|
-
expect(actual).to.be.false;
|
|
742
|
-
});
|
|
743
|
-
|
|
744
|
-
it("Should return true when given two flat objects with equivalent method members.", /* good */ () => {
|
|
745
|
-
/* Arrange. */
|
|
746
|
-
let target = new TotalComparer();
|
|
747
|
-
|
|
748
|
-
let left = { a: "a", b: function () { return true; } };
|
|
749
|
-
let right = { a: "a", b: function () { return true; } };
|
|
750
|
-
|
|
751
|
-
/* Act. */
|
|
752
|
-
let actual = target.compare(left, right);
|
|
753
|
-
|
|
754
|
-
/* Assert. */
|
|
755
|
-
expect(actual).to.be.true;
|
|
756
|
-
});
|
|
757
|
-
});
|
|
758
|
-
|
|
759
|
-
describe("Comparing functions / methods", () => {
|
|
760
|
-
it("Should return false when given a function and something else.", /* good */ () => {
|
|
761
|
-
/* Arrange. */
|
|
762
|
-
let target = new TotalComparer();
|
|
763
|
-
|
|
764
|
-
let left = function () { };
|
|
765
|
-
let right = 12;
|
|
766
|
-
|
|
767
|
-
/* Act. */
|
|
768
|
-
let actual = target.compare(left, right);
|
|
769
|
-
|
|
770
|
-
/* Assert. */
|
|
771
|
-
expect(actual).to.be.false;
|
|
772
|
-
});
|
|
773
|
-
|
|
774
|
-
it("Should return false when given two functions with different definitions.", /* good */ () => {
|
|
775
|
-
/* Arrange. */
|
|
776
|
-
let target = new TotalComparer();
|
|
777
|
-
|
|
778
|
-
let left = function () { };
|
|
779
|
-
let right = function (a) { return -a; };
|
|
780
|
-
|
|
781
|
-
/* Act. */
|
|
782
|
-
let actual = target.compare(left, right);
|
|
783
|
-
|
|
784
|
-
/* Assert. */
|
|
785
|
-
expect(actual).to.be.false;
|
|
786
|
-
});
|
|
787
|
-
|
|
788
|
-
it("Should return false when given two arrow functions with different definitions.", /* good */ () => {
|
|
789
|
-
/* Arrange. */
|
|
790
|
-
let target = new TotalComparer();
|
|
791
|
-
|
|
792
|
-
let left = () => { };
|
|
793
|
-
let right = (a) => { return -a; };
|
|
794
|
-
|
|
795
|
-
/* Act. */
|
|
796
|
-
let actual = target.compare(left, right);
|
|
797
|
-
|
|
798
|
-
/* Assert. */
|
|
799
|
-
expect(actual).to.be.false;
|
|
800
|
-
});
|
|
801
|
-
|
|
802
|
-
it("Should return false when given equivalent functions with different definition styles.", /* good */ () => {
|
|
803
|
-
/* Arrange. */
|
|
804
|
-
let target = new TotalComparer();
|
|
805
|
-
|
|
806
|
-
let left = () => { };
|
|
807
|
-
let right = function () { };
|
|
808
|
-
|
|
809
|
-
/* Act. */
|
|
810
|
-
let actual = target.compare(left, right);
|
|
811
|
-
|
|
812
|
-
/* Assert. */
|
|
813
|
-
expect(actual).to.be.false;
|
|
814
|
-
});
|
|
815
|
-
|
|
816
|
-
it("Should return false when given equivalent functions with different names.", /* good */ () => {
|
|
817
|
-
/* Arrange. */
|
|
818
|
-
let target = new TotalComparer();
|
|
819
|
-
|
|
820
|
-
let left = function first() { };
|
|
821
|
-
let right = function second() { };
|
|
822
|
-
|
|
823
|
-
/* Act. */
|
|
824
|
-
let actual = target.compare(left, right);
|
|
825
|
-
|
|
826
|
-
/* Assert. */
|
|
827
|
-
expect(actual).to.be.false;
|
|
828
|
-
});
|
|
829
|
-
|
|
830
|
-
it("Should return false when given two methods with different definitions.", /* good */ () => {
|
|
831
|
-
/* Arrange. */
|
|
832
|
-
let target = new TotalComparer();
|
|
833
|
-
|
|
834
|
-
let left = Spoofable.prototype.spoofNumber;
|
|
835
|
-
let right = Spoofable.prototype.spoofText;
|
|
836
|
-
|
|
837
|
-
/* Act. */
|
|
838
|
-
let actual = target.compare(left, right);
|
|
839
|
-
|
|
840
|
-
/* Assert. */
|
|
841
|
-
expect(actual).to.be.false;
|
|
842
|
-
});
|
|
843
|
-
|
|
844
|
-
it("Should return true when given two functions with the same definition.", /* good */ () => {
|
|
845
|
-
/* Arrange. */
|
|
846
|
-
let target = new TotalComparer();
|
|
847
|
-
|
|
848
|
-
let left = function () { };
|
|
849
|
-
let right = function () { };
|
|
850
|
-
|
|
851
|
-
/* Act. */
|
|
852
|
-
let actual = target.compare(left, right);
|
|
853
|
-
|
|
854
|
-
/* Assert. */
|
|
855
|
-
expect(actual).to.be.true;
|
|
856
|
-
});
|
|
857
|
-
|
|
858
|
-
it("Should return true when given two arrow functions with the same definition.", /* good */ () => {
|
|
859
|
-
/* Arrange. */
|
|
860
|
-
let target = new TotalComparer();
|
|
861
|
-
|
|
862
|
-
let left = () => { };
|
|
863
|
-
let right = () => { };
|
|
864
|
-
|
|
865
|
-
/* Act. */
|
|
866
|
-
let actual = target.compare(left, right);
|
|
867
|
-
|
|
868
|
-
/* Assert. */
|
|
869
|
-
expect(actual).to.be.true;
|
|
870
|
-
});
|
|
871
|
-
|
|
872
|
-
it("Should return true when given two methods with the same definition.", /* good */ () => {
|
|
873
|
-
/* Arrange. */
|
|
874
|
-
let target = new TotalComparer();
|
|
875
|
-
|
|
876
|
-
let left = Spoofable.prototype.spoofText;
|
|
877
|
-
let right = Spoofable.prototype.spoofText;
|
|
878
|
-
|
|
879
|
-
/* Act. */
|
|
880
|
-
let actual = target.compare(left, right);
|
|
881
|
-
|
|
882
|
-
/* Assert. */
|
|
883
|
-
expect(actual).to.be.true;
|
|
884
|
-
});
|
|
885
|
-
|
|
886
|
-
it("Should return true when given a function and method with the same definition.", /* good */ () => {
|
|
887
|
-
/* Arrange. */
|
|
888
|
-
let target = new TotalComparer();
|
|
889
|
-
|
|
890
|
-
let left = function spoofNumber(a, b) { return a + b; };
|
|
891
|
-
let right = Spoofable.prototype.spoofNumber;
|
|
892
|
-
|
|
893
|
-
/* Act. */
|
|
894
|
-
let actual = target.compare(left, right);
|
|
895
|
-
|
|
896
|
-
/* Assert. */
|
|
897
|
-
expect(actual).to.be.true;
|
|
898
|
-
});
|
|
899
|
-
});
|
|
900
|
-
|
|
901
|
-
describe("Comparing Sets", () => {
|
|
902
|
-
it("Should return false when given a Set and something else.", /* good */ () => {
|
|
903
|
-
/* Arrange. */
|
|
904
|
-
let target = new TotalComparer();
|
|
905
|
-
|
|
906
|
-
let left = new Set([ 1, 2, 6 ]);
|
|
907
|
-
let right = { a: [ 1, 2, 6 ] };
|
|
908
|
-
|
|
909
|
-
/* Act. */
|
|
910
|
-
let actual = target.compare(left, right);
|
|
911
|
-
|
|
912
|
-
/* Assert. */
|
|
913
|
-
expect(actual).to.be.false;
|
|
914
|
-
});
|
|
915
|
-
|
|
916
|
-
it("Should return false when given differing Sets.", /* good */ () => {
|
|
917
|
-
/* Arrange. */
|
|
918
|
-
let target = new TotalComparer();
|
|
919
|
-
|
|
920
|
-
let left = new Set([ 1, 2, 7 ]);
|
|
921
|
-
let right = new Set([ 1, 2, 8 ]);
|
|
922
|
-
|
|
923
|
-
/* Act. */
|
|
924
|
-
let actual = target.compare(left, right);
|
|
925
|
-
|
|
926
|
-
/* Assert. */
|
|
927
|
-
expect(actual).to.be.false;
|
|
928
|
-
});
|
|
929
|
-
|
|
930
|
-
it("Should return false when given Sets that differ in size.", /* good */ () => {
|
|
931
|
-
/* Arrange. */
|
|
932
|
-
let target = new TotalComparer();
|
|
933
|
-
|
|
934
|
-
let left = new Set([ 1, 2, 7 ]);
|
|
935
|
-
let right = new Set([ 1, 2, 7, 8 ]);
|
|
936
|
-
|
|
937
|
-
/* Act. */
|
|
938
|
-
let actual = target.compare(left, right);
|
|
939
|
-
|
|
940
|
-
/* Assert. */
|
|
941
|
-
expect(actual).to.be.false;
|
|
942
|
-
});
|
|
943
|
-
|
|
944
|
-
it("Should return true when given equivalent Sets.", /* good */ () => {
|
|
945
|
-
/* Arrange. */
|
|
946
|
-
let target = new TotalComparer();
|
|
947
|
-
|
|
948
|
-
let left = new Set([ 1, 2, 7 ]);
|
|
949
|
-
let right = new Set([ 1, 2, 7 ]);
|
|
950
|
-
|
|
951
|
-
/* Act. */
|
|
952
|
-
let actual = target.compare(left, right);
|
|
953
|
-
|
|
954
|
-
/* Assert. */
|
|
955
|
-
expect(actual).to.be.true;
|
|
956
|
-
});
|
|
957
|
-
|
|
958
|
-
it("Should return true when given equivalent Sets with complex contents.", /* good */ () => {
|
|
959
|
-
/* Arrange. */
|
|
960
|
-
let target = new TotalComparer();
|
|
961
|
-
|
|
962
|
-
let left = new Set([ { a: 1, b: "2" }, new Map(), "c" ]);
|
|
963
|
-
let right = new Set([ { a: 1, b: "2" }, new Map(), "c" ]);
|
|
964
|
-
|
|
965
|
-
/* Act. */
|
|
966
|
-
let actual = target.compare(left, right);
|
|
967
|
-
|
|
968
|
-
/* Assert. */
|
|
969
|
-
expect(actual).to.be.true;
|
|
970
|
-
});
|
|
971
|
-
});
|
|
972
|
-
|
|
973
|
-
describe("Comparing complex objects", () => {
|
|
974
|
-
it("Should return false when given differing complex objects.", /* good */ () => {
|
|
975
|
-
/* Arrange. */
|
|
976
|
-
let target = new TotalComparer();
|
|
977
|
-
|
|
978
|
-
let left = { a: new Map([ [ 1, "7" ], [ 2, "8" ] ]), b: [ 6, 2, 10, () => { return true; } ], c: true };
|
|
979
|
-
let right = {
|
|
980
|
-
a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
|
|
981
|
-
b: [ 6, 2, 11, () => { return true; } ],
|
|
982
|
-
c: true
|
|
983
|
-
};
|
|
984
|
-
|
|
985
|
-
/* Act. */
|
|
986
|
-
let actual = target.compare(left, right);
|
|
987
|
-
|
|
988
|
-
/* Assert. */
|
|
989
|
-
expect(actual).to.be.false;
|
|
990
|
-
});
|
|
991
|
-
|
|
992
|
-
it("Should return true when given equivalent complex objects.", /* good */ () => {
|
|
993
|
-
/* Arrange. */
|
|
994
|
-
let target = new TotalComparer();
|
|
995
|
-
|
|
996
|
-
let left = { a: new Map([ [ 1, "7" ], [ 2, "8" ] ]), b: [ 6, 2, 10, () => { return true; } ], c: true };
|
|
997
|
-
let right = {
|
|
998
|
-
a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
|
|
999
|
-
b: [ 6, 2, 10, () => { return true; } ],
|
|
1000
|
-
c: true
|
|
1001
|
-
};
|
|
1002
|
-
|
|
1003
|
-
/* Act. */
|
|
1004
|
-
let actual = target.compare(left, right);
|
|
1005
|
-
|
|
1006
|
-
/* Assert. */
|
|
1007
|
-
expect(actual).to.be.true;
|
|
1008
|
-
});
|
|
1009
|
-
|
|
1010
|
-
it("Should return false when given differing complex objects including Sets.", /* good */ () => {
|
|
1011
|
-
/* Arrange. */
|
|
1012
|
-
let target = new TotalComparer();
|
|
1013
|
-
|
|
1014
|
-
let left = {
|
|
1015
|
-
a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
|
|
1016
|
-
b: [ new Set([ 6, 2, 10 ]), () => { return true; } ],
|
|
1017
|
-
c: true
|
|
1018
|
-
};
|
|
1019
|
-
let right = {
|
|
1020
|
-
a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
|
|
1021
|
-
b: [ new Set([ 6, 2, 11 ]), () => { return true; } ],
|
|
1022
|
-
c: true
|
|
1023
|
-
};
|
|
1024
|
-
|
|
1025
|
-
/* Act. */
|
|
1026
|
-
let actual = target.compare(left, right);
|
|
1027
|
-
|
|
1028
|
-
/* Assert. */
|
|
1029
|
-
expect(actual).to.be.false;
|
|
1030
|
-
});
|
|
1031
|
-
|
|
1032
|
-
it("Should return true when given equivalent complex objects including Sets.", /* good */ () => {
|
|
1033
|
-
/* Arrange. */
|
|
1034
|
-
let target = new TotalComparer();
|
|
1035
|
-
|
|
1036
|
-
let left = {
|
|
1037
|
-
a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
|
|
1038
|
-
b: [ new Set([ 6, 2, 10 ]), () => { return true; } ],
|
|
1039
|
-
c: true
|
|
1040
|
-
};
|
|
1041
|
-
let right = {
|
|
1042
|
-
a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
|
|
1043
|
-
b: [ new Set([ 6, 2, 10 ]), () => { return true; } ],
|
|
1044
|
-
c: true
|
|
1045
|
-
};
|
|
1046
|
-
|
|
1047
|
-
/* Act. */
|
|
1048
|
-
let actual = target.compare(left, right);
|
|
1049
|
-
|
|
1050
|
-
/* Assert. */
|
|
1051
|
-
expect(actual).to.be.true;
|
|
1052
|
-
});
|
|
1053
|
-
});
|
|
1054
|
-
});
|
|
1055
|
-
});
|