35 lines
692 B
Go
35 lines
692 B
Go
package bitpack_test
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero/internal/bitpack"
|
|
"github.com/tetratelabs/wazero/internal/testing/require"
|
|
)
|
|
|
|
func TestOffsetArray(t *testing.T) {
|
|
tests := [][]uint64{
|
|
{},
|
|
{0},
|
|
{1, 2, 3, 4, 5, 6, 7, 8, 9},
|
|
{16: 1},
|
|
{17: math.MaxUint16 + 1},
|
|
{21: 10, 22: math.MaxUint16},
|
|
{0: 42, 100: math.MaxUint64},
|
|
{0: 42, 1: math.MaxUint32, 101: math.MaxUint64},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
t.Run(fmt.Sprintf("len=%d", len(test)), func(t *testing.T) {
|
|
array := bitpack.NewOffsetArray(test)
|
|
require.Equal(t, len(test), array.Len())
|
|
|
|
for i, v := range test {
|
|
require.Equal(t, v, array.Index(i))
|
|
}
|
|
})
|
|
}
|
|
}
|