Skip to content

Commit 94761f7

Browse files
committed
PrimInt: add unit tests for reverse_bits
1 parent 502426f commit 94761f7

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

src/int.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,3 +466,59 @@ prim_int_impl!(i64, i64, u64);
466466
#[cfg(has_i128)]
467467
prim_int_impl!(i128, i128, u128);
468468
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

Comments
 (0)