diff --git a/app/src/main/java/control/Single.java b/app/src/main/java/control/Single.java index 8fefbb8..2aa594d 100644 --- a/app/src/main/java/control/Single.java +++ b/app/src/main/java/control/Single.java @@ -42,9 +42,15 @@ public static int maxArray(int[] arr) { * This method calculates the sum of the first n natural numbers, modulo m. * * @param n The number of natural numbers to sum. - * @param m The modulus. + * @param m The non-zero modulus. + * @throws IllegalArgumentException if m is zero. */ public static int sumModulus(int n, int m) { + // Validate first so modulo by zero produces a clearer exception than % would. + if (m == 0) { + throw new IllegalArgumentException("Modulus must be non-zero"); + } + Vector multiples = new Vector(); for (int i = 0; i < n; i++) { if (i % m == 0) { diff --git a/app/src/test/java/control/SingleTest.java b/app/src/test/java/control/SingleTest.java index 98f5395..976d8e8 100644 --- a/app/src/test/java/control/SingleTest.java +++ b/app/src/test/java/control/SingleTest.java @@ -1,6 +1,7 @@ package control; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; @@ -33,5 +34,6 @@ public void testSumModulus() { assertEquals(20, Single.sumModulus(10, 2)); assertEquals(18, Single.sumModulus(10, 3)); assertEquals(12, Single.sumModulus(10, 4)); + assertThrows(IllegalArgumentException.class, () -> Single.sumModulus(10, 0)); } } \ No newline at end of file