public void TestNonBasic() { uint code; Assert.AreEqual(2, Utf16.ToCode(out code, 0xD834, 0xDD1E)); Assert.AreEqual((uint)0x1D11E, code); }
public void TestLatinCharacter() { uint code; Assert.AreEqual(1, Utf16.ToCode(out code, 0x7A)); Assert.AreEqual((uint)0x7A, code); Assert.AreEqual(1, Utf16.ToCode(out code, 0x7A, 0xABCD), "Trail is ignored"); Assert.AreEqual((uint)0x7A, code); }
public void TestHighSingleComponent() { uint code; Assert.AreEqual(1, Utf16.ToCode(out code, 0x6C34)); Assert.AreEqual((uint)0x6C34, code); Assert.AreEqual(1, Utf16.ToCode(out code, 0x6C34, 0xABCD), "Trail is ignored"); Assert.AreEqual((uint)0x6C34, code); }
/// <summary> /// Writes plain text content to the output stream. /// </summary> public void Span(string text) { if (text == null) { throw new ArgumentNullException("text"); } int start, end; for (start = 0, end = 0; end < text.Length; ++end) { if (_escapeChars.Contains(text[end])) { _writer.Write(text.Substring(start, end - start)); // Write control symbol. _writer.Write('\\'); _writer.Write(text[end]); start = end = end + 1; } else if (text[end] > 127) { _writer.Write(text.Substring(start, end - start)); // Write unicode character. uint code; start = end = end + Utf16.ToCode(out code, text, end); _writer.Write(@"\u{0}?", code); } } if (start < end) { _writer.Write(text.Substring(start, end - start)); } }