github.com/segmentio/parquet-go@v0.0.0-20230712180008-5d42db8f0d47/compare_test.go (about) 1 package parquet 2 3 import "testing" 4 5 func assertCompare(t *testing.T, a, b Value, cmp func(Value, Value) int, want int) { 6 if got := cmp(a, b); got != want { 7 t.Errorf("compare(%v, %v): got=%d want=%d", a, b, got, want) 8 } 9 } 10 11 func TestCompareNullsFirst(t *testing.T) { 12 cmp := CompareNullsFirst(Int32Type.Compare) 13 assertCompare(t, Value{}, Value{}, cmp, 0) 14 assertCompare(t, Value{}, ValueOf(int32(0)), cmp, -1) 15 assertCompare(t, ValueOf(int32(0)), Value{}, cmp, +1) 16 assertCompare(t, ValueOf(int32(0)), ValueOf(int32(1)), cmp, -1) 17 } 18 19 func TestCompareNullsLast(t *testing.T) { 20 cmp := CompareNullsLast(Int32Type.Compare) 21 assertCompare(t, Value{}, Value{}, cmp, 0) 22 assertCompare(t, Value{}, ValueOf(int32(0)), cmp, +1) 23 assertCompare(t, ValueOf(int32(0)), Value{}, cmp, -1) 24 assertCompare(t, ValueOf(int32(0)), ValueOf(int32(1)), cmp, -1) 25 } 26 27 func BenchmarkCompareBE128(b *testing.B) { 28 v1 := [16]byte{} 29 v2 := [16]byte{} 30 31 for i := 0; i < b.N; i++ { 32 compareBE128(&v1, &v2) 33 } 34 } 35 36 func BenchmarkLessBE128(b *testing.B) { 37 v1 := [16]byte{} 38 v2 := [16]byte{} 39 40 for i := 0; i < b.N; i++ { 41 lessBE128(&v1, &v2) 42 } 43 }