Add unit tests for day 12
authorUmmon <greg.burri@gmail.com>
Tue, 12 Dec 2017 12:56:20 +0000 (13:56 +0100)
committerUmmon <greg.burri@gmail.com>
Tue, 12 Dec 2017 12:56:20 +0000 (13:56 +0100)
AdventOfCode2017/Day12.fs
Tests/Day12 tests.fs

index bc636b7..10dae1f 100644 (file)
@@ -4,11 +4,11 @@ open System
 
 let parseInput (lines : string[]) : Map<int, Set<int>> =
     lines
-    |> Array.fold (
-        fun dic str ->
+    |> Array.map (
+        fun str ->
             let l = str.Split ([| ' '; ',' |], StringSplitOptions.RemoveEmptyEntries)
-            dic.Add (int l.[0], l.[2 .. l.Length - 1] |> Array.map int |> Set.ofArray)
-    ) Map.empty
+            int l.[0], l.[2..] |> Array.map int |> Set.ofArray
+    ) |> Map.ofArray
 
 let graphCount (g : Map<int, Set<int>>) =
     let rec visit (current : int) (visited : Set<int>) : Set<int> =
index 96d3438..3150149 100644 (file)
@@ -10,8 +10,28 @@ type ``Day12 tests`` (output : ITestOutputHelper) =
 
     [<Fact>]
     let ``(Part1) From web page`` () =
-        ()
+        let input =
+            [|
+                "0 <-> 2"
+                "1 <-> 1"
+                "2 <-> 0, 3, 4"
+                "3 <-> 2, 4"
+                "4 <-> 2, 3, 6"
+                "5 <-> 6"
+                "6 <-> 4, 5"
+            |]
+        Day12.parseInput input |> Day12.graphCount |> fst =! 6
 
     [<Fact>]
     let ``(Part2) From web page`` () =
-        ()
\ No newline at end of file
+        let input =
+            [|
+                "0 <-> 2"
+                "1 <-> 1"
+                "2 <-> 0, 3, 4"
+                "3 <-> 2, 4"
+                "4 <-> 2, 3, 6"
+                "5 <-> 6"
+                "6 <-> 4, 5"
+            |]
+        Day12.parseInput input |> Day12.graphCount |> snd =! 2
\ No newline at end of file