Example #1
0
        public void Step_DoesAgentAndOpponentMoves()
        {
            var placeXAtTopLeft = new TicTacToeAction {
                Position = 0, Tile = BoardTile.X
            };
            var placeOAtTopMiddle = new TicTacToeAction {
                Position = 1, Tile = BoardTile.O
            };

            _opponent.GetAction(Arg.Any <Board>())
            .Returns(placeOAtTopMiddle);

            var expectedBoard = Board
                                .CreateEmptyBoard()
                                .DoAction(placeXAtTopLeft)
                                .DoAction(placeOAtTopMiddle);

            // act
            var observation = _env.Step(placeXAtTopLeft);

            // assert
            Assert.AreEqual(expectedBoard.ToString(), observation.Board.ToString());
        }