public void Utf8ToUtf16AsciiTest() { var expected = new char[] { (char)0x00, (char)0x7f, (char)0x3f }; var bytes = Encoding.UTF8.GetBytes(expected); var actual = Utf8ToUtf16.ToUtf16Enumerable(bytes, 0).ToArray(); Assert.Equal(expected, actual); }
public void Utf8ToUtf16UnsafeBOMTest() { var expected = new char[] { (char)0xfeff, (char)0x3f }; var bytes = Encoding.UTF8.GetBytes(expected); var actual = Utf8ToUtf16.ToUtf16String(bytes, 0, bytes.Length).ToArray(); Assert.Equal(expected, actual); }
public void Utf8ToUtf16U10FFFFTest() { var expected = new char[] { (char)0xdbc0, (char)0xdc00, (char)0xdbc0, (char)0xdc30, (char)0xdbff, (char)0xdfff }; var bytes = Encoding.UTF8.GetBytes(expected); var actual = Utf8ToUtf16.ToUtf16Enumerable(bytes, 0).ToArray(); Assert.Equal(expected, actual); }
public void UnsafeUtf8ToUtf16() { var bytes = Encoding.UTF8.GetBytes(new string(Enumerable.Range(0, Length).Select(x => (char)CharacterCode).ToArray())); for (int i = 0; i < LoopNum; i++) { Utf8ToUtf16.ToUtf16String(bytes, 0, Length); } }
public void UnsafeUtf8ToUtf16Preallocated() { var bytes = Encoding.UTF8.GetBytes(new string(Enumerable.Range(0, Length).Select(x => (char)CharacterCode).ToArray())); char[] buf = System.Buffers.ArrayPool <char> .Shared.Rent(bytes.Length); for (int i = 0; i < LoopNum; i++) { Utf8ToUtf16.ToUtf16Chars(bytes, 0, bytes.Length, buf, 0); } System.Buffers.ArrayPool <char> .Shared.Return(buf); }