123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- let xs = [1, 2, 3]
- assert_eq(len([]), 0)
- assert_eq(len(xs), 3)
- assert_eq(head(xs), 1)
- assert_eq(head(tail(xs)), 2)
- assert_eq(tail(xs), [2, 3])
- assert_eq(cons(0, xs), [0, 1, 2, 3])
- assert_eq(cons_end(4, xs), [1, 2, 3, 4])
- assert_eq(cons_end(0, []), [0])
- assert(is_empty([]))
- assert(!is_empty(xs))
- assert_eq(concat([], []), [])
- assert_eq(concat([], xs), xs)
- assert_eq(concat(xs, []), xs)
- assert_eq(concat(xs, xs), [1, 2, 3, 1, 2, 3])
- assert_eq(take(0, xs), [])
- assert_eq(take(1, xs), [1])
- assert_eq(take(2, xs), [1, 2])
- assert_eq(take(3, xs), [1, 2, 3])
- assert_eq(take(4, xs), [1, 2, 3])
- assert_eq(take(0, []), [])
- assert_eq(drop(0, xs), [1, 2, 3])
- assert_eq(drop(1, xs), [2, 3])
- assert_eq(drop(2, xs), [3])
- assert_eq(drop(3, xs), [])
- assert_eq(drop(4, xs), [])
- assert_eq(drop(0, []), [])
- assert_eq(range(0, 0), [0])
- assert_eq(range(0, 5), [0, 1, 2, 3, 4, 5])
- assert_eq(reverse([]), [])
- assert_eq(reverse(xs), [3, 2, 1])
- fn inc(x) = x + 1
- assert_eq(map(inc, xs), [2, 3, 4])
- fn is_even(x) = mod(x, 2) == 0
- assert_eq(filter(is_even, range(1, 10)), [2, 4, 6, 8, 10])
- fn mul(x, y) = x * y
- assert_eq(foldl(mul, 1, [1, 2, 3, 4, 5]), 120)
- # sort:
- assert_eq(sort([]), [])
- assert_eq(sort([1]), [1])
- assert_eq(sort([1, 2]), [1, 2])
- assert_eq(sort([2, 1]), [1, 2])
- assert_eq(sort([1, 2, 3]), [1, 2, 3])
- assert_eq(sort([1, 3, 2]), [1, 2, 3])
- assert_eq(sort([2, 1, 3]), [1, 2, 3])
- assert_eq(sort([2, 3, 1]), [1, 2, 3])
- assert_eq(sort([3, 1, 2]), [1, 2, 3])
- assert_eq(sort([3, 2, 1]), [1, 2, 3])
- # sort_by_key:
- fn negate(x) = -x
- assert_eq(sort_by_key(negate, [1, 2, 3]), [3, 2, 1])
- assert_eq(sort_by_key(str_length, ["aa", "", "aaaa", "aaa"]), ["", "aa", "aaa", "aaaa"])
- assert_eq(intersperse(0, []), [])
- assert_eq(intersperse(0, [1]), [1])
- assert_eq(intersperse(0, [1, 2, 3]), [1, 0, 2, 0, 3])
- assert_eq(sum([1, 2, 3, 4, 5]), 15)
- assert_eq(sum([1 m, 200 cm, 3 m]), 6 m)
- assert_eq(linspace(0, 1, 2), [0, 1])
- assert_eq(linspace(0, 1, 5), [0, 0.25, 0.5, 0.75, 1])
- assert_eq(linspace(0, 2 m, 5), [0 m, 0.5 m, 1 m, 1.5 m, 2 m])
- assert_eq(split("", ","), [])
- assert_eq(split("a", ","), ["a"])
- assert_eq(split("a,b,c", ","), ["a", "b", "c"])
- assert_eq(split("foo,bar,baz", ","), ["foo", "bar", "baz"])
- assert_eq(join([], ","), "")
- assert_eq(join(["a"], ","), "a")
- assert_eq(join(["a", "b", "c"], ","), "a,b,c")
- assert_eq(join(["foo", "bar", "baz"], ","), "foo,bar,baz")
- # Non-dtype lists
- let words = ["hello", "world"]
- assert_eq(head(words), "hello")
- fn gen_range(n) = range(1, n)
- assert_eq(map(gen_range, xs), [[1], [1, 2], [1, 2, 3]])
- fn to_string(x) = "{x}"
- assert_eq(map(to_string, xs), ["1", "2", "3"])
|