Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/main/java/tdd/setup/Calculator.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ public class Calculator {
public String readScreen() {
return screen;
}

public void pressDigitKey(int digit) {
if(digit > 9 || digit < 0) throw new IllegalArgumentException();

if(latestOperation.isEmpty()) {
//Bug-Fix No 2
if(latestOperation.isEmpty() || !(latestValue == 0.0)) {
screen = screen + digit;
} else {
latestValue = Double.parseDouble(screen);
Expand Down Expand Up @@ -43,6 +45,7 @@ public void pressNegative() {

public void pressEquals() {
var result = switch(latestOperation) {
case "" -> Double.parseDouble(screen); //Bug-Fix No 1
case "+" -> latestValue + Double.parseDouble(screen);
case "-" -> latestValue - Double.parseDouble(screen);
case "x" -> latestValue * Double.parseDouble(screen);
Expand Down
35 changes: 35 additions & 0 deletions src/test/java/tdd/setup/CalculatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,39 @@ void calculatorCanDoTwoPlusTwo() {
calc.pressEquals();
assertEquals("4", calc.readScreen());
}

@Test
@DisplayName("should display result after divide two numbers")
void calculatorCanDoFiveDividedFive()
{
Calculator calc1 = new Calculator();
calc1.pressDigitKey(5);
calc1.pressOperationKey("/");
calc1.pressDigitKey(5);
calc1.pressEquals();
assertEquals("1", calc1.readScreen());
}

@Test
@DisplayName("should display show the same digit after press 'equals'")
void calculatorCanDoSixEquals() {
Calculator calc2 = new Calculator();
calc2.pressDigitKey(6);
calc2.pressEquals();
assertEquals("6", calc2.readScreen());
}

@Test
@DisplayName("should display show the result of multiplying of two digit numbers")
void calculatorCanDoMultiplyTwoTWODIGITNumbers() {
Calculator calc3 = new Calculator();
calc3.pressDigitKey(1);
calc3.pressDigitKey(0);
calc3.pressOperationKey("x");
calc3.pressDigitKey(2);
calc3.pressDigitKey(0);
calc3.pressEquals();
assertEquals("200", calc3.readScreen());
}
//System.out.println(calc3.readScreen()); -> Debugger für die Kommandozeile
}