public void Test1() { var payload = new CheckerPayload { Field = new[] { new[] { CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker }, new[] { CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell }, new[] { CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker, CellState.EmptyCell, CellState.BlackChecker }, new[] { CellState.EmptyCell, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell }, new[] { CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell }, new[] { CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell }, new[] { CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.EmptyCell, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker }, new[] { CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell, CellState.WhiteChecker, CellState.EmptyCell } }, Team = Team.Black }; var possibleMoves = _searchEnginee.SearchAllPossibleMoves(payload.Field, payload.Team) .Where(x => x.Weight != 0) .ToList(); Assert.That(possibleMoves, Has.Count.EqualTo(2)); Assert.That(possibleMoves.First().Weight, Is.EqualTo(1)); Assert.That(possibleMoves.First().Moves.Length, Is.EqualTo(1)); Assert.That(possibleMoves.First().Moves[0].FromPoint.Y, Is.EqualTo(2)); Assert.That(possibleMoves.First().Moves[0].FromPoint.X, Is.EqualTo(1)); Assert.That(possibleMoves.First().Moves[0].ToPoint.Y, Is.EqualTo(4)); Assert.That(possibleMoves.First().Moves[0].ToPoint.X, Is.EqualTo(3)); Assert.That(possibleMoves.Last().Weight, Is.EqualTo(3)); Assert.That(possibleMoves.Last().Moves.Length, Is.EqualTo(3)); Assert.That(possibleMoves.Last().Moves[0].FromPoint.Y, Is.EqualTo(2)); Assert.That(possibleMoves.Last().Moves[0].FromPoint.X, Is.EqualTo(3)); Assert.That(possibleMoves.Last().Moves[0].ToPoint.Y, Is.EqualTo(4)); Assert.That(possibleMoves.Last().Moves[0].ToPoint.X, Is.EqualTo(1)); Assert.That(possibleMoves.Last().Moves[1].FromPoint.Y, Is.EqualTo(4)); Assert.That(possibleMoves.Last().Moves[1].FromPoint.X, Is.EqualTo(1)); Assert.That(possibleMoves.Last().Moves[1].ToPoint.Y, Is.EqualTo(6)); Assert.That(possibleMoves.Last().Moves[1].ToPoint.X, Is.EqualTo(3)); Assert.That(possibleMoves.Last().Moves[2].FromPoint.Y, Is.EqualTo(6)); Assert.That(possibleMoves.Last().Moves[2].FromPoint.X, Is.EqualTo(3)); Assert.That(possibleMoves.Last().Moves[2].ToPoint.Y, Is.EqualTo(4)); Assert.That(possibleMoves.Last().Moves[2].ToPoint.X, Is.EqualTo(5)); }