github.com/gorgonia/agogo@v0.1.1/encoding_helper_test.go (about) 1 package agogo 2 3 import ( 4 "testing" 5 6 "github.com/gorgonia/agogo/game" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestRotateBoard(t *testing.T) { 11 // 12 // ⎢ O · · · X ⎥ 13 // ⎢ · O · X · ⎥ // this line is to break rotational symmetry 14 // ⎢ · · · · · ⎥ 15 // ⎢ · · · · · ⎥ 16 // ⎢ X · · · O ⎥ 17 18 m, n := 5, 5 19 board := []game.Colour{ 20 White, None, None, None, Black, 21 None, White, None, Black, None, 22 None, None, None, None, None, 23 None, None, None, None, None, 24 Black, None, None, None, White, 25 } 26 t.Logf("0:\n%v", board) 27 28 rot1, err := RotateBoard(board, m, n) 29 if err != nil { 30 t.Fatal(err) 31 } 32 t.Logf("1:\n%v", rot1) 33 34 rot2, err := RotateBoard(rot1, m, n) 35 if err != nil { 36 t.Fatal(err) 37 } 38 t.Logf("2:\n%v", rot2) 39 40 rot3, err := RotateBoard(rot2, m, n) 41 if err != nil { 42 t.Fatal(err) 43 } 44 t.Logf("3:\n%v", rot3) 45 46 rot4, err := RotateBoard(rot3, m, n) 47 if err != nil { 48 t.Fatal(err) 49 } 50 t.Logf("4:\n%v", rot4) 51 52 assert.Equal(t, board, rot4, "After 4 rotations the board should be the same") 53 }