public void FindTicketErrorRate()
        {
            string filePath  = @"Sixteen\DaySixteenTestInputA_Rules.txt";
            var    evaluator = new TicketEvaluator(filePath);

            filePath = @"Sixteen\DaySixteenTestInputA_Tickets.txt";
            List <Ticket> tickets = FileUtility.ParseFileToList(filePath, line => new Ticket(line));

            var sut    = new DaySixteen();
            var result = sut.FindTicketErrorRate(tickets, evaluator);

            Assert.Equal(71, result);
        }
        public void DeterminedMatchedFieldOrder()
        {
            string filePath  = @"Sixteen\DaySixteenTestInputB_Rules.txt";
            var    evaluator = new TicketEvaluator(filePath);

            filePath = @"Sixteen\DaySixteenTestInputB_Tickets.txt";
            var tickets = FileUtility.ParseFileToList(filePath, line => new Ticket(line));

            var sut    = new DaySixteen();
            var result = sut.DeterminedMatchedFieldOrder(tickets, evaluator);

            Assert.Equal(1, result[0]);
            Assert.Equal(0, result[1]);
            Assert.Equal(2, result[2]);
        }
        public void TicketEvaluator_GetValidFieldPositionsForTickets()
        {
            string filePath  = @"Sixteen\DaySixteenTestInputB_Rules.txt";
            var    evaluator = new TicketEvaluator(filePath);

            filePath = @"Sixteen\DaySixteenTestInputB_Tickets.txt";
            var tickets = FileUtility.ParseFileToList(filePath, line => new Ticket(line));

            var result = evaluator.GetValidFieldPositionsForTickets(tickets);

            Assert.Contains(1, result[0]);
            Assert.Contains(2, result[0]);
            Assert.Contains(0, result[1]);
            Assert.Contains(1, result[1]);
            Assert.Contains(2, result[1]);
            Assert.Contains(2, result[2]);
        }