package day18 import ( "testing" "gitea.paas.celticinfo.fr/oabrivard/aoc2023/utils" ) func TestMatrixSize(t *testing.T) { lines := []string{ "R 6 (#70c710)", "D 5 (#0dc571)", "L 2 (#5713f0)", "D 2 (#d2c081)", "R 2 (#59c680)", "D 2 (#411b91)", "L 5 (#8ceee2)", "U 2 (#caa173)", "L 1 (#1b58a2)", "U 2 (#caa171)", "R 2 (#7807d2)", "U 3 (#a77fa3)", "L 2 (#015232)", "U 2 (#7a21e3)", } minCol, minRow, maxRow, maxCol := matrixSize(lines) height, width := maxRow-minRow+1, maxCol-minCol+1 result := height * width if result != 70 { t.Fatalf("expected 70, got %v", result) } } func TestMatrixSizeWithInput(t *testing.T) { lines := utils.ReadLines("input.txt") minCol, minRow, maxRow, maxCol := matrixSize(lines) height, width := maxRow-minRow+1, maxCol-minCol+1 result := height * width if result != 88464 { t.Fatalf("expected 88464, got %v", result) } } func TestPart1(t *testing.T) { lines := []string{ "R 6 (#70c710)", "D 5 (#0dc571)", "L 2 (#5713f0)", "D 2 (#d2c081)", "R 2 (#59c680)", "D 2 (#411b91)", "L 5 (#8ceee2)", "U 2 (#caa173)", "L 1 (#1b58a2)", "U 2 (#caa171)", "R 2 (#7807d2)", "U 3 (#a77fa3)", "L 2 (#015232)", "U 2 (#7a21e3)", } result := Part1(lines, true) if result != 62 { t.Fatalf("expected 62, got %v", result) } } func TestPart1WithInput(t *testing.T) { lines := utils.ReadLines("input.txt") result := Part1(lines, false) if result != 41019 { t.Fatalf("expected 41019, got %v", result) } } func TestPart2(t *testing.T) { lines := []string{ "R 6 (#70c710)", "D 5 (#0dc571)", "L 2 (#5713f0)", "D 2 (#d2c081)", "R 2 (#59c680)", "D 2 (#411b91)", "L 5 (#8ceee2)", "U 2 (#caa173)", "L 1 (#1b58a2)", "U 2 (#caa171)", "R 2 (#7807d2)", "U 3 (#a77fa3)", "L 2 (#015232)", "U 2 (#7a21e3)", } result := Part2(lines) if result != 952408144115 { t.Fatalf("expected 952408144115, got %v", result) } } func TestPart2WithInput(t *testing.T) { lines := utils.ReadLines("input.txt") result := Part2(lines) if result != 96116995735219 { t.Fatalf("expected 96116995735219, got %v", result) } }