Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ public static void menuOption1() {
System.out.println("Here are some Scientific Functions. \nSine() \nCosine() \nTangent()");
break;
case "3":
String userInput = Console.getStringInput("Time for some math? \n ( Y / N )");
if(userInput.equalsIgnoreCase("Y")) {
break outerLoop;
}
String userInput = Console.getStringInput("Time for some math? \n ( Y / N )");
if (userInput.equalsIgnoreCase("Y")) {
break outerLoop;
}
break;
default:
Console.println("[ %s ] is not a valid input!", prompt);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,57 @@ public class CalculatorEngine {
private static Double value;

public static Double sum(Double firstNum, Double secondNum) {
value = firstNum + secondNum;
return value;
return firstNum + secondNum;
}

public static Double subtract(Double firstNum, Double secondNum) {
value = firstNum - secondNum;
return value;
return firstNum - secondNum;
}

public static Double divide(Double firstNum, Double secondNum) {
value = firstNum / secondNum;
return value;
return firstNum / secondNum;
}

public static Double multiply(Double firstNum, Double secondNum) {
value = firstNum * secondNum;
return firstNum * secondNum;
}

public static Double squareRoot(Double firstNum){
double s;
double value = firstNum / 2;
do {
s = value;
value = (s +(firstNum / s)) / 2;
}
while ((s - value) != 0);
return value;
}
}

public static Double square(Double firstNum){
return firstNum * firstNum;
}

public static Double squareY(Double firstNum, Double secondNum) {
return Math.pow(firstNum, secondNum);

}

public static Double squareRootY(Double firstNum, Double secondNum){
double xPre = Math.random() % 10;
double eps = 0.001;
double delX = 2147483647;
double xK = 0.00;
double A = firstNum;
double N = secondNum;


while (delX > eps){
xK = ((N - 1.0) * xPre + A / Math.pow(xPre, N - 1)) / N;
delX = Math.abs(xK - xPre);
xPre = xK;
}
double value = Math.round(xK * 1000.00) / 1000.00;
return value;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,19 @@
import org.junit.Assert;
import org.junit.Test;

import static com.sun.tools.doclint.Entity.divide;
import static com.zipcodewilmington.scientificcalculator.CalculatorEngine.*;


public class CalculatorEngineTest {

@Test
public void testSum1() {
// Given
CalculatorEngine calculatorEngine = new CalculatorEngine();
CalculatorEngine CalculatorEngine = new CalculatorEngine();
// When
Double result;
result = calculatorEngine.sum(2.00, 2.00);
result = CalculatorEngine.sum(2.00, 2.00);
// Then
if (result != 4.00) { // if 2 + 2 != 4
Assert.fail();
Expand All @@ -23,10 +25,10 @@ public void testSum1() {
@Test
public void testSum2() {
// Given
CalculatorEngine calculatorEngine = new CalculatorEngine();
CalculatorEngine CalculatorEngine = new CalculatorEngine();
// When
Double result;
result = calculatorEngine.sum(1200.00, 500.00);
result = CalculatorEngine.sum(1200.00, 500.00);
// Then
if (result != 1700.00) { // if 1200 + 500 != 1700
Assert.fail();
Expand Down Expand Up @@ -59,38 +61,72 @@ public void testSubtract2() {

@Test
public void testDivide1() {
CalculatorEngine calculatorEngine = new CalculatorEngine();
Double result;
result = calculatorEngine.divide(6.00, 3.00);
if (result != 2.00); {
}
Double expected = 100.00;
Double firstNum = 1000.00;
Double secondNum = 10.00;
Double actual = CalculatorEngine.divide(firstNum, secondNum);
Assert.assertEquals(expected, actual);
}

@Test
public void testDivide2() {
CalculatorEngine calculatorEngine = new CalculatorEngine();
Double result;
result = calculatorEngine.divide(33.33, 11.11);
if (result != 3.00); {
}
Double expected = 4.00;
Double firstNum = 20.00;
Double secondNum = 5.00;
Double actual = CalculatorEngine.divide(firstNum, secondNum);
Assert.assertEquals(expected, actual);
}

@Test
public void testMultiply1() {
CalculatorEngine calculatorEngine = new CalculatorEngine();
Double result;
result = calculatorEngine.multiply(5.00, 20.00);
if (result != 100.00); {
Double expected = 100.00;
Double firstNum = 20.00;
Double secondNum = 5.00;
Double actual = multiply(firstNum, secondNum);
Assert.assertEquals(expected, actual);
}
}


@Test
public void testMultiply2() {
CalculatorEngine calculatorEngine = new CalculatorEngine();
Double result;
result = calculatorEngine.multiply(7.00, 20.00);
if (result != 140.00); {
}
Double expected = 4.00;
Double firstNum = 2.00;
Double secondNum = 2.0;
Double actual = multiply(firstNum, secondNum);
Assert.assertEquals(expected, actual);
}

@Test
public void testSquareRoot(){
Double expected = 2.00;
Double firstNum = 4.00;
Double actual = squareRoot(firstNum);
Assert.assertEquals(expected, actual);
}

@Test
public void testSquare(){
Double expected = 16.00;
Double firstNum = 4.00;
Double actual = square(firstNum);
Assert.assertEquals(expected, actual);
}
@Test
public void testSquareY(){
Double expected = 7776.00;
Double firstNum = 6.00;
Double secondNumb = 5.00;
Double actual = CalculatorEngine.squareY(firstNum, secondNumb);
Assert.assertEquals(expected, actual);
}

@Test
public void testSquareRootY(){
Double expected = 1.431;
Double firstNum = 6.00;
Double secondNumb = 5.00;
Double actual = CalculatorEngine.squareRootY(firstNum, secondNumb);
Assert.assertEquals(expected, actual);
}
}

Expand Down