public void GetsRowsFromFile_TestFile_Gets11Rows()
        {
            var        subject = new GetsRowsFromFile();
            List <Row> result  = subject.Get(testFile);

            result.Count.Should().Be(11);
        }
        public void SlopeTrip_RealFile_TripDownRowsGetsTheRightNumberOfTrees()
        {
            var subject  = new SlopeTrip();
            var getsRows = new GetsRowsFromFile();
            var rows     = getsRows.Get(realFile);

            subject.GetTreesHit(rows, 3, 1).Should().Be(276);
        }
        public void ChecksForTrees_TestFile_FindsTreesAndSpacesInFirstLinePastEndOfPattern()
        {
            var subject  = new ChecksForTrees();
            var getsRows = new GetsRowsFromFile();
            var rows     = getsRows.Get(testFile);

            subject.Check(rows, 1, 12).Should().BeFalse();
            subject.Check(rows, 1, 13).Should().BeFalse();
            subject.Check(rows, 1, 14).Should().BeTrue();
        }
        public void ChecksForTrees_TestFile_FindsTreesAndSpacesInSecondLine()
        {
            var subject  = new ChecksForTrees();
            var getsRows = new GetsRowsFromFile();
            var rows     = getsRows.Get(testFile);

            subject.Check(rows, 2, 1).Should().BeTrue();
            subject.Check(rows, 2, 2).Should().BeFalse();
            subject.Check(rows, 2, 3).Should().BeFalse();
        }
        public void SlopeTrip_RealFile_TripDownVariousRoutesMultipliesToCorrectNumber()
        {
            var subject         = new SlopeTrip();
            var getsRows        = new GetsRowsFromFile();
            var rows            = getsRows.Get(realFile);
            var treesHitOnTrips = new List <decimal>
            {
                subject.GetTreesHit(rows, 1, 1),
                subject.GetTreesHit(rows, 3, 1),
                subject.GetTreesHit(rows, 5, 1),
                subject.GetTreesHit(rows, 7, 1),
                subject.GetTreesHit(rows, 1, 2)
            };

            treesHitOnTrips.Aggregate((a, x) => a * x).Should().Be(7812180000);
        }
        public void ChecksForTrees_TestFile_TripDownRowsGetsTheRightNumberOfTrees()
        {
            var subject       = new ChecksForTrees();
            var getsRows      = new GetsRowsFromFile();
            var rows          = getsRows.Get(testFile);
            int treesHit      = 0;
            int currentRow    = 1;
            int currentColumn = 1;

            while (currentRow <= rows.Count)
            {
                if (subject.Check(rows, currentRow, currentColumn))
                {
                    treesHit++;
                }

                currentRow++;
                currentColumn += 3;
            }

            treesHit.Should().Be(7);
        }