package main import ( "bufio" "bytes" "testing" _ "embed" "github.com/matryer/is" ) //go:embed example1.txt var example1 []byte //go:embed example2.txt var example2 []byte //go:embed example3.txt var example3 []byte //go:embed input.txt var input []byte func TestExample1(t *testing.T) { is := is.New(t) scan := bufio.NewScanner(bytes.NewReader(example1)) result, err := run(scan) is.NoErr(err) t.Log(result.stepsPT1) is.Equal(result.stepsPT1, uint64(2)) } func TestExample2(t *testing.T) { is := is.New(t) scan := bufio.NewScanner(bytes.NewReader(example2)) result, err := run(scan) is.NoErr(err) t.Log(result.stepsPT1) is.Equal(result.stepsPT1, uint64(6)) } func TestExample3(t *testing.T) { is := is.New(t) scan := bufio.NewScanner(bytes.NewReader(example3)) result, err := run(scan) is.NoErr(err) t.Log(result.stepsPT2) is.Equal(result.stepsPT2, uint64(6)) } func TestInput(t *testing.T) { is := is.New(t) scan := bufio.NewScanner(bytes.NewReader(input)) result, err := run(scan) is.NoErr(err) t.Log("part1 solution", result.stepsPT1) is.Equal(result.stepsPT1, uint64(14429)) t.Log("part2 solution", result.stepsPT2) is.Equal(result.stepsPT2, uint64(10921547990923)) } // first: 14429 // second: 10921547990923 // BrĂ¼t // stops 1 steps 13201 // stops 2 steps 620447 // stops 3 steps 36606373 // stops 4 steps 2232988753 // stops 5 steps 149610246451