42 lines
718 B
ChaiScript
42 lines
718 B
ChaiScript
// Map function
|
|
|
|
{
|
|
assert_equal([true, false, true], map([1,2,3], odd))
|
|
|
|
var v = [1, 2, 3];
|
|
var y = map(v, fun(s) { s*2; });
|
|
y[0] = 1;
|
|
assert_equal(1, y[0]);
|
|
}
|
|
|
|
|
|
// Map objects
|
|
|
|
{
|
|
var m = ["a":1, "b":2];
|
|
|
|
assert_equal(1, m.count("a"))
|
|
assert_equal(0, m.count("c"))
|
|
assert_equal(1, m.erase("a"))
|
|
assert_equal(1, m.size())
|
|
assert_equal(0, m.erase("a"))
|
|
|
|
assert_equal(1, m.size());
|
|
|
|
var m2 = ["c":3, "b":4]
|
|
m.insert(m2);
|
|
|
|
assert_equal(3, m["c"])
|
|
// The inserted values do not overwrite the existing ones
|
|
assert_equal(2, m["b"])
|
|
assert_equal(2, m.size())
|
|
|
|
var v = "bob";
|
|
|
|
m.insert_ref(Map_Pair("d", v))
|
|
|
|
assert_equal("bob", m["d"])
|
|
v = "bob2"
|
|
assert_equal("bob2", m["d"])
|
|
}
|