github.com/frodejac/aoc-2022@v0.0.0-20221213081734-037c741b1c89/internal/aoc/day10/day10_test.go (about)

     1  package day10
     2  
     3  import (
     4  	"os"
     5  	"path"
     6  	"runtime"
     7  	"testing"
     8  
     9  	"github.com/frodejac/aoc-2022/internal/io"
    10  )
    11  
    12  func init() {
    13  	_, filename, _, _ := runtime.Caller(0)
    14  	dir := path.Join(path.Dir(filename), "..", "..", "..")
    15  	err := os.Chdir(dir)
    16  	if err != nil {
    17  		panic(err)
    18  	}
    19  }
    20  
    21  func TestSolveDay10Part1(t *testing.T) {
    22  	const day, part = 10, 1
    23  	input, err := io.GetInput(day)
    24  	if err != nil {
    25  		t.Logf("Failed to get input for day %02d, part %d", day, part)
    26  		t.Fail()
    27  	}
    28  	solver := Solver(input)
    29  	part1 := solver.SolvePart1()
    30  	expected, err := io.GetSolution(day, part)
    31  	if err != nil {
    32  		t.Logf("Failed to get solution for day %02d, part %d", day, part)
    33  		t.Fail()
    34  		return
    35  	}
    36  	if part1 != string(expected) {
    37  		t.Logf("Expected %s, got %s", expected, part1)
    38  		t.Fail()
    39  	}
    40  }
    41  
    42  func TestSolveDay10Part2(t *testing.T) {
    43  	const day, part = 10, 2
    44  	input, err := io.GetInput(day)
    45  	if err != nil {
    46  		t.Logf("Failed to get input for day %02d, part %d", day, part)
    47  		t.Fail()
    48  	}
    49  	solver := Solver(input)
    50  	part2 := solver.SolvePart2()
    51  	expected, err := io.GetSolution(day, part)
    52  	if err != nil {
    53  		t.Logf("Failed to get solution for day %02d, part %d", day, part)
    54  		t.Fail()
    55  		return
    56  	}
    57  	if part2 != string(expected) {
    58  		t.Logf("Expected %s, got %s", expected, part2)
    59  		t.Fail()
    60  	}
    61  }