public void AOC_2015_Day05b()
        {
            var input = File.ReadAllText(".//Content//Day05.txt")
                        .Split(Environment.NewLine).ToArray();

            bool HasPair(string str) =>
            Regex.IsMatch(str, @"(\w{2}).*\1");

            bool HasDuplicate(string str) =>
            Regex.IsMatch(str, @"(\w).\1");

            bool IsNiceString(string str) =>
            HasDuplicate(str) &&
            HasPair(str);

            var niceStrings = input.Where(IsNiceString);


            var myNiceStrings = input.Where(x => AOC_2015_Day05_Answer.CalculateIsNiceNewRules(x));
            var difference    = myNiceStrings.Except(niceStrings);

            var output = myNiceStrings.Count();

            output.Should().Be(69);
        }
        public void AOC_2015_Day05a()
        {
            var input = File.ReadAllText(".//Content//Day05.txt")
                        .Split(Environment.NewLine);
            var output = input.Count(x => AOC_2015_Day05_Answer.CalculateIsNice(x));

            output.Should().Be(238);
        }
        public void calculate_contains_same_pair_of_letters_twice(string input, bool expectedAnswer)
        {
            var output = AOC_2015_Day05_Answer.CalculateContainsSamePairOfLettersTwice(input);

            output.Should().Be(expectedAnswer);
        }
        public void calculate_is_nice_new_rules(string input, bool expectedAnswer)
        {
            var output = AOC_2015_Day05_Answer.CalculateIsNiceNewRules(input);

            output.Should().Be(expectedAnswer);
        }
        public void calculate_contains_the_same_letter_separated_by_a_single_letter(string input, bool expectedAnswer)
        {
            var output = AOC_2015_Day05_Answer.CalculateContainsSameLetterSeparatedByASingleLetter(input);

            output.Should().Be(expectedAnswer);
        }