public void DynamicTreeSplittingSearchTest_7() { // ARRANGE var sourceBoardStr = new[] { "_b_b_b", "______", "___w_b", "______", "______", "______" }; var sourceBoard = new BoardMock(sourceBoardStr, 6, false); sourceBoard.SwitchPlayers(); var root = new GameNode(); root.IsMaxPlayer = false; var practiceBoard = sourceBoard.ToMinified(); _search.Search(root, 3, sbyte.MinValue, sbyte.MaxValue, practiceBoard, _cts.Token); var bestMove = root.GetBestMove(); root.Result.Should().Be(sbyte.MinValue); bestMove.Should().BeEquivalentTo(new Move(1, 0, 0, 1)); }
public void DynamicTreeSplittingSearchTest_1() { var sourceBoardStr = new[] { "B___", "____", "__w_", "____" }; var sourceBoard = new BoardMock(sourceBoardStr, 4, false); var root = new GameNode(); var practiceBoard = sourceBoard.ToMinified(); _search.Search(root, 2, sbyte.MinValue, sbyte.MaxValue, practiceBoard, _cts.Token); var bestMove = root.GetBestMove(); bestMove.Should().BeEquivalentTo(new Move(2, 2, 3, 1)); }
public void GameTreeSequentialSearch_3() { // ARRANGE var sourceBoardStr = new[] { "b_b_", "____", "____", "_w_w" }; var sourceBoard = new BoardMock(sourceBoardStr, 4, false); var root = new GameNode(); var practiceBoard = sourceBoard.ToMinified(); _search.Search(root, 12, sbyte.MinValue, sbyte.MaxValue, practiceBoard, _cts.Token); var bestMove = root.GetBestMove(); bestMove.Should().BeEquivalentTo(new Move(3, 3, 2, 2)); }
public void GameTreeSequentialSearch_6() { // ARRANGE var sourceBoardStr = new[] { "______", "______", "______", "w_b___", "______", "w_w_w_" }; var sourceBoard = new BoardMock(sourceBoardStr, 6, false); var root = new GameNode(); var practiceBoard = sourceBoard.ToMinified(); _search.Search(root, 3, sbyte.MinValue, sbyte.MaxValue, practiceBoard, _cts.Token); var bestMove = root.GetBestMove(); root.Result.Should().Be(sbyte.MaxValue); bestMove.Should().BeEquivalentTo(new Move(2, 5, 3, 4)); }