···11+// Test Map functionality
22+const map = new Map();
33+44+// Test basic set/get
55+map.set('key1', 'value1');
66+map.set('key2', 42);
77+map.set('key3', true);
88+99+console.log('Map size:', map.size()); // Should be 3
1010+console.log('Get key1:', map.get('key1')); // Should be 'value1'
1111+console.log('Get key2:', map.get('key2')); // Should be 42
1212+console.log('Get key3:', map.get('key3')); // Should be true
1313+1414+// Test has()
1515+console.log('Has key1:', map.has('key1')); // Should be true
1616+console.log('Has missing:', map.has('missing')); // Should be false
1717+1818+// Test delete()
1919+console.log('Delete key2:', map.delete('key2')); // Should be true
2020+console.log('Has key2 after delete:', map.has('key2')); // Should be false
2121+console.log('Map size after delete:', map.size()); // Should be 2
2222+2323+// Test overwrite
2424+map.set('key1', 'newvalue1');
2525+console.log('Get key1 after overwrite:', map.get('key1')); // Should be 'newvalue1'
2626+2727+// Test clear()
2828+map.clear();
2929+console.log('Map size after clear:', map.size()); // Should be 0
3030+console.log('Has key1 after clear:', map.has('key1')); // Should be false
3131+3232+// Test with different key types
3333+map.set(123, 'number key');
3434+map.set(true, 'boolean key');
3535+map.set(null, 'null key');
3636+3737+console.log('Get number key:', map.get(123)); // Should be 'number key'
3838+console.log('Get boolean key:', map.get(true)); // Should be 'boolean key'
3939+console.log('Get null key:', map.get(null)); // Should be 'null key'
4040+console.log('Final map size:', map.size()); // Should be 3
4141+4242+console.log('Map tests completed!');
+48
tests/test_set.js
···11+// Test Set functionality
22+const set = new Set();
33+44+// Test basic add/has
55+set.add('value1');
66+set.add('value2');
77+set.add(42);
88+set.add(true);
99+1010+console.log('Set size:', set.size()); // Should be 4
1111+console.log('Has value1:', set.has('value1')); // Should be true
1212+console.log('Has value2:', set.has('value2')); // Should be true
1313+console.log('Has 42:', set.has(42)); // Should be true
1414+console.log('Has true:', set.has(true)); // Should be true
1515+console.log('Has missing:', set.has('missing')); // Should be false
1616+1717+// Test delete()
1818+console.log('Delete value2:', set.delete('value2')); // Should be true
1919+console.log('Has value2 after delete:', set.has('value2')); // Should be false
2020+console.log('Set size after delete:', set.size()); // Should be 3
2121+2222+// Test adding duplicates (should not increase size)
2323+set.add('value1'); // Adding duplicate
2424+console.log('Set size after duplicate add:', set.size()); // Should still be 3
2525+2626+// Test with different value types
2727+set.add(123);
2828+set.add(null);
2929+set.add({key: 'object'});
3030+3131+console.log('Has 123:', set.has(123)); // Should be true
3232+console.log('Has null:', set.has(null)); // Should be true
3333+console.log('Has object:', set.has({key: 'object'})); // Should be true
3434+console.log('Final set size:', set.size()); // Should be 7
3535+3636+// Test clear()
3737+set.clear();
3838+console.log('Set size after clear:', set.size()); // Should be 0
3939+console.log('Has value1 after clear:', set.has('value1')); // Should be false
4040+4141+// Test chaining
4242+set.add('a').add('b').add('c');
4343+console.log('Set size after chaining:', set.size()); // Should be 3
4444+console.log('Has a:', set.has('a')); // Should be true
4545+console.log('Has b:', set.has('b')); // Should be true
4646+console.log('Has c:', set.has('c')); // Should be true
4747+4848+console.log('Set tests completed!');