Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 6 additions & 25 deletions src/main/java/com/thealgorithms/maths/Average.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,6 @@
*/
public class Average {

private static final double SMALL_VALUE = 0.00001f;

public static void main(String[] args) {
assert Math.abs(
average(new double[] { 3, 6, 9, 12, 15, 18, 21 }) - 12
) <
SMALL_VALUE;
assert Math.abs(
average(new double[] { 5, 10, 15, 20, 25, 30, 35 }) - 20
) <
SMALL_VALUE;
assert Math.abs(
average(new double[] { 1, 2, 3, 4, 5, 6, 7, 8 }) - 4.5
) <
SMALL_VALUE;
int[] array = { 2, 4, 10 };
assert average(array) == 5;
}

/**
* Calculate average of a list of numbers
*
Expand All @@ -41,15 +22,15 @@ public static double average(double[] numbers) {
/**
* find average value of int array
*
* @param array the array contains element and the sum does not excess long
* value limit
* @param numbers the array contains element and the sum does not excess long
* value limit
* @return average value
*/
public static int average(int[] array) {
public static int average(int[] numbers) {
long sum = 0;
for (int i = 0; i < array.length; ++i) {
sum += array[i];
for (int number : numbers) {
sum += number;
}
return (int) (sum / array.length);
return (int) (sum / numbers.length);
}
}
26 changes: 23 additions & 3 deletions src/test/java/com/thealgorithms/maths/AverageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,30 @@

public class AverageTest {

double[] numbers = { 3, 6, 9, 12, 15, 18, 21 };
private static final double SMALL_VALUE = 0.00001d;

@Test
public void testAverage() {
Assertions.assertEquals(12, Average.average(numbers));
public void testAverage_double_12() {
double[] numbers = {3d, 6d, 9d, 12d, 15d, 18d, 21d};
Assertions.assertEquals(12d, Average.average(numbers), SMALL_VALUE);
}

@Test
public void testAverage_double_20() {
double[] numbers = {5d, 10d, 15d, 20d, 25d, 30d, 35d};
Assertions.assertEquals(20d, Average.average(numbers), SMALL_VALUE);
}

@Test
public void testAverage_double_4_5() {
double[] numbers = {1d, 2d, 3d, 4d, 5d, 6d, 7d, 8d};
Assertions.assertEquals(4.5d, Average.average(numbers), SMALL_VALUE);
}

@Test
public void testAverage_int_5() {
int[] numbers = {2, 4, 10};
Assertions.assertEquals(5, Average.average(numbers));
}

}