BitVector32Test.cs 3.8 KB

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