diff options
| -rw-r--r-- | challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj | 15 | ||||
| -rw-r--r-- | challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj | 9 |
2 files changed, 20 insertions, 4 deletions
diff --git a/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj b/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj index fb03cd9b88..54531042fb 100644 --- a/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj +++ b/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj @@ -1,14 +1,23 @@ (ns tw.weekly.c126.t1 - (:require [clojure.edn :as edn])) + (:require [clojure.edn :as edn] + [clojure.string :as str] + [clojure.pprint :refer [cl-format]])) ;;; ; Task description for TASK #1 › Count Numbers ;;; -(def DEFAULT-INPUT []) +(def DEFAULT-INPUT [15]) + +(defn count-numbers + [n] + (let [xf (remove #(str/includes? (str %1) "1")) + ed (eduction xf (range 2 (inc n))) + msg "There are ~a numbers between 1 and ~a that don't contain digit 1.~%~{~a~^, ~}"] + (cl-format nil msg (count (seq ed)) n ed))) (defn -main "Run Task 1 with a given input N, defaulting to the first example from the task description." [& args] (let [[N] (or (some->> args (map edn/read-string)) DEFAULT-INPUT)] - )) + (println (count-numbers N)))) diff --git a/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj b/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj index e234c0c841..9e7089159c 100644 --- a/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj +++ b/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj @@ -1,4 +1,11 @@ (ns tw.weekly.c126-test (:require [clojure.test :refer [deftest is testing]] - #_[tw.weekly.c126.t1 :refer []] + [tw.weekly.c126.t1 :refer [count-numbers]] #_[tw.weekly.c126.t2 :refer []])) + +(deftest task-1 + (testing "Task 1, Count Numbers" + (is (= "There are 8 numbers between 1 and 15 that don't contain digit 1.\n2, 3, 4, 5, 6, 7, 8, 9" + (count-numbers 15))) + (is (= "There are 13 numbers between 1 and 25 that don't contain digit 1.\n2, 3, 4, 5, 6, 7, 8, 9, 20, 22, 23, 24, 25" + (count-numbers 25))))) |
