diff --git a/src/main/java/com/thealgorithms/maths/Median.java b/src/main/java/com/thealgorithms/maths/Median.java index e4daec8fc11a..fd2aab84e4e9 100644 --- a/src/main/java/com/thealgorithms/maths/Median.java +++ b/src/main/java/com/thealgorithms/maths/Median.java @@ -13,8 +13,13 @@ private Median() { * Calculate average median * @param values sorted numbers to find median of * @return median of given {@code values} + * @throws IllegalArgumentException If the input array is empty or null. */ public static double median(int[] values) { + if (values == null || values.length == 0) { + throw new IllegalArgumentException("Values array cannot be empty or null"); + } + Arrays.sort(values); int length = values.length; return length % 2 == 0 ? (values[length / 2] + values[length / 2 - 1]) / 2.0 : values[length / 2]; diff --git a/src/test/java/com/thealgorithms/maths/MedianTest.java b/src/test/java/com/thealgorithms/maths/MedianTest.java index d2b637abd3cb..560feb695792 100644 --- a/src/test/java/com/thealgorithms/maths/MedianTest.java +++ b/src/test/java/com/thealgorithms/maths/MedianTest.java @@ -1,6 +1,7 @@ package com.thealgorithms.maths; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; @@ -34,4 +35,10 @@ void medianNegativeValues() { int[] arr = {-27, -16, -7, -4, -2, -1}; assertEquals(-5.5, Median.median(arr)); } + + @Test + void medianEmptyArrayThrows() { + int[] arr = {}; + assertThrows(IllegalArgumentException.class, () -> Median.median(arr)); + } }