(t *testing.T)
| 1318 | } |
| 1319 | |
| 1320 | func TestBitmap(t *testing.T) { |
| 1321 | t.Run("Test Contains", func(t *testing.T) { |
| 1322 | rbm1 := NewBitmap() |
| 1323 | for k := 0; k < 1000; k++ { |
| 1324 | rbm1.AddInt(17 * k) |
| 1325 | } |
| 1326 | |
| 1327 | for k := 0; k < 17*1000; k++ { |
| 1328 | assert.Equal(t, (k/17*17 == k), rbm1.ContainsInt(k)) |
| 1329 | } |
| 1330 | }) |
| 1331 | |
| 1332 | t.Run("Test Clone", func(t *testing.T) { |
| 1333 | rb1 := NewBitmap() |
| 1334 | rb1.Add(10) |
| 1335 | |
| 1336 | rb2 := rb1.Clone() |
| 1337 | rb2.Remove(10) |
| 1338 | |
| 1339 | assert.True(t, rb1.Contains(10)) |
| 1340 | }) |
| 1341 | |
| 1342 | t.Run("Test run array not equal", func(t *testing.T) { |
| 1343 | rb := NewBitmap() |
| 1344 | rb2 := NewBitmap() |
| 1345 | rb.AddRange(0, 1<<16) |
| 1346 | for i := 0; i < 10; i++ { |
| 1347 | rb2.AddInt(i) |
| 1348 | } |
| 1349 | |
| 1350 | assert.EqualValues(t, 1<<16, rb.GetCardinality()) |
| 1351 | assert.EqualValues(t, 10, rb2.GetCardinality()) |
| 1352 | assert.False(t, rb.Equals(rb2)) |
| 1353 | |
| 1354 | rb.RunOptimize() |
| 1355 | rb2.RunOptimize() |
| 1356 | |
| 1357 | assert.EqualValues(t, 1<<16, rb.GetCardinality()) |
| 1358 | assert.EqualValues(t, 10, rb2.GetCardinality()) |
| 1359 | assert.False(t, rb.Equals(rb2)) |
| 1360 | }) |
| 1361 | |
| 1362 | t.Run("Test ANDNOT4", func(t *testing.T) { |
| 1363 | rb := NewBitmap() |
| 1364 | rb2 := NewBitmap() |
| 1365 | |
| 1366 | for i := 0; i < 200000; i += 4 { |
| 1367 | rb2.AddInt(i) |
| 1368 | } |
| 1369 | for i := 200000; i < 400000; i += 14 { |
| 1370 | rb2.AddInt(i) |
| 1371 | } |
| 1372 | |
| 1373 | off := AndNot(rb2, rb) |
| 1374 | andNotresult := AndNot(rb, rb2) |
| 1375 | |
| 1376 | assert.True(t, rb.Equals(andNotresult)) |
| 1377 | assert.True(t, rb2.Equals(off)) |
nothing calls this directly
no test coverage detected
searching dependent graphs…