public void ParsesInput()
        {
            var subject = new Day7Solution();

            var result = subject.Parse(new List <string>
            {
                "Step C must be finished before step A can begin.",
                "Step C must be finished before step F can begin.",
                "Step A must be finished before step B can begin.",
                "Step A must be finished before step D can begin.",
                "Step B must be finished before step E can begin.",
                "Step D must be finished before step E can begin.",
                "Step F must be finished before step E can begin.",
            });

            result.Should().BeEquivalentTo(new Dictionary <string, List <string> >
            {
                { "C", new List <string>() },
                { "A", new List <string> {
                      "C"
                  } },
                { "B", new List <string> {
                      "A"
                  } },
                { "D", new List <string> {
                      "A"
                  } },
                { "F", new List <string> {
                      "C"
                  } },
                { "E", new List <string> {
                      "B", "D", "F"
                  } },
            });
        }
        public void DeterminesBuildTime()
        {
            var subject = new Day7Solution();

            int result = subject.SolvePart2(2, 0, new Dictionary <string, List <string> >
            {
                { "C", new List <string>() },
                { "A", new List <string> {
                      "C"
                  } },
                { "B", new List <string> {
                      "A"
                  } },
                { "D", new List <string> {
                      "A"
                  } },
                { "F", new List <string> {
                      "C"
                  } },
                { "E", new List <string> {
                      "B", "D", "F"
                  } },
            });

            result.Should().Be(15);
        }
        public void GeneratesBuildOrder()
        {
            var subject = new Day7Solution();

            var result = subject.SolvePart1(new Dictionary <string, List <string> >
            {
                { "C", new List <string>() },
                { "A", new List <string> {
                      "C"
                  } },
                { "B", new List <string> {
                      "A"
                  } },
                { "D", new List <string> {
                      "A"
                  } },
                { "F", new List <string> {
                      "C"
                  } },
                { "E", new List <string> {
                      "B", "D", "F"
                  } },
            });

            result.Should().Be("CABDFE");
        }
Beispiel #4
0
        public void ShouldGetTheTotalNumberOfBagsContainedInBag()
        {
            var mockData = new List <string>()
            {
                "shiny gold bags contain 2 dark red bags.",
                "dark red bags contain 2 dark orange bags.",
                "dark orange bags contain 2 dark yellow bags.",
                "dark yellow bags contain 2 dark green bags.",
                "dark green bags contain 2 dark blue bags.",
                "dark blue bags contain 2 dark violet bags.",
                "dark violet bags contain no other bags.",
            };
            var autoMocker = new AutoMoqer();

            _fileReaderMock.Setup(f => f.ReadFileToStringArray(It.IsAny <string>())).Returns(mockData);
            _solution = new Day7Solution(_fileReaderMock.Object);

            var number = _solution.GetNumberOfBagsInsideBag("shiny gold") - 1;

            Assert.AreEqual(number, 126);
        }
Beispiel #5
0
        public void InIt()
        {
            _mockData = new List <string>()
            {
                "light red bags contain 1 bright white bag, 2 muted yellow bags.",
                "dark orange bags contain 3 bright white bags, 4 muted yellow bags.",
                "bright white bags contain 1 shiny gold bag.",
                "muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.",
                "shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.",
                "dark olive bags contain 3 faded blue bags, 4 dotted black bags.",
                "vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.",
                "faded blue bags contain no other bags.",
                "dotted black bags contain no other bags."
            };
            var autoMocker = new AutoMoqer();

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

            _solution = new Day7Solution(_fileReaderMock.Object);
        }