(t *testing.T)
| 404 | } |
| 405 | |
| 406 | func TestBitmap(t *testing.T) { |
| 407 | t.Run("Test Contains", func(t *testing.T) { |
| 408 | rbm1 := NewBitmap() |
| 409 | for k := 0; k < 1000; k++ { |
| 410 | rbm1.AddInt(17 * k) |
| 411 | } |
| 412 | |
| 413 | for k := 0; k < 17*1000; k++ { |
| 414 | assert.Equal(t, (k/17*17 == k), rbm1.ContainsInt(k)) |
| 415 | } |
| 416 | }) |
| 417 | |
| 418 | t.Run("Test Clone", func(t *testing.T) { |
| 419 | rb1 := NewBitmap() |
| 420 | rb1.Add(10) |
| 421 | |
| 422 | rb2 := rb1.Clone() |
| 423 | rb2.Remove(10) |
| 424 | |
| 425 | assert.True(t, rb1.Contains(10)) |
| 426 | }) |
| 427 | |
| 428 | t.Run("Test run array not equal", func(t *testing.T) { |
| 429 | rb := NewBitmap() |
| 430 | rb2 := NewBitmap() |
| 431 | rb.AddRange(0, 1<<16) |
| 432 | for i := 0; i < 10; i++ { |
| 433 | rb2.AddInt(i) |
| 434 | } |
| 435 | |
| 436 | assert.EqualValues(t, 1<<16, rb.GetCardinality()) |
| 437 | assert.EqualValues(t, 10, rb2.GetCardinality()) |
| 438 | assert.False(t, rb.Equals(rb2)) |
| 439 | |
| 440 | rb.RunOptimize() |
| 441 | rb2.RunOptimize() |
| 442 | |
| 443 | assert.EqualValues(t, 1<<16, rb.GetCardinality()) |
| 444 | assert.EqualValues(t, 10, rb2.GetCardinality()) |
| 445 | assert.False(t, rb.Equals(rb2)) |
| 446 | }) |
| 447 | |
| 448 | t.Run("Test ANDNOT4", func(t *testing.T) { |
| 449 | rb := NewBitmap() |
| 450 | rb2 := NewBitmap() |
| 451 | |
| 452 | for i := 0; i < 200000; i += 4 { |
| 453 | rb2.AddInt(i) |
| 454 | } |
| 455 | for i := 200000; i < 400000; i += 14 { |
| 456 | rb2.AddInt(i) |
| 457 | } |
| 458 | |
| 459 | off := AndNot(rb2, rb) |
| 460 | andNotresult := AndNot(rb, rb2) |
| 461 | |
| 462 | assert.True(t, rb.Equals(andNotresult)) |
| 463 | assert.True(t, rb2.Equals(off)) |
nothing calls this directly
no test coverage detected
searching dependent graphs…