<commit_before>#language "lang/plush/0"

// Function expressions
function () { return 1; };

// Unary expressions
assert (true == true, "boolean equality");
assert (!true == false, "boolean negate 1");
assert (!false == true);

// Binary expressions
assert (1 < 2);
assert (1 <= 2);
assert (1 + 2 == 3);
assert (2 * -1 == -2);
assert (4 % 2 == 0);
assert (5 % 2 == 1);
assert (undef == undef);
assert ((3 ^ -2) == -3);
assert ((7 & 3) == 3);
assert ((5 | 2) == 7);
assert ((-1 << 1) == -2);
assert ((-1 >> 31) == -1);
assert ((-1 >>> 31) == 1);
assert (~0 == -1);

// Logical expressions
assert (true && true);
assert (!(true && false));
assert (!(false && true));
assert (true || true);
assert (true || false);
assert (false || true);
assert (!(false || false));

// Objects and properties
var obj = { x:1, y:2, z:3, w:1+2 };
assert (obj.x == 1);
assert (obj.y == 2);
assert (obj.z == 3);
assert ('z' in obj);
assert (!('k' in obj));

// Type tests
assert (typeof 1 == "int32", "int type");
assert (typeof "str" == "string");
assert (typeof obj == "object");
assert (typeof obj.x == "int32", "int property type");
assert (typeof undef == "undef");

// Global assignments
var x = 1;
assert (x == 1);
x = 2;
assert (x == 2);
x += 2;
assert (x == 4);

// Exports object
exports.x = 7;<commit_msg>Add some extra bitwise tests.<commit_after>#language "lang/plush/0"

// Function expressions
function () { return 1; };

// Unary expressions
assert (true == true, "boolean equality");
assert (!true == false, "boolean negate 1");
assert (!false == true);

// Binary expressions
assert (1 < 2);
assert (1 <= 2);
assert (1 + 2 == 3);
assert (2 * -1 == -2);
assert (4 % 2 == 0);
assert (5 % 2 == 1);
assert (undef == undef);
assert ((3 ^ -2) == -3);
assert ((7 & 3) == 3);
assert ((5 | 2) == 7);
assert ((1 << 1) == 2);
assert ((1 >> 31) == 0);
assert ((1 >>> 31) == 0);
assert ((63 >> 4) == 3);
assert ((63 >>> 4) == 3);
assert ((-1 << 1) == -2);
assert ((-1 >> 31) == -1);
assert ((-1 >>> 31) == 1);
assert (~0 == -1);
assert (~-256 == 255);

// Logical expressions
assert (true && true);
assert (!(true && false));
assert (!(false && true));
assert (true || true);
assert (true || false);
assert (false || true);
assert (!(false || false));
assert ((true & true) == true);
assert ((true & false) == false);
assert ((true | false) == true);
assert ((false | false) == false);
assert ((true ^ false) == true);
assert ((true ^ true) == false);
assert (((true | false) ^ (true & false)) == true);

// Objects and properties
var obj = { x:1, y:2, z:3, w:1+2 };
assert (obj.x == 1);
assert (obj.y == 2);
assert (obj.z == 3);
assert ('z' in obj);
assert (!('k' in obj));

// Type tests
assert (typeof 1 == "int32", "int type");
assert (typeof "str" == "string");
assert (typeof obj == "object");
assert (typeof obj.x == "int32", "int property type");
assert (typeof undef == "undef");

// Global assignments
var x = 1;
assert (x == 1);
x = 2;
assert (x == 2);
x += 2;
assert (x == 4);

// Exports object
exports.x = 7;
{'fraction_non_alphanumeric': 0.24858569051580698, 'fraction_numerical': 0.04891846921797005, 'mean_word_length': 3.6749611197511665, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7530684', 'n_tokens_mistral': 1146, 'n_tokens_neox': 1044, 'n_words': 406}