Skip to content

Commit dd1a51b

Browse files
authored
testing: add more cases for AverageTest (#6384)
* testing: add more cases for AverageTest * checkstyle: fix formatting
1 parent 434ab50 commit dd1a51b

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed
Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,48 @@
11
package com.thealgorithms.maths;
22

3-
import org.junit.jupiter.api.Assertions;
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertThrows;
5+
6+
import java.util.stream.Stream;
47
import org.junit.jupiter.api.Test;
8+
import org.junit.jupiter.params.ParameterizedTest;
9+
import org.junit.jupiter.params.provider.Arguments;
10+
import org.junit.jupiter.params.provider.MethodSource;
511

612
public class AverageTest {
713

814
private static final double SMALL_VALUE = 0.00001d;
915

10-
@Test
11-
public void testAverageDouble12() {
12-
double[] numbers = {3d, 6d, 9d, 12d, 15d, 18d, 21d};
13-
Assertions.assertEquals(12d, Average.average(numbers), SMALL_VALUE);
16+
@ParameterizedTest(name = "average({0}) should be approximately {1}")
17+
@MethodSource("provideDoubleArrays")
18+
void testAverageDouble(double[] numbers, double expected) {
19+
assertEquals(expected, Average.average(numbers), SMALL_VALUE);
1420
}
1521

16-
@Test
17-
public void testAverageDouble20() {
18-
double[] numbers = {5d, 10d, 15d, 20d, 25d, 30d, 35d};
19-
Assertions.assertEquals(20d, Average.average(numbers), SMALL_VALUE);
22+
@ParameterizedTest(name = "average({0}) should be {1}")
23+
@MethodSource("provideIntArrays")
24+
void testAverageInt(int[] numbers, long expected) {
25+
assertEquals(expected, Average.average(numbers));
2026
}
2127

2228
@Test
23-
public void testAverageDouble() {
24-
double[] numbers = {1d, 2d, 3d, 4d, 5d, 6d, 7d, 8d};
25-
Assertions.assertEquals(4.5d, Average.average(numbers), SMALL_VALUE);
29+
void testAverageDoubleThrowsExceptionOnNullOrEmpty() {
30+
assertThrows(IllegalArgumentException.class, () -> Average.average((double[]) null));
31+
assertThrows(IllegalArgumentException.class, () -> Average.average(new double[0]));
2632
}
2733

2834
@Test
29-
public void testAverageInt() {
30-
int[] numbers = {2, 4, 10};
31-
Assertions.assertEquals(5, Average.average(numbers));
35+
void testAverageIntThrowsExceptionOnNullOrEmpty() {
36+
assertThrows(IllegalArgumentException.class, () -> Average.average((int[]) null));
37+
assertThrows(IllegalArgumentException.class, () -> Average.average(new int[0]));
38+
}
39+
40+
private static Stream<Arguments> provideDoubleArrays() {
41+
return Stream.of(Arguments.of(new double[] {3d, 6d, 9d, 12d, 15d, 18d, 21d}, 12d), Arguments.of(new double[] {5d, 10d, 15d, 20d, 25d, 30d, 35d}, 20d), Arguments.of(new double[] {1d, 2d, 3d, 4d, 5d, 6d, 7d, 8d}, 4.5d), Arguments.of(new double[] {0d, 0d, 0d}, 0d),
42+
Arguments.of(new double[] {-1d, -2d, -3d}, -2d), Arguments.of(new double[] {1e-10, 1e-10, 1e-10}, 1e-10));
43+
}
44+
45+
private static Stream<Arguments> provideIntArrays() {
46+
return Stream.of(Arguments.of(new int[] {2, 4, 10}, 5L), Arguments.of(new int[] {0, 0, 0}, 0L), Arguments.of(new int[] {-1, -2, -3}, -2L), Arguments.of(new int[] {1, 1, 1, 1, 1}, 1L));
3247
}
3348
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy