File: DataConvertTest.cs

package info (click to toggle)
mono 6.14.1%2Bds2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,282,732 kB
  • sloc: cs: 11,182,461; xml: 2,850,281; ansic: 699,123; cpp: 122,919; perl: 58,604; javascript: 30,841; asm: 21,845; makefile: 19,602; sh: 10,973; python: 4,772; pascal: 925; sql: 859; sed: 16; php: 1
file content (64 lines) | stat: -rw-r--r-- 1,825 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections;
using System.Text;
using NUnit.Framework;
using Mono;

namespace MonoTests.Mono {

	[TestFixture]
	public class DataConverterTest
	{
		const string TEST_STRING = "Alignment test";
	
		static string Dump (byte [] d)
		{
			StringBuilder sb = new StringBuilder ();
			
			for (int i = 0; i < d.Length; i++){
				sb.Append (String.Format ("{0:x2} ", d [i]));
			}
			return sb.ToString ().Trim ();
		}
	
		[Test]
		public void PackTests ()
		{
			Assert.AreEqual (Dump (DataConverter.Pack ("z8", "hello")), "68 65 6c 6c 6f 00");
			Assert.AreEqual (Dump (DataConverter.Pack ("z6", "hello")), "68 00 65 00 6c 00 6c 00 6f 00 00 00");
			Assert.AreEqual (Dump (DataConverter.Pack ("CCCC", 65, 66, 67, 68)), "41 42 43 44");
	
			Assert.AreEqual (Dump (DataConverter.Pack ("4C", 65, 66, 67, 68, 69, 70)),  "41 42 43 44");
			Assert.AreEqual (Dump (DataConverter.Pack ("^iii", 0x1234abcd, 0x7fadb007)), "12 34 ab cd 7f ad b0 07 00 00 00 00");
			Assert.AreEqual (Dump (DataConverter.Pack ("_s!i", 0x7b, 0x12345678)), "7b 00 00 00 78 56 34 12");
		}
	
		[Test]
		public void ArrayTests ()
		{
			byte [] source = new byte [] { 1, 2, 3, 4 };
			byte [] dest = new byte [4];
	
			int l = DataConverter.Int32FromBE (source, 0);
			Assert.AreEqual (l, 0x01020304);
		}
	
		[Test]
		public void StringAlignment ()
		{
			byte[] packed = global::Mono.DataConverter.Pack ("bz8", 1, TEST_STRING);
				
			IList unpacked = global::Mono.DataConverter.Unpack ("bz8", packed, 0);
			
			Assert.AreEqual(1, (byte) unpacked[0]);
			Assert.AreEqual(TEST_STRING, new string((char[]) unpacked[1]));
		}

		[Test]
		public void UnpackTests ()
		{
			float f = (float)DataConverter.Unpack ("%f", DataConverter.Pack ("f", 3.14), 0) [0];
			Assert.That ((f - 3.14f), Is.LessThanOrEqualTo (Single.Epsilon));
		}
	}
}