github.com/gorgonia/agogo@v0.1.1/game/mnk/mnk_test.go (about)

     1  package mnk
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/gorgonia/agogo/game"
     7  )
     8  
     9  func TestTicTacToe(t *testing.T) {
    10  	var X = game.Colour(Cross)
    11  	var O = game.Colour(Nought)
    12  	TTT := TicTacToe()
    13  	TTT.board = []game.Colour{
    14  		X, O, X,
    15  		O, X, O,
    16  		O, O, X,
    17  	}
    18  	if !TTT.isWinner(Cross) {
    19  		t.Error("expected X to be winner")
    20  	}
    21  	if ended, _ := TTT.Ended(); !ended {
    22  		t.Error("expected game to be ended")
    23  	}
    24  
    25  	TTT.board = []game.Colour{
    26  		X, O, O,
    27  		X, O, X,
    28  		O, X, X,
    29  	}
    30  	if !TTT.isWinner(Nought) {
    31  		t.Error("expected X to be winner")
    32  	}
    33  }
    34  
    35  func TestGomoku(t *testing.T) {
    36  	var X = game.Colour(Cross)
    37  	var O = game.Colour(Nought)
    38  	var Z = game.None
    39  	g := New(7, 7, 5)
    40  	g.board = []game.Colour{
    41  		Z, X, Z, Z, Z, Z, Z,
    42  		Z, Z, X, Z, Z, Z, Z,
    43  		Z, Z, Z, X, Z, Z, Z,
    44  		Z, Z, Z, Z, X, Z, Z,
    45  		Z, Z, Z, Z, Z, X, Z,
    46  		Z, Z, Z, Z, Z, X, Z,
    47  		Z, Z, Z, Z, Z, X, Z,
    48  	}
    49  	if !g.isWinner(Cross) {
    50  		t.Error("expected X to be winner")
    51  	}
    52  	if ended, _ := g.Ended(); !ended {
    53  		t.Error("expected game to be ended")
    54  	}
    55  
    56  	g.board = []game.Colour{
    57  		Z, Z, Z, Z, Z, Z, Z,
    58  		Z, Z, Z, Z, Z, O, Z,
    59  		Z, Z, Z, Z, O, Z, Z,
    60  		Z, Z, Z, O, Z, Z, Z,
    61  		Z, Z, O, Z, Z, Z, Z,
    62  		Z, O, Z, Z, Z, Z, Z,
    63  		Z, Z, Z, Z, Z, Z, Z,
    64  	}
    65  	if !g.isWinner(Nought) {
    66  		t.Error("expected O to be winner")
    67  	}
    68  	if ended, _ := g.Ended(); !ended {
    69  		t.Error("expected game to be ended")
    70  	}
    71  }
    72  
    73  func TestTicTacToeEnded(t *testing.T) {
    74  	var X = game.Colour(Cross)
    75  	var O = game.Colour(Nought)
    76  	var Z = game.None
    77  	TTT := TicTacToe()
    78  	TTT.board = []game.Colour{
    79  		O, Z, X,
    80  		Z, Z, X,
    81  		Z, O, X,
    82  	}
    83  	ended, winner := TTT.Ended()
    84  	if !ended {
    85  		t.Error("Expected game to have ended")
    86  	}
    87  	if winner != game.Player(X) {
    88  		t.Error("Expected winner to be X")
    89  	}
    90  
    91  	TTT.board = []game.Colour{
    92  		O, O, O,
    93  		Z, Z, X,
    94  		X, O, X,
    95  	}
    96  	ended, winner = TTT.Ended()
    97  	if !ended {
    98  		t.Error("Expected game to have ended")
    99  	}
   100  	if winner != game.Player(O) {
   101  		t.Error("Expected winner to be O")
   102  	}
   103  
   104  	TTT.board = []game.Colour{
   105  		Z, Z, X,
   106  		X, O, X,
   107  		O, O, O,
   108  	}
   109  	ended, winner = TTT.Ended()
   110  	if !ended {
   111  		t.Error("Expected game to have ended")
   112  	}
   113  	if winner != game.Player(O) {
   114  		t.Error("Expected winner to be O")
   115  	}
   116  
   117  	TTT.board = []game.Colour{
   118  		O, Z, X,
   119  		X, O, X,
   120  		O, Z, O,
   121  	}
   122  	ended, winner = TTT.Ended()
   123  	if !ended {
   124  		t.Error("Expected game to have ended")
   125  	}
   126  	if winner != game.Player(O) {
   127  		t.Error("Expected winner to be O")
   128  	}
   129  }