public FerrySeatingMap(List <Seat> seatingMap, IAdjacentSeatChecker adjacentSeatChecker, int tolerance) { SeatingMap = seatingMap; _adjacentSeatChecker = adjacentSeatChecker; _tolerance = tolerance; AtLeastOnePersonMovedSeats = true; }
private int GetNumberOfSeatsChanged(IAdjacentSeatChecker adjacentSeatChecker, int tolerance) { var seatFiller = new FerrySeatingMap(StartingSeats, adjacentSeatChecker, tolerance); var iteration = 0; while (seatFiller.AtLeastOnePersonMovedSeats) { iteration++; seatFiller.PopulateSeats(); Console.WriteLine($"Iteration count: {iteration}"); } return(seatFiller.SeatingMap.Count(s => s.Status == SeatStatus.Occupied)); }