mirror of
https://github.com/asticode/go-astikit.git
synced 2025-12-24 11:50:53 +08:00
118 lines
3.1 KiB
Go
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)
|
|
}
|
|
}
|