mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
* refactor: change package * refactor: fix name --------- Co-authored-by: alxkm <alx@alx.com>
34 lines
1.4 KiB
Java
34 lines
1.4 KiB
Java
package com.thealgorithms.maths;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
import java.util.stream.Stream;
|
|
import org.junit.jupiter.params.ParameterizedTest;
|
|
import org.junit.jupiter.params.provider.Arguments;
|
|
import org.junit.jupiter.params.provider.MethodSource;
|
|
|
|
class EulersFunctionTest {
|
|
|
|
@ParameterizedTest
|
|
@MethodSource("provideNumbersForGetEuler")
|
|
void testGetEuler(int input, int expected) {
|
|
assertEquals(expected, EulersFunction.getEuler(input));
|
|
}
|
|
|
|
@ParameterizedTest
|
|
@MethodSource("provideInvalidNumbersForGetEuler")
|
|
void testGetEulerThrowsExceptionForNonPositiveInput(int input) {
|
|
assertThrows(IllegalArgumentException.class, () -> EulersFunction.getEuler(input));
|
|
}
|
|
|
|
private static Stream<Arguments> provideNumbersForGetEuler() {
|
|
return Stream.of(Arguments.of(1, 1), Arguments.of(2, 1), Arguments.of(3, 2), Arguments.of(4, 2), Arguments.of(5, 4), Arguments.of(6, 2), Arguments.of(10, 4), Arguments.of(21, 12), Arguments.of(69, 44), Arguments.of(47, 46), Arguments.of(46, 22), Arguments.of(55, 40), Arguments.of(34, 16),
|
|
Arguments.of(20, 8), Arguments.of(1024, 512));
|
|
}
|
|
|
|
private static Stream<Arguments> provideInvalidNumbersForGetEuler() {
|
|
return Stream.of(Arguments.of(0), Arguments.of(-1), Arguments.of(-10));
|
|
}
|
|
}
|