package main
import (
"testing"
)
func TestCheckNumber(t *testing.T) {
tests := []struct {
Input []int
Number int
Expected [][2]int
}{
{
Input: []int{
35,
20,
15,
25,
47,
},
Number: 40,
Expected: [][2]int{
{15, 25},
},
},
{
Input: []int{
95,
102,
117,
150,
182,
},
Number: 127,
Expected: [][2]int{},
},
{
Input: []int{
65,
95,
102,
117,
150,
},
Number: 182,
Expected: [][2]int{
{65, 117},
},
},
}
for i, test := range tests {
result := checkNumber(test.Input, test.Number)
if len(result) != len(test.Expected) {
t.Errorf("%d: got %+v, expected %+v", i, result, test.Expected)
}
for j := range result {
if result[j] != test.Expected[j] {
t.Errorf("%d got %+v, expected %+v", i, result, test.Expected)
}
}
}
}
func TestTask1ShouldFindResult(t *testing.T) {
input := []int{
35,
20,
15,
25,
47,
40,
62,
55,
65,
95,
102,
117,
150,
182,
127,
219,
299,
277,
309,
576,
}
expected := 127
result := Task1(input, 5)
if result != expected {
t.Errorf("got %d, expected %d", result, expected)
}
}
func TestTask2ShouldFindResult(t *testing.T) {
input := []int{
35,
20,
15,
25,
47,
40,
62,
55,
65,
95,
102,
117,
150,
182,
127,
219,
299,
277,
309,
576,
}
expected := 62
result := Task2(input, 127)
if result != expected {
t.Errorf("got %d, expected %d", result, expected)
}
}