Create initial project structure with tests and reader
This commit is contained in:
47
test/challenge_test.clj
Normal file
47
test/challenge_test.clj
Normal 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}))))
|
||||
Reference in New Issue
Block a user