// language_features_test.el — tests for new operators and builtins // 1. Modulo operator let m = 17 % 5 println(int_to_str(m)) // 2. Bitwise ops let flags_and = 10 & 12 let flags_xor = 10 ^ 12 let flags_shl = 1 << 3 let flags_shr = 16 >> 2 println(int_to_str(flags_and)) println(int_to_str(flags_xor)) println(int_to_str(flags_shl)) println(int_to_str(flags_shr)) // 3. Math trig let sin0 = math_sin(0.0) let cos0 = math_cos(0.0) let pi_val = math_pi() println(float_to_str(sin0)) println(float_to_str(cos0)) println(float_to_str(pi_val)) // 4. String padding let padded = str_pad_left("42", 5, "0") println(padded) let padded_r = str_pad_right("hi", 5, ".") println(padded_r) // 5. str_format let tmpl = "Hello {name}, you are {age} years old!" let data = {"name": "Will", "age": "30"} let formatted = str_format(tmpl, data) println(formatted) // 6. format_float let ff = format_float(3.14159, 2) println(ff) // 7. Time let ts = time_now_utc() let parts = time_to_parts(ts) let iso_str = time_format(ts, "ISO") println(iso_str) // 8. Time add/diff let ts2 = time_add(ts, 7, "day") let diff = time_diff(ts, ts2, "day") println(int_to_str(diff)) // 9. List range let rng = list_range(0, 5) println(list_join(rng, ",")) // 10. Stack push/pop let s0 = stack_new() let s1 = stack_push(s0, 10) let s2 = stack_push(s1, 20) let top = stack_peek(s2) let s3 = stack_pop(s2) println(int_to_str(top)) // 11. Queue enqueue/dequeue let q0 = queue_new() let q1 = queue_enqueue(q0, "first") let q2 = queue_enqueue(q1, "second") let front = queue_peek(q2) let q3 = queue_dequeue(q2) println(front) // 12. Decimal round let rounded = decimal_round(3.14159, 2) println(float_to_str(rounded)) // 13. int_to_float / float_to_int let fi = int_to_float(42) let if_ = float_to_int(3.9) println(float_to_str(fi)) println(int_to_str(if_)) // 14. is_nil / unwrap_or let n = unwrap_or(is_nil(42), false) println(bool_to_str(n)) // 15. list_push, list_pop, list_range let lst = list_new() let lst2 = list_push(lst, 100) let lst3 = list_push(lst2, 200) let last_elem = list_peek_last(lst3) println(int_to_str(last_elem)) // 16. Char ops let char_a = str_char_at("hello", 1) let code_e = str_char_code("hello", 1) let ch_from = str_from_char_code(65) println(char_a) println(int_to_str(code_e)) println(ch_from) // Done println("all tests complete")