* Removed: Old AllTests.cs files
[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 // Authors:\r
5 //   Lawrence Pit (loz@cable.a2000.nl)\r
6 //   Martin Willemoes Hansen (mwh@sysrq.dk)\r
7 //\r
8 // (C) 2003 Martin Willemoes Hansen\r
9 //\r
10 \r
11 using NUnit.Framework;\r
12 using System;\r
13 using System.Collections;\r
14 using System.Collections.Specialized;\r
15 \r
16 namespace MonoTests.System.Collections.Specialized\r
17 {\r
18         [TestFixture]\r
19         public class BitVector32Test\r
20         {\r
21                 [Test]\r
22                 public void Constructors ()\r
23                 {\r
24                         BitVector32 b = new BitVector32 (31);\r
25                 }\r
26                 \r
27                 [Test]\r
28                 public void Indexers ()\r
29                 {\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
37                         b [8] = true;\r
38                         Assertion.Assert ("#7", b [4]);\r
39                         Assertion.Assert ("#8", b [8]);\r
40                         Assertion.Assert ("#9", !b [16]);\r
41                         b [8] = false;\r
42                         Assertion.Assert ("#10", b [4]);\r
43                         Assertion.Assert ("#11", !b [8]);\r
44                         Assertion.Assert ("#12", !b [16]);\r
45 \r
46                         BitVector32.Section s = BitVector32.CreateSection (31);\r
47                         s = BitVector32.CreateSection (64, s);\r
48                         // Print (s);\r
49                         \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
56                         \r
57                         // b1 [s] = 15;\r
58                         //Console.WriteLine (b1.ToString ());\r
59                 }\r
60 \r
61                 [Test]\r
62                 public void CreateMask ()\r
63                 {\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
70                         try {\r
71                                 BitVector32.CreateMask (Int32.MinValue);\r
72                                 Assertion.Fail ("#7");\r
73                         } catch (InvalidOperationException) {}                  \r
74                 }\r
75                 \r
76                 [Test]\r
77                 public void CreateSection ()\r
78                 {\r
79                         BitVector32.Section s = BitVector32.CreateSection (1);\r
80                         Assertion.AssertEquals ("#1", (short) 1, s.Mask);\r
81 \r
82                         s = BitVector32.CreateSection (2);\r
83                         Assertion.AssertEquals ("#2", (short) 3, s.Mask);\r
84 \r
85                         s = BitVector32.CreateSection (3);\r
86                         Assertion.AssertEquals ("#3", (short) 3, s.Mask);\r
87 \r
88                         s = BitVector32.CreateSection (5);\r
89                         Assertion.AssertEquals ("#4", (short) 7, s.Mask);\r
90                         \r
91                         s = BitVector32.CreateSection (20);\r
92                         Assertion.AssertEquals ("#4", (short) 0x1f, s.Mask);\r
93 \r
94                         s = BitVector32.CreateSection (Int16.MaxValue);\r
95                         Assertion.AssertEquals ("#5", (short) 0x7fff, s.Mask);\r
96 \r
97                         s = BitVector32.CreateSection (Int16.MaxValue - 100);\r
98                         Assertion.AssertEquals ("#6", (short) 0x7fff, s.Mask);\r
99 \r
100                         try {\r
101                                 BitVector32.Section s2 = BitVector32.CreateSection (0);\r
102                                 Assertion.Fail ("#7");\r
103                         } catch (ArgumentException) {}\r
104 \r
105                         try {\r
106                                 BitVector32.Section s2 = BitVector32.CreateSection (-1);\r
107                                 Assertion.Fail ("#8");\r
108                         } catch (ArgumentException) {}\r
109 \r
110                         try {\r
111                                 BitVector32.Section s2 = BitVector32.CreateSection (Int16.MinValue);\r
112                                 Assertion.Fail ("#9");\r
113                         } catch (ArgumentException) {}\r
114                         \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
124                 }\r
125 \r
126                 private void Print (BitVector32.Section s)\r
127                 {\r
128                         Console.WriteLine (s.ToString () + " : "+ s.Mask + " : " + s.Offset);\r
129                 }\r
130         }        \r
131 }\r