public void Should_CalculateNumberOfTrees() { var lines = new List <string> { "..##.......", "#...#...#..", ".#....#..#.", "..#.#...#.#", ".#...##..#.", "..#.##.....", ".#.#.#....#", ".#........#", "#.##...#...", "#...##....#", ".#..#...#.#" }; int singleMoveX = 3; int singleMoveY = 1; var expectedNumberOfTrees = 7; var xmasTreeMap = new XmasTreeMapRepositoryWrapper(); var sut = new XmasTreeMapService(xmasTreeMap.MapLocationsFromLines(lines.ToArray())); var resultNumberOfTrees = sut.CountTrees(singleMoveX, singleMoveY); Assert.That(resultNumberOfTrees == expectedNumberOfTrees, $"{resultNumberOfTrees} : {expectedNumberOfTrees}"); }
public void Should_CreateMap_When_ValidLines() { var lines = new string[] { ".#.", "#.#" }; var sut = new XmasTreeMapRepositoryWrapper(); var expectedTreeMap = new List <MapLocation>() { new MapLocation { Type = PositionType.Open, XPosition = 0, YPosition = 0 }, new MapLocation { Type = PositionType.Tree, XPosition = 1, YPosition = 0 }, new MapLocation { Type = PositionType.Open, XPosition = 2, YPosition = 0 }, new MapLocation { Type = PositionType.Tree, XPosition = 0, YPosition = 1 }, new MapLocation { Type = PositionType.Open, XPosition = 1, YPosition = 1 }, new MapLocation { Type = PositionType.Tree, XPosition = 2, YPosition = 1 }, }; var resultTreeMap = sut.MapLocationsFromLines(lines).ToList(); // Line 1 Assert.That(resultTreeMap.Count() == expectedTreeMap.Count, $"Count: {resultTreeMap.Count()} != {expectedTreeMap.Count}"); for (var i = 0; i < resultTreeMap.Count; i++) { Assert.That(resultTreeMap[i].Type == expectedTreeMap[i].Type, $"Type[{i}]: {resultTreeMap[i].Type} != {expectedTreeMap[i].Type}"); Assert.That(resultTreeMap[i].XPosition == expectedTreeMap[i].XPosition, $"XPosition[{i}]: {resultTreeMap[i].XPosition} != {expectedTreeMap[i].XPosition}"); Assert.That(resultTreeMap[i].YPosition == expectedTreeMap[i].YPosition, $"YPosition[{i}]: {resultTreeMap[i].YPosition} != {expectedTreeMap[i].YPosition}"); } }
public void Should_ThrowException_When_LineEmptyCollection() { var sut = new XmasTreeMapRepositoryWrapper(); Assert.Throws <ArgumentOutOfRangeException>(() => sut.MapLocationsFromLines(Enumerable.Empty <string>().ToArray())); }
public void Should_ThrowException_When_LinesNullCollection() { var sut = new XmasTreeMapRepositoryWrapper(); Assert.Throws <ArgumentNullException>(() => sut.MapLocationsFromLines(null)); }