mirror of
https://github.com/buger/goreplay.git
synced 2024-04-21 12:32:02 +00:00
change package from `main -> goreplay` this will allow importing `goreplay` as a package
42 lines
1012 B
Go
42 lines
1012 B
Go
package byteutils
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestCut(t *testing.T) {
|
|
if !bytes.Equal(Cut([]byte("123456"), 2, 4), []byte("1256")) {
|
|
t.Error("Should properly cut")
|
|
}
|
|
}
|
|
|
|
func TestInsert(t *testing.T) {
|
|
if !bytes.Equal(Insert([]byte("123456"), 2, []byte("abcd")), []byte("12abcd3456")) {
|
|
t.Error("Should insert into middle of slice")
|
|
}
|
|
}
|
|
|
|
func TestReplace(t *testing.T) {
|
|
if !bytes.Equal(Replace([]byte("123456"), 2, 4, []byte("ab")), []byte("12ab56")) {
|
|
t.Error("Should replace when same length")
|
|
}
|
|
|
|
if !bytes.Equal(Replace([]byte("123456"), 2, 4, []byte("abcd")), []byte("12abcd56")) {
|
|
t.Error("Should replace when replacement length bigger")
|
|
}
|
|
|
|
if !bytes.Equal(Replace([]byte("123456"), 2, 5, []byte("ab")), []byte("12ab6")) {
|
|
t.Error("Should replace when replacement length bigger")
|
|
}
|
|
}
|
|
|
|
func BenchmarkStringtoSlice(b *testing.B) {
|
|
var s string
|
|
var buf [1 << 20]byte
|
|
for i := 0; i < b.N; i++ {
|
|
s = SliceToString(buf[:])
|
|
}
|
|
_ = s // avoid gc to optimize away the loop body
|
|
}
|