public virtual void CardinalityTest() { int[] set = SetGenerator.GetContiguousArray(1, 5000); IBitset testSet = CreateSetFromIndices(set, set.Max() + 1); int expected = set.Length; int actual = testSet.Cardinality(); Assert.AreEqual(expected, actual); }
public virtual void SetRangeFalseLargeTest() { int[] set = SetGenerator.GetContiguousArray(0, 5000);; IBitset testSet = CreateSetFromIndices(set, 5000); testSet.Set(1, 3, false); bool expected = false; bool result = testSet.Get(2); Assert.AreEqual(expected, result); }
public virtual void SetRangeTrueLargeTest() { int[] set = SetGenerator.GetContiguousArray(0, 5000); IBitset testSet = CreateSetFromIndices(set, 5000); testSet.Set(5007, 5009, true); bool expected = true; bool result = testSet.Get(8); Assert.AreEqual(expected, result); }
public virtual void DifferenceWithTest() { // Test arrayContainer-based sets int[] set1 = { 1, 2, 3, 7 }; RoaringBitset testSet1 = RoaringBitset.Create(set1); int[] set2 = { 1, 4, 7 }; RoaringBitset testSet2 = RoaringBitset.Create(set2); testSet1.DifferenceWith(testSet2); Assert.AreEqual(false, testSet1.Get(1)); Assert.AreEqual(true, testSet1.Get(3)); // Test bitsetContainer-based sets int[] set3 = SetGenerator.GetContiguousArray(0, 5000); RoaringBitset testSet3 = RoaringBitset.Create(set3); int[] setExceptions = { 4 }; int[] set4 = SetGenerator.GetContiguousArrayWithExceptions(0, 5000, setExceptions); RoaringBitset testSet4 = RoaringBitset.Create(set4); // Reduce contiguous array to single value (4) via DifferenceWith testSet3.DifferenceWith(testSet4); Assert.AreEqual(false, testSet3.Get(2)); Assert.AreEqual(true, testSet3.Get(4)); // // Reduce testSet2 to 4 as well testSet2.DifferenceWith(testSet4); Assert.AreEqual(false, testSet2.Get(1)); Assert.AreEqual(true, testSet2.Get(4)); // Remove contents of set1 from set4 testSet4.DifferenceWith(testSet1); Assert.AreEqual(false, testSet4.Get(2)); Assert.AreEqual(true, testSet4.Get(6)); }
public virtual void DifferenceTest() { int[] set1 = { 1, 2, 3, 7 }; IBitset testSet1 = CreateSetFromIndices(set1, 8); int[] set2 = { 1, 4, 7 }; IBitset testSet2 = CreateSetFromIndices(set2, 8); // These sparse sets will all use array containers. IBitset arrayContainerDiffSet = testSet1.Difference(testSet2); Assert.AreEqual(false, arrayContainerDiffSet.Get(1)); Assert.AreEqual(true, arrayContainerDiffSet.Get(3)); // Test difference from large contiguous bitset to exercise bitsetcontainers. int[] set3 = SetGenerator.GetContiguousArray(0, 5000); IBitset testSet3 = CreateSetFromIndices(set3, 5000); int[] setExceptions = { 4 }; int[] set4 = SetGenerator.GetContiguousArrayWithExceptions(0, 5000, setExceptions); IBitset testSet4 = CreateSetFromIndices(set4, 5000); // Both sets are using bitset containers IBitset bitsetContainerDiffSet = testSet3.Difference(testSet4); Assert.AreEqual(false, bitsetContainerDiffSet.Get(1)); Assert.AreEqual(true, bitsetContainerDiffSet.Get(4)); // Diff sets using bitset containers with array containers and vice versa IBitset mixedDiffSet1 = testSet4.Difference(testSet2); IBitset mixedDiffSet2 = testSet2.Difference(testSet4); Assert.AreEqual(false, mixedDiffSet1.Get(1)); Assert.AreEqual(true, mixedDiffSet1.Get(3)); Assert.AreEqual(false, mixedDiffSet2.Get(1)); Assert.AreEqual(true, mixedDiffSet2.Get(4)); }