46 lines
1.1 KiB
Plaintext
46 lines
1.1 KiB
Plaintext
(module main)
|
|
|
|
(fn empty_values () -> (vec bool)
|
|
(std.vec.bool.empty))
|
|
|
|
(fn pair () -> (vec bool)
|
|
(let values (vec bool) (std.vec.bool.empty))
|
|
(let first (vec bool) (std.vec.bool.append values true))
|
|
(std.vec.bool.append first false))
|
|
|
|
(fn echo ((values (vec bool))) -> (vec bool)
|
|
values)
|
|
|
|
(fn length ((values (vec bool))) -> i32
|
|
(std.vec.bool.len values))
|
|
|
|
(fn at ((values (vec bool)) (i i32)) -> bool
|
|
(std.vec.bool.index values i))
|
|
|
|
(fn call_return_value () -> bool
|
|
(at (echo (pair)) 1))
|
|
|
|
(fn original_len_after_append () -> i32
|
|
(let values (vec bool) (std.vec.bool.empty))
|
|
(let appended (vec bool) (std.vec.bool.append values true))
|
|
(std.vec.bool.len values))
|
|
|
|
(test "vec bool empty length"
|
|
(= (std.vec.bool.len (empty_values)) 0))
|
|
|
|
(test "vec bool append length"
|
|
(= (length (pair)) 2))
|
|
|
|
(test "vec bool index"
|
|
(= (at (pair) 1) false))
|
|
|
|
(test "vec bool append is immutable"
|
|
(= (original_len_after_append) 0))
|
|
|
|
(test "vec bool equality"
|
|
(= (pair) (std.vec.bool.append (std.vec.bool.append (std.vec.bool.empty) true) false)))
|
|
|
|
(fn main () -> i32
|
|
(std.io.print_bool (call_return_value))
|
|
0)
|