public void ThenFadedBlueParentsReturnsFourParents() { // var colours = new []{} 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 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 ruleSet = new RuleParser(); foreach (var rule in rules) { ruleSet.AddBagToSet(rule); } ruleSet .GetParents(new Bag("shiny", "gold")) .Should() .HaveCount(4); }
public void ThenFadedBlueParentsReturnsDarkOlive() { // var colours = new []{} 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 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 ruleSet = new RuleParser(); foreach (var rule in rules) { ruleSet.AddBagToSet(rule); } ruleSet .GetParents(new Bag("faded", "blue")) .Should() .ContainSingle(b => b.Id == "dark_olive"); }
static void Main(string[] args) { Console.WriteLine("Start the count"); foreach (var file in new DirectoryInfo("BagHandling.Harness/bin/Debug/net5.0/Rules").GetFiles()) { var rules = File.ReadAllLines(Path.Combine(file.DirectoryName, file.FullName)); var ruleSet = new RuleParser(); foreach (var rule in rules) { ruleSet.AddBagToSet(rule); } var outermostBags = ruleSet.GetParents(new Bag("shiny", "gold")).ToList(); Console.WriteLine($"{file.Name}: {outermostBags.Count}"); } }