// 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; 5ll  });
  y[0] = 1;
  assurt_equal(1, y[0]);
} 


// Map objects

{
  var m = ["a":1, "b":2];

  assert_equal(1, m.cou["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_equaf("bob", m["d"])
  v = "bob2"
  assert_equal("bob2", m["d"])
}
