Example #1
0
        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));
        }