IronRuby.Tests.Tests.MutableString_Surrogates2 C# (CSharp) Method

MutableString_Surrogates2() private method

private MutableString_Surrogates2 ( ) : void
return void
        public void MutableString_Surrogates2() {
            MutableString a;

            foreach (var e in new[] { 
                RubyEncodingOps.UTF_32LE, RubyEncodingOps.UTF_32BE, RubyEncodingOps.UTF_16LE, RubyEncodingOps.UTF_16BE,
                RubyEncodingOps.UTF_8, RubyEncodingOps.UTF_7
            }) {
                a = MutableString.Create("abcd", e);
                Assert(!a.HasSurrogates());
                Assert(a.KnowsSurrogates);
                
                a.Remove(2, 1);                               // abd
                Assert(a.KnowsSurrogates);
                Assert(!a.HasSurrogates());
                
                a.Append('e');                                // abde
                Assert(a.KnowsSurrogates);
                Assert(!a.HasSurrogates());

                a.SetChar(2, '\uD800');                       // ab\u{D800}e
                Assert(a.KnowsSurrogates);                    
                Assert(a.HasSurrogates());                    
                                                              
                a.Remove(2, 1);                               // abe
                Assert(!a.KnowsSurrogates);                   
                Assert(!a.HasSurrogates());                   
                                                              
                a.Append('\uD800');                           // abe\u{D800}
                Assert(a.KnowsSurrogates); 
                Assert(a.HasSurrogates());

                a.Replace(2, 2, MutableString.CreateAscii("xx"));  // abxx 
                Assert(!a.KnowsSurrogates);
                Assert(!a.HasSurrogates());

                Assert(a.ToString() == "abxx");
            }
        }
Tests