package day07 import ( "testing" "github.com/stretchr/testify/require" "fmt" ) func TestPart1(t *testing.T) { r := Part1(`190: 10 19 3267: 81 40 27 83: 17 5 156: 15 6 7290: 6 8 6 15 161011: 16 10 13 192: 17 8 14 21037: 9 7 18 13 292: 11 6 16 20`) require.Equal(t, 3749, r) } func TestPart2(t *testing.T) { r := Part2(`190: 10 19 3267: 81 40 27 83: 17 5 156: 15 6 7290: 6 8 6 15 161011: 16 10 13 192: 17 8 14 21037: 9 7 18 13 292: 11 6 16 20`) require.Equal(t, 11387, r) } func TestGetOp(t *testing.T) { operations := []Op{Add, Mul, Conc} // Define the operations X := 3 // Define the number of positions (columns) // Start the recursive generation with an empty prefix results := [][]Op{} generatePermutations(operations, X, []Op{}, &results) for _, op := range results { fmt.Printf("%v\n", op) } r := Add require.Equal(t, Add, r) }