MCPcopy Index your code
hub / github.com/RoaringBitmap/roaring / TestBitmap_FromBuffer

Function TestBitmap_FromBuffer

serialization_test.go:428–560  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

426}
427
428func TestBitmap_FromBuffer(t *testing.T) {
429 t.Run("empty bitmap", func(t *testing.T) {
430 rb := NewBitmap()
431
432 buf := &bytes.Buffer{}
433 _, err := rb.WriteTo(buf)
434
435 require.NoError(t, err)
436 assert.EqualValues(t, buf.Len(), rb.GetSerializedSizeInBytes())
437
438 newRb := NewBitmap()
439 newRb.FromBuffer(buf.Bytes())
440
441 require.NoError(t, err)
442 assert.True(t, rb.Equals(newRb))
443 })
444
445 t.Run("basic bitmap of 7 elements", func(t *testing.T) {
446 rb := BitmapOf(1, 2, 3, 4, 5, 100, 1000)
447
448 buf := &bytes.Buffer{}
449 _, err := rb.WriteTo(buf)
450
451 require.NoError(t, err)
452
453 newRb := NewBitmap()
454 _, err = newRb.FromBuffer(buf.Bytes())
455
456 require.NoError(t, err)
457 assert.True(t, rb.Equals(newRb))
458 })
459
460 t.Run("bitmap with runs", func(t *testing.T) {
461 file := "testdata/bitmapwithruns.bin"
462
463 buf, err := os.ReadFile(file)
464 if err != nil {
465 fmt.Fprintf(os.Stderr, "\n\nIMPORTANT: For testing file IO, the roaring library requires disk access.\nWe omit some tests for now.\n\n")
466 return
467 }
468
469 rb := NewBitmap()
470 _, err = rb.FromBuffer(buf)
471
472 require.NoError(t, err)
473 assert.EqualValues(t, 3, rb.Stats().RunContainers)
474 assert.EqualValues(t, 11, rb.Stats().Containers)
475 })
476
477 t.Run("bitmap without runs", func(t *testing.T) {
478 fn := "testdata/bitmapwithruns.bin"
479 buf, err := os.ReadFile(fn)
480
481 if err != nil {
482 fmt.Fprintf(os.Stderr, "\n\nIMPORTANT: For testing file IO, the roaring library requires disk access.\nWe omit some tests for now.\n\n")
483 return
484 }
485

Callers

nothing calls this directly

Calls 13

WriteToMethod · 0.95
FromBufferMethod · 0.95
EqualsMethod · 0.95
StatsMethod · 0.95
NewBitmapFunction · 0.70
BitmapOfFunction · 0.70
OrFunction · 0.70
FastOrFunction · 0.70
AndFunction · 0.70
XorFunction · 0.70
AndNotFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…