Skip to content

Commit eed030a

Browse files
authored
Merge pull request #30 from jake-jake-jake/jcd-partial
Add test for partial
2 parents 5bca2b0 + 1c35984 commit eed030a

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
(ns clojure.core-test.partial
2+
(:require [clojure.test :as t]))
3+
4+
(defn test-fn [& args]
5+
(into [] args))
6+
7+
(t/deftest test-partial
8+
(let [simple-use (partial inc 2)]
9+
(t/is (= 3 (simple-use))))
10+
(let [lazily-evaluated (partial inc 2 3)]
11+
#?(:clj (t/is (thrown? Exception (lazily-evaluated)))
12+
:cljs (t/is (thrown? js/Error (lazily-evaluated)))))
13+
(let [variadic (partial test-fn 1 2 3)]
14+
(t/is (= [1 2 3 4] (variadic 4)))
15+
(t/is (= [1 2 3 4 5] (variadic 4 5))))
16+
(let [infinite-sequence (partial #(take %2 %1) (range))]
17+
(t/is (= '(0 1 2 3 4) (infinite-sequence 5)))
18+
(t/is (= '(0 1 2) (infinite-sequence 3))))
19+
(let [partial-partial ((partial partial) test-fn)
20+
pppartial (partial partial-partial :inner)]
21+
(t/is (= [:inner :outer] (partial-partial :inner :outer)))
22+
(t/is (= [:inner :outer] (pppartial :outer))))
23+
(let [seq-of-partials (map #(partial * %1 %2) (range) (range))]
24+
(t/is (= (map #(* % % %) (range 5))
25+
(map #(%1 %2) seq-of-partials (range 5))))))

0 commit comments

Comments
 (0)