]>
Commit | Line | Data |
---|---|---|
e26daef4 JK |
1 | (ns adventofcode2019.day14-test |
2 | (:require [clojure.test :refer :all] | |
3 | [adventofcode2019.day14 :refer :all])) | |
4 | ||
5 | (deftest check-make-graph | |
6 | (is (= (make-graph ["3 ORE => 2 ABC" | |
7 | "3 ABC => 1 FUEL"]) | |
8 | {"ABC" {{"ORE" 3/2} 1} | |
9 | "FUEL" {{"ABC" 3} 1}}))) | |
10 | ||
11 | (deftest simple-exchange | |
12 | (is (= 3 (find-lowest-exchange-rate {"FUEL" {{"ORE" 1, "ABC" 2, "DEF" 3} 1 | |
13 | {"ORE" 3} 1 | |
14 | {"GHI" 5/2} 1}} | |
15 | "FUEL" "ORE")))) | |
16 | ||
17 | (deftest trading-up | |
18 | (is (= 6 (find-lowest-exchange-rate (make-graph ["3 ORE => 2 ABC" | |
19 | "3 ABC => 1 FUEL"]) | |
20 | "FUEL" "ORE")))) | |
21 | ||
22 | (deftest complicated-exchange | |
23 | (is (= 2 (find-lowest-exchange-rate (make-graph ["3 ORE => 2 ABC" | |
24 | "3 ABC => 1 FUEL" | |
25 | "2 ORE => 1 CDE" | |
26 | "1 CDE => 1 FUEL"]) | |
27 | "FUEL" "ORE")))) | |
28 | ||
29 | (deftest very-tricky-exchange | |
30 | (is (= 3 (find-lowest-exchange-rate (make-graph ["3 ORE => 2 ABC" | |
31 | "3 ABC => 1 FUEL" | |
32 | "4 ORE => 1 CDE" | |
33 | "1 CDE => 1 FUEL" | |
34 | "3 ORE => 2 FGH" | |
35 | "1 FGH => 1 IJK" | |
36 | "1 IJK => 1 FUEL"]) | |
37 | "FUEL" "ORE")))) |