Beispiel #1
0
        public void GenerateExplorationReportTest_TwoExplorersCollide_ExpectedOutput()
        {
            var deploymentZone = new Plateau {
                Size = new Size(5, 5)
            };

            var team   = new ExplorationTeam(deploymentZone);
            var rover1 = new Rover(team);
            var rover2 = new Rover(team);

            rover1.Launch(new Position(5, 5), Heading.North);
            team.Add(rover1);
            rover1.Move(new List <Movement>());
            rover2.Launch(new Position(5, 4), Heading.North);
            team.Add(rover2);
            rover2.Move(new List <Movement> {
                // MMRMMRMRRM
                Movement.Forward,
                Movement.Forward,
                Movement.Forward
            });

            var expectedReport = new StringBuilder();

            expectedReport.Append("5 5 N");
            expectedReport.AppendLine();
            expectedReport.Append("5 4 N");
            expectedReport.AppendLine();
            Assert.AreEqual(expectedReport.ToString(), team.GenerateExplorationReport());
        }
Beispiel #2
0
        public void GenerateExplorationReportTest_ExplorerNotLaunched_ExpectedOutput()
        {
            var team = new ExplorationTeam(new Plateau());

            team.Add(new Rover(team));
            var expectedReport = new StringBuilder();

            expectedReport.Append("Explorer not launched.");
            expectedReport.AppendLine();
            Assert.AreEqual(expectedReport.ToString(), team.GenerateExplorationReport());
        }
Beispiel #3
0
        public void IsPositionAvailableTest_PassIsValidAndnoExplorerAtPosition()
        {
            var team = new ExplorationTeam(new Plateau {
                Size = new Size(5, 5)
            });
            var rover1 = new Rover(team);

            rover1.Launch(new Position(5, 5), Heading.North);
            team.Add(rover1);
            var rover2 = new Rover(team);

            Assert.IsTrue(rover2.IsPositionAvailable(new Position(4, 5)));
        }
Beispiel #4
0
        public void IsPositionAvailableTest_ExplorerExistsAtPositionFails()
        {
            var team = new ExplorationTeam(new Plateau {
                Size = new Size(5, 5)
            });
            var rover1 = new Rover(team);

            rover1.Launch(new Position(5, 5), Heading.North);
            team.Add(rover1);
            var rover2 = new Rover(team);

            Assert.IsFalse(rover2.IsPositionAvailable(new Position(5, 5)));
        }
Beispiel #5
0
        public void GenerateExplorationReportTest_OneExplorerLaunched_ExpectedOutput()
        {
            var deploymentZone = new Plateau {
                Size = new Size(5, 5)
            };

            var team  = new ExplorationTeam(deploymentZone);
            var rover = new Rover(team);

            rover.Launch(new Position(1, 2), Heading.North);
            team.Add(rover);
            var expectedReport = new StringBuilder();

            expectedReport.Append("1 2 N");
            expectedReport.AppendLine();
            Assert.AreEqual(expectedReport.ToString(), team.GenerateExplorationReport());
        }
Beispiel #6
0
        public void MoveTest()
        {
            var deploymentZone = new Plateau {
                Size = new Size(5, 5)
            };

            var team   = new ExplorationTeam(deploymentZone);
            var rover1 = new Rover(team);
            var rover2 = new Rover(team);

            rover1.Launch(new Position(1, 2), Heading.North);
            team.Add(rover1);
            rover1.Move(new List <Movement> {
                // LMLMLMLMM
                Movement.Left,
                Movement.Forward,
                Movement.Left,
                Movement.Forward,
                Movement.Left,
                Movement.Forward,
                Movement.Left,
                Movement.Forward,
                Movement.Forward
            });
            rover2.Launch(new Position(3, 3), Heading.East);
            team.Add(rover2);
            rover2.Move(new List <Movement> {
                // MMRMMRMRRM
                Movement.Forward,
                Movement.Forward,
                Movement.Right,
                Movement.Forward,
                Movement.Forward,
                Movement.Right,
                Movement.Forward,
                Movement.Right,
                Movement.Right,
                Movement.Forward
            });
        }
Beispiel #7
0
 public void ExplorationTeamTest_NullDeploymentZoneChart()
 {
     var team = new ExplorationTeam(null);
 }