public void TestExpected()
        {
            Challenge08 c      = new Challenge08();
            string      result = c.DoChallenge08();

            Assert.AreEqual("d880619740a8a19b7840a8a31c810a3d08649af70dc06f4fd5d2d69c744cd283e2dd052f6b641dbf9d11b0348542bb5708649af70dc06f4fd5d2d69c744cd2839475c9dfdbc1d46597949d9c7e82bf5a08649af70dc06f4fd5d2d69c744cd28397a93eab8d6aecd566489154789a6b0308649af70dc06f4fd5d2d69c744cd283d403180c98c8f6db1f2a3f9c4040deb0ab51b29933f2c123c58386b06fba186a", result.TrimEnd());
        }
        static void RunOptionsAndReturnExitCode(Options opts)
        {
            switch (opts.Challenge)
            {
            case 1:
                //-c 01 -x 49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d
                Challenge01 c1 = new Challenge01();
                Console.WriteLine(c1.DoChallenge01(opts.Value1));
                break;

            case 2:
                //-c 02 -x 1c0111001f010100061a024b53535009181c -y 686974207468652062756c6c277320657965
                Challenge02 c2 = new Challenge02();
                Console.WriteLine(c2.DoChallenge02(opts.Value1, opts.Value2));
                break;

            case 3:
                //-c 03 -x 1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736
                Challenge03 c3 = new Challenge03();
                Console.WriteLine(c3.DoChallenge03(opts.Value1));
                break;

            case 4:
                //-c 04
                Challenge04 c4 = new Challenge04();
                Console.WriteLine(c4.DoChallenge04());
                break;

            case 5:
                //-c 05 -x "Burning 'em, if you ain't quick and nimble\nI go crazy when I hear a cymbal" -y "ICE"
                Challenge05 c5 = new Challenge05();
                Console.WriteLine(c5.DoChallenge05(opts.Value1, opts.Value2));
                break;

            case 6:
                //-c 06
                Challenge06 c6 = new Challenge06();
                Console.WriteLine(c6.DoChallenge06());
                break;

            case 7:
                //-c 07
                Challenge07 c7 = new Challenge07();
                Console.WriteLine(c7.DoChallenge07());
                break;

            case 8:
                //-c 08
                Challenge08 c8 = new Challenge08();
                Console.WriteLine(c8.DoChallenge08());
                break;

            case 9:
                //-c 09 -x "YELLOW SUBMARINE" -y 20
                Challenge09 c9 = new Challenge09();
                Console.WriteLine(c9.DoChallenge09(opts.Value1, opts.Value2));
                break;

            default:
                Console.WriteLine("Invalid options specified.");
                break;
            }
        }