public void MutableString_SwitchRepr() {
// \u{12345} in UTF-8:
var u12345 = new byte[] { 0xF0, 0x92, 0x8D, 0x85 };
var u215c = new byte[] { 0xE2, 0x85, 0x9C };
var surrogate = MS(u12345, RubyEncoding.UTF8);
surrogate.Append('x');
Assert(surrogate.GetCharCount() == 3);
Assert(surrogate.ToString() == Encoding.UTF8.GetString(u12345) + "x");
var result = MutableString.AppendUnicodeRepresentation(new StringBuilder(), Encoding.UTF8.GetString(u12345), MutableString.Escape.NonAscii, -1, -1);
Assert(result.ToString() == "\\u{12345}");
result = MutableString.AppendUnicodeRepresentation(new StringBuilder(), Encoding.UTF8.GetString(u215c), MutableString.Escape.NonAscii, -1, -1);
Assert(result.ToString() == "\\u{215c}");
//var incompleteChar = MS(new byte[] { 0xF0, 0x92 }, RubyEncoding.UTF8);
//AssertExceptionThrown<DecoderFallbackException>(() => incompleteChar.Append('x'));
// TODO:
// var e = RubyEncoding.GetRubyEncoding(new NonInvertibleEncoding());
}