You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

174 lines
2.7 KiB
Go

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)
}
}