37 lines
753 B
Go
37 lines
753 B
Go
package engine
|
|
|
|
import "testing"
|
|
|
|
func TestBasicGameplayAndBot(t *testing.T) {
|
|
e, err := New(VariantStandard, "", 0, "smoke-test")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer e.Close()
|
|
|
|
if !e.AddMove(Move{From: 12, To: 28}) {
|
|
t.Fatal("e2-e4 should be legal")
|
|
}
|
|
if e.Turn() != ColorBlack {
|
|
t.Fatal("expected black to move")
|
|
}
|
|
|
|
bot := e.BotMove(2)
|
|
if !e.AddMove(bot) {
|
|
t.Fatalf("bot move should be legal: %+v", bot)
|
|
}
|
|
|
|
if e.HistoryCount() != 2 {
|
|
t.Fatalf("expected history count 2, got %d", e.HistoryCount())
|
|
}
|
|
|
|
mv, ok := e.GetMoveAt(0)
|
|
if !ok || mv.From != 12 || mv.To != 28 {
|
|
t.Fatalf("unexpected move at index 0: %+v ok=%v", mv, ok)
|
|
}
|
|
|
|
if e.IsLegal(Move{From: 12, To: 28}) {
|
|
t.Fatal("e2 is empty now, should not be legal")
|
|
}
|
|
}
|