예제 #1
0
        public void PutCoordinatesOnGrid()
        {
            var subject  = new Day6Solution();
            int gridSize = 10;

            var result = subject.CreateGridWithCoordinates(gridSize, new List <Day6Solution.Coordinate>
            {
                new Day6Solution.Coordinate(1, 1, 1),
                new Day6Solution.Coordinate(2, 1, 6),
                new Day6Solution.Coordinate(3, 8, 3),
                new Day6Solution.Coordinate(4, 3, 4),
                new Day6Solution.Coordinate(5, 5, 5),
                new Day6Solution.Coordinate(6, 8, 9),
            });

            result.Should().BeEquivalentTo(new int[, ]
            {
                { 1, 1, 1, 1, 1, 0, 3, 3, 3, 3 },
                { 1, 1, 1, 1, 1, 0, 3, 3, 3, 3 },
                { 1, 1, 1, 4, 4, 5, 3, 3, 3, 3 },
                { 1, 1, 4, 4, 4, 5, 3, 3, 3, 3 },
                { 0, 0, 4, 4, 4, 5, 5, 3, 3, 3 },
                { 2, 2, 0, 4, 5, 5, 5, 5, 3, 3 },
                { 2, 2, 2, 0, 5, 5, 5, 5, 0, 0 },
                { 2, 2, 2, 0, 5, 5, 5, 6, 6, 6 },
                { 2, 2, 2, 0, 5, 5, 6, 6, 6, 6 },
                { 2, 2, 2, 0, 6, 6, 6, 6, 6, 6 },
            });
        }
예제 #2
0
        public void CreateSafeGrid()
        {
            var subject      = new Day6Solution();
            var gridSize     = 10;
            var safeDistance = 32;

            var result = subject.CreateSafeGrid(gridSize, safeDistance, new List <Day6Solution.Coordinate>
            {
                new Day6Solution.Coordinate(1, 1, 1),
                new Day6Solution.Coordinate(2, 1, 6),
                new Day6Solution.Coordinate(3, 8, 3),
                new Day6Solution.Coordinate(4, 3, 4),
                new Day6Solution.Coordinate(5, 5, 5),
                new Day6Solution.Coordinate(6, 8, 9),
            });

            result.Should().BeEquivalentTo(new bool[, ]
            {
                { false, false, false, false, false, false, false, false, false, false },
                { false, false, false, false, false, false, false, false, false, false },
                { false, false, false, false, false, false, false, false, false, false },
                { false, false, false, true, true, true, false, false, false, false },
                { false, false, true, true, true, true, true, false, false, false },
                { false, false, true, true, true, true, true, false, false, false },
                { false, false, false, true, true, true, false, false, false, false },
                { false, false, false, false, false, false, false, false, false, false },
                { false, false, false, false, false, false, false, false, false, false },
                { false, false, false, false, false, false, false, false, false, false },
            });
        }
예제 #3
0
        static void Main(string[] args)
        {
            var solution = new Day6Solution();
            var output   = solution.Solve();

            Console.WriteLine($"the output is {output}");
            Console.ReadKey();
        }
예제 #4
0
        public void ParsesInput()
        {
            var subject = new Day6Solution();

            subject.Parse(new List <string>
            {
                "1, 1",
                "143, 298"
            }).Should().BeEquivalentTo(
                new Day6Solution.Coordinate(1, 1, 1),
                new Day6Solution.Coordinate(2, 143, 298));
        }
예제 #5
0
        public void InIt()
        {
            _mockData = new List <string>()
            {
                "abc",
                "a,b,c",
                "ab,ac",
                "a,a,a,a",
                "b"
            };
            var autoMocker = new AutoMoqer();

            _fileReaderMock = autoMocker.GetMock <IFileReader>();
            _fileReaderMock.Setup(f => f.ReadFileToStringArray(It.IsAny <string>())).Returns(_mockData);

            _solution = new Day6Solution(_fileReaderMock.Object);
        }
예제 #6
0
        public void DetermineLargestNonInfiniteArea()
        {
            var subject = new Day6Solution();
            var grid    = new int[, ]
            {
                { 1, 1, 1, 1, 1, 0, 3, 3, 3, 3 },
                { 1, 1, 1, 1, 1, 0, 3, 3, 3, 3 },
                { 1, 1, 1, 4, 4, 5, 3, 3, 3, 3 },
                { 1, 1, 4, 4, 4, 5, 3, 3, 3, 3 },
                { 0, 0, 4, 4, 4, 5, 5, 3, 3, 3 },
                { 2, 2, 0, 4, 5, 5, 5, 5, 3, 3 },
                { 2, 2, 2, 0, 5, 5, 5, 5, 0, 0 },
                { 2, 2, 2, 0, 5, 5, 5, 6, 6, 6 },
                { 2, 2, 2, 0, 5, 5, 6, 6, 6, 6 },
                { 2, 2, 2, 0, 6, 6, 6, 6, 6, 6 },
            };
            var gridSize            = 10;
            var numberOfCoordinates = 6;

            var result = subject.DetermineLargestNonInfiniteArea(grid, gridSize, numberOfCoordinates);

            result.Should().Be(17);
        }
예제 #7
0
 public void TestSetup()
 {
     _itemUnderTest = new Day6Solution();
 }