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  }