#define IS(x, y) ASSERT2(save_variable(x)==y, sprintf("%O %O", x, save_variable(x))) mapping values = ([ "\n" : "\"\r\"", "\"" : "\"\\\"\"", "\"x\\\n" : "\"\\\"x\\\\\r\"", -1 : "-1", 0 : "0", 1 : "1", 22 : "22", 1.2 : "1.200000", 333 : "333", ({}) : "({})", ({ 0 }) : "({0,})" ]); void do_tests() { mixed x, y; foreach (x, y in values) { IS(x, y); } // arrays foreach (x, y in values) { IS( ({ x }), "({" + y + ",})"); IS( ({ x, x }), "({" + y + "," + y + ",})"); } // mappings foreach (x, y in values) { IS( ([ 1 : x ]), "([1:" + y + ",])"); IS( ([ x : x ]), "([" + y + ":" + y + ",])"); } }