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.

138 lines
2.2 KiB
Go

package day11
import (
"fmt"
"testing"
"gitea.paas.celticinfo.fr/oabrivard/aoc2023/utils"
)
func TestExpandUniverse(t *testing.T) {
lines := []string{
"...#......",
".......#..",
"#.........",
"..........",
"......#...",
".#........",
".........#",
"..........",
".......#..",
"#...#.....",
}
result := expandUniverse(lines)
for _, l := range result {
fmt.Println(string(l))
}
}
func TestGetUniverseAsInt(t *testing.T) {
lines := []string{
"...#......",
".......#..",
"#.........",
"..........",
"......#...",
".#........",
".........#",
"..........",
".......#..",
"#...#.....",
}
result, coords := getUniverseAsInt(expandUniverse(lines))
fmt.Println("Number of galaxies:", len(coords))
for _, l := range result {
fmt.Println(l)
}
}
func TestSumLengths(t *testing.T) {
lines := []string{
"...#......",
".......#..",
"#.........",
"..........",
"......#...",
".#........",
".........#",
"..........",
".......#..",
"#...#.....",
}
result := SumLengths(lines)
if result != 374 {
t.Fatalf("expected 374, got %v", result)
}
}
func TestSumLengthsWithInput(t *testing.T) {
lines := utils.ReadLines("input.txt")
result := SumLengths(lines)
if result != 10077850 {
t.Fatalf("expected 10077850, got %v", result)
}
}
func TestSumLengths2(t *testing.T) {
lines := []string{
"...#......",
".......#..",
"#.........",
"..........",
"......#...",
".#........",
".........#",
"..........",
".......#..",
"#...#.....",
}
result := SumLengths2(lines, 1)
if result != 374 {
t.Fatalf("expected 374, got %v", result)
}
result = SumLengths2(lines, 10-1)
if result != 1030 {
t.Fatalf("expected 1030, got %v", result)
}
result = SumLengths2(lines, 100-1)
if result != 8410 {
t.Fatalf("expected 8410, got %v", result)
}
result = SumLengths2(lines, 1000000-1)
if result != 82000210 {
t.Fatalf("expected 82000210, got %v", result)
}
}
func TestSumLengths2WithInput(t *testing.T) {
lines := utils.ReadLines("input.txt")
result := SumLengths2(lines, 1)
if result != 10077850 {
t.Fatalf("expected 10077850, got %v", result)
}
result = SumLengths2(lines, 1000000-1)
if result != 504715068438 {
t.Fatalf("expected 504715068438, got %v", result)
}
}