public void Return_number_of_trees_for_multiple_slopes() { var tobboganTrajectory = new TobogganTrajectory(); var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\03_01_TobogganTrajectory_Test.txt"; var grid = inputReaders.readLinesToGrid(path); var slope1 = new List <int>() { 1, 1 }; var slope2 = new List <int>() { 3, 1 }; var slope3 = new List <int>() { 5, 1 }; var slopesToTest = new List <List <int> > { slope1, slope2, slope3 }; var listOfTreeCounts = tobboganTrajectory.testLotsOfSlopes(slopesToTest, grid); Assert.Equal(new List <int>() { 2, 7, 3 }, listOfTreeCounts); }
public long problem2() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\09_EncodingError.txt"; var numbers = _inputReader.readLongNumbers(path); var _encodingError = new EncodingError(numbers, 257342611); return(_encodingError.findContiguousSet()); }
public void Should_count_route_permutations() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\10_AdapterArray_Test.txt"; var adapters = _inputReader.readLongNumbers(path); var _adapterArray = new AdapterArray(adapters); Assert.Equal(19208, _adapterArray.countRoutes()); }
public void Input_is_parsed_correctly() { var tobboganTrajectory = new TobogganTrajectory(); var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\03_01_TobogganTrajectory_Test.txt"; var grid = inputReaders.readLinesToGrid(path); Assert.Equal(11, grid.Count); }
public void Find_first_invalid_number() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\09_EncodingError_Test.txt"; var numbers = _inputReader.readLongNumbers(path); var _encodingError = new EncodingError(numbers, 5); Assert.Equal(127, _encodingError.findInvalidNumber()); }
public long problem1() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\10_AdapterArray.txt"; var adapters = _inputReader.readLongNumbers(path); var _adapterArray = new AdapterArray(adapters); return(_adapterArray.countAdapters()); }
public void Find_contiguous_run() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\09_EncodingError_Test.txt"; var numbers = _inputReader.readLongNumbers(path); var _encodingError = new EncodingError(numbers, 127); Assert.Equal(62, _encodingError.findContiguousSet()); }
public void Should_count_adaptor_differences() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\10_AdapterArray_Test.txt"; var adapters = _inputReader.readLongNumbers(path); var _adapterArray = new AdapterArray(adapters); Assert.Equal(220, _adapterArray.countAdapters()); }
public int problem2() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\08_HandheldHalting.txt"; var program = _inputReader.readLines(path); var problem2Answer = runReplacementProgram(program); return(problem2Answer); }
public int problem2() { var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\06_CustomCustoms.txt"; var answers = inputReaders.readParagraphsToList(path); var duplicateCount = countDuplicateQuestionsForManyGroups(answers); return(duplicateCount); }
public int Problem2() { var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\01_01_ReportRepair.txt"; var inputReaders = new InputReaders(); var input = inputReaders.readNumbers(path); var entries = AddThreeTo2020(input); var total = Multiply(entries); return(total); }
public void Should_run_replacement_instructions() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\08_HandheldHalting_Test.txt"; var program = _inputReader.readLines(path); var _handheldHalting = new HandheldHalting(); var count = _handheldHalting.runReplacementProgram(program); Assert.Equal(8, count); }
public int problem1() { var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\04_PassportProcessing.txt"; var passports = inputReaders.readParagraphsToList(path); var presentPassports = collectPassports(passports); return(presentPassports.Count); }
//public int fitInThisBag(List<HandyHaversacks> bags, string myBigBag) //{ //} public int problem1() { var inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\07_HandyHaversacks.txt"; var input = inputReader.readLines(path); var bags = getAllTheBags(input); var numberOfGoldBags = containsBagToFind(bags, "shiny gold"); return(numberOfGoldBags.Count); }
public void Should_read_a_passport() { var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\04_PassportProcessing_Test.txt"; var passports = inputReaders.readParagraphsToList(path); var passport = new PassportProcessing(passports[0]); Assert.Equal("1937", passport.byr); Assert.Equal("gry", passport.ecl); }
public void Should_collect_present_passports() { var inputReaders = new InputReaders(); var passportProcessing = new PassportProcessing(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\04_PassportProcessing_Test.txt"; var passports = inputReaders.readParagraphsToList(path); var present = passportProcessing.collectPassports(passports); Assert.Equal(2, present.Count); }
public int Problem1() { var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\03_01_TobogganTrajectory.txt"; var inputReaders = new InputReaders(); var input = inputReaders.readLinesToGrid(path); var slope = new int[] { 1, 2 }; var itemsOnRoute = moveSleigh(slope, input); var total = countTrees(itemsOnRoute); return(total); }
public void Should_not_approve_non_passport() { var inputReaders = new InputReaders(); var passportProcessing = new PassportProcessing(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\04_PassportProcessing_Test.txt"; var passports = inputReaders.readParagraphsToList(path); var notPassport = passportProcessing.checkAPassportIsPresent(passports[1]); Assert.False(notPassport); }
public void Should_count_how_many_bags_can_hold_gold_ones() { var inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\07_HandyHaversacks_Test.txt"; var input = inputReader.readLines(path); var handyHaversacks = new HandyHaversacks(); var bags = handyHaversacks.getAllTheBags(input); var numberOfGoldBags = handyHaversacks.containsBagToFind(bags, "shiny gold"); Assert.Equal(4, numberOfGoldBags.Count); }
public void Should_read_the_input_to_a_list_of_bags() { var inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\07_HandyHaversacks_Test.txt"; var input = inputReader.readLines(path); var handyHaversacks = new HandyHaversacks(); var bags = handyHaversacks.getAllTheBags(input); Assert.Equal(9, bags.Count); Assert.Equal("light red", bags[0].description); }
public void Should_be_same_number_of_tickets_and_seats() { var inputReaders = new InputReaders(); var binaryBoarding = new BinaryBoarding(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\05_BinaryBoarding.txt"; var tickets = inputReaders.readLines(path); var seats = binaryBoarding.getMultipleSeatInfo(tickets); Assert.Equal(tickets.Length, seats.Count); }
public int problem1() { var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\05_BinaryBoarding.txt"; var tickets = inputReaders.readLines(path); var seats = getMultipleSeatInfo(tickets); var highestSeat = findHighestSeat(seats); return(highestSeat); }
public void Should_not_pass_invalid_passports() { var inputReaders = new InputReaders(); var passportProcessing = new PassportProcessing(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\04_PassportProcessing_Test_invalidpassports.txt"; var passports = inputReaders.readParagraphsToList(path); var present = passportProcessing.collectPassports(passports); var validPassports = passportProcessing.checkIfValid(present); Assert.Equal(0, validPassports.Count); }
public int problem1() { var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\22_CrabCombat.txt"; var decks = _inputReader.readParagraphsToList(path); var _crabCombat = new CrabCombat(decks); _crabCombat.playGame1(); var score = _crabCombat.calculateScore(_crabCombat.GameWinner); return(score); }
public int problem2() { // Current state 20/12/24 - the tests pass but I'm not getting the correct solution ¯\_(ツ)_/¯ var _inputReader = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\22_CrabCombat.txt"; var decks = _inputReader.readParagraphsToList(path); var _crabCombat = new CrabCombat(decks); _crabCombat.playGame2(); var score = _crabCombat.calculateScore(_crabCombat.GameWinner); return(score); }
public void Should_split_passport_feed_by_blank_lines() { var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\04_PassportProcessing_Test2.txt"; var listOfParagraphs = inputReaders.readParagraphsToList(path); var firstString = "Eleanor Mollett"; var secondString = "Catherine Mollett"; var blah = new List <string> { firstString, secondString }; Assert.Equal(blah, listOfParagraphs); }
public void Problem1_Using_example_input() { var tobboganTrajectory = new TobogganTrajectory(); var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\03_01_TobogganTrajectory_Test.txt"; var grid = inputReaders.readLinesToGrid(path); var travelVector = new int[] { 3, 1 }; var itemsOnRoute = tobboganTrajectory.moveSleigh(travelVector, grid); Assert.Equal(10, itemsOnRoute.Count); int output = tobboganTrajectory.countTrees(itemsOnRoute); Assert.Equal(7, output); }
public int checkLotsOfPasswords(string ruleSet) { var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\02_01_PasswordPhilosophy.txt"; var inputReaders = new InputReaders(); var input = inputReaders.readLines(path); var goodPasswordCount = 0; foreach (string line in input) { var passwordToCheck = new PasswordChecker(line); if (ruleSet == "first" ? passwordToCheck.isPasswordValidFirstRuleSet() : passwordToCheck.isPasswordValidSecondRuleSet()) { goodPasswordCount++; } } return(goodPasswordCount); }
public int problem2() { var inputReaders = new InputReaders(); var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\05_BinaryBoarding.txt"; var tickets = inputReaders.readLines(path); var seats = getMultipleSeatInfo(tickets); List <BinaryBoarding> orderedSeats = seats.OrderBy(s => s.Seat).ToList(); var previousSeat = orderedSeats.First().Seat; foreach (var seat in orderedSeats) { if (previousSeat != seat.Seat) { return(previousSeat); } previousSeat++; } return(0); }
public long Problem2() { var path = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\03_01_TobogganTrajectory.txt"; var inputReaders = new InputReaders(); var helpers = new Helpers(); var input = inputReaders.readLinesToGrid(path); var slope1 = new List <int>() { 1, 1 }; var slope2 = new List <int>() { 3, 1 }; var slope3 = new List <int>() { 5, 1 }; var slope4 = new List <int>() { 7, 1 }; var slope5 = new List <int>() { 1, 2 }; var slopesToTest = new List <List <int> > { slope1, slope2, slope3, slope4, slope5 }; var listOfTreeCounts = testLotsOfSlopes(slopesToTest, input); var total = helpers.Multiply(listOfTreeCounts); return(total); }