@@ -833,7 +833,9 @@ mod tests {
833
833
834
834
use serde_json:: json;
835
835
836
- use arrow_array:: builder:: { Int32Builder , Int64Builder , MapBuilder , StringBuilder } ;
836
+ use arrow_array:: builder:: {
837
+ FixedSizeBinaryBuilder , Int32Builder , Int64Builder , MapBuilder , StringBuilder ,
838
+ } ;
837
839
use arrow_buffer:: { Buffer , NullBuffer , OffsetBuffer , ToByteSlice } ;
838
840
use arrow_data:: ArrayData ;
839
841
@@ -2137,4 +2139,32 @@ mod tests {
2137
2139
2138
2140
Ok ( ( ) )
2139
2141
}
2142
+
2143
+ #[ test]
2144
+ fn test_writer_fixed_size_binary ( ) {
2145
+ let size = 32 ;
2146
+ let schema = SchemaRef :: new ( Schema :: new ( vec ! [ Field :: new(
2147
+ "bytes" ,
2148
+ DataType :: FixedSizeBinary ( size) ,
2149
+ false ,
2150
+ ) ] ) ) ;
2151
+
2152
+ let mut builder = FixedSizeBinaryBuilder :: new ( size) ;
2153
+ let v = hex:: decode ( "a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447" )
2154
+ . unwrap ( ) ;
2155
+ builder. append_value ( v) . unwrap ( ) ;
2156
+ let array = Arc :: new ( builder. finish ( ) ) as ArrayRef ;
2157
+ let batch = RecordBatch :: try_new ( schema, vec ! [ array] ) . unwrap ( ) ;
2158
+
2159
+ let mut buf = Vec :: new ( ) ;
2160
+ {
2161
+ let mut writer = LineDelimitedWriter :: new ( & mut buf) ;
2162
+ writer. write ( & batch) . unwrap ( ) ;
2163
+ }
2164
+
2165
+ assert_eq ! (
2166
+ "{\" bytes\" :a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447}\n " ,
2167
+ String :: from_utf8( buf) . unwrap( )
2168
+ ) ;
2169
+ }
2140
2170
}
0 commit comments