using Invercargill; using Invercargill.DataStructures; using InvercargillJson; void promotion_tests() { Test.add_func("/invercargill/promotions/uint8_to_binarydata", () => { var data = new Vector(); data.add(1); data.add(9); data.add(7); var base64 = data.promote_to().to_base64(); assert_cmpstr("AQkH", CompareOperator.EQ, base64); }); Test.add_func("/invercargill/promotions/binarydata_to_binarydata", () => { var data = Wrap.base64_string("AQAA").as_enumerable(); var new_data = data.promote_to(); assert_true(data == new_data); }); Test.add_func("/invercargill/promotion/json", () => { var json_str = """[ "Glengarry", "Gladstone", "Strathern", "Richmond", "Georgetown" ]"""; try { var suburbs = new JsonElement.from_string(json_str) .assert_as() .where(e => e.assert_as().has_prefix("G")); print(@"I AM: $(suburbs.get_type().name())\n"); var names = suburbs .as_strings() .to_array(); assert_cmpuint(3, CompareOperator.EQ, suburbs.count()); assert_cmpint(3, CompareOperator.EQ, names.length); assert_cmpstr("Glengarry", CompareOperator.EQ, names[0]); assert_cmpstr("Gladstone", CompareOperator.EQ, names[1]); assert_cmpstr("Georgetown", CompareOperator.EQ, names[2]); } catch(Error e) { assert_no_error(e); } }); }