From 20dc126a647eda5bbc8d94899c669f22c46fc957 Mon Sep 17 00:00:00 2001 From: tudormarc <93496164+tudormarc@users.noreply.github.com> Date: Fri, 24 Jun 2022 06:57:48 +0300 Subject: [PATCH] BAEL-5560 - checking even and odd numbers (#12388) --- core-java-modules/java-numbers-5/README.md | 1 + core-java-modules/java-numbers-5/pom.xml | 25 +++++++ .../java/com/baeldung/evenodd/EvenOdd.java | 46 +++++++++++++ .../com/baeldung/evenodd/EvenOddUnitTest.java | 68 +++++++++++++++++++ core-java-modules/pom.xml | 1 + 5 files changed, 141 insertions(+) create mode 100644 core-java-modules/java-numbers-5/README.md create mode 100644 core-java-modules/java-numbers-5/pom.xml create mode 100644 core-java-modules/java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java create mode 100644 core-java-modules/java-numbers-5/src/test/java/com/baeldung/evenodd/EvenOddUnitTest.java diff --git a/core-java-modules/java-numbers-5/README.md b/core-java-modules/java-numbers-5/README.md new file mode 100644 index 0000000000..7d843af9ea --- /dev/null +++ b/core-java-modules/java-numbers-5/README.md @@ -0,0 +1 @@ +### Relevant Articles: diff --git a/core-java-modules/java-numbers-5/pom.xml b/core-java-modules/java-numbers-5/pom.xml new file mode 100644 index 0000000000..f5805981ae --- /dev/null +++ b/core-java-modules/java-numbers-5/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + java-numbers-5 + java-numbers-5 + jar + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + java-numbers-5 + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/core-java-modules/java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java b/core-java-modules/java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java new file mode 100644 index 0000000000..5323dcbe11 --- /dev/null +++ b/core-java-modules/java-numbers-5/src/main/java/com/baeldung/evenodd/EvenOdd.java @@ -0,0 +1,46 @@ +package com.baeldung.evenodd; + +public class EvenOdd { + + static boolean isEven(int x) { + return x % 2 == 0; + } + + static boolean isOdd(int x) { + return x % 2 == 1; + } + + static boolean isOrEven(int x) { + return (x | 1) > x; + } + + static boolean isOrOdd(int x) { + return (x | 1) == x; + } + + static boolean isAndEven(int x) { + return (x & 1) == 0; + } + + static boolean isAndOdd(int x) { + return (x & 1) == 1; + } + + static boolean isXorEven(int x) { + return (x ^ 1) > x; + } + + static boolean isXorOdd(int x) { + return (x ^ 1) < x; + } + + static boolean isLsbEven(int x) { + return Integer.toBinaryString(x) + .endsWith("0"); + } + + static boolean isLsbOdd(int x) { + return Integer.toBinaryString(x) + .endsWith("1"); + } +} diff --git a/core-java-modules/java-numbers-5/src/test/java/com/baeldung/evenodd/EvenOddUnitTest.java b/core-java-modules/java-numbers-5/src/test/java/com/baeldung/evenodd/EvenOddUnitTest.java new file mode 100644 index 0000000000..82810977ba --- /dev/null +++ b/core-java-modules/java-numbers-5/src/test/java/com/baeldung/evenodd/EvenOddUnitTest.java @@ -0,0 +1,68 @@ +package com.baeldung.evenodd; + +import static com.baeldung.evenodd.EvenOdd.isAndEven; +import static com.baeldung.evenodd.EvenOdd.isAndOdd; +import static com.baeldung.evenodd.EvenOdd.isEven; +import static com.baeldung.evenodd.EvenOdd.isLsbEven; +import static com.baeldung.evenodd.EvenOdd.isLsbOdd; +import static com.baeldung.evenodd.EvenOdd.isOdd; +import static com.baeldung.evenodd.EvenOdd.isOrEven; +import static com.baeldung.evenodd.EvenOdd.isOrOdd; +import static com.baeldung.evenodd.EvenOdd.isXorEven; +import static com.baeldung.evenodd.EvenOdd.isXorOdd; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class EvenOddUnitTest { + + @Test + public void whenNumberIsEven_thenReturnTrue() { + assertEquals(true, isEven(2)); + } + + @Test + public void whenNumberIsOdd_thenReturnTrue() { + assertEquals(true, isOdd(3)); + } + + @Test + public void whenNumberIsEven_thenReturnTrueWithOr() { + assertEquals(true, isOrEven(4)); + } + + @Test + public void whenNumberIsOdd_thenReturnTrueOr() { + assertEquals(true, isOrOdd(5)); + } + + @Test + public void whenNumberIsEven_thenReturnTrueAnd() { + assertEquals(true, isAndEven(6)); + } + + @Test + public void whenNumberIsOdd_thenReturnTrueAnd() { + assertEquals(true, isAndOdd(7)); + } + + @Test + public void whenNumberIsEven_thenReturnTrueXor() { + assertEquals(true, isXorEven(8)); + } + + @Test + public void whenNumberIsOdd_thenReturnTrueXor() { + assertEquals(true, isXorOdd(9)); + } + + @Test + public void whenNumberIsEven_thenReturnTrueLsb() { + assertEquals(true, isLsbEven(10)); + } + + @Test + public void whenNumberIsOdd_thenReturnTrueLsb() { + assertEquals(true, isLsbOdd(11)); + } +} diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 8d30c545e2..c2576d84f1 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -127,6 +127,7 @@ java-numbers-2 java-numbers-3 java-numbers-4 + java-numbers-5