X-Git-Url: http://git.jkinsey.net/?p=adventofcode2019.git;a=blobdiff_plain;f=test%2Fadventofcode2019%2Fday14_test.clj;fp=test%2Fadventofcode2019%2Fday14_test.clj;h=1a6bd86b138a7fd01bb0949b17f3ec88a2781b44;hp=0000000000000000000000000000000000000000;hb=e26daef486624d7197207d38b601a4e505e6ef26;hpb=15f6c3bbb172e88ff9a6d393057abc40db9373bf diff --git a/test/adventofcode2019/day14_test.clj b/test/adventofcode2019/day14_test.clj new file mode 100644 index 0000000..1a6bd86 --- /dev/null +++ b/test/adventofcode2019/day14_test.clj @@ -0,0 +1,37 @@ +(ns adventofcode2019.day14-test + (:require [clojure.test :refer :all] + [adventofcode2019.day14 :refer :all])) + +(deftest check-make-graph + (is (= (make-graph ["3 ORE => 2 ABC" + "3 ABC => 1 FUEL"]) + {"ABC" {{"ORE" 3/2} 1} + "FUEL" {{"ABC" 3} 1}}))) + +(deftest simple-exchange + (is (= 3 (find-lowest-exchange-rate {"FUEL" {{"ORE" 1, "ABC" 2, "DEF" 3} 1 + {"ORE" 3} 1 + {"GHI" 5/2} 1}} + "FUEL" "ORE")))) + +(deftest trading-up + (is (= 6 (find-lowest-exchange-rate (make-graph ["3 ORE => 2 ABC" + "3 ABC => 1 FUEL"]) + "FUEL" "ORE")))) + +(deftest complicated-exchange + (is (= 2 (find-lowest-exchange-rate (make-graph ["3 ORE => 2 ABC" + "3 ABC => 1 FUEL" + "2 ORE => 1 CDE" + "1 CDE => 1 FUEL"]) + "FUEL" "ORE")))) + +(deftest very-tricky-exchange + (is (= 3 (find-lowest-exchange-rate (make-graph ["3 ORE => 2 ABC" + "3 ABC => 1 FUEL" + "4 ORE => 1 CDE" + "1 CDE => 1 FUEL" + "3 ORE => 2 FGH" + "1 FGH => 1 IJK" + "1 IJK => 1 FUEL"]) + "FUEL" "ORE"))))