2 // BitVector32Test.cs - NUnit Test Cases for System.Net.BitVector32
\r
5 // Lawrence Pit (loz@cable.a2000.nl)
\r
6 // Martin Willemoes Hansen (mwh@sysrq.dk)
\r
8 // (C) 2003 Martin Willemoes Hansen
\r
11 using NUnit.Framework;
\r
13 using System.Collections;
\r
14 using System.Collections.Specialized;
\r
16 namespace MonoTests.System.Collections.Specialized
\r
19 public class BitVector32Test
\r
22 public void Constructors ()
\r
24 BitVector32 b = new BitVector32 (31);
\r
28 public void Indexers ()
\r
30 BitVector32 b = new BitVector32 (7);
\r
31 Assertion.Assert ("#1", b [0]);
\r
32 Assertion.Assert ("#2", b [1]);
\r
33 Assertion.Assert ("#3", b [2]);
\r
34 Assertion.Assert ("#4", b [4]);
\r
35 Assertion.Assert ("#5", !b [8]);
\r
36 Assertion.Assert ("#6", !b [16]);
\r
38 Assertion.Assert ("#7", b [4]);
\r
39 Assertion.Assert ("#8", b [8]);
\r
40 Assertion.Assert ("#9", !b [16]);
\r
42 Assertion.Assert ("#10", b [4]);
\r
43 Assertion.Assert ("#11", !b [8]);
\r
44 Assertion.Assert ("#12", !b [16]);
\r
46 BitVector32.Section s = BitVector32.CreateSection (31);
\r
47 s = BitVector32.CreateSection (64, s);
\r
50 // b = new BitVector32 (0x777777);
\r
51 BitVector32 b1 = new BitVector32 (0xffff77);
\r
52 BitVector32 b2 = new BitVector32 (b1 [s]);
\r
53 //Console.WriteLine (b1.ToString ());
\r
54 //Console.WriteLine (b2.ToString ());
\r
55 Assertion.AssertEquals ("#14", 123, b1 [s]);
\r
58 //Console.WriteLine (b1.ToString ());
\r
62 public void CreateMask ()
\r
64 Assertion.AssertEquals ("#1", 1, BitVector32.CreateMask ());
\r
65 Assertion.AssertEquals ("#2", 1, BitVector32.CreateMask (0));
\r
66 Assertion.AssertEquals ("#3", 2, BitVector32.CreateMask (1));
\r
67 Assertion.AssertEquals ("#4", 32, BitVector32.CreateMask (16));
\r
68 Assertion.AssertEquals ("#6", -2, BitVector32.CreateMask (Int32.MaxValue));
\r
69 Assertion.AssertEquals ("#5", -4, BitVector32.CreateMask (-2));
\r
71 BitVector32.CreateMask (Int32.MinValue);
\r
72 Assertion.Fail ("#7");
\r
73 } catch (InvalidOperationException) {}
\r
77 public void CreateSection ()
\r
79 BitVector32.Section s = BitVector32.CreateSection (1);
\r
80 Assertion.AssertEquals ("#1", (short) 1, s.Mask);
\r
82 s = BitVector32.CreateSection (2);
\r
83 Assertion.AssertEquals ("#2", (short) 3, s.Mask);
\r
85 s = BitVector32.CreateSection (3);
\r
86 Assertion.AssertEquals ("#3", (short) 3, s.Mask);
\r
88 s = BitVector32.CreateSection (5);
\r
89 Assertion.AssertEquals ("#4", (short) 7, s.Mask);
\r
91 s = BitVector32.CreateSection (20);
\r
92 Assertion.AssertEquals ("#4", (short) 0x1f, s.Mask);
\r
94 s = BitVector32.CreateSection (Int16.MaxValue);
\r
95 Assertion.AssertEquals ("#5", (short) 0x7fff, s.Mask);
\r
97 s = BitVector32.CreateSection (Int16.MaxValue - 100);
\r
98 Assertion.AssertEquals ("#6", (short) 0x7fff, s.Mask);
\r
101 BitVector32.Section s2 = BitVector32.CreateSection (0);
\r
102 Assertion.Fail ("#7");
\r
103 } catch (ArgumentException) {}
\r
106 BitVector32.Section s2 = BitVector32.CreateSection (-1);
\r
107 Assertion.Fail ("#8");
\r
108 } catch (ArgumentException) {}
\r
111 BitVector32.Section s2 = BitVector32.CreateSection (Int16.MinValue);
\r
112 Assertion.Fail ("#9");
\r
113 } catch (ArgumentException) {}
\r
115 s = BitVector32.CreateSection (20);
\r
116 Assertion.AssertEquals ("#10a", (short) 0x1f, s.Mask);
\r
117 Assertion.AssertEquals ("#10b", (short) 0x00, s.Offset);
\r
118 s = BitVector32.CreateSection (120, s);
\r
119 Assertion.AssertEquals ("#10c", (short) 0x7f, s.Mask);
\r
120 Assertion.AssertEquals ("#10d", (short) 0x05, s.Offset);
\r
121 s = BitVector32.CreateSection (1000, s);
\r
122 Assertion.AssertEquals ("#10e", (short) 0x3ff, s.Mask);
\r
123 Assertion.AssertEquals ("#10f", (short) 0x0c, s.Offset);
\r
127 public void TestNegativeIndexer ()
\r
129 BitVector32 bv = new BitVector32 (-1);
\r
130 Assertion.AssertEquals ("#11a", false, bv [Int32.MinValue]);
\r
134 public void TestSectionIndexer ()
\r
136 BitVector32 bv = new BitVector32 (-1);
\r
137 BitVector32.Section sect = BitVector32.CreateSection (1);
\r
138 sect = BitVector32.CreateSection (Int16.MaxValue, sect);
\r
139 sect = BitVector32.CreateSection (Int16.MaxValue, sect);
\r
140 sect = BitVector32.CreateSection (1, sect);
\r
143 Assertion.AssertEquals ("#12a", Int32.MaxValue, bv.Data);
\r
146 [Test, ExpectedException (typeof (ArgumentException))]
\r
147 public void TestCreateSection1 ()
\r
149 BitVector32.Section section = BitVector32.CreateSection (Int16.MaxValue);
\r
150 section = BitVector32.CreateSection (0, section);
\r
153 [Test, ExpectedException (typeof (ArgumentException))]
\r
154 public void TestCreateSection2 ()
\r
156 BitVector32.Section section = BitVector32.CreateSection (Int16.MaxValue);
\r
157 section = BitVector32.CreateSection (-1, section);
\r
160 [Test, ExpectedException (typeof (ArgumentException))]
\r
161 public void TestCreateSection3 ()
\r
163 BitVector32.Section section = BitVector32.CreateSection (Int16.MaxValue);
\r
164 section = BitVector32.CreateSection (Int16.MinValue, section);
\r
167 private void Print (BitVector32.Section s)
\r
169 Console.WriteLine (s.ToString () + " : "+ s.Mask + " : " + s.Offset);
\r