Files
go-astikit/bytes_test.go
2024-02-07 19:01:24 +01:00

118 lines
3.1 KiB
Go

package astikit
import (
"bytes"
"testing"
)
func TestBytesIterator(t *testing.T) {
i := NewBytesIterator([]byte("12345678"))
if e, g := 8, i.Len(); e != g {
t.Fatalf("expected %v, got %v", e, g)
}
b, err := i.NextByte()
if err != nil {
t.Fatalf("expected no error, got %+v", err)
}
if e := byte('1'); e != b {
t.Fatalf("expected %v, got %v", e, b)
}
bs, err := i.NextBytes(2)
if err != nil {
t.Fatalf("expected no error, got %+v", err)
}
if e := []byte("23"); !bytes.Equal(e, bs) {
t.Fatalf("expected %+v, got %+v", e, bs)
}
i.Seek(1)
bs, err = i.NextBytesNoCopy(2)
if err != nil {
t.Fatalf("expected no error, got %+v", err)
}
if e := []byte("23"); !bytes.Equal(e, bs) {
t.Fatalf("expected %+v, got %+v", e, bs)
}
i.Seek(4)
b, err = i.NextByte()
if err != nil {
t.Fatalf("expected no error, got %+v", err)
}
if e := byte('5'); e != b {
t.Fatalf("expected %v, got %v", e, b)
}
i.Skip(1)
b, err = i.NextByte()
if err != nil {
t.Fatalf("expected no error, got %+v", err)
}
if e := byte('7'); e != b {
t.Fatalf("expected %v, got %v", e, b)
}
if e, g := 7, i.Offset(); e != g {
t.Fatalf("expected %v, got %v", e, g)
}
if !i.HasBytesLeft() {
t.Fatal("expected true, got false")
}
bs = i.Dump()
if e := []byte("8"); !bytes.Equal(e, bs) {
t.Fatalf("expected %+v, got %+v", e, bs)
}
if i.HasBytesLeft() {
t.Fatal("expected false, got true")
}
_, err = i.NextByte()
if err == nil {
t.Fatal("expected error")
}
_, err = i.NextBytes(2)
if err == nil {
t.Fatal("expected error")
}
bs = i.Dump()
if e, g := 0, len(bs); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
}
func TestBytesPad(t *testing.T) {
if e, g := []byte("test"), BytesPad([]byte("test"), ' ', 4); !bytes.Equal(e, g) {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := []byte("testtest"), BytesPad([]byte("testtest"), ' ', 4); !bytes.Equal(e, g) {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := []byte("test"), BytesPad([]byte("testtest"), ' ', 4, PadCut); !bytes.Equal(e, g) {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := []byte(" test"), BytesPad([]byte("test"), ' ', 6); !bytes.Equal(e, g) {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := []byte("test "), BytesPad([]byte("test"), ' ', 6, PadRight); !bytes.Equal(e, g) {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := []byte(" "), BytesPad([]byte{}, ' ', 4); !bytes.Equal(e, g) {
t.Fatalf("expected %+v, got %+v", e, g)
}
}
func TestStrPad(t *testing.T) {
if e, g := "test", StrPad("test", ' ', 4); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := "testtest", StrPad("testtest", ' ', 4); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := "test", StrPad("testtest", ' ', 4, PadCut); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := " test", StrPad("test", ' ', 6); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := "test ", StrPad("test", ' ', 6, PadRight); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
if e, g := " ", StrPad("", ' ', 4); e != g {
t.Fatalf("expected %+v, got %+v", e, g)
}
}