Beispiel #1
0
        public void Guests_Take_Quickest_Path_To_Destination()
        {
            Guest guest       = new Guest(1, 0);
            IRoom destination = _Hotel.iRoom.Single(r => r.Position.X == 8 && r.Position.Y == 5);

            List <Point> path = new List <Point>();

            foreach (IRoom r in guest.FindRoom(destination))
            {
                path.Add(r.Position);
            }

            List <Point> actualResult   = path;
            List <Point> expectedResult = new List <Point>()
            {
                new Point(1, 0), //Lobby
                new Point(0, 0), //Elevator
                new Point(1, 5), //Room
                new Point(2, 5), //Hall
                new Point(3, 5), //Room
                new Point(4, 5), //Hall
                new Point(5, 5), //Room
                new Point(6, 5), //Hall
                new Point(7, 5), //Hall
                new Point(8, 5)  //Hall
            };

            expectedResult.Reverse();

            for (int i = 0; i < path.Count; i++)
            {
                Assert.AreEqual(actualResult[i], expectedResult[i]);
            }
        }