Added tests for Cursor.At
This commit is contained in:
parent
1f746ae6de
commit
4cbe9ce683
@ -55,7 +55,7 @@ func testCursor[C cursor.Cursor[byte]](t *testing.T, makeCursor func([]byte) C)
|
|||||||
t.Run("next cursor reads next input", rapid.MakeCheck(func(t *rapid.T) {
|
t.Run("next cursor reads next input", rapid.MakeCheck(func(t *rapid.T) {
|
||||||
const maxLen = 100
|
const maxLen = 100
|
||||||
data := rapid.SliceOfN(rapid.Byte(), 1, maxLen).Draw(t, "data")
|
data := rapid.SliceOfN(rapid.Byte(), 1, maxLen).Draw(t, "data")
|
||||||
skip := rapid.IntRange(0, len(data)-1).Draw(t, "data")
|
skip := rapid.IntRange(0, len(data)-1).Draw(t, "skip")
|
||||||
c := makeCursor(data)
|
c := makeCursor(data)
|
||||||
|
|
||||||
_, next, err := c.Read(make([]byte, skip))
|
_, next, err := c.Read(make([]byte, skip))
|
||||||
@ -84,7 +84,22 @@ func testCursor[C cursor.Cursor[byte]](t *testing.T, makeCursor func([]byte) C)
|
|||||||
test.NoError(t, err)
|
test.NoError(t, err)
|
||||||
test.EqOp(t, data[pos], dst[0])
|
test.EqOp(t, data[pos], dst[0])
|
||||||
}))
|
}))
|
||||||
t.Run("Pos", Todo)
|
t.Run("Pos returns correct position after At", rapid.MakeCheck(func(t *rapid.T) {
|
||||||
|
var data []byte
|
||||||
|
pos := rapid.Uint64().Draw(t, "pos")
|
||||||
|
c := makeCursor(data).At(pos)
|
||||||
|
test.EqOp(t, pos, c.Pos())
|
||||||
|
}))
|
||||||
|
t.Run("Pos returns correct position after Read", rapid.MakeCheck(func(t *rapid.T) {
|
||||||
|
const maxLen = 100
|
||||||
|
data := rapid.SliceOfN(rapid.Byte(), 1, maxLen).Draw(t, "data")
|
||||||
|
skip := rapid.Uint64Range(0, uint64(len(data)-1)).Draw(t, "skip")
|
||||||
|
c := makeCursor(data)
|
||||||
|
|
||||||
|
_, next, err := c.Read(make([]byte, skip))
|
||||||
|
must.NoError(t, err)
|
||||||
|
test.EqOp(t, skip, next.Pos())
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSliceCursor(t *testing.T) {
|
func TestSliceCursor(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user