diff --git a/core-java-modules/core-java-numbers-conversions-2/README.md b/core-java-modules/core-java-numbers-conversions-2/README.md new file mode 100644 index 0000000000..7d843af9ea --- /dev/null +++ b/core-java-modules/core-java-numbers-conversions-2/README.md @@ -0,0 +1 @@ +### Relevant Articles: diff --git a/core-java-modules/core-java-numbers-conversions-2/pom.xml b/core-java-modules/core-java-numbers-conversions-2/pom.xml new file mode 100644 index 0000000000..b1c87df510 --- /dev/null +++ b/core-java-modules/core-java-numbers-conversions-2/pom.xml @@ -0,0 +1,14 @@ + + 4.0.0 + core-java-numbers-conversions-2 + jar + core-java-numbers-conversions-2 + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + diff --git a/core-java-modules/core-java-numbers-conversions-2/src/test/java/com/baeldung/inttoshort/ConvertIntToShortUnitTest.java b/core-java-modules/core-java-numbers-conversions-2/src/test/java/com/baeldung/inttoshort/ConvertIntToShortUnitTest.java new file mode 100644 index 0000000000..123c799b4a --- /dev/null +++ b/core-java-modules/core-java-numbers-conversions-2/src/test/java/com/baeldung/inttoshort/ConvertIntToShortUnitTest.java @@ -0,0 +1,55 @@ +package com.baeldung.inttoshort; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +class ConvertIntToShortUnitTest { + + @Test + void whenUsingCasting_thenCorrect() { + short expected = 42; + int i = 42; + short result = (short) i; + assertEquals(expected, result); + } + + @Test + void whenUsingIntegerShortValue_thenCorrect() { + short expected = 42; + Integer intObj = 42; + short result = intObj.shortValue(); + assertEquals(expected, result); + } + + @Test + void whenIntOutOfShortRange_thenGetTheUnexpectedResult() { + int oneMillion = 1_000_000; + short result = (short) oneMillion; + assertEquals(16960, result); + + int twoMillion = 2_000_000; + result = (short) twoMillion; + assertEquals(-31616, result); + } + + short intToShort(int i) { + if (i < Short.MIN_VALUE || i > Short.MAX_VALUE) { + throw new IllegalArgumentException("Int is out of short range"); + } + return (short) i; + } + + @Test + void whenCheckShortRangeBeforeCasting_thenGetExpectedResult() { + short expected = 42; + int int42 = 42; + assertEquals(expected, intToShort(int42)); + + int oneMillion = 1_000_000; + assertThrows(IllegalArgumentException.class, () -> intToShort(oneMillion)); + + } + +} \ No newline at end of file diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 6b4edaf7f2..1344b3af23 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -36,6 +36,7 @@ core-java-numbers-conversions + core-java-numbers-conversions-2 core-java-9-improvements core-java-9-streams core-java-9