erlang: round-out BIFs (+40 tests), full plan ticked at 530/530
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 10s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 10s
This commit is contained in:
@@ -1043,6 +1043,88 @@
|
||||
(ev "T1 = ets:new(t13, [set]), T2 = ets:new(t14, [set]), ets:insert(T1, {x, 1}), ets:insert(T2, {x, 99}), [{x, A}] = ets:lookup(T1, x), [{x, B}] = ets:lookup(T2, x), A + B")
|
||||
100)
|
||||
|
||||
;; ── more BIFs ─────────────────────────────────────────────────
|
||||
(er-eval-test "abs neg" (ev "abs(-7)") 7)
|
||||
(er-eval-test "abs pos" (ev "abs(42)") 42)
|
||||
(er-eval-test "abs zero" (ev "abs(0)") 0)
|
||||
|
||||
(er-eval-test "min" (ev "min(3, 5)") 3)
|
||||
(er-eval-test "min equal" (ev "min(7, 7)") 7)
|
||||
(er-eval-test "max" (ev "max(3, 5)") 5)
|
||||
(er-eval-test "max neg" (ev "max(-10, -2)") -2)
|
||||
|
||||
(er-eval-test "tuple_to_list head"
|
||||
(nm (ev "hd(tuple_to_list({a, b, c}))")) "a")
|
||||
(er-eval-test "tuple_to_list len"
|
||||
(ev "length(tuple_to_list({1, 2, 3, 4, 5}))") 5)
|
||||
(er-eval-test "list_to_tuple roundtrip"
|
||||
(ev "tuple_size(list_to_tuple([10, 20, 30]))") 3)
|
||||
|
||||
(er-eval-test "integer_to_list" (ev "integer_to_list(42)") "42")
|
||||
(er-eval-test "integer_to_list neg" (ev "integer_to_list(-99)") "-99")
|
||||
(er-eval-test "list_to_integer" (ev "list_to_integer(\"123\")") 123)
|
||||
(er-eval-test "list_to_integer roundtrip"
|
||||
(ev "list_to_integer(integer_to_list(7))") 7)
|
||||
|
||||
(er-eval-test "is_function fun"
|
||||
(nm (ev "F = fun (X) -> X end, is_function(F)")) "true")
|
||||
(er-eval-test "is_function not"
|
||||
(nm (ev "is_function(42)")) "false")
|
||||
(er-eval-test "is_function arity match"
|
||||
(nm (ev "F = fun (X, Y) -> X + Y end, is_function(F, 2)")) "true")
|
||||
(er-eval-test "is_function arity mismatch"
|
||||
(nm (ev "F = fun (X) -> X end, is_function(F, 5)")) "false")
|
||||
|
||||
;; lists module
|
||||
(er-eval-test "lists:seq 1..5"
|
||||
(ev "length(lists:seq(1, 5))") 5)
|
||||
(er-eval-test "lists:seq head"
|
||||
(ev "hd(lists:seq(10, 20))") 10)
|
||||
(er-eval-test "lists:seq sum"
|
||||
(ev "lists:sum(lists:seq(1, 100))") 5050)
|
||||
(er-eval-test "lists:seq with step"
|
||||
(ev "length(lists:seq(0, 20, 2))") 11)
|
||||
(er-eval-test "lists:seq empty"
|
||||
(get (ev "lists:seq(5, 1)") :tag) "nil")
|
||||
|
||||
(er-eval-test "lists:sum empty" (ev "lists:sum([])") 0)
|
||||
(er-eval-test "lists:sum 5"
|
||||
(ev "lists:sum([1, 2, 3, 4, 5])") 15)
|
||||
|
||||
(er-eval-test "lists:nth 1" (ev "lists:nth(1, [10, 20, 30])") 10)
|
||||
(er-eval-test "lists:nth mid"
|
||||
(nm (ev "lists:nth(2, [a, b, c])")) "b")
|
||||
(er-eval-test "lists:last"
|
||||
(nm (ev "lists:last([a, b, c, d])")) "d")
|
||||
(er-eval-test "lists:last single" (ev "lists:last([42])") 42)
|
||||
|
||||
(er-eval-test "lists:member yes"
|
||||
(nm (ev "lists:member(3, [1, 2, 3, 4])")) "true")
|
||||
(er-eval-test "lists:member no"
|
||||
(nm (ev "lists:member(99, [1, 2, 3])")) "false")
|
||||
|
||||
(er-eval-test "lists:append"
|
||||
(ev "length(lists:append([1, 2], [3, 4, 5]))") 5)
|
||||
|
||||
(er-eval-test "lists:filter"
|
||||
(ev "length(lists:filter(fun (X) -> X > 2 end, [1, 2, 3, 4, 5]))") 3)
|
||||
(er-eval-test "lists:filter sum"
|
||||
(ev "lists:sum(lists:filter(fun (X) -> X rem 2 =:= 0 end, lists:seq(1, 20)))") 110)
|
||||
|
||||
(er-eval-test "lists:any false"
|
||||
(nm (ev "lists:any(fun (X) -> X > 100 end, [1, 2, 3])")) "false")
|
||||
(er-eval-test "lists:any true"
|
||||
(nm (ev "lists:any(fun (X) -> X > 2 end, [1, 2, 3])")) "true")
|
||||
(er-eval-test "lists:all true"
|
||||
(nm (ev "lists:all(fun (X) -> X > 0 end, [1, 2, 3])")) "true")
|
||||
(er-eval-test "lists:all false"
|
||||
(nm (ev "lists:all(fun (X) -> X > 1 end, [1, 2, 3])")) "false")
|
||||
|
||||
(er-eval-test "lists:duplicate len"
|
||||
(ev "length(lists:duplicate(5, foo))") 5)
|
||||
(er-eval-test "lists:duplicate val"
|
||||
(nm (ev "hd(lists:duplicate(3, marker))")) "marker")
|
||||
|
||||
(define
|
||||
er-eval-test-summary
|
||||
(str "eval " er-eval-test-pass "/" er-eval-test-count))
|
||||
|
||||
Reference in New Issue
Block a user