MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1import { test, summary } from './helpers.js';
2
3console.log('Map Tests\n');
4
5const map = new Map();
6
7map.set('key1', 'value1');
8map.set('key2', 42);
9map.set('key3', true);
10
11test('map size after set', map.size, 3);
12test('map get string', map.get('key1'), 'value1');
13test('map get number', map.get('key2'), 42);
14test('map get boolean', map.get('key3'), true);
15
16test('map has existing', map.has('key1'), true);
17test('map has missing', map.has('missing'), false);
18
19test('map delete returns true', map.delete('key2'), true);
20test('map has after delete', map.has('key2'), false);
21test('map size after delete', map.size, 2);
22
23map.set('key1', 'newvalue1');
24test('map get after overwrite', map.get('key1'), 'newvalue1');
25
26map.clear();
27test('map size after clear', map.size, 0);
28test('map has after clear', map.has('key1'), false);
29
30map.set(123, 'number key');
31map.set(true, 'boolean key');
32map.set(null, 'null key');
33
34test('map get number key', map.get(123), 'number key');
35test('map get boolean key', map.get(true), 'boolean key');
36test('map get null key', map.get(null), 'null key');
37test('map size with varied keys', map.size, 3);
38
39map.clear();
40map.set('a', 1).set('b', 2).set('c', 3);
41test('map chaining size', map.size, 3);
42test('map chaining get', map.get('b'), 2);
43
44test('map get undefined key', map.get('nonexistent'), undefined);
45test('map delete nonexistent', map.delete('nonexistent'), false);
46
47summary();