From db5da6cdc78cce6634f28c26f8a230683273908a Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Sun, 15 Nov 2020 16:15:12 +0300 Subject: feature(core): implement `reduced` --- tests/core.fnl | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests') diff --git a/tests/core.fnl b/tests/core.fnl index 2481f02..3939458 100644 --- a/tests/core.fnl +++ b/tests/core.fnl @@ -315,6 +315,19 @@ (assert-not (pcall reduce-kv #(+ $1 $3))) (assert-not (pcall reduce-kv))) + (testing "reduced" + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) [1]) 1) + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) [1 2]) 3) + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) [1 2 3 4]) 10) + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) [1 2 3 4 5]) 15) + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) [1 2 3 4 5 6]) -1) + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) 10 [1]) 11) + (assert-eq (reduce #(if (> $1 10) (reduced -1) (+ $1 $2)) 10 [1 2]) -1) + + (assert-eq (reduce-kv (fn [res _ v] (if (> res 10) (reduced -1) (+ res v))) 0 {:a 1 :b 2}) 3) + (assert-eq (reduce-kv (fn [res _ v] (if (> res 10) (reduced -1) (+ res v))) 0 {:a 10 :b 2}) 12) + (assert-eq (reduce-kv (fn [res _ v] (if (> res 10) (reduced -1) (+ res v))) 1 {:a 10 :b 2}) -1)) + (testing "assoc" (assert-not (pcall assoc)) (assert-not (pcall assoc {})) -- cgit v1.2.3