-
Code interface Calculator { static int calculate(int a, int b, char operation) { int result = 0; switch(operation) { case '+': result = a + b; break; case '-': result = a - b; break; case '*': result = a * b; break; default: System.exit(0); break; } return result; } }
Test Cases import static java.util.concurrent.ThreadLocalRandom.current; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; class CalculatorTest { void sample() { assertEquals(9, Calculator.calculate(4, 5, '+')); assertEquals(7, Calculator.calculate(12, 5, '-')); assertEquals(60, Calculator.calculate(20, 3, '*')); } void random() { for (int i = 0; i < 100; i++) { var pair = current().ints(2, -1000, 1000).toArray(); assertEquals(pair[0] + pair[1], Calculator.calculate(pair[0], pair[1], '+')); assertEquals(pair[0] - pair[1], Calculator.calculate(pair[0], pair[1], '-')); assertEquals(pair[0] * pair[1], Calculator.calculate(pair[0], pair[1], '*')); } } }
Output:
-
Code import javax.script.ScriptEngineManager;- interface Calculator {
- static int calculate(int a, int b, char operation) {
var engine = new ScriptEngineManager().getEngineByName("JavaScript");try {return Integer.parseInt(String.valueOf(engine.eval(a + " " + operation + " " + b)));} catch (Exception cause) {return 0;- int result = 0;
- switch(operation) {
- case '+':
- result = a + b; break;
- case '-':
- result = a - b; break;
- case '*':
- result = a * b; break;
- default:
- System.exit(0); break;
- }
- return result;
- }
- }
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}