コード例 #1
0
ファイル: MovementTests.cs プロジェクト: petcoo00/Pluto
        public void ReceiveCommand_MultipleCommands()
        {
            Planet     planet = new Planet();
            PlutoRover rover  = new PlutoRover(new Position(4, 4, Orientation.N));

            planet.AddObject(rover);
            var commands = new List <PlutoCommand>()
            {
                PlutoCommand.F,
                PlutoCommand.F,
                PlutoCommand.R,
                PlutoCommand.F,
                PlutoCommand.F
            };
            MovementReport report = rover.ProcessCommands(commands);

            Assert.AreEqual(rover.GetPosition(), new Position(6, 6, Orientation.E));
            Assert.IsTrue(report.Success);
        }
コード例 #2
0
ファイル: ObstacleTests.cs プロジェクト: petcoo00/Pluto
        public void ReceiveCommand_MultipleCommandsAndObstruction()
        {
            Planet planet = new Planet();
            Rock   rock   = new Rock(new Position(6, 6, Orientation.N));

            planet.AddObject(rock);
            PlutoRover rover = new PlutoRover(new Position(4, 4, Orientation.N));

            planet.AddObject(rover);
            var commands = new List <PlutoCommand>()
            {
                PlutoCommand.F,
                PlutoCommand.F,
                PlutoCommand.R,
                PlutoCommand.F,
                PlutoCommand.F
            };
            MovementReport report = rover.ProcessCommands(commands);

            Assert.AreEqual(rover.GetPosition(), new Position(5, 6, Orientation.E));
            Assert.IsFalse(report.Success);
            Assert.IsTrue(object.ReferenceEquals(rock, report.Obstructions[0]));
        }