public void MutableString_ChangeEncoding1() {
#if TODO
var alpha = Encoding.UTF8.GetBytes("α");
MutableString s = MutableString.CreateBinary(alpha, RubyEncoding.UTF8);
var SJIS = RubyEncoding.SJIS;
var hc2 = MutableString.Create("α", SJIS).GetHashCode();
var hc3 = MutableString.CreateBinary(alpha, SJIS).GetHashCode();
// TODO: hc2 should be equal to hc3
s.ChangeEncoding(SJIS, true);
Assert(s.ToString() == "ホア" && s.Encoding == SJIS && !s.IsBinaryEncoded && (s.GetHashCode() == hc2 || s.GetHashCode() == hc3));
s = MutableString.CreateMutable("α", RubyEncoding.UTF8);
s.ChangeEncoding(SJIS, true);
Assert(s.ToByteArray().ValueEquals(SJIS.StrictEncoding.GetBytes("α")));
hc = s.GetHashCode();
hc2 = MutableString.Create("α", RubyEncoding.SJIS).GetHashCode();
hc3 = MutableString.CreateBinary(alpha, RubyEncoding.SJIS).GetHashCode();
s.ChangeEncoding(RubyEncoding.SJIS, true);
Assert(s.GetHashCode() == hc2 || s.GetHashCode() == hc3);
#endif
}