public void MutableString_IsAscii() {
MutableString a;
byte[] b;
foreach (var e in new[] { RubyEncoding.Binary, RubyEncoding.SJIS, RubyEncoding.EUCJP, RubyEncodingOps.ISO_8859_15 }) {
a = MutableString.CreateBinary(new byte[] { 0x12, 0x34, 0x56 }, e);
Assert(a.IsAscii());
a.Remove(2);
Assert(a.IsAscii());
a.Append(0x56);
Assert(a.IsAscii());
a.Append(0x80);
Assert(!a.IsAscii());
a.ConvertToString();
Assert(!a.IsAscii());
a.Remove(2);
Assert(a.IsAscii());
}
b = Encoding.Unicode.GetBytes("hello");
// non-ascii-identity encodings:
foreach (var e in new[] { RubyEncodingOps.UTF_16BE, RubyEncodingOps.UTF_16LE, RubyEncodingOps.UTF_32LE, RubyEncodingOps.UTF_32BE }) {
a = MutableString.CreateBinary(b, e);
Assert(!a.IsAscii());
a = MutableString.CreateMutable("hello", e);
Assert(!a.IsAscii());
a = MutableString.Create("hello", e);
Assert(!a.IsAscii());
}
}