Create initial project structure with tests and reader

This commit is contained in:
Chris Hapgood
2024-06-06 15:38:31 -04:00
commit 92f61a3b69
8 changed files with 104 additions and 0 deletions

47
test/challenge_test.clj Normal file
View File

@@ -0,0 +1,47 @@
(ns challenge-test
(:require [challenge.core :refer [difference]]
[challenge.readers]
[clojure.test :refer [deftest is testing]]))
(def week0 #st/local-date-range "2024-01-01/P7D")
(def week1 #st/local-date-range "2024-01-08/P7D")
(def week2 #st/local-date-range "2024-01-15/P7D")
(def week3 #st/local-date-range "2024-01-22/P7D")
(def extra #st/local-date-range "2024-01-29/P3D")
(def month0 #st/local-date-range "2024-01-01/P1M")
(deftest unary
(is (= #{week0}
(difference #{week0})))
(testing "compresses results"
(is (= #{month0}
(difference #{week0 week1 week2 week3 extra})))))
(deftest binary
(testing "equals"
(is (= #{}
(difference #{week0} #{week0})))
(is (= #{}
(difference #{week0 week1} #{week0 week1}))))
(testing "overlapped by"
(is (= #{#st/local-date-range "2024-01-01/P4D"}
(difference #{week0}
#{#st/local-date-range "2024-01-05/P10D"})))
(is (= #{#st/local-date-range "2024-01-01/P4D"}
(difference #{week0 week1}
#{#st/local-date-range "2024-01-05/P10D"}))))
(testing "met by"
(is (= #{week0}
(difference #{week0} #{week1}))))
(testing "contains"
(is (= #{week0 #st/local-date-range "2024-01-15/P17D"}
(difference #{month0} #{week1}))))
(testing "during"
(is (= #{}
(difference #{week1} #{month0})))))
(deftest variadic
(is (= #{week0 extra}
(difference #{month0}
#{week1}
#{week2 week3}))))