public void Should_skip_already_counted_targets() { var rules = new[] { "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 light red bags.", "vibrant olive bags contain 3 faded blue bags, 4 light red 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 target = "shiny gold"; var calc = new LuggageWrapperCalculator { Rules = rules }; AssertAsync.CompletesIn(3, () => { var variations = calc.FindWrapperVariationsFor(target); Assert.Equal(5, variations); }); }
public void Puzzle_7B() { var target = "shiny gold"; var calc = new LuggageWrapperCalculator { Rules = PuzzleInputs.Puzzle7 }; AssertAsync.CompletesIn(10, () => { var count = calc.CountBagTotal(target) - 1; Assert.True(5636 > count, "Should be less than 5636"); Assert.Equal(5635, count); }); }
public void Puzzle_7A() { var target = "shiny gold"; var calc = new LuggageWrapperCalculator { Rules = PuzzleInputs.Puzzle7 }; AssertAsync.CompletesIn(10, () => { var variations = calc.FindWrapperVariationsFor(target); Assert.True(450 > variations, "Should be less than 450"); Assert.True(373 > variations, "Should be less than 373"); Assert.True(327 > variations, "Should be less than 327"); Assert.Equal(326, variations); }); }