pub(crate) fn is_pow_of_two(val: u32) -> bool {
if val == 0 {
return false;
}
(val & (val - 1)) == 0
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_powers_of_two() {
assert_eq!(is_pow_of_two(0), false);
assert_eq!(is_pow_of_two(1), true);
assert_eq!(is_pow_of_two(2), true);
assert_eq!(is_pow_of_two(3), false);
assert_eq!(is_pow_of_two(4), true);
assert_eq!(is_pow_of_two(8), true);
assert_eq!(is_pow_of_two(15), false);
assert_eq!(is_pow_of_two(16), true);
assert_eq!(is_pow_of_two(20), false);
}
}