private void DoTestCountVectorOfSize(int n) { BitVector bv = new BitVector(n); // test count when incrementally setting bits for (int i = 0; i < bv.Size(); i++) { Assert.IsFalse(bv.Get(i)); Assert.AreEqual(i, bv.Count()); bv.Set(i); Assert.IsTrue(bv.Get(i)); Assert.AreEqual(i + 1, bv.Count()); } bv = new BitVector(n); // test count when setting then clearing bits for (int i = 0; i < bv.Size(); i++) { Assert.IsFalse(bv.Get(i)); Assert.AreEqual(0, bv.Count()); bv.Set(i); Assert.IsTrue(bv.Get(i)); Assert.AreEqual(1, bv.Count()); bv.Clear(i); Assert.IsFalse(bv.Get(i)); Assert.AreEqual(0, bv.Count()); } }
private void DoTestGetSetVectorOfSize(int n) { BitVector bv = new BitVector(n); for (int i = 0; i < bv.Size(); i++) { // ensure a set bit can be git' Assert.IsFalse(bv.Get(i)); bv.Set(i); Assert.IsTrue(bv.Get(i)); } }
private void DoTestClearVectorOfSize(int n) { BitVector bv = new BitVector(n); for (int i = 0; i < bv.Size(); i++) { // ensure a set bit is cleared Assert.IsFalse(bv.Get(i)); bv.Set(i); Assert.IsTrue(bv.Get(i)); bv.Clear(i); Assert.IsFalse(bv.Get(i)); } }
/// <summary> Compare two BitVectors. /// This should really be an equals method on the BitVector itself. /// </summary> /// <param name="bv">One bit vector /// </param> /// <param name="compare">The second to compare /// </param> private bool DoCompare(BitVector bv, BitVector compare) { bool equal = true; for (int i = 0; i < bv.Size(); i++) { // bits must be equal if (bv.Get(i) != compare.Get(i)) { equal = false; break; } } return(equal); }
private void DoTestWriteRead(int n) { Directory d = new RAMDirectory(); BitVector bv = new BitVector(n); // test count when incrementally setting bits for (int i = 0; i < bv.Size(); i++) { Assert.IsFalse(bv.Get(i)); Assert.AreEqual(i, bv.Count()); bv.Set(i); Assert.IsTrue(bv.Get(i)); Assert.AreEqual(i + 1, bv.Count()); bv.Write(d, "TESTBV", null); BitVector compare = new BitVector(d, "TESTBV", null); // compare bit vectors with bits set incrementally Assert.IsTrue(DoCompare(bv, compare)); } }
/// <summary> Compare a subset against the corresponding portion of the test pattern</summary> private void DoTestSubset(int start, int end) { BitVector full = CreateSubsetTestVector(); BitVector subset = full.Subset(start, end); Assert.AreEqual(end - start, subset.Size()); int count = 0; for (int i = start, j = 0; i < end; i++, j++) { if (subsetPattern[i] == 1) { count++; Assert.IsTrue(subset.Get(j)); } else { Assert.IsFalse(subset.Get(j)); } } Assert.AreEqual(count, subset.Count()); }
private void DoTestConstructOfSize(int n) { BitVector bv = new BitVector(n); Assert.AreEqual(n, bv.Size()); }
/// <summary> Compare two BitVectors. /// This should really be an equals method on the BitVector itself. /// </summary> /// <param name="bv">One bit vector /// </param> /// <param name="compare">The second to compare /// </param> private bool DoCompare(BitVector bv, BitVector compare) { bool equal = true; for (int i = 0; i < bv.Size(); i++) { // bits must be equal if (bv.Get(i) != compare.Get(i)) { equal = false; break; } } return equal; }
private void DoTestWriteRead(int n) { Directory d = new RAMDirectory(); BitVector bv = new BitVector(n); // test count when incrementally setting bits for (int i = 0; i < bv.Size(); i++) { Assert.IsFalse(bv.Get(i)); Assert.AreEqual(i, bv.Count()); bv.Set(i); Assert.IsTrue(bv.Get(i)); Assert.AreEqual(i + 1, bv.Count()); bv.Write(d, "TESTBV"); BitVector compare = new BitVector(d, "TESTBV"); // compare bit vectors with bits set incrementally Assert.IsTrue(DoCompare(bv, compare)); } }