From 2e6be68aaaa45646368810a1bb3533bd97ce5f84 Mon Sep 17 00:00:00 2001 From: Pit Friedrich Date: Sat, 25 Jul 2026 11:09:01 +0200 Subject: [PATCH] fix: add DivideFunction (#7) --- .../java/com/example/LoopTestApplication.java | 3 ++ .../java/com/example/util/DivideFunction.java | 15 ++++++++++ .../com/example/util/DivideFunctionTest.java | 30 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/main/java/com/example/util/DivideFunction.java create mode 100644 src/test/java/com/example/util/DivideFunctionTest.java diff --git a/src/main/java/com/example/LoopTestApplication.java b/src/main/java/com/example/LoopTestApplication.java index cfb047d..6a71a3f 100644 --- a/src/main/java/com/example/LoopTestApplication.java +++ b/src/main/java/com/example/LoopTestApplication.java @@ -2,6 +2,7 @@ package com.example; import com.example.util.AddFunction; import com.example.util.CalcFunction; +import com.example.util.DivideFunction; import com.example.util.MultiplyFunction; import com.example.util.SubtractFunction; @@ -15,5 +16,7 @@ public class LoopTestApplication { System.out.println("SUBTRACTION: " + subtract.calc(2, 5, 6)); CalcFunction multiply = new MultiplyFunction(); System.out.println("MULTIPLICATION: " + multiply.calc(2, 5, 6)); + CalcFunction divide = new DivideFunction(); + System.out.println("DIVISION: " + divide.calc(2, 5, 6)); } } diff --git a/src/main/java/com/example/util/DivideFunction.java b/src/main/java/com/example/util/DivideFunction.java new file mode 100644 index 0000000..6c2f2bb --- /dev/null +++ b/src/main/java/com/example/util/DivideFunction.java @@ -0,0 +1,15 @@ +package com.example.util; + +public class DivideFunction implements CalcFunction { + + public double calc(double... input) { + if (input.length == 0) { + return 0; + } + double result = input[0]; + for (int i = 1; i < input.length; i++) { + result /= input[i]; + } + return result; + } +} diff --git a/src/test/java/com/example/util/DivideFunctionTest.java b/src/test/java/com/example/util/DivideFunctionTest.java new file mode 100644 index 0000000..c3b92d1 --- /dev/null +++ b/src/test/java/com/example/util/DivideFunctionTest.java @@ -0,0 +1,30 @@ +package com.example.util; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class DivideFunctionTest { + + private final DivideFunction divideFunction = new DivideFunction(); + + @Test + void dividesMultipleValues() { + assertEquals(2.0, divideFunction.calc(20.0, 5.0, 2.0)); + } + + @Test + void returnsSingleValue() { + assertEquals(5.0, divideFunction.calc(5.0)); + } + + @Test + void returnsZeroForNoInput() { + assertEquals(0.0, divideFunction.calc()); + } + + @Test + void dividesNegativeValues() { + assertEquals(-2.0, divideFunction.calc(4.0, -2.0)); + } +}