package day10 import ( "testing" "gitea.paas.celticinfo.fr/oabrivard/aoc2023/utils" ) func TestFindDistance1(t *testing.T) { lines := []string{ "-L|F7", "7S-7|", "L|7||", "-L-J|", "L|-JF", } result := FindDistance(lines) if result != 4 { t.Fatalf("expected 4, got %v", result) } } func TestFindDistance2(t *testing.T) { lines := []string{ "7-F7-", ".FJ|7", "SJLL7", "|F--J", "LJ.LJ", } result := FindDistance(lines) if result != 8 { t.Fatalf("expected 8, got %v", result) } } func TestSumLastTermsWithInput(t *testing.T) { lines := utils.ReadLines("input.txt") result := FindDistance(lines) if result != 6697 { t.Fatalf("expected 6697, got %v", result) } } func TestCountInPolygon1(t *testing.T) { lines := []string{ "-L|F7", "7S-7|", "L|.||", "-L-J|", "L|-JF", } result := CountInPolygon(lines) if result != 1 { t.Fatalf("expected 1, got %v", result) } } func TestCountInPolygon2(t *testing.T) { lines := []string{ "7-F7-", ".FJ|7", "SJ.L7", "|F--J", "LJ.LJ", } result := CountInPolygon(lines) if result != 1 { t.Fatalf("expected 1, got %v", result) } } func TestCountInPolygon3(t *testing.T) { lines := []string{ "...........", ".S-------7.", ".|F-----7|.", ".||.....||.", ".||.....||.", ".|L-7.F-J|.", ".|..|.|..|.", ".L--J.L--J.", "...........", } result := CountInPolygon(lines) if result != 4 { t.Fatalf("expected 4, got %v", result) } } func TestCountInPolygon4(t *testing.T) { lines := []string{ "..........", ".S------7.", ".|F----7|.", ".||....||.", ".||....||.", ".|L-7F-J|.", ".|..||..|.", ".L--JL--J.", "..........", } result := CountInPolygon(lines) if result != 4 { t.Fatalf("expected 4, got %v", result) } } func TestCountInPolygon5(t *testing.T) { lines := []string{ ".F----7F7F7F7F-7....", ".|F--7||||||||FJ....", ".||.FJ||||||||L7....", "FJL7L7LJLJ||LJ.L-7..", "L--J.L7...LJS7F-7L7.", "....F-J..F7FJ|L7L7L7", "....L7.F7||L7|.L7L7|", ".....|FJLJ|FJ|F7|.LJ", "....FJL-7.||.||||...", "....L---J.LJ.LJLJ...", } result := CountInPolygon(lines) if result != 8 { t.Fatalf("expected 8, got %v", result) } } func TestCountInPolygon6(t *testing.T) { lines := []string{ "FF7FSF7F7F7F7F7F---7", "L|LJ||||||||||||F--J", "FL-7LJLJ||||||LJL-77", "F--JF--7||LJLJ7F7FJ-", "L---JF-JLJ.||-FJLJJ7", "|F|F-JF---7F7-L7L|7|", "|FFJF7L7F-JF7|JL---7", "7-L-JL7||F7|L7F-7F7|", "L.L7LFJ|||||FJL7||LJ", "L7JLJL-JLJLJL--JLJ.L", } result := CountInPolygon(lines) if result != 10 { t.Fatalf("expected 10, got %v", result) } } func TestCountInPolygonWithInput(t *testing.T) { lines := utils.ReadLines("input.txt") result := CountInPolygon(lines) if result != 423 { t.Fatalf("expected 423, got %v", result) } }