public void MutableString_StartsWith1() {
MutableString s;
byte[] alpha = Encoding.UTF8.GetBytes("α");
// binary string, UTF8 encoding:
s = MutableString.CreateBinary(alpha, RubyEncoding.UTF8);
Assert(s.StartsWith('α'));
s = MutableString.CreateBinary(alpha, RubyEncoding.UTF8).Remove(1, 1);
Assert(!s.StartsWith('α'));
s = MutableString.CreateBinary(alpha, RubyEncoding.UTF8).Remove(0, 2);
Assert(!s.StartsWith('α'));
// binary string:
s = MutableString.CreateBinary(alpha, RubyEncoding.Binary);
Assert(!s.StartsWith('α'));
s = MutableString.CreateMutable(BinaryEncoding.Instance.GetString(alpha), RubyEncoding.Binary);
Assert(!s.StartsWith('α'));
byte[] b = RubyEncodingOps.UTF_32BE.Encoding.GetBytes("ab");
s = MutableString.CreateBinary(b, RubyEncodingOps.UTF_32BE);
Assert(!s.StartsWith('\0'));
Assert(s.StartsWith('a'));
s = MutableString.CreateBinary(new byte[] { 0xff, 0x23 }, RubyEncoding.Binary);
Assert(s.StartsWith('\u00ff'));
b = new byte[] { 0xA9, 0x20 };
s = MutableString.CreateBinary(b, RubyEncodingOps.KOI8_R);
Assert(s.StartsWith(RubyEncodingOps.KOI8_R.Encoding.GetString(b)[0]));
// char array content:
s = MutableString.CreateMutable("abc", RubyEncoding.UTF8).Remove(1, 2);
Assert(s.StartsWith('a'));
Assert(!s.StartsWith('α'));
}