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.putRX RX;
registers.putRY RY;
registers.putRM RM;
registers.putRZ RZ;
public String parseInputString input
String tokens input.split;
String command tokenstoLowerCase;
if commandequalsmov
return movCommandtokens;
else if commandequalsadd
addCommand;
return null;
else if commandequalsmul
mulCommand;
return null;
else if commandequalsdiv
divCommand;
return null;
else if commandequalssub
subCommand;
return null;
else if commandequalssho
return shoCommandtokens;
else if commandequalsclr
return clrCommandtokens;
else if commandequalszmm
zmmCommand;
return null;
else if commandequalsmem
return memCommandtokens;
else
return "Error: Invalid command";
private String movCommandString tokens
if tokenslength tokensequals
return "ERROR: Invalid command";
BigDecimal value;
try
value new BigDecimaltokens;
catch NumberFormatException e
return "ERROR: Invalid value";
String register tokenstoUpperCase;
if registerequalsRX register.equalsRY register.equalsRM
registers.putregister value;
return null;
else
return "Error: Invalid register";
private void addCommand
RZ RXaddRY;
private void mulCommand
RZ RXmultiplyRY;
private void divCommand
RZ RXdivideRY RoundingMode.CEILING;
private void subCommand
RZ RXsubtractRY;
private String shoCommandString tokens
if tokenslength
return "Error: Invalid command";
String register tokenstoUpperCase;
if registerscontainsKeyregister
return registers.getregistertoString;
else
return "Error: Invalid register";
private String clrCommandString tokens
if tokenslength
return "Error: Invalid command";
String register tokenstoUpperCase;
if registerscontainsKeyregister
registers.putregister BigDecimal.ZERO;
return null;
else
return "Error: Invalid register";
private String memCommandString tokens
if tokenslength
return "Error: Invalid command";
String register tokenstoUpperCase;
if registerequalsRX register.equalsRY
registers.putregister RM;
return null;
else
return "Error: Invalid register";
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
