diff --git a/kata/beta/average-of-even-numbers-in-a-list/README.md b/kata/beta/average-of-even-numbers-in-a-list/README.md new file mode 100644 index 00000000..0a1a1d2d --- /dev/null +++ b/kata/beta/average-of-even-numbers-in-a-list/README.md @@ -0,0 +1,41 @@ +# [Average of Even Numbers in a List](https://www.codewars.com/kata/average-of-even-numbers-in-a-list "https://www.codewars.com/kata/685a10c62388b0a0220ac88d") + +Your task is to write a method that calculates the average of all even numbers in a list of integers. +If the list contains no even numbers, return `0.0`. + +--- + +## Function Signature + +```java +public static double averageOfEvens(List numbers) +``` + +--- + +## Input + +A `List` of length n (1 ≤ n ≤ 100,000) + +--- + +## Output + +A `double` representing the average of all even numbers in the list. +If there are no even numbers, return `0.0` + +--- + +## Examples + +```java +averageOfEvens(Arrays.asList(2, 4,6,8,10))=>6.0 + +averageOfEvens(Arrays.asList(1, 3,5))=>0.0 + +averageOfEvens(Arrays.asList(10, 15,20,25,30))=>20.0 + +averageOfEvens(Arrays.asList(0, 0,0))=>0.0 + +averageOfEvens(Arrays.asList(1, -4,-6,3))=>-5.0 +``` \ No newline at end of file diff --git a/kata/beta/average-of-even-numbers-in-a-list/main/EvenAverage.java b/kata/beta/average-of-even-numbers-in-a-list/main/EvenAverage.java new file mode 100644 index 00000000..498096cf --- /dev/null +++ b/kata/beta/average-of-even-numbers-in-a-list/main/EvenAverage.java @@ -0,0 +1,7 @@ +import java.util.List; + +interface EvenAverage { + static double averageOfEvens(List numbers) { + return numbers.stream().mapToInt(i -> i).filter(i -> i % 2 == 0).average().orElse(0); + } +} \ No newline at end of file diff --git a/kata/beta/average-of-even-numbers-in-a-list/test/SolutionTest.java b/kata/beta/average-of-even-numbers-in-a-list/test/SolutionTest.java new file mode 100644 index 00000000..0816d0c2 --- /dev/null +++ b/kata/beta/average-of-even-numbers-in-a-list/test/SolutionTest.java @@ -0,0 +1,15 @@ +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; +import org.junit.jupiter.api.Test; + +class SolutionTest { + @Test + void sample() { + assertEquals(6.0, EvenAverage.averageOfEvens(List.of(2, 4, 6, 8, 10))); + assertEquals(0.0, EvenAverage.averageOfEvens(List.of(1, 3, 5))); + assertEquals(20.0, EvenAverage.averageOfEvens(List.of(10, 15, 20, 25, 30))); + assertEquals(0.0, EvenAverage.averageOfEvens(List.of(0, 0, 0))); + assertEquals(-5.0, EvenAverage.averageOfEvens(List.of(1, -4, -6, 3))); + } +} \ No newline at end of file diff --git a/kata/beta/index.md b/kata/beta/index.md index 7251c814..b1016f74 100644 --- a/kata/beta/index.md +++ b/kata/beta/index.md @@ -1,5 +1,6 @@ - [02. Sum of array's elements](02-sum-of-arrays-elements "58f475735e78fde4a2000011") - [¡Arrest the cardiac!](arrest-the-cardiac "660af4c7fe0da42cceb4af56") +- [Average of Even Numbers in a List](average-of-even-numbers-in-a-list "685a10c62388b0a0220ac88d") - [Bad Collection?](bad-collection "5e36fb0ffc5a260001e65a5b") - [Basic Arabic-To-Roman Numerals (1 to 999)](basic-arabic-to-roman-numerals-1-to-999 "5580d8dc8e4ee9ffcb000050") - [Beginner friendly: remove the letter o](beginner-friendly-remove-the-letter-o "58d3dd53b0fe8c9ac10000b3")