54 lines
1.9 KiB
Plaintext
54 lines
1.9 KiB
Plaintext
@pragma implicit off
|
|
|
|
@include "tap.inc";
|
|
|
|
BEGIN {
|
|
@local v, v2, v3, m, m2, js;
|
|
|
|
|
|
v = json::parse("{\"a\":1,\"b\":true,\"c\":null,\"d\":[2,3],\"e\":{\"x\":\"y\"}}");
|
|
|
|
tap_ensure(hawk::type(v), hawk::VAL_MAP, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v.a, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v.b, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(hawk::isnil(v.c), 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(hawk::type(v.d), hawk::VAL_ARRAY, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v.d[1], 2, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v.d[2], 3, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v.e.x, "y", @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
m = hawk::map();
|
|
m["name"] = "hawk";
|
|
m["count"] = 3;
|
|
m["flags"] = hawk::array();
|
|
m["flags"][1] = "fast";
|
|
m["flags"][2] = "small";
|
|
m["nested"] = hawk::map();
|
|
m["nested"]["ok"] = 1;
|
|
m["nested"]["note"] = "hello\n\"world\"";
|
|
js = json::stringify(m);
|
|
m2 = json::parse(js);
|
|
|
|
tap_ensure(m2.name, "hawk", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m2.count, 3, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m2.flags[1], "fast", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m2.flags[2], "small", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m2.nested.ok, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m2.nested.note, "hello\n\"world\"", @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
v2 = json::parse("{\"a\":{\"b\":{\"c\":1}}}");
|
|
tap_ensure(v2.a.b.c, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v2["a"].b["c"], 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
v3 = json::parse("[false,true,null,\"a\\tb\",-12.5]");
|
|
tap_ensure(hawk::type(v3), hawk::VAL_ARRAY, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(hawk::type(v3[1]), hawk::VAL_BOOL, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v3[1], @false, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v3[2], @true, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(hawk::isnil(v3[3]), 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v3[4], "a\tb", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(v3[5], -12.5, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
tap_end();
|
|
}
|