github.com/gorgonia/agogo@v0.1.1/game/c4/c4_test.go (about) 1 package c4 2 3 import ( 4 "testing" 5 6 "github.com/gorgonia/agogo/game" 7 ) 8 9 func TestGame_Ended(t *testing.T) { 10 X := game.Black 11 O := game.White 12 Z := game.None 13 g := New(6, 7, 4) 14 data := g.b.data.Data().([]game.Colour) 15 16 var a []game.Colour 17 a = []game.Colour{ 18 X, Z, Z, Z, Z, Z, Z, 19 O, Z, Z, Z, Z, Z, Z, 20 O, Z, Z, Z, Z, Z, Z, 21 X, Z, Z, Z, Z, Z, Z, 22 O, O, Z, Z, X, Z, X, 23 X, O, Z, O, X, Z, X, 24 } 25 copy(data, a) 26 27 if ended, winner := g.Ended(); ended { 28 t.Errorf("Game is not supposed to end! Winner: %v\n%v", winner, g) 29 } 30 31 // fullboard 32 a = []game.Colour{ 33 X, O, X, O, X, O, X, 34 O, O, X, O, X, O, O, 35 X, X, X, O, X, O, X, 36 O, X, O, X, O, X, O, 37 X, O, O, X, O, O, X, 38 X, X, O, X, O, X, X, 39 } 40 copy(data, a) 41 42 if ended, winner := g.Ended(); !ended || (ended && winner != game.Player(Z)) { 43 t.Errorf("Game is supposed to end with Winner = %v. Got %v\n%v", Z, winner, g) 44 } 45 46 // diagonal 47 a = []game.Colour{ 48 X, Z, Z, Z, Z, Z, Z, 49 O, Z, Z, Z, Z, Z, Z, 50 O, Z, Z, X, Z, Z, Z, 51 X, Z, X, Z, Z, Z, Z, 52 O, X, Z, Z, X, Z, X, 53 X, O, Z, O, X, Z, X, 54 } 55 copy(data, a) 56 if ended, winner := g.Ended(); !ended || (ended && winner != game.Player(X)) { 57 t.Errorf("Game is supposed to end with Winner = %v. Got %v\n%v", X, winner, g) 58 } 59 60 // diagonal2 61 a = []game.Colour{ 62 X, Z, Z, Z, Z, Z, Z, 63 O, Z, Z, Z, Z, Z, Z, 64 O, X, Z, O, Z, Z, Z, 65 X, Z, X, Z, Z, Z, Z, 66 O, X, Z, X, X, Z, X, 67 X, O, Z, O, X, Z, X, 68 } 69 copy(data, a) 70 if ended, winner := g.Ended(); !ended || (ended && winner != game.Player(X)) { 71 t.Errorf("Game is supposed to end with Winner = %v. Got %v\n%v", X, winner, g) 72 } 73 74 // vertical 75 a = []game.Colour{ 76 X, Z, Z, Z, Z, Z, Z, 77 O, Z, Z, Z, X, Z, Z, 78 O, Z, Z, X, X, Z, Z, 79 X, Z, Z, Z, X, Z, Z, 80 O, X, Z, Z, X, Z, X, 81 X, O, Z, O, O, Z, X, 82 } 83 copy(data, a) 84 if ended, winner := g.Ended(); !ended || (ended && winner != game.Player(X)) { 85 t.Errorf("Game is supposed to end with Winner = %v. Got %v\n%v", X, winner, g) 86 } 87 88 // horizontal 89 a = []game.Colour{ 90 X, Z, Z, Z, Z, Z, Z, 91 O, Z, Z, Z, Z, Z, Z, 92 O, Z, Z, X, Z, Z, Z, 93 X, Z, Z, Z, X, Z, Z, 94 O, X, Z, Z, X, Z, X, 95 O, X, X, X, X, Z, X, 96 } 97 copy(data, a) 98 if ended, winner := g.Ended(); !ended || (ended && winner != game.Player(X)) { 99 t.Errorf("Game is supposed to end with Winner = %v. Got %v\n%v", X, winner, g) 100 } 101 }