2018-03-23 12:45:29 +01:00
|
|
|
import "allocator/arena";
|
|
|
|
|
2018-01-27 05:35:14 +01:00
|
|
|
// preliminary
|
|
|
|
|
|
|
|
var str: string = "hi, I'm a string";
|
2018-04-07 19:59:26 +03:00
|
|
|
var nullStr: string;
|
2018-01-27 05:35:14 +01:00
|
|
|
|
|
|
|
// exactly once in static memory
|
2018-01-29 07:42:40 +01:00
|
|
|
assert(changetype<usize>(str) == changetype<usize>("hi, I'm a string"));
|
2018-01-27 05:35:14 +01:00
|
|
|
|
|
|
|
assert(str.length == 16);
|
|
|
|
assert(str.charCodeAt(0) == 0x68);
|
|
|
|
assert(str.startsWith("hi"));
|
|
|
|
assert(str.endsWith("string"));
|
|
|
|
assert(str.includes("I'm"));
|
2018-07-10 04:31:51 +03:00
|
|
|
|
|
|
|
assert("".indexOf("") == 0);
|
|
|
|
assert("".indexOf("hi") == -1);
|
|
|
|
assert(str.indexOf("") == 0);
|
2018-01-27 05:35:14 +01:00
|
|
|
assert(str.indexOf(",") == 2);
|
|
|
|
assert(str.indexOf("x") == -1);
|
2018-07-10 04:31:51 +03:00
|
|
|
assert(str.indexOf(",", 2) == 2);
|
|
|
|
assert(str.indexOf(",", 3) == -1);
|
|
|
|
assert(str.indexOf(", I", -1) == 2);
|
|
|
|
|
|
|
|
assert("".lastIndexOf("") == 0);
|
|
|
|
assert("".lastIndexOf("hi") == -1);
|
|
|
|
assert(str.lastIndexOf("") == str.length);
|
|
|
|
assert(str.lastIndexOf(",") == 2);
|
|
|
|
assert(str.lastIndexOf("x") == -1);
|
|
|
|
assert(str.lastIndexOf(",", 2) == 2);
|
|
|
|
assert(str.lastIndexOf(",", 3) == 2);
|
|
|
|
assert(str.lastIndexOf(", I", -1) == 2);
|
2018-01-27 05:35:14 +01:00
|
|
|
|
|
|
|
export function getString(): string {
|
|
|
|
return str;
|
|
|
|
}
|
2018-01-28 23:42:55 +01:00
|
|
|
|
|
|
|
assert(parseInt("0") == 0);
|
|
|
|
assert(parseInt("1") == 1);
|
|
|
|
assert(parseInt("0b101") == 0b101);
|
|
|
|
assert(parseInt("0o707") == 0o707);
|
|
|
|
assert(parseInt("0xf0f") == 0xf0f);
|
|
|
|
assert(parseInt("0xF0F") == 0xf0f);
|
|
|
|
assert(parseInt("011") == 11); // not octal
|
|
|
|
assert(parseInt("0x1g") == 1); // not valid
|
2018-01-29 07:42:40 +01:00
|
|
|
|
|
|
|
assert(parseFloat("0") == 0);
|
|
|
|
assert(parseFloat("1") == 1);
|
|
|
|
assert(parseFloat("0.1") == 0.1);
|
|
|
|
assert(parseFloat(".25") == 0.25);
|
|
|
|
assert(parseFloat(".1foobar") == 0.1);
|
2018-03-23 12:45:29 +01:00
|
|
|
|
|
|
|
var c = "a" + "b";
|
|
|
|
assert(c == "ab");
|
2018-04-04 22:50:40 +03:00
|
|
|
assert(c != "a");
|
|
|
|
assert("" == "");
|
|
|
|
assert("" != nullStr);
|
|
|
|
|
|
|
|
assert("b" > "a");
|
|
|
|
assert("ba" > "a");
|
|
|
|
assert("ba" >= "aa");
|
|
|
|
assert("ba" > "ab");
|
|
|
|
assert(!("ba" < "ab"));
|
|
|
|
|
|
|
|
assert(!("b" < nullStr));
|
|
|
|
assert(!(nullStr < "b"));
|
|
|
|
|
|
|
|
assert("abc" > "");
|
|
|
|
assert("" < "abc");
|
|
|
|
assert("abc" >= "");
|
|
|
|
assert("" <= "abc");
|
|
|
|
assert(!("abc" < ""));
|
|
|
|
assert(!("" > "abc"));
|
|
|
|
assert(!("" < ""));
|
|
|
|
assert(!("" > ""));
|
|
|
|
assert("" >= "");
|
|
|
|
assert("" <= "");
|
2018-04-06 00:19:45 +02:00
|
|
|
|
|
|
|
assert("123".length == 3);
|
2018-04-07 19:59:26 +03:00
|
|
|
|
|
|
|
assert("".repeat(100) == "");
|
|
|
|
assert("a".repeat() == "");
|
|
|
|
assert("a".repeat(1) == "a");
|
|
|
|
assert("a".repeat(2) == "aa");
|
|
|
|
assert("a".repeat(3) == "aaa");
|
|
|
|
assert("ab".repeat(4) == "abababab");
|
|
|
|
assert("a".repeat(5) == "aaaaa");
|
|
|
|
assert("a".repeat(6) == "aaaaaa");
|
|
|
|
assert("a".repeat(7) == "aaaaaaa");
|