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