1 // UTF8EncodingTest.cs - NUnit Test Cases for System.Text.UTF8Encoding
\r
3 // Patrick Kalkman kalkman@cistron.nl
\r
5 // (C) 2003 Patrick Kalkman
\r
7 using NUnit.Framework;
\r
11 namespace MonoTests.System.Text
\r
15 public class UTF8EncodingTest
\r
18 public void GetReady() {}
\r
21 public void Clean() {}
\r
24 public void TestEncodingGetBytes1()
\r
26 UTF8Encoding utf8Enc = new UTF8Encoding ();
\r
27 string UniCode = "\u0041\u2262\u0391\u002E";
\r
29 // "A<NOT IDENTICAL TO><ALPHA>." may be encoded as 41 E2 89 A2 CE 91 2E
\r
31 byte[] utf8Bytes = utf8Enc.GetBytes (UniCode);
\r
33 Assertion.AssertEquals ("UTF #1", 0x41, utf8Bytes [0]);
\r
34 Assertion.AssertEquals ("UTF #2", 0xE2, utf8Bytes [1]);
\r
35 Assertion.AssertEquals ("UTF #3", 0x89, utf8Bytes [2]);
\r
36 Assertion.AssertEquals ("UTF #4", 0xA2, utf8Bytes [3]);
\r
37 Assertion.AssertEquals ("UTF #5", 0xCE, utf8Bytes [4]);
\r
38 Assertion.AssertEquals ("UTF #6", 0x91, utf8Bytes [5]);
\r
39 Assertion.AssertEquals ("UTF #7", 0x2E, utf8Bytes [6]);
\r
43 public void TestEncodingGetBytes2()
\r
45 UTF8Encoding utf8Enc = new UTF8Encoding ();
\r
46 string UniCode = "\u0048\u0069\u0020\u004D\u006F\u006D\u0020\u263A\u0021";
\r
48 // "Hi Mom <WHITE SMILING FACE>!" may be encoded as 48 69 20 4D 6F 6D 20 E2 98 BA 21
\r
50 byte[] utf8Bytes = new byte [11];
\r
52 int ByteCnt = utf8Enc.GetBytes (UniCode.ToCharArray(), 0, UniCode.Length, utf8Bytes, 0);
\r
54 Assertion.AssertEquals ("UTF #1", 11, ByteCnt);
\r
55 Assertion.AssertEquals ("UTF #2", 0x48, utf8Bytes [0]);
\r
56 Assertion.AssertEquals ("UTF #3", 0x69, utf8Bytes [1]);
\r
57 Assertion.AssertEquals ("UTF #4", 0x20, utf8Bytes [2]);
\r
58 Assertion.AssertEquals ("UTF #5", 0x4D, utf8Bytes [3]);
\r
59 Assertion.AssertEquals ("UTF #6", 0x6F, utf8Bytes [4]);
\r
60 Assertion.AssertEquals ("UTF #7", 0x6D, utf8Bytes [5]);
\r
61 Assertion.AssertEquals ("UTF #8", 0x20, utf8Bytes [6]);
\r
62 Assertion.AssertEquals ("UTF #9", 0xE2, utf8Bytes [7]);
\r
63 Assertion.AssertEquals ("UTF #10", 0x98, utf8Bytes [8]);
\r
64 Assertion.AssertEquals ("UTF #11", 0xBA, utf8Bytes [9]);
\r
65 Assertion.AssertEquals ("UTF #12", 0x21, utf8Bytes [10]);
\r
69 public void TestDecodingGetChars1()
\r
71 UTF8Encoding utf8Enc = new UTF8Encoding ();
\r
72 // 41 E2 89 A2 CE 91 2E may be decoded as "A<NOT IDENTICAL TO><ALPHA>."
\r
74 byte[] utf8Bytes = new byte [] {0x41, 0xE2, 0x89, 0xA2, 0xCE, 0x91, 0x2E};
\r
75 char[] UniCodeChars = utf8Enc.GetChars(utf8Bytes);
\r
77 Assertion.AssertEquals ("UTF #1", 0x0041, UniCodeChars [0]);
\r
78 Assertion.AssertEquals ("UTF #2", 0x2262, UniCodeChars [1]);
\r
79 Assertion.AssertEquals ("UTF #3", 0x0391, UniCodeChars [2]);
\r
80 Assertion.AssertEquals ("UTF #4", 0x002E, UniCodeChars [3]);
\r
84 public void TestMaxCharCount()
\r
86 UTF8Encoding UTF8enc = new UTF8Encoding ();
\r
87 Assertion.AssertEquals ("UTF #1", 50, UTF8enc.GetMaxCharCount(50));
\r
91 public void TestMaxByteCount()
\r
93 UTF8Encoding UTF8enc = new UTF8Encoding ();
\r
94 Assertion.AssertEquals ("UTF #1", 200, UTF8enc.GetMaxByteCount(50));
\r