diff --git a/algorithm-exercises-java/src/main/java/ae/hackerrank/projecteuler/Euler003.java b/algorithm-exercises-java/src/main/java/ae/hackerrank/projecteuler/Euler003.java index f603fcc..65a1c0a 100644 --- a/algorithm-exercises-java/src/main/java/ae/hackerrank/projecteuler/Euler003.java +++ b/algorithm-exercises-java/src/main/java/ae/hackerrank/projecteuler/Euler003.java @@ -11,7 +11,7 @@ private Euler003() {} private static Long primeFactor(Long n) { if (n < 2) { - return null; + throw new IllegalArgumentException("n must be greater than 2"); } Long divisor = n; diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java index 77f332e..62fbfe1 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java @@ -1,6 +1,8 @@ package ae.hackerrank.projecteuler; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.List; @@ -8,6 +10,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import util.JsonLoader; @@ -45,4 +49,22 @@ public void setup() throws IOException { ); } } + + @ParameterizedTest + @CsvSource({ + "0", + "1" + }) void euler003edgecases(long input) { + + Exception exception; + + exception = assertThrows(IllegalArgumentException.class, () -> + Euler003.euler003(input) + ); + + String expectedMessage = "n must be greater than 2"; + + assertTrue(exception.getMessage().contains(expectedMessage)); + + } }