aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj18
-rw-r--r--challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj6
2 files changed, 20 insertions, 4 deletions
diff --git a/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj b/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj
index 7a33bbec1a..8de084f8c1 100644
--- a/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj
+++ b/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj
@@ -3,11 +3,25 @@
;;;
; Task description for TASK #1 › Add Binary
;;;
-(def DEFAULT-INPUT [11 1])
+(def DEFAULT-INPUT ["11" "1"])
+
+(defn binstr->num
+ [s]
+ (Long/parseLong s 2))
+
+(defn num->binstr
+ [n]
+ (Long/toString n 2))
+
+(defn add-binary
+ [& binstrs]
+ (->> binstrs
+ (transduce (map binstr->num) +)
+ num->binstr))
(defn -main
"Run Task 1 with a given input A B, defaulting to the first example from the
task description."
[& args]
(let [[A B] (or args DEFAULT-INPUT)]
- ))
+ (println (add-binary A B))))
diff --git a/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj b/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj
index 037e36191e..93d9b2b9de 100644
--- a/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj
+++ b/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj
@@ -1,7 +1,9 @@
(ns tw.weekly.c140.t1-test
(:require [clojure.test :refer [deftest is testing]]
- [tw.weekly.c140.t1 :refer []]))
+ [tw.weekly.c140.t1 :refer [add-binary]]))
(deftest examples
(testing "Examples from description"
- ))
+ (is (= "100" (add-binary "11" "1")))
+ (is (= "110" (add-binary "101" "1")))
+ (is (= "111" (add-binary "100" "11")))))