Add PowerOfTwoOrNotTest
(#4279)
This commit is contained in:
parent
ee23b6c2e5
commit
c4a9ef1566
@ -4,14 +4,8 @@ package com.thealgorithms.maths;
|
||||
* A utility to check if a given number is power of two or not. For example 8,16
|
||||
* etc.
|
||||
*/
|
||||
public class PowerOfTwoOrNot {
|
||||
|
||||
public static void main(String[] args) {
|
||||
assert !checkIfPowerOfTwoOrNot(0);
|
||||
assert checkIfPowerOfTwoOrNot(1);
|
||||
assert checkIfPowerOfTwoOrNot(8);
|
||||
assert checkIfPowerOfTwoOrNot(16);
|
||||
assert checkIfPowerOfTwoOrNot(1024);
|
||||
public final class PowerOfTwoOrNot {
|
||||
private PowerOfTwoOrNot() {
|
||||
}
|
||||
|
||||
/**
|
||||
@ -21,7 +15,7 @@ public class PowerOfTwoOrNot {
|
||||
* @return {@code true} if given number is power of two, otherwise
|
||||
* {@code false}
|
||||
*/
|
||||
public static boolean checkIfPowerOfTwoOrNot(int number) {
|
||||
public static boolean checkIfPowerOfTwoOrNot(final int number) {
|
||||
return number != 0 && ((number & (number - 1)) == 0);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,25 @@
|
||||
package com.thealgorithms.maths;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.util.Map;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class PowerOfTwoOrNotTest {
|
||||
@Test
|
||||
public void testPowerOfTwoOrNotForPowersOfTwo() {
|
||||
final var powersOfTwo = new int[] {1, 2, 4, 8, 16, 32, 64};
|
||||
for (final var n : powersOfTwo) {
|
||||
assertTrue(PowerOfTwoOrNot.checkIfPowerOfTwoOrNot(n));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPowerOfTwoOrNotForNotPowersOfTwo() {
|
||||
final var notPowersOfTwo = new int[] {-16, -8, -6, -5, -4, -3, -2, -1, 0, 3, 5, 6, 7, 9, 10, 11, 33, 63, 65, 1000, 9999};
|
||||
for (final var n : notPowersOfTwo) {
|
||||
assertFalse(PowerOfTwoOrNot.checkIfPowerOfTwoOrNot(n));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user