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; class MobiusFunctionTest { @Test void testMobiusForZero() { // given int number = 0; String expectedMessage = "Number must be greater than zero."; // when Exception exception = assertThrows(IllegalArgumentException.class, () -> { MobiusFunction.mobius(number); }); String actualMessage = exception.getMessage(); // then assertEquals(expectedMessage, actualMessage); } @Test void testMobiusForNegativeNumber() { // given int number = -1; String expectedMessage = "Number must be greater than zero."; // when Exception exception = assertThrows(IllegalArgumentException.class, () -> { MobiusFunction.mobius(number); }); String actualMessage = exception.getMessage(); // then assertEquals(expectedMessage, actualMessage); } @Test void testMobiusFunction() { int[] expectedResultArray = { 1, -1, -1, 0, -1, 1, -1, 0, 0, 1, -1, 0, -1, 1, 1, 0, -1, 0, -1, 0, 1, 1, -1, 0, 0, 1, 0, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 0, -1, -1, -1, 0, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, 1, 0, 1, 1, -1, 0, -1, 1, 0, 0, 1, -1, -1, 0, 1, -1, -1, 0, -1, 1, 0, 0, 1, -1, -1, 0, 0, 1, -1, 0, 1, 1, 1, 0, -1, 0, 1, 0, 1, 1, 1, 0, -1, 0, 0, 0, }; for (int i = 1; i <= 100; i++) { // given int expectedValue = expectedResultArray[i - 1]; // when int actualValue = MobiusFunction.mobius(i); // then assertEquals(expectedValue, actualValue); } } }