Question: How would you create a test program for the following Java code? ` ` ` import java.math.BigDecimal; import java.math.RoundingMode; import java.util.HashMap; public class Calculator {

How would you create a test program for the following Java code? ```
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
public class Calculator {
private BigDecimal RX;
private BigDecimal RY;
private BigDecimal RM;
private BigDecimal RZ;
private HashMap registers;
public Calculator(){
RX = BigDecimal.ZERO;
RY = BigDecimal.ZERO;
RM = BigDecimal.ZERO;
RZ = BigDecimal.ZERO;
registers = new HashMap>();
registers.put("RX", RX);
registers.put("RY", RY);
registers.put("RM", RM);
registers.put("RZ", RZ);
}
public String parseInput(String input){
String[] tokens = input.split("");
String command = tokens[0].toLowerCase();
if (command.equals("mov")){
return movCommand(tokens);
} else if (command.equals("add")){
addCommand();
return null;
} else if (command.equals("mul")){
mulCommand();
return null;
} else if (command.equals("div")){
divCommand();
return null;
} else if (command.equals("sub")){
subCommand();
return null;
} else if (command.equals("sho")){
return shoCommand(tokens);
} else if (command.equals("clr")){
return clrCommand(tokens);
} else if (command.equals("zmm")){
zmmCommand();
return null;
} else if (command.equals("mem")){
return memCommand(tokens);
} else {
return "Error: Invalid command";
}
}
``````
private String movCommand(String[] tokens){
if (tokens.length !=4||!tokens[2].equals(",")){
return "ERROR: Invalid command";
}
BigDecimal value;
try {
value = new BigDecimal(tokens[1]);
} catch (NumberFormatException e){
return "ERROR: Invalid value";
}
String register = tokens[3].toUpperCase();
if (register.equals("RX")|| register.equals("RY")|| register.equals("RM")){
registers.put(register, value);
return null;
} else {
return "Error: Invalid register";
}
}
private void addCommand(){
RZ = RX.add(RY);
}
private void mulCommand(){
RZ = RX.multiply(RY);
}
private void divCommand(){
RZ = RX.divide(RY,20, RoundingMode.CEILING);
}
private void subCommand(){
RZ = RX.subtract(RY);|
}
private String shoCommand(String[] tokens){
if (tokens.length !=2){
return "Error: Invalid command";
}
String register = tokens[1].toUpperCase();
if (registers.containsKey(register)){
return registers.get(register).toString();
} else {
return "Error: Invalid register";
}
}
private String clrCommand(String[] tokens){
if (tokens.length !=2){
return "Error: Invalid command";
}
String register = tokens[1].toUpperCase();
if (registers.containsKey(register)){
registers.put(register, BigDecimal.ZERO);
return null;
} else {
return "Error: Invalid register";
}
}
``````
private String memCommand(String[] tokens){
if (tokens.length !=2){
return "Error: Invalid command";
}
String register = tokens[1].toUpperCase();
if (register.equals("RX")|| register.equals("RY")){
registers.put(register, RM);
return null;
} else {
return "Error: Invalid register";
}
}
}
```
How would you create a test program for the

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!