System.Net.Tests.WebUtilityTests.UrlEncode_SharedTestData C# (CSharp) Method

UrlEncode_SharedTestData() public static method

public static UrlEncode_SharedTestData ( ) : string>>.IEnumerable
return string>>.IEnumerable
        public static IEnumerable<Tuple<string, string>> UrlEncode_SharedTestData()
        {
            // RFC 3986 requires returned hex-encoded chars to be uppercase
            yield return Tuple.Create("/\\\"\tHello! \u2665?/\\\"\tWorld! \u2665?\u2665", "%2F%5C%22%09Hello!+%E2%99%A5%3F%2F%5C%22%09World!+%E2%99%A5%3F%E2%99%A5");
            yield return Tuple.Create("'", "%27");
            yield return Tuple.Create("\uD800\uDFFF", "%F0%90%8F%BF"); // Surrogate pairs should be encoded as 4 bytes together

            // No encoding needed
            yield return Tuple.Create("abc", "abc");
            yield return Tuple.Create("", "");

            // Spaces
            yield return Tuple.Create("abc def", "abc+def");
            yield return Tuple.Create("    ", "++++");
            yield return Tuple.Create("++++", "%2B%2B%2B%2B");

            // Tests for stray surrogate chars (all should be encoded as U+FFFD)            
            yield return Tuple.Create("\uD800", "%EF%BF%BD"); // High surrogate
            yield return Tuple.Create("\uDC00", "%EF%BF%BD"); // Low surrogate

            yield return Tuple.Create("\uDC00\uD800", "%EF%BF%BD%EF%BF%BD"); // Low + high
            yield return Tuple.Create("\uD900\uDA00", "%EF%BF%BD%EF%BF%BD"); // High + high
            yield return Tuple.Create("\uDE00\uDF00", "%EF%BF%BD%EF%BF%BD"); // Low + low

            yield return Tuple.Create("!\uDB00@", "!%EF%BF%BD%40"); // Non-surrogate + high + non-surrogate
            yield return Tuple.Create("#\uDD00$", "%23%EF%BF%BD%24"); // Non-surrogate + low + non-surrogate
        }