| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- //
- // UnicodeEncodingTest.cs - NUnit Test Cases for System.Text.UnicodeEncoding
- //
- // Author:
- // Patrick Kalkman [email protected]
- //
- // (C) 2003 Patrick Kalkman
- //
- using NUnit.Framework;
- using System;
- using System.Text;
- namespace MonoTests.System.Text
- {
- [TestFixture]
- public class UnicodeEncodingTest
- {
- [Test]
- public void TestEncodingGetBytes1()
- {
- //pi and sigma in unicode
- string Unicode = "\u03a0\u03a3";
- byte[] UniBytes;
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (); //little-endian
- UniBytes = UnicodeEnc.GetBytes (Unicode);
-
- Assertion.AssertEquals ("Uni #1", 0xA0, UniBytes [0]);
- Assertion.AssertEquals ("Uni #2", 0x03, UniBytes [1]);
- Assertion.AssertEquals ("Uni #3", 0xA3, UniBytes [2]);
- Assertion.AssertEquals ("Uni #4", 0x03, UniBytes [3]);
- }
-
- [Test]
- public void TestEncodingGetBytes2()
- {
- //pi and sigma in unicode
- string Unicode = "\u03a0\u03a3";
- byte[] UniBytes;
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (true, true); //big-endian
- UniBytes = UnicodeEnc.GetBytes (Unicode);
-
- Assertion.AssertEquals ("Uni #1", 0x03, UniBytes [0]);
- Assertion.AssertEquals ("Uni #2", 0xA0, UniBytes [1]);
- Assertion.AssertEquals ("Uni #3", 0x03, UniBytes [2]);
- Assertion.AssertEquals ("Uni #4", 0xA3, UniBytes [3]);
- }
- [Test]
- public void TestEncodingGetBytes3()
- {
- //pi and sigma in unicode
- string Unicode = "\u03a0\u03a3";
- byte[] UniBytes = new byte [4];
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (); //little-endian
- int Cnt = UnicodeEnc.GetBytes (Unicode.ToCharArray(), 0, Unicode.Length, UniBytes, 0);
-
- Assertion.AssertEquals ("Uni #1", 4, Cnt);
- Assertion.AssertEquals ("Uni #2", 0xA0, UniBytes [0]);
- Assertion.AssertEquals ("Uni #3", 0x03, UniBytes [1]);
- Assertion.AssertEquals ("Uni #4", 0xA3, UniBytes [2]);
- Assertion.AssertEquals ("Uni #5", 0x03, UniBytes [3]);
- }
-
- [Test]
- public void TestEncodingDecodingGetBytes1()
- {
- //pi and sigma in unicode
- string Unicode = "\u03a0\u03a3";
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (); //little-endian
- //Encode the unicode string.
- byte[] UniBytes = UnicodeEnc.GetBytes (Unicode);
- //Decode the bytes to a unicode char array.
- char[] UniChars = UnicodeEnc.GetChars (UniBytes);
- string Result = new string(UniChars);
-
- Assertion.AssertEquals ("Uni #1", Unicode, Result);
- }
- [Test]
- public void TestEncodingDecodingGetBytes2()
- {
- //pi and sigma in unicode
- string Unicode = "\u03a0\u03a3";
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (true, true); //big-endian
- //Encode the unicode string.
- byte[] UniBytes = UnicodeEnc.GetBytes (Unicode);
- //Decode the bytes to a unicode char array.
- char[] UniChars = UnicodeEnc.GetChars (UniBytes);
- string Result = new string(UniChars);
-
- Assertion.AssertEquals ("Uni #1", Unicode, Result);
- }
- [Test]
- public void TestEncodingGetCharCount ()
- {
- byte[] b = new byte[] {255, 254, 115, 0, 104, 0, 105, 0};
- UnicodeEncoding encoding = new UnicodeEncoding ();
- Assertion.AssertEquals ("GetCharCount #1", 3,
- encoding.GetCharCount (b, 2, b.Length - 2));
- }
-
-
- [Test]
- public void TestPreamble1()
- {
- //litle-endian with byte order mark.
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (false, true);
- byte[] PreAmble = UnicodeEnc.GetPreamble();
- Assertion.AssertEquals ("Uni #1", 0xFF, PreAmble [0]);
- Assertion.AssertEquals ("Uni #2", 0xFE, PreAmble [1]);
- }
- [Test]
- public void TestPreamble2()
- {
- //big-endian with byte order mark.
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (true, true);
- byte[] PreAmble = UnicodeEnc.GetPreamble();
- Assertion.AssertEquals ("Uni #1", 0xFE, PreAmble [0]);
- Assertion.AssertEquals ("Uni #2", 0xFF, PreAmble [1]);
- }
- [Test]
- public void TestPreamble3()
- {
- //little-endian without byte order mark.
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding (false, false);
- byte[] PreAmble = UnicodeEnc.GetPreamble();
- Assertion.AssertEquals ("Uni #1", 0, PreAmble.Length);
- }
-
- [Test]
- public void TestMaxCharCount()
- {
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding ();
- Assertion.AssertEquals ("UTF #1", 25, UnicodeEnc.GetMaxCharCount(50));
- }
-
- [Test]
- public void TestMaxByteCount()
- {
- UnicodeEncoding UnicodeEnc = new UnicodeEncoding ();
- Assertion.AssertEquals ("UTF #1", 100, UnicodeEnc.GetMaxByteCount(50));
- }
- }
- }
|