package com.thealgorithms.maths; import static org.junit.jupiter.api.Assertions.*; 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); } } }