Skip to content
Snippets Groups Projects
Commit b4c45dab authored by Hallvard Trætteberg's avatar Hallvard Trætteberg
Browse files

Some fixes, create initial test class

parent 324dc23c
No related branches found
No related tags found
No related merge requests found
......@@ -13,8 +13,6 @@ import java.io.IOException;
*/
public class App extends Application {
private static Scene scene;
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(this.getClass().getResource("App.fxml"));
......
......@@ -2,6 +2,8 @@ package app;
import java.util.List;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
import java.util.function.UnaryOperator;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
......@@ -91,27 +93,37 @@ public class AppController {
void handlePoint() {
var operandString = getOperandString();
if (operandString.contains(".")) {
setOperand(operandString.substring(operandString.indexOf(".") + 1));
setOperand(operandString.substring(0, operandString.indexOf(".") + 1));
} else {
appendToOperand(".");
}
}
private void performOperation(boolean swap, BinaryOperator<Double> op) {
@FXML
void handleClear() {
clearOperand();
}
private void withOperand(Runnable proc) {
if (hasOperand()) {
calc.pushOperand(getOperand());
clearOperand();
}
proc.run();
updateOperandsView();
}
private void performOperation(UnaryOperator<Double> op) {
withOperand(() -> calc.performOperation(op));
}
private void performOperation(boolean swap, BinaryOperator<Double> op) {
withOperand(() -> {
if (swap) {
calc.swap();
}
calc.performOperation(op);
updateOperandsView();
}
@FXML
void handlePi() {
setOperand(Math.PI);
});
}
@FXML
......@@ -133,4 +145,18 @@ public class AppController {
void handleOpDiv() {
performOperation(true, (op1, op2) -> op1 / op2);
}
@FXML
void handleOpSquareRoot() {
performOperation(op1 -> Math.sqrt(op1));
}
@FXML
void handlePi() {
withOperand(() -> calc.pushOperand(Math.PI));
}
public static void main(String[] args) {
System.out.println("\u221A");
}
}
......@@ -38,7 +38,7 @@
GridPane.rowIndex="5" GridPane.columnIndex="0"/>
<Button text="." onAction="#handlePoint"
GridPane.rowIndex="5" GridPane.columnIndex="1"/>
<Button text="π" onAction="#handlePi"
<Button text="C" onAction="#handleClear"
GridPane.rowIndex="5" GridPane.columnIndex="2"/>
<Button text="+" onAction="#handleOpAdd"
......@@ -49,4 +49,8 @@
GridPane.rowIndex="6" GridPane.columnIndex="2"/>
<Button text="/" onAction="#handleOpDiv"
GridPane.rowIndex="6" GridPane.columnIndex="3"/>
<Button text="√" onAction="#handleOpSquareRoot"
GridPane.rowIndex="7" GridPane.columnIndex="0"/>
<Button text="π" onAction="#handlePi"
GridPane.rowIndex="7" GridPane.columnIndex="1"/>
</GridPane>
package app;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
import org.testfx.framework.junit5.ApplicationTest;
/**
* TestFX App test
*/
public class AppTest extends ApplicationTest {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(this.getClass().getResource("App.fxml"));
Parent parent = fxmlLoader.load();
stage.setScene(new Scene(parent));
stage.show();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment