From e745b0bac79dbf4ce4360f0b9754a21de2947be8 Mon Sep 17 00:00:00 2001 From: Petter <petterah@outlook.com> Date: Tue, 11 Feb 2025 15:34:45 +0100 Subject: [PATCH 1/2] nesten ferdig --- .../no/uib/inf101/calculator/Calculator.java | 32 ++++++++++++++++--- .../calculator/operations/Addition.java | 19 +++++++++++ .../calculator/operations/Multiplication.java | 17 ++++++++++ .../calculator/operations/Subtraction.java | 17 ++++++++++ .../uib/inf101/calculator/OperatorsTest.java | 10 +++--- 5 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 src/main/java/no/uib/inf101/calculator/operations/Addition.java create mode 100644 src/main/java/no/uib/inf101/calculator/operations/Multiplication.java create mode 100644 src/main/java/no/uib/inf101/calculator/operations/Subtraction.java diff --git a/src/main/java/no/uib/inf101/calculator/Calculator.java b/src/main/java/no/uib/inf101/calculator/Calculator.java index 447f34f..631e67a 100644 --- a/src/main/java/no/uib/inf101/calculator/Calculator.java +++ b/src/main/java/no/uib/inf101/calculator/Calculator.java @@ -1,7 +1,11 @@ package no.uib.inf101.calculator; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; + +import no.uib.inf101.calculator.operations.Operator; /** * Represents a calculator that can evaluate mathematical expressions. @@ -22,7 +26,7 @@ public class Calculator { * @return a list of operator symbols */ public List<String> getOperatorSymbols() { - return Arrays.asList("+"); + return Arrays.asList("+", "*", "-"); } /** @@ -32,9 +36,15 @@ public class Calculator { * @throws NullPointerException if the operator is not found in the calculator */ public String getOperatorDescription(String operatorSymbol) { - // TODO - return ""; - //throw new NullPointerException("This operator is not supported by the calculator: " + operatorSymbol); + if (operatorSymbol.equals("+")) + return ("Addition: \"Combine two numbers to find their total or sum.\""); + if (operatorSymbol.equals("*")) + return ("Multiplication: \"Calculate the result of multiplying one number by another.\""); + if (operatorSymbol.equals("-")) + return ("Subtraction: \"Find the difference between two numbers by taking one away from the other.\""); + + throw new NullPointerException("This operator is not supported by the calculator: " + operatorSymbol); + } /** @@ -49,11 +59,21 @@ public class Calculator { public double evaluate(double num1, double num2, String operatorSymbol) { if (operatorSymbol.equals("+")) return num1 + num2; + if (operatorSymbol.equals("*")) + return num1 * num2; + if (operatorSymbol.equals("-")) + return num1 - num2; + throw new NullPointerException("This operator is not supported by the calculator: " + operatorSymbol); } +private Map<String, Operator> operators; + +public Calculator() { + operators = new HashMap<>(); +} @@ -62,6 +82,10 @@ public class Calculator { + + + + // ################# NO NEED TO LOOK AT THIS METHOD ################# /** diff --git a/src/main/java/no/uib/inf101/calculator/operations/Addition.java b/src/main/java/no/uib/inf101/calculator/operations/Addition.java new file mode 100644 index 0000000..2554cdc --- /dev/null +++ b/src/main/java/no/uib/inf101/calculator/operations/Addition.java @@ -0,0 +1,19 @@ +package no.uib.inf101.calculator.operations; + +public class Addition implements Operator { + + + public String getSymbol() { + return "+"; + } + + public String getDescription() { + return "Addition: \"Combine two numbers to find their total or sum.\""; + } + + public double calculate(double num1, double num2) { + return num1 + num2; + } + +} + diff --git a/src/main/java/no/uib/inf101/calculator/operations/Multiplication.java b/src/main/java/no/uib/inf101/calculator/operations/Multiplication.java new file mode 100644 index 0000000..bacba46 --- /dev/null +++ b/src/main/java/no/uib/inf101/calculator/operations/Multiplication.java @@ -0,0 +1,17 @@ +package no.uib.inf101.calculator.operations; + +public class Multiplication implements Operator { + + public String getSymbol() { + return "*"; + } + + public String getDescription() { + return "Multiplication: \"Calculate the result of multiplying one number by another.\""; + } + + public double calculate(double num1, double num2) { + return num1 * num2; + } + +} diff --git a/src/main/java/no/uib/inf101/calculator/operations/Subtraction.java b/src/main/java/no/uib/inf101/calculator/operations/Subtraction.java new file mode 100644 index 0000000..5aced77 --- /dev/null +++ b/src/main/java/no/uib/inf101/calculator/operations/Subtraction.java @@ -0,0 +1,17 @@ +package no.uib.inf101.calculator.operations; + +public class Subtraction implements Operator { + + public String getSymbol() { + return "-"; + } + + public String getDescription() { + return "Subtraction: \"Find the difference between two numbers by taking one away from the other.\""; + } + public double calculate(double num1, double num2) { + return num1 - num2; + } + + +} diff --git a/src/test/java/no/uib/inf101/calculator/OperatorsTest.java b/src/test/java/no/uib/inf101/calculator/OperatorsTest.java index 3090cf7..152978e 100644 --- a/src/test/java/no/uib/inf101/calculator/OperatorsTest.java +++ b/src/test/java/no/uib/inf101/calculator/OperatorsTest.java @@ -5,9 +5,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; import no.uib.inf101.calculator.operations.Operator; -//import no.uib.inf101.calculator.operations.Subtraction; -//import no.uib.inf101.calculator.operations.Addition; -//import no.uib.inf101.calculator.operations.Multiplication; +import no.uib.inf101.calculator.operations.Subtraction; +import no.uib.inf101.calculator.operations.Addition; +import no.uib.inf101.calculator.operations.Multiplication; public class OperatorsTest { @@ -16,7 +16,7 @@ public class OperatorsTest { double num2 = 5; // ############# ADDITION ############# - /*@Test + @Test public void calculateAdditionTest() { operator = new Addition(); @@ -70,7 +70,7 @@ public class OperatorsTest { String actual = operator.getSymbol(); String expected = "*"; assertEquals(expected, actual); - }*/ + } } -- GitLab From ccf51377a182062e5148a49531a32a856a741bca Mon Sep 17 00:00:00 2001 From: Petter <petterah@outlook.com> Date: Wed, 12 Feb 2025 13:52:13 +0100 Subject: [PATCH 2/2] hei --- .../java/no/uib/inf101/calculator/Calculator.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/no/uib/inf101/calculator/Calculator.java b/src/main/java/no/uib/inf101/calculator/Calculator.java index 631e67a..bf81ecb 100644 --- a/src/main/java/no/uib/inf101/calculator/Calculator.java +++ b/src/main/java/no/uib/inf101/calculator/Calculator.java @@ -71,9 +71,15 @@ public class Calculator { private Map<String, Operator> operators; -public Calculator() { - operators = new HashMap<>(); -} + public Calculator() { + operators = new HashMap<>(); + } + private void addOperators(Operator operator) { + + + } + + -- GitLab