Compare commits

...

2 Commits

Author SHA1 Message Date
db685a1290 test: add p2 unit test 2025-11-28 15:26:30 +01:00
27a56dc7cd refactor: create a execute() function to reuse in part two 2025-11-28 15:26:23 +01:00
2 changed files with 17 additions and 4 deletions

View File

@@ -35,15 +35,14 @@ func parseInstructions(data []string) []instruction {
return instructions return instructions
} }
func PartOne(data []string) int { func execute(instructions []instruction) (accumulator int, terminatedNormally bool) {
instructions := parseInstructions(data)
visited := make(map[int]bool) visited := make(map[int]bool)
accumulator := 0 accumulator = 0
pc := 0 pc := 0
for pc < len(instructions) { for pc < len(instructions) {
if visited[pc] { if visited[pc] {
return accumulator return accumulator, false
} }
visited[pc] = true visited[pc] = true
@@ -59,6 +58,12 @@ func PartOne(data []string) int {
} }
} }
return accumulator, true
}
func PartOne(data []string) int {
instructions := parseInstructions(data)
accumulator, _ := execute(instructions)
return accumulator return accumulator
} }

View File

@@ -21,3 +21,11 @@ func TestPartOne(t *testing.T) {
t.Errorf("PartOne() = %d, want %d", got, expected) t.Errorf("PartOne() = %d, want %d", got, expected)
} }
} }
func TestPartTwo(t *testing.T) {
expected := 8
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}