package main
import (
"os"
"testing"
)
func readTestInput() []Food {
file, _ := os.Open("input_test.txt")
defer file.Close()
return readInput(file)
}
func TestShouldReadInput(t *testing.T) {
input := readTestInput()
expected := Food{
Ingredients: []string{"trh", "fvjkl", "sbzzf", "mxmxvkd"},
Allergens: []string{"dairy"},
}
var found bool
loop:
for _, in := range input {
if len(expected.Ingredients) != len(in.Ingredients) {
continue
}
if len(expected.Allergens) != len(in.Allergens) {
continue
}
found = true
for i := range expected.Ingredients {
if in.Ingredients[i] != expected.Ingredients[i] {
found = false
continue loop
}
}
}
if !found {
t.Errorf("did not read input correctly, did not find expected")
}
}
func TestTask1ShouldFindResult(t *testing.T) {
input := readTestInput()
expect := 5
result := Task1(input, true)
if result != expect {
t.Errorf("got %d, expected %d", result, expect)
}
}
func TestTask2ShouldFindResult(t *testing.T) {
input := readTestInput()
expect := "mxmxvkd,sqjhc,fvjkl"
result := Task2(input, true)
if result != expect {
t.Errorf("got %s, expected %s", result, expect)
}
}