public void EscapeTest_FSharp_UseShortEscape(char original, string escaped)
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.FSharp,
                UseShortEscape = true
            };

            Assert.Equal(escaped, CharUtils.Escape(original, options));
        }
        public void EscapeTest_CSharp_LowerCaseU4(char original, string escaped)
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.CSharp,
                EscapeLetter   = CharEscapeLetter.LowerCaseU4
            };

            Assert.Equal(escaped, CharUtils.Escape(original, options));
        }
        public void EscapeTest_FSharp_None3(char original, string escaped)
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.FSharp,
                EscapeLetter   = CharEscapeLetter.None3
            };

            Assert.Equal(escaped, CharUtils.Escape(original, options));
        }
        public void EscapeTest_FSharp_UseLowerCaseHex(char original, string escaped)
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage  = CharEscapeLanguage.FSharp,
                EscapeLetter    = CharEscapeLetter.LowerCaseU4,
                UseLowerCaseHex = true
            };

            Assert.Equal(escaped, CharUtils.Escape(original, options));
        }
        public void EscapeTest_PowerShell()
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.PowerShell
            };

            char original = 'A';

            Assert.Throws <ArgumentException>(() => CharUtils.Escape(original, options));
        }
        public void EscapeTest_FSharp_AddQuotes()
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.FSharp
            };

            char original = 'A';

            Assert.Equal("\'\\u0041\'", CharUtils.Escape(original, options, true));
        }
        public void EscapeTest_PowerShell_AddQuotes()
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.PowerShell
            };

            string original = "ABC";
            string escaped  = StringUtils.Escape(original, charEscapeOptions: options, addQuotes: true);

            Assert.Equal("\"`u{0041}`u{0042}`u{0043}\"", escaped);
        }
        public void EscapeTest_FSharp_AddQuotes()
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.FSharp
            };

            string original = "ABC";
            string escaped  = StringUtils.Escape(original, charEscapeOptions: options, addQuotes: true);

            Assert.Equal("\"\\u0041\\u0042\\u0043\"", escaped);
        }
        public void EscapeTest_CSharp_LowerCaseU6()
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.CSharp,
                EscapeLetter   = CharEscapeLetter.LowerCaseU6
            };

            char original = 'A';

            Assert.Throws <ArgumentException>(() => CharUtils.Escape(original, options));
        }
        public void EscapeTest_FSharp_LowerCaseU4_EscapeNonAscii()
        {
            StringEscapeOptions sOptions = new StringEscapeOptions()
            {
                EscapeKind = StringEscapeKind.EscapeNonAscii
            };
            CharEscapeOptions cOptions = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.FSharp,
                EscapeLetter   = CharEscapeLetter.LowerCaseU4
            };

            string original = "ABC ÄÖÜ ㄱㄴㄷ 😁😃😓 \r\n\t";
            string escaped  = StringUtils.Escape(original, stringEscapeOptions: sOptions, charEscapeOptions: cOptions);

            Assert.Equal("ABC \\u00C4\\u00D6\\u00DC \\u3131\\u3134\\u3137 \\uD83D\\uDE01\\uD83D\\uDE03\\uD83D\\uDE13 \\u000D\\u000A\\u0009", escaped);
        }
        public void EscapeTest_PowerShell_LowerCaseU4_EscapeAll()
        {
            StringEscapeOptions sOptions = new StringEscapeOptions()
            {
                EscapeKind = StringEscapeKind.EscapeAll
            };
            CharEscapeOptions cOptions = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.PowerShell,
                EscapeLetter   = CharEscapeLetter.LowerCaseU4
            };

            string original = "ABC ÄÖÜ ㄱㄴㄷ 😁😃😓 \r\n\t";
            string escaped  = StringUtils.Escape(original, stringEscapeOptions: sOptions, charEscapeOptions: cOptions);

            Assert.Equal("`u{0041}`u{0042}`u{0043}`u{0020}`u{00C4}`u{00D6}`u{00DC}`u{0020}`u{3131}`u{3134}`u{3137}`u{0020}`u{D83D}`u{DE01}`u{D83D}`u{DE03}`u{D83D}`u{DE13}`u{0020}`u{000D}`u{000A}`u{0009}", escaped);
        }
        public void EscapeTest_CSharp_EscapeNonAscii_LowerCaseX2()
        {
            StringEscapeOptions sOptions = new StringEscapeOptions()
            {
                EscapeKind = StringEscapeKind.EscapeNonAscii
            };
            CharEscapeOptions cOptions = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.CSharp,
                EscapeLetter   = CharEscapeLetter.LowerCaseX2 // or LowerCaseX1/LowerCaseX3
            };

            string original = "ÄA";
            string escaped  = StringUtils.Escape(original, stringEscapeOptions: sOptions, charEscapeOptions: cOptions);

            Assert.NotEqual("\\xC4A", escaped); // '\xC4' + 'A' is not the same as '\xC4A'
            Assert.Equal("\\x00C4A", escaped);  // so we have to use the full '\x00C4' + 'A' sequence here
        }
        public void EscapeTest_FSharp_EscapeNonAscii_LowerCaseX2()
        {
            StringEscapeOptions sOptions = new StringEscapeOptions()
            {
                EscapeKind = StringEscapeKind.EscapeNonAscii
            };
            CharEscapeOptions cOptions = new CharEscapeOptions()
            {
                EscapeLanguage       = CharEscapeLanguage.FSharp,
                EscapeLetter         = CharEscapeLetter.LowerCaseX2, // or LowerCaseX1/LowerCaseX3
                EscapeLetterFallback = CharEscapeLetter.LowerCaseU4
            };

            string original = "ㄱg";
            string escaped  = StringUtils.Escape(original, stringEscapeOptions: sOptions, charEscapeOptions: cOptions);

            Assert.NotEqual("\\x3131g", escaped); // the escape here is 4 chars (3131) so it can't be used with \xHH
            Assert.Equal("\\u3131g", escaped);    // instead we automatically switch to \uHHHH
        }
        public void EscapeTest_FSharp_LowerCaseU4_EscapeAll_EscapeSurrogatePairs()
        {
            StringEscapeOptions sOptions = new StringEscapeOptions()
            {
                EscapeKind           = StringEscapeKind.EscapeAll,
                EscapeSurrogatePairs = true
            };
            CharEscapeOptions cOptions = new CharEscapeOptions()
            {
                EscapeLanguage            = CharEscapeLanguage.FSharp,
                EscapeLetter              = CharEscapeLetter.LowerCaseU4,
                SurrogatePairEscapeLetter = CharEscapeLetter.UpperCaseU8
            };

            string original = "ABC ÄÖÜ ㄱㄴㄷ 😁😃😓 \r\n\t";
            string escaped  = StringUtils.Escape(original, stringEscapeOptions: sOptions, charEscapeOptions: cOptions);

            Assert.Equal("\\u0041\\u0042\\u0043\\u0020\\u00C4\\u00D6\\u00DC\\u0020\\u3131\\u3134\\u3137\\u0020\\U0001F601\\U0001F603\\U0001F613\\u0020\\u000D\\u000A\\u0009", escaped);
        }
Ejemplo n.º 15
0
        public void EscapeTest_FSharp_None3_Fallback()
        {
            CharEscapeOptions options = new CharEscapeOptions()
            {
                EscapeLanguage = CharEscapeLanguage.FSharp,
                EscapeLetter   = CharEscapeLetter.None3
            };

            char original = 'ㄱ';

            options.EscapeLetterFallback = CharEscapeLetter.LowerCaseU4;
            Assert.Equal("\\u3131", CharUtils.Escape(original, options));

            options.EscapeLetterFallback = CharEscapeLetter.UpperCaseU8;
            Assert.Equal("\\U00003131", CharUtils.Escape(original, options));

            options.EscapeLetterFallback = CharEscapeLetter.None3; // bad
            Assert.Throws <ArgumentException>(() => CharUtils.Escape(original, options));
        }