risei 1.1.1 → 1.1.2

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 (42) hide show
  1. package/README.md +3 -1
  2. package/index.js +1 -1
  3. package/package.json +4 -4
  4. package/tests/other-tests/ASpoofingFixture.tests.js +0 -242
  5. package/tests/other-tests/SpoofClassesFixture.tests.js +0 -130
  6. package/tests/other-tests/SpoofObjectsFixture.tests.js +0 -95
  7. package/tests/other-tests/SpoofTuple.tests.js +0 -93
  8. package/tests/other-tests/TotalComparer.tests.js +0 -920
  9. package/tests/other-tests/package.json +0 -7
  10. package/tests/risei-tests/ASpoofingFixtureTests.rt.js +0 -51
  11. package/tests/risei-tests/MomentTests.rt.js +0 -103
  12. package/tests/risei-tests/SpoofTupleTests.rt.js +0 -274
  13. package/tests/risei-tests/TestFrameChooserTests.rt.js +0 -74
  14. package/tests/risei-tests/TestFrameTests.rt.js +0 -84
  15. package/tests/risei-tests/TestStagesTests.rt.js +0 -99
  16. package/tests/risei-tests/TestTupleTests.rt.js +0 -140
  17. package/tests/risei-tests/TotalComparerTests.rt.js +0 -184
  18. package/tests/risei-tests/TotalCopierTests.rt.js +0 -74
  19. package/tests/risei-tests/TotalDisplayerTests.rt.js +0 -186
  20. package/tests/risei-tests/TypeAnalyzerTests.rt.js +0 -29
  21. package/tests/risei-tests/TypeIdentifierTests.rt.js +0 -44
  22. package/tests/self-tests/SelfTests.outward-rt.js +0 -583
  23. package/tests/target-objects/CompositionModel.js +0 -38
  24. package/tests/target-objects/ConditionalThrowModel.js +0 -11
  25. package/tests/target-objects/CountModel.js +0 -46
  26. package/tests/target-objects/DomModel.js +0 -37
  27. package/tests/target-objects/MixedContents.js +0 -33
  28. package/tests/target-objects/MutationModel.js +0 -27
  29. package/tests/target-objects/ObjectCompositionModel.js +0 -34
  30. package/tests/target-objects/PolySpoofableInner.js +0 -30
  31. package/tests/target-objects/PolySpoofableOuter.js +0 -52
  32. package/tests/target-objects/PropertiesModel.js +0 -47
  33. package/tests/target-objects/Returner.js +0 -9
  34. package/tests/target-objects/SearchModel.js +0 -25
  35. package/tests/target-objects/SortModel.js +0 -91
  36. package/tests/target-objects/SpoofCaller.js +0 -24
  37. package/tests/target-objects/Spoofable.js +0 -36
  38. package/tests/target-objects/SpoofableArgsCaller.js +0 -33
  39. package/tests/target-objects/StateModel.js +0 -34
  40. package/tests/target-objects/StaticModel.js +0 -17
  41. package/tests/target-objects/TestableModel.js +0 -47
  42. package/tests/topic-tests/TopicTests.outward-rt.js +0 -354
@@ -1,920 +0,0 @@
1
- /**/
2
-
3
- import { TotalComparer } from "../../system/TotalComparer.js";
4
- import { Spoofable } from "../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 objects", () => {
439
- it("Should return false when given an object and a value.", /* good */ () => {
440
- /* Arrange. */
441
- let target = new TotalComparer();
442
-
443
- let left = { seven: 7 };
444
- let right = 7;
445
-
446
- /* Act. */
447
- let actual = target.compare(left, right);
448
-
449
- /* Assert. */
450
- expect(actual).to.be.false;
451
- });
452
-
453
- it("Should return true when given the same object for both args.", /* good */ () => {
454
- /* Arrange. */
455
- let target = new TotalComparer();
456
-
457
- let sameObject = { a: "b" };
458
-
459
- let left = sameObject;
460
- let right = sameObject;
461
-
462
- /* Act. */
463
- let actual = target.compare(left, right);
464
-
465
- /* Assert. */
466
- expect(actual).to.be.true;
467
- });
468
-
469
- it("Should return false when given two flat objects, if different member values.", /* good */ () => {
470
- /* Arrange. */
471
- let target = new TotalComparer();
472
-
473
- let left = { a: "b", d: "e" };
474
- let right = { a: "c", d: "e" };
475
-
476
- /* Act. */
477
- let actual = target.compare(left, right);
478
-
479
- /* Assert. */
480
- expect(actual).to.be.false;
481
- });
482
-
483
- it("Should return false when given two flat objects, if `actual` missing a member.", /* good */ () => {
484
- /* Arrange. */
485
- let target = new TotalComparer();
486
-
487
- let left = { a: "b", d: "e" };
488
- let right = { a: "b" };
489
-
490
- /* Act. */
491
- let actual = target.compare(left, right);
492
-
493
- /* Assert. */
494
- expect(actual).to.be.false;
495
- });
496
-
497
- it("Should return false when given two flat objects, if extra `actual` member.", /* good */ () => {
498
- /* Arrange. */
499
- let target = new TotalComparer();
500
-
501
- let left = { a: "b" };
502
- let right = { a: "b", d: "e" };
503
-
504
- /* Act. */
505
- let actual = target.compare(left, right);
506
-
507
- /* Assert. */
508
- expect(actual).to.be.false;
509
- });
510
-
511
- it("Should return false when given two flat objects, if different members.", /* good */ () => {
512
- /* Arrange. */
513
- let target = new TotalComparer();
514
-
515
- let left = { a: "b" };
516
- let right = { c: "b" };
517
-
518
- /* Act. */
519
- let actual = target.compare(left, right);
520
-
521
- /* Assert. */
522
- expect(actual).to.be.false;
523
- });
524
-
525
- it("Should return true when given two flat objects, if same member values.", /* good */ () => {
526
- /* Arrange. */
527
- let target = new TotalComparer();
528
-
529
- let left = { a: "b", d: "e" };
530
- let right = { a: "b", d: "e" };
531
-
532
- /* Act. */
533
- let actual = target.compare(left, right);
534
-
535
- /* Assert. */
536
- expect(actual).to.be.true;
537
- });
538
-
539
- it("Should return false when given two deep objects with different object members.", /* good */ () => {
540
- /* Arrange. */
541
- let target = new TotalComparer();
542
-
543
- let left = { a: "b", c: { d: "e" } };
544
- let right = { a: "b", c: { f: "g" } };
545
-
546
- /* Act. */
547
- let actual = target.compare(left, right);
548
-
549
- /* Assert. */
550
- expect(actual).to.be.false;
551
- });
552
-
553
- it("Should return false when given two deep objects, if the `actual` is missing a leaf value.", /* good */ () => {
554
- /* Arrange. */
555
- let target = new TotalComparer();
556
-
557
- let left = { a: "b", c: { d: "e", f: "g" } };
558
- let right = { a: "b", c: { f: "g" } };
559
-
560
- /* Act. */
561
- let actual = target.compare(left, right);
562
-
563
- /* Assert. */
564
- expect(actual).to.be.false;
565
- });
566
-
567
- it("Should return false when given two deep objects, if the `actual` has an extra leaf value.", /* good */ () => {
568
- /* Arrange. */
569
- let target = new TotalComparer();
570
-
571
- let left = { a: "b", c: { d: "e" } };
572
- let right = { a: "b", c: { d: "e", f: "g" } };
573
-
574
- /* Act. */
575
- let actual = target.compare(left, right);
576
-
577
- /* Assert. */
578
- expect(actual).to.be.false;
579
- });
580
-
581
- it("Should return true when given two deep objects with equivalent members.", /* good */ () => {
582
- /* Arrange. */
583
- let target = new TotalComparer();
584
-
585
- let left = { a: "b", c: { d: "e" } };
586
- let right = { a: "b", c: { d: "e" } };
587
-
588
- /* Act. */
589
- let actual = target.compare(left, right);
590
-
591
- /* Assert. */
592
- expect(actual).to.be.true;
593
- });
594
-
595
- it("Should return false when given two flat objects with different method members.", /* good */ () => {
596
- /* Arrange. */
597
- let target = new TotalComparer();
598
-
599
- let left = { a: "a", b: function () { return true; } };
600
- let right = { a: "a", b: function () { return false; } };
601
-
602
- /* Act. */
603
- let actual = target.compare(left, right);
604
-
605
- /* Assert. */
606
- expect(actual).to.be.false;
607
- });
608
-
609
- it("Should return true when given two flat objects with equivalent method members.", /* good */ () => {
610
- /* Arrange. */
611
- let target = new TotalComparer();
612
-
613
- let left = { a: "a", b: function () { return true; } };
614
- let right = { a: "a", b: function () { return true; } };
615
-
616
- /* Act. */
617
- let actual = target.compare(left, right);
618
-
619
- /* Assert. */
620
- expect(actual).to.be.true;
621
- });
622
- });
623
-
624
- describe("Comparing functions / methods", () => {
625
- it("Should return false when given a function and something else.", /* good */ () => {
626
- /* Arrange. */
627
- let target = new TotalComparer();
628
-
629
- let left = function () { };
630
- let right = 12;
631
-
632
- /* Act. */
633
- let actual = target.compare(left, right);
634
-
635
- /* Assert. */
636
- expect(actual).to.be.false;
637
- });
638
-
639
- it("Should return false when given two functions with different definitions.", /* good */ () => {
640
- /* Arrange. */
641
- let target = new TotalComparer();
642
-
643
- let left = function () { };
644
- let right = function (a) { return -a; };
645
-
646
- /* Act. */
647
- let actual = target.compare(left, right);
648
-
649
- /* Assert. */
650
- expect(actual).to.be.false;
651
- });
652
-
653
- it("Should return false when given two arrow functions with different definitions.", /* good */ () => {
654
- /* Arrange. */
655
- let target = new TotalComparer();
656
-
657
- let left = () => { };
658
- let right = (a) => { return -a; };
659
-
660
- /* Act. */
661
- let actual = target.compare(left, right);
662
-
663
- /* Assert. */
664
- expect(actual).to.be.false;
665
- });
666
-
667
- it("Should return false when given equivalent functions with different definition styles.", /* good */ () => {
668
- /* Arrange. */
669
- let target = new TotalComparer();
670
-
671
- let left = () => { };
672
- let right = function () { };
673
-
674
- /* Act. */
675
- let actual = target.compare(left, right);
676
-
677
- /* Assert. */
678
- expect(actual).to.be.false;
679
- });
680
-
681
- it("Should return false when given equivalent functions with different names.", /* good */ () => {
682
- /* Arrange. */
683
- let target = new TotalComparer();
684
-
685
- let left = function first() { };
686
- let right = function second() { };
687
-
688
- /* Act. */
689
- let actual = target.compare(left, right);
690
-
691
- /* Assert. */
692
- expect(actual).to.be.false;
693
- });
694
-
695
- it("Should return false when given two methods with different definitions.", /* good */ () => {
696
- /* Arrange. */
697
- let target = new TotalComparer();
698
-
699
- let left = Spoofable.prototype.spoofNumber;
700
- let right = Spoofable.prototype.spoofText;
701
-
702
- /* Act. */
703
- let actual = target.compare(left, right);
704
-
705
- /* Assert. */
706
- expect(actual).to.be.false;
707
- });
708
-
709
- it("Should return true when given two functions with the same definition.", /* good */ () => {
710
- /* Arrange. */
711
- let target = new TotalComparer();
712
-
713
- let left = function () { };
714
- let right = function () { };
715
-
716
- /* Act. */
717
- let actual = target.compare(left, right);
718
-
719
- /* Assert. */
720
- expect(actual).to.be.true;
721
- });
722
-
723
- it("Should return true when given two arrow functions with the same definition.", /* good */ () => {
724
- /* Arrange. */
725
- let target = new TotalComparer();
726
-
727
- let left = () => { };
728
- let right = () => { };
729
-
730
- /* Act. */
731
- let actual = target.compare(left, right);
732
-
733
- /* Assert. */
734
- expect(actual).to.be.true;
735
- });
736
-
737
- it("Should return true when given two methods with the same definition.", /* good */ () => {
738
- /* Arrange. */
739
- let target = new TotalComparer();
740
-
741
- let left = Spoofable.prototype.spoofText;
742
- let right = Spoofable.prototype.spoofText;
743
-
744
- /* Act. */
745
- let actual = target.compare(left, right);
746
-
747
- /* Assert. */
748
- expect(actual).to.be.true;
749
- });
750
-
751
- it("Should return true when given a function and method with the same definition.", /* good */ () => {
752
- /* Arrange. */
753
- let target = new TotalComparer();
754
-
755
- let left = function spoofNumber(a, b) { return a + b; };
756
- let right = Spoofable.prototype.spoofNumber;
757
-
758
- /* Act. */
759
- let actual = target.compare(left, right);
760
-
761
- /* Assert. */
762
- expect(actual).to.be.true;
763
- });
764
- });
765
-
766
- describe("Comparing Sets", () => {
767
- it("Should return false when given a Set and something else.", /* good */ () => {
768
- /* Arrange. */
769
- let target = new TotalComparer();
770
-
771
- let left = new Set([ 1, 2, 6 ]);
772
- let right = { a: [ 1, 2, 6 ] };
773
-
774
- /* Act. */
775
- let actual = target.compare(left, right);
776
-
777
- /* Assert. */
778
- expect(actual).to.be.false;
779
- });
780
-
781
- it("Should return false when given differing Sets.", /* good */ () => {
782
- /* Arrange. */
783
- let target = new TotalComparer();
784
-
785
- let left = new Set([ 1, 2, 7 ]);
786
- let right = new Set([ 1, 2, 8 ]);
787
-
788
- /* Act. */
789
- let actual = target.compare(left, right);
790
-
791
- /* Assert. */
792
- expect(actual).to.be.false;
793
- });
794
-
795
- it("Should return false when given Sets that differ in size.", /* good */ () => {
796
- /* Arrange. */
797
- let target = new TotalComparer();
798
-
799
- let left = new Set([ 1, 2, 7 ]);
800
- let right = new Set([ 1, 2, 7, 8 ]);
801
-
802
- /* Act. */
803
- let actual = target.compare(left, right);
804
-
805
- /* Assert. */
806
- expect(actual).to.be.false;
807
- });
808
-
809
- it("Should return true when given equivalent Sets.", /* good */ () => {
810
- /* Arrange. */
811
- let target = new TotalComparer();
812
-
813
- let left = new Set([ 1, 2, 7 ]);
814
- let right = new Set([ 1, 2, 7 ]);
815
-
816
- /* Act. */
817
- let actual = target.compare(left, right);
818
-
819
- /* Assert. */
820
- expect(actual).to.be.true;
821
- });
822
-
823
- it("Should return true when given equivalent Sets with complex contents.", /* good */ () => {
824
- /* Arrange. */
825
- let target = new TotalComparer();
826
-
827
- let left = new Set([ { a: 1, b: "2" }, new Map(), "c" ]);
828
- let right = new Set([ { a: 1, b: "2" }, new Map(), "c" ]);
829
-
830
- /* Act. */
831
- let actual = target.compare(left, right);
832
-
833
- /* Assert. */
834
- expect(actual).to.be.true;
835
- });
836
- });
837
-
838
- describe("Comparing complex objects", () => {
839
- it("Should return false when given differing complex objects.", /* good */ () => {
840
- /* Arrange. */
841
- let target = new TotalComparer();
842
-
843
- let left = { a: new Map([ [ 1, "7" ], [ 2, "8" ] ]), b: [ 6, 2, 10, () => { return true; } ], c: true };
844
- let right = {
845
- a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
846
- b: [ 6, 2, 11, () => { return true; } ],
847
- c: true
848
- };
849
-
850
- /* Act. */
851
- let actual = target.compare(left, right);
852
-
853
- /* Assert. */
854
- expect(actual).to.be.false;
855
- });
856
-
857
- it("Should return true when given equivalent complex objects.", /* good */ () => {
858
- /* Arrange. */
859
- let target = new TotalComparer();
860
-
861
- let left = { a: new Map([ [ 1, "7" ], [ 2, "8" ] ]), b: [ 6, 2, 10, () => { return true; } ], c: true };
862
- let right = {
863
- a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
864
- b: [ 6, 2, 10, () => { return true; } ],
865
- c: true
866
- };
867
-
868
- /* Act. */
869
- let actual = target.compare(left, right);
870
-
871
- /* Assert. */
872
- expect(actual).to.be.true;
873
- });
874
-
875
- it("Should return false when given differing complex objects including Sets.", /* good */ () => {
876
- /* Arrange. */
877
- let target = new TotalComparer();
878
-
879
- let left = {
880
- a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
881
- b: [ new Set([ 6, 2, 10 ]), () => { return true; } ],
882
- c: true
883
- };
884
- let right = {
885
- a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
886
- b: [ new Set([ 6, 2, 11 ]), () => { return true; } ],
887
- c: true
888
- };
889
-
890
- /* Act. */
891
- let actual = target.compare(left, right);
892
-
893
- /* Assert. */
894
- expect(actual).to.be.false;
895
- });
896
-
897
- it("Should return true when given equivalent complex objects including Sets.", /* good */ () => {
898
- /* Arrange. */
899
- let target = new TotalComparer();
900
-
901
- let left = {
902
- a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
903
- b: [ new Set([ 6, 2, 10 ]), () => { return true; } ],
904
- c: true
905
- };
906
- let right = {
907
- a: new Map([ [ 1, "7" ], [ 2, "8" ] ]),
908
- b: [ new Set([ 6, 2, 10 ]), () => { return true; } ],
909
- c: true
910
- };
911
-
912
- /* Act. */
913
- let actual = target.compare(left, right);
914
-
915
- /* Assert. */
916
- expect(actual).to.be.true;
917
- });
918
- });
919
- });
920
- });