github.com/segmentio/parquet-go@v0.0.0-20230712180008-5d42db8f0d47/internal/bytealg/count_test.go (about) 1 package bytealg_test 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/segmentio/parquet-go/internal/bytealg" 8 "github.com/segmentio/parquet-go/internal/quick" 9 ) 10 11 func TestCount(t *testing.T) { 12 err := quick.Check(func(data []byte) bool { 13 data = bytes.Repeat(data, 8) 14 for _, c := range data { 15 n1 := bytes.Count(data, []byte{c}) 16 n2 := bytealg.Count(data, c) 17 if n1 != n2 { 18 t.Errorf("got=%d want=%d", n2, n1) 19 return false 20 } 21 } 22 return true 23 }) 24 if err != nil { 25 t.Error(err) 26 } 27 } 28 29 func BenchmarkCount(b *testing.B) { 30 forEachBenchmarkBufferSize(b, func(b *testing.B, bufferSize int) { 31 data := make([]byte, bufferSize) 32 for i := range data { 33 data[i] = byte(i) 34 } 35 for i := 0; i < b.N; i++ { 36 bytealg.Count(data, 0) 37 } 38 }) 39 }