From 9cfbcaeeeeb13d258678d3984874ee60f9399684 Mon Sep 17 00:00:00 2001 From: Pit Friedrich Date: Sat, 25 Jul 2026 11:04:03 +0200 Subject: [PATCH] fix: add MultiplyFunction (#5) Adds MultiplyFunction implementing CalcFunction, following the Add/Subtract pattern, wired into LoopTestApplication. --- .../java/com/example/LoopTestApplication.java | 3 ++ .../com/example/util/MultiplyFunction.java | 15 ++++++++++ .../example/util/MultiplyFunctionTest.java | 30 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/main/java/com/example/util/MultiplyFunction.java create mode 100644 src/test/java/com/example/util/MultiplyFunctionTest.java diff --git a/src/main/java/com/example/LoopTestApplication.java b/src/main/java/com/example/LoopTestApplication.java index 3b551c4..cfb047d 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.MultiplyFunction; import com.example.util.SubtractFunction; public class LoopTestApplication { @@ -12,5 +13,7 @@ public class LoopTestApplication { System.out.println("ADDITION: " + add.calc(2, 5, 6)); CalcFunction subtract = new SubtractFunction(); System.out.println("SUBTRACTION: " + subtract.calc(2, 5, 6)); + CalcFunction multiply = new MultiplyFunction(); + System.out.println("MULTIPLICATION: " + multiply.calc(2, 5, 6)); } } diff --git a/src/main/java/com/example/util/MultiplyFunction.java b/src/main/java/com/example/util/MultiplyFunction.java new file mode 100644 index 0000000..353bdc5 --- /dev/null +++ b/src/main/java/com/example/util/MultiplyFunction.java @@ -0,0 +1,15 @@ +package com.example.util; + +public class MultiplyFunction 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/MultiplyFunctionTest.java b/src/test/java/com/example/util/MultiplyFunctionTest.java new file mode 100644 index 0000000..2a3af39 --- /dev/null +++ b/src/test/java/com/example/util/MultiplyFunctionTest.java @@ -0,0 +1,30 @@ +package com.example.util; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class MultiplyFunctionTest { + + private final MultiplyFunction multiplyFunction = new MultiplyFunction(); + + @Test + void multipliesMultipleValues() { + assertEquals(60.0, multiplyFunction.calc(2.0, 5.0, 6.0)); + } + + @Test + void returnsSingleValue() { + assertEquals(5.0, multiplyFunction.calc(5.0)); + } + + @Test + void returnsZeroForNoInput() { + assertEquals(0.0, multiplyFunction.calc()); + } + + @Test + void multipliesNegativeValues() { + assertEquals(-2.0, multiplyFunction.calc(1.0, -2.0)); + } +}