@@ -579,6 +579,41 @@ impl AssertEqualToColumnValue for DateTime {
579579 }
580580}
581581
582+ fn assert_column_values_batch <
583+ T : AssertEqualToColumnValue
584+ + PartialEq
585+ + Copy
586+ + PartialOrd
587+ + Default
588+ + Debug
589+ + Send
590+ + Sync
591+ + ' static ,
592+ > (
593+ col : & Column < T > ,
594+ expected : & HashMap < u32 , Vec < & ColumnValue > > ,
595+ ) {
596+ let doc_ids = ( 0 ..col. num_docs ( ) ) . collect :: < Vec < _ > > ( ) ;
597+ let expected_value_flatten = doc_ids
598+ . iter ( )
599+ . flat_map ( |id| {
600+ expected
601+ . get ( id)
602+ . cloned ( )
603+ . unwrap_or_default ( )
604+ . clone ( )
605+ . into_iter ( )
606+ } )
607+ . collect :: < Vec < _ > > ( ) ;
608+ for ( val, expected_val) in col
609+ . values_for_docs_flatten ( & doc_ids)
610+ . iter ( )
611+ . zip ( expected_value_flatten. iter ( ) )
612+ {
613+ val. assert_equal_to_column_value ( expected_val) ;
614+ }
615+ }
616+
582617fn assert_column_values <
583618 T : AssertEqualToColumnValue + PartialEq + Copy + PartialOrd + Debug + Send + Sync + ' static ,
584619> (
@@ -662,18 +697,28 @@ proptest! {
662697 let col_category: ColumnTypeCategory = dynamic_column. column_type( ) . into( ) ;
663698 let expected_col_values: & HashMap <u32 , Vec <& ColumnValue >> = expected_columns. get( & ( column_name. as_str( ) , col_category) ) . unwrap( ) ;
664699 match & dynamic_column {
665- DynamicColumn :: Bool ( col) =>
666- assert_column_values( col, expected_col_values) ,
667- DynamicColumn :: I64 ( col) =>
668- assert_column_values( col, expected_col_values) ,
669- DynamicColumn :: U64 ( col) =>
670- assert_column_values( col, expected_col_values) ,
671- DynamicColumn :: F64 ( col) =>
672- assert_column_values( col, expected_col_values) ,
700+ DynamicColumn :: Bool ( col) => {
701+ assert_column_values( col, expected_col_values) ;
702+ assert_column_values_batch( col, expected_col_values) ;
703+ }
704+ DynamicColumn :: I64 ( col) =>{
705+ assert_column_values( col, expected_col_values) ;
706+ assert_column_values_batch( col, expected_col_values) ;
707+ }
708+ DynamicColumn :: U64 ( col) =>{
709+ assert_column_values( col, expected_col_values) ;
710+ assert_column_values_batch( col, expected_col_values) ;
711+ }
712+ DynamicColumn :: F64 ( col) =>{
713+ assert_column_values( col, expected_col_values) ;
714+ assert_column_values_batch( col, expected_col_values) ;
715+ }
673716 DynamicColumn :: IpAddr ( col) =>
674717 assert_column_values( col, expected_col_values) ,
675- DynamicColumn :: DateTime ( col) =>
676- assert_column_values( col, expected_col_values) ,
718+ DynamicColumn :: DateTime ( col) =>{
719+ assert_column_values( col, expected_col_values) ;
720+ assert_column_values_batch( col, expected_col_values) ;
721+ }
677722 DynamicColumn :: Bytes ( col) =>
678723 assert_bytes_column_values( col, expected_col_values, false ) ,
679724 DynamicColumn :: Str ( col) =>
0 commit comments