github.com/parquet-go/parquet-go@v0.21.1-0.20240501160520-b3c3a0c3ed6f/encoding/delta/length_byte_array_test.go (about) 1 package delta 2 3 import "testing" 4 5 func TestDecodeByteArrayLengths(t *testing.T) { 6 lengths := make([]int32, 999) 7 offsets := make([]uint32, len(lengths)+1) 8 9 totalLength := uint32(0) 10 for i := range lengths { 11 lengths[i] = int32(i) 12 totalLength += uint32(i) 13 } 14 15 lastOffset, invalidLength := decodeByteArrayLengths(offsets, lengths) 16 if invalidLength != 0 { 17 t.Fatal("wrong invalid length:", invalidLength) 18 } 19 if lastOffset != totalLength { 20 t.Fatalf("wrong last offset: want=%d got=%d", lastOffset, totalLength) 21 } 22 23 expectOffset := uint32(0) 24 for i, offset := range offsets[:len(lengths)] { 25 if offset != expectOffset { 26 t.Fatalf("wrong offset at index %d: want=%d got=%d", i, expectOffset, offset) 27 } 28 expectOffset += uint32(lengths[i]) 29 } 30 31 if offsets[len(lengths)] != lastOffset { 32 t.Fatalf("wrong last offset: want=%d got=%d", lastOffset, offsets[len(lengths)]) 33 } 34 }