(ns fold-length.tests
  (require
    [clojure.test :refer [deftest testing are is run-tests]]
    [fold-length :as sut]))

(deftest fold-length-tests
  (testing "Given an empty collection it must return 0"
    (is (zero? (sut/fold-length []))))
  (testing "Given a repeated single value it must return the number of times the value is repeated"
    (are [number] (= number (sut/fold-length (repeat number \q)))
    0
    1
    2
    11
    1010))
  (testing "Given a string it must return the number of characters in it"
    (are [s] (= (count s) (sut/fold-length (seq s)))
      "Mike Harris"
      "clojure"
      "something, something, dark side")))

(run-tests)