@@ -466,3 +466,59 @@ prim_int_impl!(i64, i64, u64);
466
466
#[ cfg( has_i128) ]
467
467
prim_int_impl ! ( i128 , i128 , u128 ) ;
468
468
prim_int_impl ! ( isize , isize , usize ) ;
469
+
470
+ #[ cfg( test) ]
471
+ mod tests {
472
+ use int:: PrimInt ;
473
+
474
+ #[ test]
475
+ pub fn reverse_bits ( ) {
476
+ use core:: { i16, i32, i64, i8} ;
477
+
478
+ assert_eq ! (
479
+ PrimInt :: reverse_bits( 0x0123_4567_89ab_cdefu64 ) ,
480
+ 0xf7b3_d591_e6a2_c480
481
+ ) ;
482
+
483
+ assert_eq ! ( PrimInt :: reverse_bits( 0i8 ) , 0 ) ;
484
+ assert_eq ! ( PrimInt :: reverse_bits( -1i8 ) , -1 ) ;
485
+ assert_eq ! ( PrimInt :: reverse_bits( 1i8 ) , i8 :: MIN ) ;
486
+ assert_eq ! ( PrimInt :: reverse_bits( i8 :: MIN ) , 1 ) ;
487
+ assert_eq ! ( PrimInt :: reverse_bits( -2i8 ) , i8 :: MAX ) ;
488
+ assert_eq ! ( PrimInt :: reverse_bits( i8 :: MAX ) , -2 ) ;
489
+
490
+ assert_eq ! ( PrimInt :: reverse_bits( 0i16 ) , 0 ) ;
491
+ assert_eq ! ( PrimInt :: reverse_bits( -1i16 ) , -1 ) ;
492
+ assert_eq ! ( PrimInt :: reverse_bits( 1i16 ) , i16 :: MIN ) ;
493
+ assert_eq ! ( PrimInt :: reverse_bits( i16 :: MIN ) , 1 ) ;
494
+ assert_eq ! ( PrimInt :: reverse_bits( -2i16 ) , i16 :: MAX ) ;
495
+ assert_eq ! ( PrimInt :: reverse_bits( i16 :: MAX ) , -2 ) ;
496
+
497
+ assert_eq ! ( PrimInt :: reverse_bits( 0i32 ) , 0 ) ;
498
+ assert_eq ! ( PrimInt :: reverse_bits( -1i32 ) , -1 ) ;
499
+ assert_eq ! ( PrimInt :: reverse_bits( 1i32 ) , i32 :: MIN ) ;
500
+ assert_eq ! ( PrimInt :: reverse_bits( i32 :: MIN ) , 1 ) ;
501
+ assert_eq ! ( PrimInt :: reverse_bits( -2i32 ) , i32 :: MAX ) ;
502
+ assert_eq ! ( PrimInt :: reverse_bits( i32 :: MAX ) , -2 ) ;
503
+
504
+ assert_eq ! ( PrimInt :: reverse_bits( 0i64 ) , 0 ) ;
505
+ assert_eq ! ( PrimInt :: reverse_bits( -1i64 ) , -1 ) ;
506
+ assert_eq ! ( PrimInt :: reverse_bits( 1i64 ) , i64 :: MIN ) ;
507
+ assert_eq ! ( PrimInt :: reverse_bits( i64 :: MIN ) , 1 ) ;
508
+ assert_eq ! ( PrimInt :: reverse_bits( -2i64 ) , i64 :: MAX ) ;
509
+ assert_eq ! ( PrimInt :: reverse_bits( i64 :: MAX ) , -2 ) ;
510
+ }
511
+
512
+ #[ test]
513
+ #[ cfg( has_i128) ]
514
+ pub fn reverse_bits_i128 ( ) {
515
+ use core:: i128;
516
+
517
+ assert_eq ! ( PrimInt :: reverse_bits( 0i128 ) , 0 ) ;
518
+ assert_eq ! ( PrimInt :: reverse_bits( -1i128 ) , -1 ) ;
519
+ assert_eq ! ( PrimInt :: reverse_bits( 1i128 ) , i128 :: MIN ) ;
520
+ assert_eq ! ( PrimInt :: reverse_bits( i128 :: MIN ) , 1 ) ;
521
+ assert_eq ! ( PrimInt :: reverse_bits( -2i128 ) , i128 :: MAX ) ;
522
+ assert_eq ! ( PrimInt :: reverse_bits( i128 :: MAX ) , -2 ) ;
523
+ }
524
+ }
0 commit comments