Skip to content
Snippets Groups Projects
Commit 710cdc2d authored by yasinhessnawi's avatar yasinhessnawi
Browse files

added multiplication, division. made tests to them and refactored the result to double. Exercise 8

parent 22c8fc9a
No related branches found
No related tags found
No related merge requests found
......@@ -21,11 +21,11 @@ public class CalculatorResource {
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public int calculate(String expression){
public double calculate(String expression){
// Removes all whitespaces
String expressionTrimmed = expression.replaceAll("\\s+","");
int result = -1;
double result = -1;
/*
* .matches use regex expression to decide if a String matches a given pattern.
......@@ -37,8 +37,15 @@ public class CalculatorResource {
* 1+2,
* 10000+1000
*/
if(expressionTrimmed.matches("[0-9]+[+][0-9]+")) result = sum(expressionTrimmed);
else if(expressionTrimmed.matches("[0-9]+[-][0-9]+")) result = subtraction(expressionTrimmed);
if(expressionTrimmed.matches("[0-9]+[+][0-9]+[.]+")) {
result = sum(expressionTrimmed);
} else if(expressionTrimmed.matches("[0-9]+[-][0-9]+[.]+")) {
result = subtraction(expressionTrimmed);
} else if(expressionTrimmed.matches("[0-9]+[*][0-9]+[.]+")) {
result = multiplication(expressionTrimmed);
} else if(expressionTrimmed.matches("[0-9]+[/][0-9]+[.]+")) {
result = division(expressionTrimmed);
}
return result;
}
......@@ -48,11 +55,11 @@ public class CalculatorResource {
* @param expression the equation to be calculated as a String
* @return the answer as an int
*/
public int sum(String expression){
public double sum(String expression){
String[] split = expression.split("[+]");
int number1 = Integer.parseInt(split[0]);
int number2 = Integer.parseInt(split[1]);
double number1 = Double.parseDouble(split[0]);
double number2 = Double.parseDouble(split[1]);
return number1 + number2;
}
......@@ -62,12 +69,38 @@ public class CalculatorResource {
* @param expression the expression to be calculated as a String
* @return the answer as an int
*/
public int subtraction(String expression){
public double subtraction(String expression){
String[] split = expression.split("[-]");
int number1 = Integer.parseInt(split[0]);
int number2 = Integer.parseInt(split[1]);
double number1 = Double.parseDouble(split[0]);
double number2 = Double.parseDouble(split[1]);
return number1 - number2;
}
/**
* Method used to calculate a product expression.
* @param expression the expression to be calculated as a String
* @return the answer as an int
*/
public double multiplication(String expression){
String[] split = expression.split("[*]");
double number1 = Double.parseDouble(split[0]);
double number2 = Double.parseDouble(split[1]);
return number1 * number2;
}
/**
* Method used to calculate a quotient expression.
* @param expression the expression to be calculated as a String
* @return the answer as an int
*/
public double division(String expression){
String[] split = expression.split("[/]");
double number1 = Double.parseDouble(split[0]);
double number2 = Double.parseDouble(split[1]);
return number1 / number2;
}
}
......@@ -38,4 +38,24 @@ public class CalculatorResourceTest{
expression = "20-2";
assertEquals(18, calculatorResource.subtraction(expression));
}
@Test
public void testMultiplication(){
CalculatorResource calculatorResource = new CalculatorResource();
String expression = "999*100";
assertEquals(99900, calculatorResource.multiplication(expression));
expression = "9.9*2";
assertEquals(19.8, calculatorResource.multiplication(expression));
}
@Test
public void testDivision(){
CalculatorResource calculatorResource = new CalculatorResource();
String expression = "999/100";
assertEquals(9.99, calculatorResource.division(expression));
expression = "9.9/2";
assertEquals(4.95, calculatorResource.division(expression));
}
}
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment