From 81fe96721a53dff2a8c3ecc28ba53984bb98fd16 Mon Sep 17 00:00:00 2001 From: Kai Yuan Date: Thu, 23 Nov 2023 13:03:09 +0100 Subject: [PATCH 1/3] [negate-int] negate an int in java --- .../baeldung/negate/NegateIntUnitTest.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java diff --git a/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java b/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java new file mode 100644 index 0000000000..15fffde6ed --- /dev/null +++ b/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java @@ -0,0 +1,62 @@ +package com.baeldung.negate; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class NegateIntUnitTest { + @Test + void whenUsingUnaryMinusOperator_thenGetExpectedResult() { + int x = 42; + assertEquals(-42, -x); + + int z = 0; + assertEquals(0, -z); + + int n = -42; + assertEquals(42, -n); + } + + @Test + void whenUsingBitwiseComplementOperator_thenGetExpectedResult() { + int x = 42; + assertEquals(-42, ~x + 1); + + int z = 0; + assertEquals(0, ~z + 1); + + int n = -42; + assertEquals(42, ~n + 1); + } + + @Test + void whenUsingUnaryMinusOperatorWithMinInt_thenCannotGetExpectedResult() { + int min = Integer.MIN_VALUE; + System.out.println("The value of '-min' is: " + -min); + assertFalse((-min) > 0); + } + + @Test + void whenUsingBitwiseComplementOperatorWithMinInt_thenCannotGetExpectedResult() { + int min = Integer.MIN_VALUE; + int result = ~min + 1; + System.out.println("The value of '~min + 1' is: " + result); + assertFalse(result > 0); + } + + + @Test + void whenUsingUnaryMinusOperatorWithMinInt_thenGetExpectedResult() { + int x = 42; + assertEquals(-42, Math.negateExact(x)); + + int z = 0; + assertEquals(0, Math.negateExact(z)); + + int n = -42; + assertEquals(42, Math.negateExact(n)); + + int min = Integer.MIN_VALUE; + assertThrowsExactly(ArithmeticException.class, () -> Math.negateExact(min)); + } +} \ No newline at end of file From 0b2981b94e48a35ea0ad46c0a4091b0ae4f3eba8 Mon Sep 17 00:00:00 2001 From: Kai Yuan Date: Sun, 26 Nov 2023 19:10:19 +0100 Subject: [PATCH 2/3] [negate-int] using logger instead of sys.print.out --- .../com/baeldung/negate/NegateIntUnitTest.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java b/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java index 15fffde6ed..3cb93d243d 100644 --- a/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java +++ b/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java @@ -1,10 +1,14 @@ package com.baeldung.negate; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static org.junit.jupiter.api.Assertions.*; public class NegateIntUnitTest { + private static Logger LOG = LoggerFactory.getLogger(NegateIntUnitTest.class); + @Test void whenUsingUnaryMinusOperator_thenGetExpectedResult() { int x = 42; @@ -30,18 +34,20 @@ public class NegateIntUnitTest { } @Test - void whenUsingUnaryMinusOperatorWithMinInt_thenCannotGetExpectedResult() { + void givenIntMinValue_whenUsingUnaryMinusOperator_thenCannotGetExpectedResult() { int min = Integer.MIN_VALUE; - System.out.println("The value of '-min' is: " + -min); - assertFalse((-min) > 0); + LOG.info("The value of '-min' is: " + -min); + + assertTrue((-min) < 0); } @Test - void whenUsingBitwiseComplementOperatorWithMinInt_thenCannotGetExpectedResult() { + void givenIntMinValue_whenUsingBitwiseComplementOperator_thenCannotGetExpectedResult() { int min = Integer.MIN_VALUE; int result = ~min + 1; - System.out.println("The value of '~min + 1' is: " + result); - assertFalse(result > 0); + LOG.info("The value of '~min + 1' is: " + result); + + assertTrue(result < 0); } From 62cc5adfbbce8379f7dd5ec8f39162262b133f94 Mon Sep 17 00:00:00 2001 From: Kai Yuan Date: Sun, 26 Nov 2023 20:59:53 +0100 Subject: [PATCH 3/3] [negate-int] add an empty line --- .../src/test/java/com/baeldung/negate/NegateIntUnitTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java b/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java index 3cb93d243d..444f4931d3 100644 --- a/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java +++ b/core-java-modules/core-java-numbers-conversions/src/test/java/com/baeldung/negate/NegateIntUnitTest.java @@ -7,7 +7,8 @@ import org.slf4j.LoggerFactory; import static org.junit.jupiter.api.Assertions.*; public class NegateIntUnitTest { - private static Logger LOG = LoggerFactory.getLogger(NegateIntUnitTest.class); + + private static final Logger LOG = LoggerFactory.getLogger(NegateIntUnitTest.class); @Test void whenUsingUnaryMinusOperator_thenGetExpectedResult() {