public void TestAdd() { uint[] values = new uint[] { 1, 2, 3, 4, 5, 100, 1000 }; uint max = values.Max() + 1; using (var rb1 = new RoaringBitmap()) using (var rb2 = new RoaringBitmap()) using (var rb3 = RoaringBitmap.FromValues(values)) { for (int i = 0; i < values.Length; i++) { rb1.Add(values[i]); } rb1.Optimize(); rb2.AddMany(values); rb2.Optimize(); rb3.Optimize(); Assert.Equal(rb1.Cardinality, (uint)values.Length); Assert.Equal(rb2.Cardinality, (uint)values.Length); Assert.Equal(rb3.Cardinality, (uint)values.Length); for (uint i = 0; i < max; i++) { if (values.Contains(i)) { Assert.True(rb1.Contains(i)); Assert.True(rb2.Contains(i)); Assert.True(rb3.Contains(i)); } else { Assert.False(rb1.Contains(i)); Assert.False(rb2.Contains(i)); Assert.False(rb3.Contains(i)); } } } }
public bool IsBitActive(int index) { return(_roaringBitmap.Contains((uint)index)); }