sidecheck_test.go 1.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
package sidecheck

import (
	"fmt"
	"testing"
)

type boardTestType struct {
	NS,
	WE bool
	board string
}

var boardTests = []boardTestType{
	{
		false,
		true,
		`.....
.....
ooooo
.....
.....`,
	},

	{
		false,
		false,
		`...........o................
............o...............
.............o..............
.............o..............
.............o..............
.............o..............
.............o..............
...........ooo..............
...........o.o..............
...........ooo..............
............................`,
	},

	{
		true,
		false,
		`.............o..............
.............o..............
.............o..............
.............o..............
.............o..............
.............o..............
.............o..............
.............o..............
.............o.......ooooooo
.............ooooooooo......
.....................o......`,
	},

	{
		false,
		true,
		`............................
............................
............................
............................
............................
.........o................oo
ooooooooo................o..
....o....oooooo.........o...
....o.........o........o....
.....o......oo.......oo.....
......oooo....oo...oo.......
..........ooo...ooo.........
............................`,
	},
}

func TestBoards(t *testing.T) {
	for _, boardTest := range boardTests {
		board := StringToBoard(boardTest.board)
		if boardTest.NS != board.NScheck() {
			fmt.Println("NS FAIL")
			if boardTest.NS {
				t.Errorf("Failed to find NS path.")
			} else {
				t.Errorf("Found NS path but shouldn't have.")
			}
		}
		if boardTest.WE != board.WEcheck() {
			fmt.Println("WE FAIL")
			if boardTest.WE {
				t.Errorf("Failed to find WE path.")
			} else {
				t.Errorf("Found WE path but shouldn't have.")
			}
		}
		fmt.Println(board)
	}
}