59 lines
835 B
Go
59 lines
835 B
Go
package daytwo
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestPartOne(t *testing.T) {
|
|
input := []string{
|
|
"abcdef",
|
|
"bababc",
|
|
"abbcde",
|
|
"abcccd",
|
|
"aabcdd",
|
|
"abcdee",
|
|
"ababab",
|
|
}
|
|
expected := 12
|
|
got := PartOne(input)
|
|
if got != expected {
|
|
t.Errorf("PartOne() = %d, want %d", got, expected)
|
|
}
|
|
}
|
|
|
|
func TestPartTwo(t *testing.T) {
|
|
input := []string{
|
|
"abcde",
|
|
"fghij",
|
|
"klmno",
|
|
"pqrst",
|
|
"fguij",
|
|
"axcye",
|
|
"wvxyz",
|
|
}
|
|
expected := "fgij"
|
|
|
|
oldStdout := os.Stdout
|
|
r, w, err := os.Pipe()
|
|
if err != nil {
|
|
t.Fatalf("Failed to create pipe: %v", err)
|
|
}
|
|
os.Stdout = w
|
|
|
|
PartTwo(input)
|
|
|
|
w.Close()
|
|
os.Stdout = oldStdout
|
|
|
|
var buffer bytes.Buffer
|
|
buffer.ReadFrom(r)
|
|
got := strings.TrimSpace(buffer.String())
|
|
|
|
if got != expected {
|
|
t.Errorf("PartTwo() printed %q, want %q", got, expected)
|
|
}
|
|
}
|