* HybridDictionary.cs: implemented
[mono.git] / mcs / class / System / Test / System.Collections.Specialized / BitVector32Test.cs
1 //\r
2 // BitVector32Test.cs - NUnit Test Cases for System.Net.BitVector32\r
3 //\r
4 // Author:\r
5 //   Lawrence Pit (loz@cable.a2000.nl)\r
6 //\r
7 \r
8 using NUnit.Framework;\r
9 using System;\r
10 using System.Collections;\r
11 using System.Collections.Specialized;\r
12 \r
13 namespace MonoTests.System.Collections.Specialized\r
14 {\r
15         public class BitVector32Test : TestCase\r
16         {\r
17                 public BitVector32Test () :\r
18                         base ("[MonoTests.System.Net.BitVector32Test]") {}\r
19 \r
20                 public BitVector32Test (string name) : base (name) {}\r
21 \r
22                 protected override void SetUp () {}\r
23 \r
24                 protected override void TearDown () {}\r
25 \r
26                 public static ITest Suite\r
27                 {\r
28                         get {\r
29                                 return new TestSuite (typeof (BitVector32Test));\r
30                         }\r
31                 }\r
32                 \r
33                 public void TestConstructors ()\r
34                 {\r
35                         BitVector32 b = new BitVector32 (31);\r
36                 }\r
37                 \r
38                 public void TestIndexers ()\r
39                 {\r
40                         BitVector32 b = new BitVector32 (7);\r
41                         Assert ("#1", b [0]);\r
42                         Assert ("#2", b [1]);\r
43                         Assert ("#3", b [2]);\r
44                         Assert ("#4", b [4]);\r
45                         Assert ("#5", !b [8]);\r
46                         Assert ("#6", !b [16]);\r
47                         b [8] = true;\r
48                         Assert ("#7", b [4]);\r
49                         Assert ("#8", b [8]);\r
50                         Assert ("#9", !b [16]);\r
51                         b [8] = false;\r
52                         Assert ("#10", b [4]);\r
53                         Assert ("#11", !b [8]);\r
54                         Assert ("#12", !b [16]);\r
55 \r
56                         BitVector32.Section s = BitVector32.CreateSection (31);\r
57                         s = BitVector32.CreateSection (64, s);\r
58                         // Print (s);\r
59                         \r
60                         // b = new BitVector32 (0x777777);\r
61                         BitVector32 b1 = new BitVector32 (0xffff77);\r
62                         BitVector32 b2 = new BitVector32 (b1 [s]);\r
63                         //Console.WriteLine (b1.ToString ());\r
64                         //Console.WriteLine (b2.ToString ());\r
65                         AssertEquals ("#14", 123, b1 [s]);\r
66                         \r
67                         // b1 [s] = 15;\r
68                         //Console.WriteLine (b1.ToString ());\r
69                 }\r
70 \r
71                 public void TestCreateMask ()\r
72                 {\r
73                         AssertEquals ("#1", 1, BitVector32.CreateMask ());\r
74                         AssertEquals ("#2", 1, BitVector32.CreateMask (0));\r
75                         AssertEquals ("#3", 2, BitVector32.CreateMask (1));\r
76                         AssertEquals ("#4", 32, BitVector32.CreateMask (16));\r
77                         AssertEquals ("#6", -2, BitVector32.CreateMask (Int32.MaxValue));\r
78                         AssertEquals ("#5", -4, BitVector32.CreateMask (-2));\r
79                         try {\r
80                                 BitVector32.CreateMask (Int32.MinValue);\r
81                                 Fail ("#7");\r
82                         } catch (InvalidOperationException) {}                  \r
83                 }\r
84                 \r
85                 public void TestCreateSection ()\r
86                 {\r
87                         BitVector32.Section s = BitVector32.CreateSection (1);\r
88                         AssertEquals ("#1", (short) 1, s.Mask);\r
89 \r
90                         s = BitVector32.CreateSection (2);\r
91                         AssertEquals ("#2", (short) 3, s.Mask);\r
92 \r
93                         s = BitVector32.CreateSection (3);\r
94                         AssertEquals ("#3", (short) 3, s.Mask);\r
95 \r
96                         s = BitVector32.CreateSection (5);\r
97                         AssertEquals ("#4", (short) 7, s.Mask);\r
98                         \r
99                         s = BitVector32.CreateSection (20);\r
100                         AssertEquals ("#4", (short) 0x1f, s.Mask);\r
101 \r
102                         s = BitVector32.CreateSection (Int16.MaxValue);\r
103                         AssertEquals ("#5", (short) 0x7fff, s.Mask);\r
104 \r
105                         s = BitVector32.CreateSection (Int16.MaxValue - 100);\r
106                         AssertEquals ("#6", (short) 0x7fff, s.Mask);\r
107 \r
108                         try {\r
109                                 BitVector32.Section s2 = BitVector32.CreateSection (0);\r
110                                 Fail ("#7");\r
111                         } catch (ArgumentException) {}\r
112 \r
113                         try {\r
114                                 BitVector32.Section s2 = BitVector32.CreateSection (-1);\r
115                                 Fail ("#8");\r
116                         } catch (ArgumentException) {}\r
117 \r
118                         try {\r
119                                 BitVector32.Section s2 = BitVector32.CreateSection (Int16.MinValue);\r
120                                 Fail ("#9");\r
121                         } catch (ArgumentException) {}\r
122                         \r
123                         s = BitVector32.CreateSection (20);\r
124                         AssertEquals ("#10a", (short) 0x1f, s.Mask);\r
125                         AssertEquals ("#10b", (short) 0x00, s.Offset);                  \r
126                         s = BitVector32.CreateSection (120, s);\r
127                         AssertEquals ("#10c", (short) 0x7f, s.Mask);\r
128                         AssertEquals ("#10d", (short) 0x05, s.Offset);                                  \r
129                         s = BitVector32.CreateSection (1000, s);\r
130                         AssertEquals ("#10e", (short) 0x3ff, s.Mask);\r
131                         AssertEquals ("#10f", (short) 0x0c, s.Offset);                  \r
132                 }\r
133 \r
134 \r
135                 private void Print (BitVector32.Section s)\r
136                 {\r
137                         Console.WriteLine (s.ToString () + " : "+ s.Mask + " : " + s.Offset);\r
138                 }\r
139         }        \r
140 }