package main import ( "os" "testing" ) func readTestInput() Game { file, _ := os.Open("input_test.txt") defer file.Close() return readInput(file) } func TestShouldReadInput(t *testing.T) { input := readTestInput() expected := []int{3, 8, 9, 1, 2, 5, 4, 6, 7} if input.Cups.Root == nil { t.Errorf("did not read input correctly, no data?") } var i int for e := input.Cups.Root; e != nil; e = e.Next { if expected[i] != e.Val { t.Errorf("did not read input correctly, did not match") } i++ if i >= input.Cups.Count { break } } } func TestTask1ShouldFindResultShort(t *testing.T) { input := readTestInput() expect := "92658374" result := Task1(input, 10, true) if result != expect { t.Errorf("got %s, expected %s", result, expect) } } func TestTask1ShouldFindResult(t *testing.T) { input := readTestInput() expect := "67384529" result := Task1(input, 100, true) if result != expect { t.Errorf("got %s, expected %s", result, expect) } } func TestTask2ShouldFindResult(t *testing.T) { input := readTestInput() expect := 149245887792 result := Task2(input, false) if result != expect { t.Errorf("got %d, expected %d", result, expect) } }