public void NotFound()
        {
            NestedSwitchesBuilder <char, Func <String> > builder = new NestedSwitchesBuilder <char, Func <String> >();

            builder.Add("ACF".AsEnumerable(), () => "acf");
            builder.Add("ACV".AsEnumerable(), () => "acv");
            builder.Add("AG".AsEnumerable(), () => "ag");
            builder.Add("EC".AsEnumerable(), () => "ec");
            var nestedSwitches = builder.Build();

            Assert.Null(nestedSwitches("ACE".AsEnumerable()));
            Assert.Null(nestedSwitches("AC".AsEnumerable()));
            Assert.Null(nestedSwitches("I".AsEnumerable()));
            Assert.Null(nestedSwitches("".AsEnumerable()));
        }
        public void Basic()
        {
            NestedSwitchesBuilder <char, Func <String> > builder = new NestedSwitchesBuilder <char, Func <String> >();

            builder.Add("ACF".AsEnumerable(), () => "acf");
            builder.Add("ACV".AsEnumerable(), () => "acv");
            builder.Add("AG".AsEnumerable(), () => "ag");
            builder.Add("EC".AsEnumerable(), () => "ec");
            var nestedSwitches = builder.Build();

            Assert.Equal("acf", nestedSwitches("ACF".AsEnumerable())());
            Assert.Equal("acv", nestedSwitches("ACV".AsEnumerable())());
            Assert.Equal("ag", nestedSwitches("AG".AsEnumerable())());
            Assert.Equal("ec", nestedSwitches("EC".AsEnumerable())());
        }