package main
import (
"bufio"
"os"
"strconv"
"testing"
)
func TestTask1ShouldFindResult(t *testing.T) {
input := []int{
28,
33,
18,
42,
31,
14,
46,
20,
48,
47,
24,
23,
49,
45,
19,
38,
39,
11,
1,
32,
25,
35,
8,
17,
7,
9,
4,
2,
34,
10,
3,
}
expected := 220
result := Task1(input)
if result != expected {
t.Errorf("got %d, expected %d", result, expected)
}
}
func TestTask2ShouldFindResult(t *testing.T) {
tests := [][]int{
{
16,
10,
15,
5,
1,
11,
7,
19,
6,
12,
4,
}, {
28,
33,
18,
42,
31,
14,
46,
20,
48,
47,
24,
23,
49,
45,
19,
38,
39,
11,
1,
32,
25,
35,
8,
17,
7,
9,
4,
2,
34,
10,
3,
},
}
expected := []int{8, 19208}
for i, test := range tests {
result := Task2(test)
if result != expected[i] {
t.Errorf("%d: got %d, expected %d", i, result, expected)
}
}
}
func BenchmarkTask2(b *testing.B) {
file, _ := os.Open("input.txt")
scanner := bufio.NewScanner(file)
input := make([]int, 0, 100)
for scanner.Scan() {
val, _ := strconv.Atoi(scanner.Text())
input = append(input, val)
}
file.Close()
for i := 0; i < b.N; i++ {
Task2(input)
}
}