mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 15:12:12 +00:00
59 lines
1.1 KiB
TypeScript
59 lines
1.1 KiB
TypeScript
import "allocator/arena";
|
|
|
|
function test<K,V>(): void {
|
|
var map = new Map<K,V>();
|
|
|
|
// insert new
|
|
for (let k: K = 0; k < 100; ++k) {
|
|
assert(!map.has(k));
|
|
map.set(k, 10 + <V>k);
|
|
assert(map.has(k));
|
|
assert(map.get(k) == 10 + <V>k);
|
|
}
|
|
assert(map.size == 100);
|
|
|
|
// insert duplicate
|
|
for (let k: K = 0; k < 100; ++k) {
|
|
assert(map.has(k));
|
|
assert(map.get(k) == 10 + <V>k);
|
|
map.set(k, 20 + <V>k);
|
|
assert(map.has(k));
|
|
assert(map.get(k) == 20 + <V>k);
|
|
}
|
|
assert(map.size == 100);
|
|
|
|
// delete
|
|
for (let k: K = 0; k < 50; ++k) {
|
|
assert(map.has(k));
|
|
assert(map.get(k) == 20 + <V>k);
|
|
map.delete(k);
|
|
assert(!map.has(k));
|
|
}
|
|
assert(map.size == 50);
|
|
|
|
// insert + delete
|
|
for (let k: K = 0; k < 50; ++k) {
|
|
assert(!map.has(k));
|
|
map.set(k, 10 + <V>k);
|
|
assert(map.has(k));
|
|
map.delete(k);
|
|
assert(!map.has(k));
|
|
}
|
|
assert(map.size == 50);
|
|
|
|
// clear
|
|
map.clear();
|
|
assert(map.size == 0);
|
|
}
|
|
|
|
test<i8,i32>();
|
|
test<u8,i32>();
|
|
test<i16,i32>();
|
|
test<u16,i32>();
|
|
test<i32,i32>();
|
|
test<u32,i32>();
|
|
test<i64,i32>();
|
|
test<u64,i32>();
|
|
test<f32,i32>();
|
|
test<f64,i32>();
|