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.git


The following commit(s) were added to refs/heads/main by this push:
     new ccd9f87c83 GH-36105: [Go] Support float16 in csv (#36106)
ccd9f87c83 is described below

commit ccd9f87c839d8ecce252e934a77290459d6be848
Author: Igor Izvekov <[email protected]>
AuthorDate: Thu Jun 15 23:48:17 2023 +0300

    GH-36105: [Go] Support float16 in csv (#36106)
    
    
    
    ### Rationale for this change
    
    ### What changes are included in this PR?
    
    ### Are these changes tested?
    Yes
    
    ### Are there any user-facing changes?
    Yes
    
    * Closes: #36105
    
    Authored-by: izveigor <[email protected]>
    Signed-off-by: Matt Topol <[email protected]>
---
 go/arrow/csv/common.go           |  2 +-
 go/arrow/csv/reader.go           | 21 ++++++++++++++-
 go/arrow/csv/reader_test.go      |  4 +++
 go/arrow/csv/testdata/header.csv |  8 +++---
 go/arrow/csv/testdata/types.csv  |  8 +++---
 go/arrow/csv/transformer.go      | 11 +++++++-
 go/arrow/csv/writer_test.go      | 57 ++++++++++++++++++++++------------------
 go/arrow/float16/float16_test.go |  2 +-
 8 files changed, 75 insertions(+), 38 deletions(-)

diff --git a/go/arrow/csv/common.go b/go/arrow/csv/common.go
index 45be24526d..72a704de4d 100644
--- a/go/arrow/csv/common.go
+++ b/go/arrow/csv/common.go
@@ -217,7 +217,7 @@ func validate(schema *arrow.Schema) {
                case *arrow.BooleanType:
                case *arrow.Int8Type, *arrow.Int16Type, *arrow.Int32Type, 
*arrow.Int64Type:
                case *arrow.Uint8Type, *arrow.Uint16Type, *arrow.Uint32Type, 
*arrow.Uint64Type:
-               case *arrow.Float32Type, *arrow.Float64Type:
+               case *arrow.Float16Type, *arrow.Float32Type, *arrow.Float64Type:
                case *arrow.StringType:
                case *arrow.TimestampType:
                case *arrow.Date32Type, *arrow.Date64Type:
diff --git a/go/arrow/csv/reader.go b/go/arrow/csv/reader.go
index 1e9e1ee5d4..d525fcb71e 100644
--- a/go/arrow/csv/reader.go
+++ b/go/arrow/csv/reader.go
@@ -33,6 +33,7 @@ import (
        "github.com/apache/arrow/go/v13/arrow/array"
        "github.com/apache/arrow/go/v13/arrow/decimal128"
        "github.com/apache/arrow/go/v13/arrow/decimal256"
+       "github.com/apache/arrow/go/v13/arrow/float16"
        "github.com/apache/arrow/go/v13/arrow/internal/debug"
        "github.com/apache/arrow/go/v13/arrow/memory"
 )
@@ -423,6 +424,10 @@ func (r *Reader) initFieldConverter(bldr array.Builder) 
func(string) {
                return func(str string) {
                        r.parseUint64(bldr, str)
                }
+       case *arrow.Float16Type:
+               return func(str string) {
+                       r.parseFloat16(bldr, str)
+               }
        case *arrow.Float32Type:
                return func(str string) {
                        r.parseFloat32(bldr, str)
@@ -627,6 +632,21 @@ func (r *Reader) parseUint64(field array.Builder, str 
string) {
        field.(*array.Uint64Builder).Append(v)
 }
 
+func (r *Reader) parseFloat16(field array.Builder, str string) {
+       if r.isNull(str) {
+               field.AppendNull()
+               return
+       }
+
+       v, err := strconv.ParseFloat(str, 32)
+       if err != nil && r.err == nil {
+               r.err = err
+               field.AppendNull()
+               return
+       }
+       field.(*array.Float16Builder).Append(float16.New(float32(v)))
+}
+
 func (r *Reader) parseFloat32(field array.Builder, str string) {
        if r.isNull(str) {
                field.AppendNull()
@@ -640,7 +660,6 @@ func (r *Reader) parseFloat32(field array.Builder, str 
string) {
                return
        }
        field.(*array.Float32Builder).Append(float32(v))
-
 }
 
 func (r *Reader) parseFloat64(field array.Builder, str string) {
diff --git a/go/arrow/csv/reader_test.go b/go/arrow/csv/reader_test.go
index 4382ef6296..c4d55ba270 100644
--- a/go/arrow/csv/reader_test.go
+++ b/go/arrow/csv/reader_test.go
@@ -344,6 +344,7 @@ func testCSVReader(t *testing.T, filepath string, 
withHeader bool, stringsCanBeN
                        {Name: "u16", Type: arrow.PrimitiveTypes.Uint16},
                        {Name: "u32", Type: arrow.PrimitiveTypes.Uint32},
                        {Name: "u64", Type: arrow.PrimitiveTypes.Uint64},
+                       {Name: "f16", Type: arrow.FixedWidthTypes.Float16},
                        {Name: "f32", Type: arrow.PrimitiveTypes.Float32},
                        {Name: "f64", Type: arrow.PrimitiveTypes.Float64},
                        {Name: "str", Type: arrow.BinaryTypes.String},
@@ -401,6 +402,7 @@ rec[0]["u8"]: [1]
 rec[0]["u16"]: [1]
 rec[0]["u32"]: [1]
 rec[0]["u64"]: [1]
+rec[0]["f16"]: [1.0996094]
 rec[0]["f32"]: [1.1]
 rec[0]["f64"]: [1.1]
 rec[0]["str"]: ["str-1"]
@@ -417,6 +419,7 @@ rec[1]["u8"]: [2]
 rec[1]["u16"]: [2]
 rec[1]["u32"]: [2]
 rec[1]["u64"]: [2]
+rec[1]["f16"]: [2.1992188]
 rec[1]["f32"]: [2.2]
 rec[1]["f64"]: [2.2]
 rec[1]["str"]: [%s]
@@ -433,6 +436,7 @@ rec[2]["u8"]: [(null)]
 rec[2]["u16"]: [(null)]
 rec[2]["u32"]: [(null)]
 rec[2]["u64"]: [(null)]
+rec[2]["f16"]: [(null)]
 rec[2]["f32"]: [(null)]
 rec[2]["f64"]: [(null)]
 rec[2]["str"]: [%s]
diff --git a/go/arrow/csv/testdata/header.csv b/go/arrow/csv/testdata/header.csv
index 4f967dc432..d0a04f2635 100644
--- a/go/arrow/csv/testdata/header.csv
+++ b/go/arrow/csv/testdata/header.csv
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-bool;i8;i16;i32;i64;u8;u16;u32;u64;f32;f64;str;ts;list(i64);binary;uuid
-true;-1;-1;-1;-1;1;1;1;1;1.1;1.1;str-1;2022-05-09T00:01:01;{1,2,3};AAEC;00000000-0000-0000-0000-000000000001
-false;-2;-2;-2;-2;2;2;2;2;2.2;2.2;;2022-05-09T23:59:59;{};;00000000-0000-0000-0000-000000000002
-null;NULL;null;N/A;;null;null;null;null;null;null;null;null;null;null;null
\ No newline at end of file
+bool;i8;i16;i32;i64;u8;u16;u32;u64;f16;f32;f64;str;ts;list(i64);binary;uuid
+true;-1;-1;-1;-1;1;1;1;1;1.1;1.1;1.1;str-1;2022-05-09T00:01:01;{1,2,3};AAEC;00000000-0000-0000-0000-000000000001
+false;-2;-2;-2;-2;2;2;2;2;2.2;2.2;2.2;;2022-05-09T23:59:59;{};;00000000-0000-0000-0000-000000000002
+null;NULL;null;N/A;;null;null;null;null;null;null;null;null;null;null;null;null
\ No newline at end of file
diff --git a/go/arrow/csv/testdata/types.csv b/go/arrow/csv/testdata/types.csv
index be18e5dc19..2b09760ff6 100644
--- a/go/arrow/csv/testdata/types.csv
+++ b/go/arrow/csv/testdata/types.csv
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-## supported types: 
bool;int8;int16;int32;int64;uint8;uint16;uint32;uint64;float32;float64;string;timestamp;binary;uuid
-true;-1;-1;-1;-1;1;1;1;1;1.1;1.1;str-1;2022-05-09T00:01:01;{1,2,3};AAEC;00000000-0000-0000-0000-000000000001
-false;-2;-2;-2;-2;2;2;2;2;2.2;2.2;;2022-05-09T23:59:59;{};;00000000-0000-0000-0000-000000000002
-null;NULL;null;N/A;;null;null;null;null;null;null;null;null;null;null;null
\ No newline at end of file
+## supported types: 
bool;int8;int16;int32;int64;uint8;uint16;uint32;uint64;float16;float32;float64;string;timestamp;binary;uuid
+true;-1;-1;-1;-1;1;1;1;1;1.1;1.1;1.1;str-1;2022-05-09T00:01:01;{1,2,3};AAEC;00000000-0000-0000-0000-000000000001
+false;-2;-2;-2;-2;2;2;2;2;2.2;2.2;2.2;;2022-05-09T23:59:59;{};;00000000-0000-0000-0000-000000000002
+null;NULL;null;N/A;;null;null;null;null;null;null;null;null;null;null;null;null
\ No newline at end of file
diff --git a/go/arrow/csv/transformer.go b/go/arrow/csv/transformer.go
index 8e0eeb884b..bd47330fe8 100644
--- a/go/arrow/csv/transformer.go
+++ b/go/arrow/csv/transformer.go
@@ -113,6 +113,15 @@ func (w *Writer) transformColToStringArr(typ 
arrow.DataType, col arrow.Array) []
                                res[i] = w.nullValue
                        }
                }
+       case *arrow.Float16Type:
+               arr := col.(*array.Float16)
+               for i := 0; i < arr.Len(); i++ {
+                       if arr.IsValid(i) {
+                               res[i] = arr.Value(i).String()
+                       } else {
+                               res[i] = w.nullValue
+                       }
+               }
        case *arrow.Float32Type:
                arr := col.(*array.Float32)
                for i := 0; i < arr.Len(); i++ {
@@ -218,7 +227,7 @@ func (w *Writer) transformColToStringArr(typ 
arrow.DataType, col arrow.Array) []
                }
        case *arrow.BinaryType:
                arr := col.(*array.Binary)
-               for i :=0 ; i < arr.Len(); i++ {
+               for i := 0; i < arr.Len(); i++ {
                        if arr.IsValid(i) {
                                res[i] = 
base64.StdEncoding.EncodeToString(arr.Value(i))
                        } else {
diff --git a/go/arrow/csv/writer_test.go b/go/arrow/csv/writer_test.go
index 7f9d9fb3ca..cfda625e79 100644
--- a/go/arrow/csv/writer_test.go
+++ b/go/arrow/csv/writer_test.go
@@ -30,6 +30,7 @@ import (
        "github.com/apache/arrow/go/v13/arrow/csv"
        "github.com/apache/arrow/go/v13/arrow/decimal128"
        "github.com/apache/arrow/go/v13/arrow/decimal256"
+       "github.com/apache/arrow/go/v13/arrow/float16"
        "github.com/apache/arrow/go/v13/arrow/memory"
        "github.com/apache/arrow/go/v13/internal/types"
        "github.com/google/uuid"
@@ -133,18 +134,18 @@ func Example_writer() {
 
 var (
        fullData = [][]string{
-               {"bool", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", 
"f32", "f64", "str", "ts_s", "d32", "d64", "dec128", "dec256", "list(i64)", 
"binary", "uuid"},
-               {"true", "-1", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", 
"str-0", "2014-07-28 15:04:05", "2017-05-18", "2028-04-26", "-123.45", 
"-123.45", "{1,2,3}", "AAEC", "00000000-0000-0000-0000-000000000001"},
-               {"false", "0", "0", "0", "0", "1", "1", "1", "1", "0.1", "0.1", 
"str-1", "2016-09-08 15:04:05", "2022-11-08", "2031-06-28", "0", "0", 
"{4,5,6}", "AwQF", "00000000-0000-0000-0000-000000000002"},
-               {"true", "1", "1", "1", "1", "2", "2", "2", "2", "0.2", "0.2", 
"str-2", "2021-09-18 15:04:05", "2025-08-04", "2034-08-28", "123.45", "123.45", 
"{7,8,9}", "", "00000000-0000-0000-0000-000000000003"},
-               {nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal},
+               {"bool", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", 
"f16", "f32", "f64", "str", "ts_s", "d32", "d64", "dec128", "dec256", 
"list(i64)", "binary", "uuid"},
+               {"true", "-1", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", 
"0", "str-0", "2014-07-28 15:04:05", "2017-05-18", "2028-04-26", "-123.45", 
"-123.45", "{1,2,3}", "AAEC", "00000000-0000-0000-0000-000000000001"},
+               {"false", "0", "0", "0", "0", "1", "1", "1", "1", 
"0.099975586", "0.1", "0.1", "str-1", "2016-09-08 15:04:05", "2022-11-08", 
"2031-06-28", "0", "0", "{4,5,6}", "AwQF", 
"00000000-0000-0000-0000-000000000002"},
+               {"true", "1", "1", "1", "1", "2", "2", "2", "2", "0.19995117", 
"0.2", "0.2", "str-2", "2021-09-18 15:04:05", "2025-08-04", "2034-08-28", 
"123.45", "123.45", "{7,8,9}", "", "00000000-0000-0000-0000-000000000003"},
+               {nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal, nullVal},
        }
        bananaData = [][]string{
-               {"bool", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", 
"f32", "f64", "str", "ts_s", "d32", "d64", "dec128", "dec256", "list(i64)", 
"binary", "uuid"},
-               {"BANANA", "-1", "-1", "-1", "-1", "0", "0", "0", "0", "0", 
"0", "str-0", "2014-07-28 15:04:05", "2017-05-18", "2028-04-26", "-123.45", 
"-123.45", "{1,2,3}", "AAEC", "00000000-0000-0000-0000-000000000001"},
-               {"MANGO", "0", "0", "0", "0", "1", "1", "1", "1", "0.1", "0.1", 
"str-1", "2016-09-08 15:04:05", "2022-11-08", "2031-06-28", "0", "0", 
"{4,5,6}", "AwQF", "00000000-0000-0000-0000-000000000002"},
-               {"BANANA", "1", "1", "1", "1", "2", "2", "2", "2", "0.2", 
"0.2", "str-2", "2021-09-18 15:04:05", "2025-08-04", "2034-08-28", "123.45", 
"123.45", "{7,8,9}", "", "00000000-0000-0000-0000-000000000003"},
-               {nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal},
+               {"bool", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", 
"f16", "f32", "f64", "str", "ts_s", "d32", "d64", "dec128", "dec256", 
"list(i64)", "binary", "uuid"},
+               {"BANANA", "-1", "-1", "-1", "-1", "0", "0", "0", "0", "0", 
"0", "0", "str-0", "2014-07-28 15:04:05", "2017-05-18", "2028-04-26", 
"-123.45", "-123.45", "{1,2,3}", "AAEC", 
"00000000-0000-0000-0000-000000000001"},
+               {"MANGO", "0", "0", "0", "0", "1", "1", "1", "1", 
"0.099975586", "0.1", "0.1", "str-1", "2016-09-08 15:04:05", "2022-11-08", 
"2031-06-28", "0", "0", "{4,5,6}", "AwQF", 
"00000000-0000-0000-0000-000000000002"},
+               {"BANANA", "1", "1", "1", "1", "2", "2", "2", "2", 
"0.19995117", "0.2", "0.2", "str-2", "2021-09-18 15:04:05", "2025-08-04", 
"2034-08-28", "123.45", "123.45", "{7,8,9}", "", 
"00000000-0000-0000-0000-000000000003"},
+               {nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, nullVal, 
nullVal, nullVal, nullVal, nullVal, nullVal, nullVal},
        }
 )
 
@@ -212,6 +213,7 @@ func testCSVWriter(t *testing.T, data [][]string, 
writeHeader bool, fmtr func(bo
                        {Name: "u16", Type: arrow.PrimitiveTypes.Uint16},
                        {Name: "u32", Type: arrow.PrimitiveTypes.Uint32},
                        {Name: "u64", Type: arrow.PrimitiveTypes.Uint64},
+                       {Name: "f16", Type: arrow.FixedWidthTypes.Float16},
                        {Name: "f32", Type: arrow.PrimitiveTypes.Float32},
                        {Name: "f64", Type: arrow.PrimitiveTypes.Float64},
                        {Name: "str", Type: arrow.BinaryTypes.String},
@@ -239,15 +241,16 @@ func testCSVWriter(t *testing.T, data [][]string, 
writeHeader bool, fmtr func(bo
        b.Field(6).(*array.Uint16Builder).AppendValues([]uint16{0, 1, 2}, nil)
        b.Field(7).(*array.Uint32Builder).AppendValues([]uint32{0, 1, 2}, nil)
        b.Field(8).(*array.Uint64Builder).AppendValues([]uint64{0, 1, 2}, nil)
-       b.Field(9).(*array.Float32Builder).AppendValues([]float32{0.0, 0.1, 
0.2}, nil)
-       b.Field(10).(*array.Float64Builder).AppendValues([]float64{0.0, 0.1, 
0.2}, nil)
-       b.Field(11).(*array.StringBuilder).AppendValues([]string{"str-0", 
"str-1", "str-2"}, nil)
-       
b.Field(12).(*array.TimestampBuilder).AppendValues(genTimestamps(arrow.Second), 
nil)
-       b.Field(13).(*array.Date32Builder).AppendValues([]arrow.Date32{17304, 
19304, 20304}, nil)
-       
b.Field(14).(*array.Date64Builder).AppendValues([]arrow.Date64{1840400000000, 
1940400000000, 2040400000000}, nil)
-       
b.Field(15).(*array.Decimal128Builder).AppendValues([]decimal128.Num{decimal128.FromI64(-12345),
 decimal128.FromI64(0), decimal128.FromI64(12345)}, nil)
-       
b.Field(16).(*array.Decimal256Builder).AppendValues([]decimal256.Num{decimal256.FromI64(-12345),
 decimal256.FromI64(0), decimal256.FromI64(12345)}, nil)
-       listBuilder := b.Field(17).(*array.ListBuilder)
+       
b.Field(9).(*array.Float16Builder).AppendValues([]float16.Num{float16.New(0.0), 
float16.New(0.1), float16.New(0.2)}, nil)
+       b.Field(10).(*array.Float32Builder).AppendValues([]float32{0.0, 0.1, 
0.2}, nil)
+       b.Field(11).(*array.Float64Builder).AppendValues([]float64{0.0, 0.1, 
0.2}, nil)
+       b.Field(12).(*array.StringBuilder).AppendValues([]string{"str-0", 
"str-1", "str-2"}, nil)
+       
b.Field(13).(*array.TimestampBuilder).AppendValues(genTimestamps(arrow.Second), 
nil)
+       b.Field(14).(*array.Date32Builder).AppendValues([]arrow.Date32{17304, 
19304, 20304}, nil)
+       
b.Field(15).(*array.Date64Builder).AppendValues([]arrow.Date64{1840400000000, 
1940400000000, 2040400000000}, nil)
+       
b.Field(16).(*array.Decimal128Builder).AppendValues([]decimal128.Num{decimal128.FromI64(-12345),
 decimal128.FromI64(0), decimal128.FromI64(12345)}, nil)
+       
b.Field(17).(*array.Decimal256Builder).AppendValues([]decimal256.Num{decimal256.FromI64(-12345),
 decimal256.FromI64(0), decimal256.FromI64(12345)}, nil)
+       listBuilder := b.Field(18).(*array.ListBuilder)
        listBuilderInt64 := listBuilder.ValueBuilder().(*array.Int64Builder)
        listBuilder.Append(true)
        listBuilderInt64.AppendValues([]int64{1, 2, 3}, nil)
@@ -255,8 +258,8 @@ func testCSVWriter(t *testing.T, data [][]string, 
writeHeader bool, fmtr func(bo
        listBuilderInt64.AppendValues([]int64{4, 5, 6}, nil)
        listBuilder.Append(true)
        listBuilderInt64.AppendValues([]int64{7, 8, 9}, nil)
-       b.Field(18).(*array.BinaryBuilder).AppendValues([][]byte{{0, 1, 2}, {3, 
4, 5}, {}}, nil)
-       
b.Field(19).(*types.UUIDBuilder).AppendValues([]uuid.UUID{uuid.MustParse("00000000-0000-0000-0000-000000000001"),
 uuid.MustParse("00000000-0000-0000-0000-000000000002"), 
uuid.MustParse("00000000-0000-0000-0000-000000000003")}, nil)
+       b.Field(19).(*array.BinaryBuilder).AppendValues([][]byte{{0, 1, 2}, {3, 
4, 5}, {}}, nil)
+       
b.Field(20).(*types.UUIDBuilder).AppendValues([]uuid.UUID{uuid.MustParse("00000000-0000-0000-0000-000000000001"),
 uuid.MustParse("00000000-0000-0000-0000-000000000002"), 
uuid.MustParse("00000000-0000-0000-0000-000000000003")}, nil)
 
        for _, field := range b.Fields() {
                field.AppendNull()
@@ -346,6 +349,7 @@ func BenchmarkWrite(b *testing.B) {
                        {Name: "u16", Type: arrow.PrimitiveTypes.Uint16},
                        {Name: "u32", Type: arrow.PrimitiveTypes.Uint32},
                        {Name: "u64", Type: arrow.PrimitiveTypes.Uint64},
+                       {Name: "f16", Type: arrow.FixedWidthTypes.Float16},
                        {Name: "f32", Type: arrow.PrimitiveTypes.Float32},
                        {Name: "f64", Type: arrow.PrimitiveTypes.Float64},
                        {Name: "str", Type: arrow.BinaryTypes.String},
@@ -369,11 +373,12 @@ func BenchmarkWrite(b *testing.B) {
                bldr.Field(6).(*array.Uint16Builder).Append(uint16(i))
                bldr.Field(7).(*array.Uint32Builder).Append(uint32(i))
                bldr.Field(8).(*array.Uint64Builder).Append(uint64(i))
-               bldr.Field(9).(*array.Float32Builder).Append(float32(i))
-               bldr.Field(10).(*array.Float64Builder).Append(float64(i))
-               
bldr.Field(11).(*array.StringBuilder).Append(fmt.Sprintf("str-%d", i))
-               
bldr.Field(12).(*array.Decimal128Builder).Append(decimal128.FromI64(int64(i)))
-               
bldr.Field(13).(*array.Decimal256Builder).Append(decimal256.FromI64(int64(i)))
+               
bldr.Field(9).(*array.Float16Builder).Append(float16.New(float32(i)))
+               bldr.Field(10).(*array.Float32Builder).Append(float32(i))
+               bldr.Field(11).(*array.Float64Builder).Append(float64(i))
+               
bldr.Field(12).(*array.StringBuilder).Append(fmt.Sprintf("str-%d", i))
+               
bldr.Field(13).(*array.Decimal128Builder).Append(decimal128.FromI64(int64(i)))
+               
bldr.Field(14).(*array.Decimal256Builder).Append(decimal256.FromI64(int64(i)))
        }
 
        rec := bldr.NewRecord()
diff --git a/go/arrow/float16/float16_test.go b/go/arrow/float16/float16_test.go
index 5294e1798d..55c3ea8b30 100644
--- a/go/arrow/float16/float16_test.go
+++ b/go/arrow/float16/float16_test.go
@@ -165,7 +165,7 @@ func TestCmp(t *testing.T) {
                want int
        }{
                {Num{bits: 0x3c00}, Num{bits: 0x4000}, -1}, // cmp(1, 2) = -1
-               {Num{bits: 0x4900}, Num{bits: 0x4900}, 0}, // cmp(10, 10) = 0
+               {Num{bits: 0x4900}, Num{bits: 0x4900}, 0},  // cmp(10, 10) = 0
                {Num{bits: 0x4248}, Num{bits: 0x3245}, 1},  // cmp(3.141, 
0.196) = 1
        } {
                t.Run("cmp", func(t *testing.T) {

Reply via email to