2 // UnicodeEncodingTest.cs - NUnit Test Cases for System.Text.UnicodeEncoding
5 // Patrick Kalkman kalkman@cistron.nl
7 // (C) 2003 Patrick Kalkman
13 namespace MonoTests
.System
.Text
16 public class UnicodeEncodingTest
19 public void TestEncodingGetBytes1()
21 //pi and sigma in unicode
22 string Unicode
= "\u03a0\u03a3";
24 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (); //little-endian
25 UniBytes
= UnicodeEnc
.GetBytes (Unicode
);
27 Assertion
.AssertEquals ("Uni #1", 0xA0, UniBytes
[0]);
28 Assertion
.AssertEquals ("Uni #2", 0x03, UniBytes
[1]);
29 Assertion
.AssertEquals ("Uni #3", 0xA3, UniBytes
[2]);
30 Assertion
.AssertEquals ("Uni #4", 0x03, UniBytes
[3]);
34 public void TestEncodingGetBytes2()
36 //pi and sigma in unicode
37 string Unicode
= "\u03a0\u03a3";
39 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (true, true); //big-endian
40 UniBytes
= UnicodeEnc
.GetBytes (Unicode
);
42 Assertion
.AssertEquals ("Uni #1", 0x03, UniBytes
[0]);
43 Assertion
.AssertEquals ("Uni #2", 0xA0, UniBytes
[1]);
44 Assertion
.AssertEquals ("Uni #3", 0x03, UniBytes
[2]);
45 Assertion
.AssertEquals ("Uni #4", 0xA3, UniBytes
[3]);
49 public void TestEncodingGetBytes3()
51 //pi and sigma in unicode
52 string Unicode
= "\u03a0\u03a3";
53 byte[] UniBytes
= new byte [4];
54 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (); //little-endian
55 int Cnt
= UnicodeEnc
.GetBytes (Unicode
.ToCharArray(), 0, Unicode
.Length
, UniBytes
, 0);
57 Assertion
.AssertEquals ("Uni #1", 4, Cnt
);
58 Assertion
.AssertEquals ("Uni #2", 0xA0, UniBytes
[0]);
59 Assertion
.AssertEquals ("Uni #3", 0x03, UniBytes
[1]);
60 Assertion
.AssertEquals ("Uni #4", 0xA3, UniBytes
[2]);
61 Assertion
.AssertEquals ("Uni #5", 0x03, UniBytes
[3]);
65 public void TestEncodingDecodingGetBytes1()
67 //pi and sigma in unicode
68 string Unicode
= "\u03a0\u03a3";
69 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (); //little-endian
70 //Encode the unicode string.
71 byte[] UniBytes
= UnicodeEnc
.GetBytes (Unicode
);
72 //Decode the bytes to a unicode char array.
73 char[] UniChars
= UnicodeEnc
.GetChars (UniBytes
);
74 string Result
= new string(UniChars
);
76 Assertion
.AssertEquals ("Uni #1", Unicode
, Result
);
80 public void TestEncodingDecodingGetBytes2()
82 //pi and sigma in unicode
83 string Unicode
= "\u03a0\u03a3";
84 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (true, true); //big-endian
85 //Encode the unicode string.
86 byte[] UniBytes
= UnicodeEnc
.GetBytes (Unicode
);
87 //Decode the bytes to a unicode char array.
88 char[] UniChars
= UnicodeEnc
.GetChars (UniBytes
);
89 string Result
= new string(UniChars
);
91 Assertion
.AssertEquals ("Uni #1", Unicode
, Result
);
95 public void TestEncodingGetCharCount ()
97 byte[] b
= new byte[] {255, 254, 115, 0, 104, 0, 105, 0}
;
98 UnicodeEncoding encoding
= new UnicodeEncoding ();
100 Assertion
.AssertEquals ("GetCharCount #1", 3,
101 encoding
.GetCharCount (b
, 2, b
.Length
- 2));
107 public void TestPreamble1()
109 //litle-endian with byte order mark.
110 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (false, true);
111 byte[] PreAmble
= UnicodeEnc
.GetPreamble();
113 Assertion
.AssertEquals ("Uni #1", 0xFF, PreAmble
[0]);
114 Assertion
.AssertEquals ("Uni #2", 0xFE, PreAmble
[1]);
118 public void TestPreamble2()
120 //big-endian with byte order mark.
121 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (true, true);
122 byte[] PreAmble
= UnicodeEnc
.GetPreamble();
124 Assertion
.AssertEquals ("Uni #1", 0xFE, PreAmble
[0]);
125 Assertion
.AssertEquals ("Uni #2", 0xFF, PreAmble
[1]);
129 public void TestPreamble3()
131 //little-endian without byte order mark.
132 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding (false, false);
133 byte[] PreAmble
= UnicodeEnc
.GetPreamble();
135 Assertion
.AssertEquals ("Uni #1", 0, PreAmble
.Length
);
139 public void TestMaxCharCount()
141 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding ();
142 Assertion
.AssertEquals ("UTF #1", 25, UnicodeEnc
.GetMaxCharCount(50));
146 public void TestMaxByteCount()
148 UnicodeEncoding UnicodeEnc
= new UnicodeEncoding ();
149 Assertion
.AssertEquals ("UTF #1", 100, UnicodeEnc
.GetMaxByteCount(50));