|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 "use strict"; |
|
5 |
|
6 Cu.import("resource://services-common/utils.js"); |
|
7 |
|
8 const EMPTY = new Set(); |
|
9 const A = new Set(["a"]); |
|
10 const ABC = new Set(["a", "b", "c"]); |
|
11 const ABCD = new Set(["a", "b", "c", "d"]); |
|
12 const BC = new Set(["b", "c"]); |
|
13 const BCD = new Set(["b", "c", "d"]); |
|
14 const FGH = new Set(["f", "g", "h"]); |
|
15 const BCDFGH = new Set(["b", "c", "d", "f", "g", "h"]); |
|
16 |
|
17 let union = CommonUtils.union; |
|
18 let difference = CommonUtils.difference; |
|
19 let intersection = CommonUtils.intersection; |
|
20 let setEqual = CommonUtils.setEqual; |
|
21 |
|
22 function do_check_setEqual(a, b) { |
|
23 do_check_true(setEqual(a, b)); |
|
24 } |
|
25 |
|
26 function do_check_not_setEqual(a, b) { |
|
27 do_check_false(setEqual(a, b)); |
|
28 } |
|
29 |
|
30 function run_test() { |
|
31 run_next_test(); |
|
32 } |
|
33 |
|
34 add_test(function test_setEqual() { |
|
35 do_check_setEqual(EMPTY, EMPTY); |
|
36 do_check_setEqual(EMPTY, new Set()); |
|
37 do_check_setEqual(A, A); |
|
38 do_check_setEqual(A, new Set(["a"])); |
|
39 do_check_setEqual(new Set(["a"]), A); |
|
40 do_check_not_setEqual(A, EMPTY); |
|
41 do_check_not_setEqual(EMPTY, A); |
|
42 do_check_not_setEqual(ABC, A); |
|
43 run_next_test(); |
|
44 }); |
|
45 |
|
46 add_test(function test_union() { |
|
47 do_check_setEqual(EMPTY, union(EMPTY, EMPTY)); |
|
48 do_check_setEqual(ABC, union(EMPTY, ABC)); |
|
49 do_check_setEqual(ABC, union(ABC, ABC)); |
|
50 do_check_setEqual(ABCD, union(ABC, BCD)); |
|
51 do_check_setEqual(ABCD, union(BCD, ABC)); |
|
52 do_check_setEqual(BCDFGH, union(BCD, FGH)); |
|
53 run_next_test(); |
|
54 }); |
|
55 |
|
56 add_test(function test_difference() { |
|
57 do_check_setEqual(EMPTY, difference(EMPTY, EMPTY)); |
|
58 do_check_setEqual(EMPTY, difference(EMPTY, A)); |
|
59 do_check_setEqual(EMPTY, difference(A, A)); |
|
60 do_check_setEqual(ABC, difference(ABC, EMPTY)); |
|
61 do_check_setEqual(ABC, difference(ABC, FGH)); |
|
62 do_check_setEqual(A, difference(ABC, BCD)); |
|
63 run_next_test(); |
|
64 }); |
|
65 |
|
66 add_test(function test_intersection() { |
|
67 do_check_setEqual(EMPTY, intersection(EMPTY, EMPTY)); |
|
68 do_check_setEqual(EMPTY, intersection(ABC, EMPTY)); |
|
69 do_check_setEqual(EMPTY, intersection(ABC, FGH)); |
|
70 do_check_setEqual(BC, intersection(ABC, BCD)); |
|
71 run_next_test(); |
|
72 }); |