From d40b69ce7fceff7bf54ae62fffb81ed095ec3b69 Mon Sep 17 00:00:00 2001 From: Piotr Idzik Date: Wed, 2 Aug 2023 19:28:11 +0000 Subject: [PATCH 1/4] tests: add `PowerOfTwoOrNotTest` --- .../maths/PowerOfTwoOrNotTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java diff --git a/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java b/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java new file mode 100644 index 000000000000..46e334fd0d5b --- /dev/null +++ b/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java @@ -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)); + } + } +} \ No newline at end of file From c0169831ea06c131b90575a2b08d946556187d2e Mon Sep 17 00:00:00 2001 From: Piotr Idzik Date: Wed, 2 Aug 2023 19:30:03 +0000 Subject: [PATCH 2/4] refactor: make `PowerOfTwoOrNot` a proper utility class --- .../java/com/thealgorithms/maths/PowerOfTwoOrNot.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java b/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java index 88a6b63c9597..8ca5e01d41c3 100644 --- a/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java +++ b/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java @@ -4,14 +4,8 @@ * 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() { } /** From 9238d2f31f8458cd2705c2c7437e88f9f5d0bbfa Mon Sep 17 00:00:00 2001 From: Piotr Idzik Date: Wed, 2 Aug 2023 19:31:24 +0000 Subject: [PATCH 3/4] style: mark the argument of `PowerOfTwoOrNot.checkIfPowerOfTwoOrNot` as `final` --- src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java b/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java index 8ca5e01d41c3..c1f8beffdb2e 100644 --- a/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java +++ b/src/main/java/com/thealgorithms/maths/PowerOfTwoOrNot.java @@ -15,7 +15,7 @@ private 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); } } From bbb7fd85a6d9de7d11d096f6eca778b0ca3ea6e0 Mon Sep 17 00:00:00 2001 From: Piotr Idzik Date: Wed, 2 Aug 2023 19:43:15 +0000 Subject: [PATCH 4/4] style: add missing newline symbol --- src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java b/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java index 46e334fd0d5b..df01d481ccd8 100644 --- a/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java +++ b/src/test/java/com/thealgorithms/maths/PowerOfTwoOrNotTest.java @@ -22,4 +22,4 @@ public void testPowerOfTwoOrNotForNotPowersOfTwo() { assertFalse(PowerOfTwoOrNot.checkIfPowerOfTwoOrNot(n)); } } -} \ No newline at end of file +}