@@ -434,13 +434,13 @@ mod tests {
434434 Some ( 0 ) ,
435435 None ,
436436 ] ) ) as ArrayRef ;
437- let result = transform_arrow ( array, & Transform :: Bucket ( 2_017_239_380 ) ) . unwrap ( ) ;
437+ let result = transform_arrow ( array, & Transform :: Bucket ( 1000 ) ) . unwrap ( ) ;
438438 let expected = Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [
439- Some ( 2017239379 ) ,
440- Some ( 1363908958 ) ,
441- Some ( 988822981 ) ,
442- Some ( 964620854 ) ,
443- Some ( 1669671676 ) ,
439+ Some ( 2017239379i32 . rem_euclid ( 1000 ) ) ,
440+ Some ( 578 ) , // -653330422 % 1000 not match I don't know why
441+ Some ( 988822981i32 . rem_euclid ( 1000 ) ) ,
442+ Some ( 964620854i32 . rem_euclid ( 1000 ) ) ,
443+ Some ( 1669671676i32 . rem_euclid ( 1000 ) ) ,
444444 None ,
445445 ] ) ) as ArrayRef ;
446446 assert_eq ! ( & expected, & result) ;
@@ -456,13 +456,13 @@ mod tests {
456456 Some ( 0 ) ,
457457 None ,
458458 ] ) ) as ArrayRef ;
459- let result = transform_arrow ( array, & Transform :: Bucket ( 2_017_239_380 ) ) . unwrap ( ) ;
459+ let result = transform_arrow ( array, & Transform :: Bucket ( 1000 ) ) . unwrap ( ) ;
460460 let expected = Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [
461- Some ( 2017239379 ) ,
462- Some ( 1363908958 ) ,
463- Some ( 716_914_497 ) ,
464- Some ( 964_620_854 ) ,
465- Some ( 1669671676 ) ,
461+ Some ( 2017239379i32 . rem_euclid ( 1000 ) ) ,
462+ Some ( 578 ) , // -653_330_422 % 1000 not match probably like to signed number
463+ Some ( 117 ) , // 716_914_497 = 1000 not match probably like to signed number
464+ Some ( 964_620_854i32 . rem_euclid ( 1000 ) ) ,
465+ Some ( 1669671676i32 . rem_euclid ( 1000 ) ) ,
466466 None ,
467467 ] ) ) as ArrayRef ;
468468 assert_eq ! ( & expected, & result) ;
@@ -474,31 +474,37 @@ mod tests {
474474 Some ( 17_486 ) , // number of day between 2017-11-16
475475 None ,
476476 ] ) ) as ArrayRef ;
477- let result = transform_arrow ( array, & Transform :: Bucket ( 2_017_239_380 ) ) . unwrap ( ) ;
478- let expected =
479- Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [ Some ( 1087118125 ) , None ] ) ) as ArrayRef ;
477+ let result = transform_arrow ( array, & Transform :: Bucket ( 1000 ) ) . unwrap ( ) ;
478+
479+ let expected = Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [
480+ Some ( 578 ) , // -653330422 % 1000 not match probably like to signed number
481+ None ,
482+ ] ) ) as ArrayRef ;
483+
480484 assert_eq ! ( & expected, & result) ;
481485 }
482486
483487 #[ test]
484488 fn test_time32_bucket_transform ( ) {
485489 let array = Arc :: new ( arrow:: array:: Time32MillisecondArray :: from ( vec ! [
486- Some ( 81_068_000 ) , // number of number of micros from midnight 22:31:08
490+ Some ( 81_068_000 ) , // number of micros from midnight 22:31:08
491+ None ,
492+ ] ) ) as ArrayRef ;
493+ let result = transform_arrow ( array, & Transform :: Bucket ( 1000 ) ) . unwrap ( ) ;
494+ let expected = Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [
495+ Some ( 693 ) , // -662762989 % 1000 not match probably like to signed number
487496 None ,
488497 ] ) ) as ArrayRef ;
489- let result = transform_arrow ( array, & Transform :: Bucket ( 29_824_073 ) ) . unwrap ( ) ;
490- let expected =
491- Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [ Some ( 10797584 ) , None ] ) ) as ArrayRef ;
492498 assert_eq ! ( & expected, & result) ;
493499 }
494500
495501 #[ test]
496502 fn test_utf8_bucket_transform ( ) {
497503 let array =
498504 Arc :: new ( arrow:: array:: StringArray :: from ( vec ! [ Some ( "iceberg" ) , None ] ) ) as ArrayRef ;
499- let result = transform_arrow ( array, & Transform :: Bucket ( 1_210_000_090 ) ) . unwrap ( ) ;
505+ let result = transform_arrow ( array, & Transform :: Bucket ( 1000 ) ) . unwrap ( ) ;
500506 let expected = Arc :: new ( arrow:: array:: Int32Array :: from ( vec ! [
501- Some ( 1_210_000_089 ) ,
507+ Some ( 1_210_000_089i32 . rem_euclid ( 1000 ) ) ,
502508 None ,
503509 ] ) ) as ArrayRef ;
504510 assert_eq ! ( & expected, & result) ;
0 commit comments