github.com/Schaudge/grailbase@v0.0.0-20240223061707-44c758a471c0/mapio/buf_test.go (about) 1 // Copyright 2018 GRAIL, Inc. All rights reserved. 2 // Use of this source code is governed by the Apache 2.0 3 // license that can be found in the LICENSE file. 4 5 package mapio 6 7 import ( 8 "bytes" 9 "math/rand" 10 "testing" 11 ) 12 13 func TestBuf(t *testing.T) { 14 const N = 1000 15 entries := makeEntries(N) 16 // Shuffle to make sure the buffer sorts properly. 17 rand.Shuffle(len(entries), func(i, j int) { 18 entries[i], entries[j] = entries[j], entries[i] 19 }) 20 var buf Buf 21 for _, e := range entries { 22 buf.Append(e.Key, e.Value) 23 } 24 var b bytes.Buffer 25 w := NewWriter(&b, BlockSize(1<<10), RestartInterval(10)) 26 if err := buf.WriteTo(w); err != nil { 27 t.Fatal(err) 28 } 29 if err := w.Close(); err != nil { 30 t.Fatal(err) 31 } 32 m, err := New(bytes.NewReader(b.Bytes())) 33 if err != nil { 34 t.Fatal(err) 35 } 36 37 testSeeker(t, entries, mapSeeker{m}) 38 }