1 | var assert = require('chai').assert;
|
2 | var Multimap = require('..');
|
3 |
|
4 | var map = new Multimap([['a', 'one'], ['b', 1], ['a', 'two'], ['b', 2]]);
|
5 |
|
6 | assert.equal(map.size, 4);
|
7 |
|
8 | assert.equal(map.get('a').length, 2);
|
9 | assert.equal(map.get('a')[0], 'one');
|
10 | assert.equal(map.get('a')[1], 'two');
|
11 |
|
12 | assert.equal(map.get('b').length, 2);
|
13 | assert.equal(map.get('b')[0], 1);
|
14 | assert.equal(map.get('b')[1], 2);
|
15 |
|
16 |
|
17 | assert(map.has('a'), "map contains key 'a'");
|
18 | assert(!map.has('foo'), "map does not contain key 'foo'");
|
19 |
|
20 | assert(map.has('a', 'one'), "map contains entry 'a'=>'one'");
|
21 | assert(!map.has('b', 3), "map does not contain entry 'b'=>3");
|
22 |
|
23 | map.set('a', 'three');
|
24 |
|
25 | assert.equal(map.size, 5);
|
26 | assert.equal(map.get('a').length, 3);
|
27 |
|
28 | map.set('b', 3, 4);
|
29 | assert.equal(map.size, 7);
|
30 |
|
31 | assert(map.delete('a', 'three'), "delete 'a'=>'three'");
|
32 | assert.equal(map.size, 6);
|
33 | assert(!map.delete('x'), "empty 'x' for delete");
|
34 | assert(!map.delete('a', 'four'), "no such entry 'a'=>'four'");
|
35 | assert(map.delete('b'), "delete all 'b'");
|
36 |
|
37 | assert.equal(map.size, 2);
|
38 |
|
39 | map.set('b', 1, 2);
|
40 | assert.equal(map.size, 4);
|
41 |
|
42 | var cnt = 0;
|
43 | map.forEach(function (value, key) {
|
44 |
|
45 | cnt++;
|
46 | assert(key == 'a' || key == 'b', "key must be either 'a' or 'b'");
|
47 | });
|
48 |
|
49 | assert.equal(cnt, 4);
|
50 |
|
51 | cnt = 0;
|
52 | map.forEachEntry(function (entry, key) {
|
53 |
|
54 | cnt++;
|
55 | assert(key == 'a' || key == 'b', "key must be either 'a' or 'b'");
|
56 | assert.equal(entry.length , 2);
|
57 | });
|
58 |
|
59 | assert.equal(cnt, 2);
|
60 |
|
61 |
|
62 | var keys = map.keys();
|
63 | assert.equal(keys.length, 2);
|
64 | assert.equal(keys[0], 'a');
|
65 | assert.equal(keys[1], 'b');
|
66 |
|
67 | var values = map.values();
|
68 | assert.equal(values.length, 4);
|
69 |
|
70 | map.clear();
|
71 |
|
72 | assert.equal(map.size, 0);
|
73 |
|