@@ -109,8 +109,8 @@ mod tests {
109109    use  crate :: { 
110110        array:: { 
111111            self ,  new_null_array,  Array ,  Date32Array ,  Date64Array , 
112-             FixedSizeBinaryBuilder ,  PrimitiveBuilder ,   StringArray ,   StringBuilder , 
113-             StringDictionaryBuilder ,  StructArray ,  Time32MillisecondArray , 
112+             FixedSizeBinaryBuilder ,  Float16Array ,   PrimitiveBuilder ,   StringArray , 
113+             StringBuilder ,   StringDictionaryBuilder ,  StructArray ,  Time32MillisecondArray , 
114114            Time32SecondArray ,  Time64MicrosecondArray ,  Time64NanosecondArray , 
115115            TimestampMicrosecondArray ,  TimestampMillisecondArray , 
116116            TimestampNanosecondArray ,  TimestampSecondArray , 
@@ -123,6 +123,8 @@ mod tests {
123123    use  std:: fmt:: Write ; 
124124    use  std:: sync:: Arc ; 
125125
126+     use  half:: f16; 
127+ 
126128    #[ test]  
127129    fn  test_pretty_format_batches ( )  -> Result < ( ) >  { 
128130        // define a schema. 
@@ -692,4 +694,34 @@ mod tests {
692694
693695        Ok ( ( ) ) 
694696    } 
697+ 
698+     #[ test]  
699+     fn  test_float16_display ( )  -> Result < ( ) >  { 
700+         let  values = vec ! [ 
701+             Some ( f16:: from_f32( f32 :: NAN ) ) , 
702+             Some ( f16:: from_f32( 4.0 ) ) , 
703+             Some ( f16:: from_f32( f32 :: NEG_INFINITY ) ) , 
704+         ] ; 
705+         let  array = Arc :: new ( values. into_iter ( ) . collect :: < Float16Array > ( ) )  as  ArrayRef ; 
706+ 
707+         let  schema = Arc :: new ( Schema :: new ( vec ! [ Field :: new( 
708+             "f16" , 
709+             array. data_type( ) . clone( ) , 
710+             true , 
711+         ) ] ) ) ; 
712+ 
713+         let  batch = RecordBatch :: try_new ( schema,  vec ! [ array] ) ?; 
714+ 
715+         let  table = pretty_format_batches ( & [ batch] ) ?. to_string ( ) ; 
716+ 
717+         let  expected = vec ! [ 
718+             "+------+" ,  "| f16  |" ,  "+------+" ,  "| NaN  |" ,  "| 4    |" ,  "| -inf |" , 
719+             "+------+" , 
720+         ] ; 
721+ 
722+         let  actual:  Vec < & str >  = table. lines ( ) . collect ( ) ; 
723+         assert_eq ! ( expected,  actual,  "Actual result:\n {}" ,  table) ; 
724+ 
725+         Ok ( ( ) ) 
726+     } 
695727} 
0 commit comments