diff --git a/src/main/java/com/ordestiny/tdd/conditional/Statements.java b/src/main/java/com/ordestiny/tdd/conditional/Statements.java new file mode 100644 index 0000000..c19caca --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/conditional/Statements.java @@ -0,0 +1,63 @@ +package com.ordestiny.tdd.conditional; + +import java.util.Scanner; + +public class Statements { + + /** + * If the number lies between 10 and 99999 + * then the method returns the number of digits + * + * @param number + * @return String + */ + public String ifElseIf(int number) { + if (number < 100 && number >= 10) { + return ("2 digit number"); + } else if (number < 1000 && number >= 100) { + return ("3 digit number"); + } else if (number < 10000 && number >= 1000) { + return ("4 digit number"); + } else if (number < 100000 && number >= 10000) { + return ("5 digit number"); + } else { + return ("Number is not between 10 & 99999"); + } + } + + public String switchStatement(Double number1, char operator, Double number2) { + + /** + * Selects operator using switch + * to perform the operation and get the result + * + * @param number1 + * @param operator + * @param number2 + */ + Double result; + + switch (operator) { + + case '+': + result = number1 + number2; + return (number1 + " + " + number2 + " = " + result); + + case '-': + result = number1 - number2; + return (number1 + " - " + number2 + " = " + result); + + case '*': + result = number1 * number2; + return (number1 + " * " + number2 + " = " + result); + + case '/': + result = number1 / number2; + return (number1 + " / " + number2 + " = " + result); + + default: + return ("Invalid operator!"); + } + + } +} diff --git a/src/test/java/com/ordestiny/tdd/conditional/StatementsTest.java b/src/test/java/com/ordestiny/tdd/conditional/StatementsTest.java new file mode 100644 index 0000000..8b542fd --- /dev/null +++ b/src/test/java/com/ordestiny/tdd/conditional/StatementsTest.java @@ -0,0 +1,31 @@ +package com.ordestiny.tdd.conditional; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class StatementsTest { + private Statements object = new Statements(); + + @Test + public void ifElseIfTest() { + //number between 10 and 99999 whose no. of digits is to be found + assertEquals(object.ifElseIf(20), 2); + assertEquals(object.ifElseIf(100), 3); + assertEquals(object.ifElseIf(165), 3); + assertEquals(object.ifElseIf(9876), 4); + assertEquals(object.ifElseIf(90909), 5); + assertEquals(object.ifElseIf(24567), 5); + } + + @Test + public void switchStatementTest() { + assertEquals(object.switchStatement(10, '+', 20), 30); + assertEquals(object.switchStatement(1234, '-', 891), 343); + assertEquals(object.switchStatement(17, '*', 987), 16779); + assertEquals(object.switchStatement(59865, '/', 5), 11973); + assertEquals(object.switchStatement(1098, '+', 4567), 5665); + assertEquals(object.switchStatement(1150, '*', 2), 2300); + } +}