Exemplo n.º 1
0
        public RobotEngine(Position startingPosition)
        {
            if (startingPosition == null)
            {
                startingPosition = Position.AtX(0).AtY(0);
            }

            currentAbsolutePosition = startingPosition;
        }
Exemplo n.º 2
0
        public void Can_create_engine_with_start_position_as_current_position(int x, int y)
        {
            var fixture = new Fixture();

            fixture.startingPostion = Position.AtX(x).AtY(y);

            var sut = fixture.CreateSUT();

            Assert.AreEqual(x, sut.CurrentAbsolutePosition.X, "Inspecting X");
            Assert.AreEqual(y, sut.CurrentAbsolutePosition.Y, "Inspecting Y");
        }
Exemplo n.º 3
0
        public void Can_move_robot(int startX, int startY, int deltaX, int deltaY, int expectedX, int expectedY)
        {
            var fixture = new Fixture();

            fixture.startingPostion = Position.AtX(startX).AtY(startY);
            var sut = fixture.CreateSUT();

            sut.MoveDelta(deltaX, deltaY);

            Assert.AreEqual(expectedX, sut.CurrentAbsolutePosition.X, "Inspecting X");
            Assert.AreEqual(expectedY, sut.CurrentAbsolutePosition.Y, "Inspecting Y");
        }
        public void Cannot_conitnue_clean_more_than_grid_limit_east()
        {
            var fixture = new Fixture();

            fixture.Engine = new EngineDouble(
                startPosition: Position.AtX(0).AtY(0),
                validPositionEvaluator: p => p.X < 5);
            var sut = fixture.CreateSUT();

            sut.CleanEast(10);

            Assert.AreEqual(5, sut.CleanedStations);
        }
        public void Can_report_clean_if_robot_could_clean_south()
        {
            var fixture = new Fixture();

            fixture.Engine = new EngineDouble(
                startPosition: Position.AtX(0).AtY(0),
                validPositionEvaluator: p => true,
                cleaningAtPositionEvaluator: p => p.Y > -5);
            var sut = fixture.CreateSUT();

            sut.CleanSouth(10);

            Assert.AreEqual(5, sut.CleanedStations);
        }
 public EngineDouble() : this(Position.AtX(0).AtY(0), p => true, p => true)
 {
 }