This is an automated email from the ASF dual-hosted git repository.
zeroshade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-go.git
The following commit(s) were added to refs/heads/main by this push:
new b5c94084 test(arrow/array): add test to binary builder (#636)
b5c94084 is described below
commit b5c9408423dd6068c7a05ee5ce4f652989b2047c
Author: Matt Topol <[email protected]>
AuthorDate: Fri Jan 16 16:30:11 2026 -0500
test(arrow/array): add test to binary builder (#636)
### Rationale for this change
Adding a test for binary builder and arrays to better show how
AppendEmpty and AppendNull work, as per conversation at
https://github.com/apache/arrow-go/issues/625#issuecomment-3753311718
### What changes are included in this PR?
Just the addition of a test case
---
arrow/array/binarybuilder_test.go | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/arrow/array/binarybuilder_test.go
b/arrow/array/binarybuilder_test.go
index 4992d00d..e2c8c385 100644
--- a/arrow/array/binarybuilder_test.go
+++ b/arrow/array/binarybuilder_test.go
@@ -185,7 +185,7 @@ func TestBinaryBuilder_AllEmptyValues(t *testing.T) {
ab2.Append([]byte(""))
ab2.Append([]byte(""))
- ab2.Append([]byte(""))
+ ab2.AppendEmptyValue()
ar2 := ab2.NewBinaryArray()
defer ar2.Release()
@@ -199,4 +199,24 @@ func TestBinaryBuilder_AllEmptyValues(t *testing.T) {
assert.NotNil(t, ar2.Value(i), "value %d should not be nil", i)
assert.Equal(t, 0, len(ar2.Value(i)), "value %d should be empty
slice", i)
}
+
+ // Case 3: All Null
+ ab3 := array.NewBinaryBuilder(mem, arrow.BinaryTypes.Binary)
+ defer ab3.Release()
+
+ ab3.AppendNull()
+ ab3.AppendNull()
+ ab3.AppendNull()
+
+ ar3 := ab3.NewBinaryArray()
+ defer ar3.Release()
+
+ assert.Equal(t, 3, ar3.Len())
+ assert.Equal(t, 3, ar3.NullN(), "all values should be null")
+
+ for i := 0; i < 3; i++ {
+ assert.True(t, ar3.IsNull(i), "value %d should be null", i)
+ assert.Empty(t, ar3.Value(i), "value %d should be nil", i)
+ assert.Zero(t, len(ar3.Value(i)), "value %d should be empty
slice", i)
+ }
}