Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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}");
            }
        }