@@ -94,7 +94,7 @@ pub fn bitpack_encode_blocked(
9494 let num_blocks = array. len ( ) . div_ceil ( FL_CHUNK_SIZE ) ;
9595 vortex_ensure ! (
9696 bit_widths. len( ) == num_blocks,
97- InvalidArgument : "Expected {num_blocks} bit widths, got {}" ,
97+ "Expected {num_blocks} bit widths, got {}" ,
9898 bit_widths. len( )
9999 ) ;
100100 validate_bit_widths ( bit_widths, array. ptype ( ) ) ?;
@@ -133,13 +133,13 @@ fn validate_bit_widths(bit_widths: &[u8], ptype: PType) -> VortexResult<()> {
133133 let bit_width = usize:: from ( bit_width) ;
134134 vortex_ensure ! (
135135 bit_width <= max_bit_width,
136- InvalidArgument : "Bit widths must be at most {max_bit_width} for {ptype}"
136+ "Bit widths must be at most {max_bit_width} for {ptype}"
137137 ) ;
138138 has_packed_block |= bit_width < max_bit_width;
139139 }
140140 vortex_ensure ! (
141141 bit_widths. is_empty( ) || has_packed_block,
142- InvalidArgument : "Cannot pack: all blocks use the native bit width {max_bit_width}"
142+ "Cannot pack: all blocks use the native bit width {max_bit_width}"
143143 ) ;
144144 Ok ( ( ) )
145145}
@@ -343,7 +343,6 @@ mod tests {
343343 use vortex_array:: assert_arrays_eq;
344344 use vortex_array:: validity:: Validity ;
345345 use vortex_buffer:: Buffer ;
346- use vortex_error:: VortexError ;
347346 use vortex_error:: vortex_bail;
348347 use vortex_error:: vortex_err;
349348 use vortex_session:: VortexSession ;
@@ -542,33 +541,43 @@ mod tests {
542541 }
543542
544543 #[ rstest]
545- #[ case:: negative( PrimitiveArray :: from_iter( -5i64 ..5 ) ) ]
546- #[ case:: float( PrimitiveArray :: from_iter( [ 1.0f32 , 2.0 ] ) ) ]
547- fn encode_blocked_rejects_invalid_values ( #[ case] array : PrimitiveArray ) {
544+ #[ case:: negative(
545+ PrimitiveArray :: from_iter( -5i64 ..5 ) ,
546+ "cannot bitpack array containing negative integers"
547+ ) ]
548+ #[ case:: float( PrimitiveArray :: from_iter( [ 1.0f32 , 2.0 ] ) , "cannot bitpack f32 array" ) ]
549+ fn encode_blocked_rejects_invalid_values (
550+ #[ case] array : PrimitiveArray ,
551+ #[ case] expected : & str ,
552+ ) {
548553 let mut ctx = SESSION . create_execution_ctx ( ) ;
549- assert ! ( matches! (
550- bitpack_blocked_to_best_bit_widths ( & array , & mut ctx ) . unwrap_err( ) ,
551- VortexError :: InvalidArgument ( _ , _ )
552- ) ) ;
553- assert ! ( matches! (
554- BitPackedData :: encode_blocked ( & array . into_array ( ) , & [ 1 ] , & mut ctx ) . unwrap_err( ) ,
555- VortexError :: InvalidArgument ( _ , _ )
556- ) ) ;
554+ let err = bitpack_blocked_to_best_bit_widths ( & array , & mut ctx )
555+ . unwrap_err ( )
556+ . to_string ( ) ;
557+ assert ! ( err . contains ( expected ) , "{err}" ) ;
558+ let err = BitPackedData :: encode_blocked ( & array . into_array ( ) , & [ 1 ] , & mut ctx )
559+ . unwrap_err ( )
560+ . to_string ( ) ;
561+ assert ! ( err . contains ( expected ) , "{err}" ) ;
557562 }
558563
559564 #[ rstest]
560- #[ case:: too_few( vec![ 3 ] ) ]
561- #[ case:: too_many( vec![ 3 , 3 , 3 ] ) ]
562- #[ case:: wider_than_type( vec![ 3 , 33 ] ) ]
563- fn encode_blocked_rejects_invalid_bit_widths ( #[ case] bit_widths : Vec < u8 > ) {
565+ #[ case:: too_few( vec![ 3 ] , "Expected 2 bit widths, got 1" ) ]
566+ #[ case:: too_many( vec![ 3 , 3 , 3 ] , "Expected 2 bit widths, got 3" ) ]
567+ #[ case:: wider_than_type( vec![ 3 , 33 ] , "Bit widths must be at most 32 for u32" ) ]
568+ fn encode_blocked_rejects_invalid_bit_widths (
569+ #[ case] bit_widths : Vec < u8 > ,
570+ #[ case] expected : & str ,
571+ ) {
564572 let array = PrimitiveArray :: from_iter ( ( 0 ..2048u32 ) . map ( |i| i % 8 ) ) ;
565573 let err = BitPackedData :: encode_blocked (
566574 & array. into_array ( ) ,
567575 & bit_widths,
568576 & mut SESSION . create_execution_ctx ( ) ,
569577 )
570- . unwrap_err ( ) ;
571- assert ! ( matches!( err, VortexError :: InvalidArgument ( _, _) ) ) ;
578+ . unwrap_err ( )
579+ . to_string ( ) ;
580+ assert ! ( err. contains( expected) , "{err}" ) ;
572581 }
573582
574583 #[ test]
0 commit comments