public void ShouldBeEncodedTo(char value, string expected)
        {
            string result = PercentEncoding.Encode(value);

            result.Should()
            .Be(expected);
        }
        public static void AppendEncoded(this StringBuilder self, char value, bool allowReserved)
        {
            var doNotEncode = (value.IsUnreserved()) ||
                              (allowReserved && value.IsReserved());

            if (doNotEncode)
            {
                self.Append(value);
            }
            else
            {
                self.Append(PercentEncoding.Encode(value));
            }
        }