From 14bc21b87ff3d1daff1648e30ffa4ccaebabb5d1 Mon Sep 17 00:00:00 2001 From: mahboobe <mahboobe.shakerinadr@ucalgary.ca> Date: Fri, 11 Oct 2024 13:49:58 -0600 Subject: [PATCH] calculator class test added --- test/CalculatorTest.java | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 test/CalculatorTest.java diff --git a/test/CalculatorTest.java b/test/CalculatorTest.java new file mode 100644 index 0000000..6645673 --- /dev/null +++ b/test/CalculatorTest.java @@ -0,0 +1,67 @@ +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class CalculatorTest { + + private Calculator calculator; + @BeforeEach + public void setUp() { + calculator = new Calculator(); + } + + @Test + void addTest() { + assertEquals(3, calculator.add(1, 2)); + assertNotEquals(4, calculator.add(2, 3)); + assertEquals(0, calculator.add(-2, 2), "adding -2 and 2 should be 0"); + assertEquals(-7, calculator.add(-5, -2), "adding tow negetive number of -5 and -2 equals to -7 "); + assertEquals(calculator.add(3,2), calculator.add(2,3)); + } + + @Test + void subtract() { + assertEquals(-1, calculator.subtract(1, 2)); + assertEquals(1, calculator.subtract(2, 1)); + assertEquals(0, calculator.subtract(5, 5), "subtracting 5 from 5 should return 0"); + + } + + @Test + void multiply() { + assertEquals(0, calculator.multiply(0, 2), "multiplying with 0 should return 0"); + assertEquals(5, calculator.multiply(1, 5), "multiplying with 1 should return the number"); + assertEquals(-8, calculator.multiply(-4, 2), "multiplying with negative number should return negative number"); + assertEquals(6, calculator.multiply(-3, -2), "multiplying two negative number should be positive"); + + } + + @Test + void testDivideWithzero() { + + assertThrows(IllegalArgumentException.class, () -> {calculator.divide(7,0);}); + + } + + @Test + void testDivide() { + assertEquals(0, calculator.divide(0, 2), "dividing by 0 should return 0"); + assertEquals(1, calculator.divide(5, 5), "dividing by number itself should return 1"); + assertEquals(-2, calculator.divide(-2, 1), "dividing by 1 should return number itself"); + } + + @Test + void testAddWithMaxValue() { + assertEquals(Integer.MAX_VALUE, calculator.add(Integer.MAX_VALUE, 0), "Adding 0 to Integer.MAX_VALUE should return Integer.MAX_VALUE"); + assertEquals(Integer.MAX_VALUE, calculator.add(Integer.MAX_VALUE, 1), "Adding 1 to Integer.MAX_VALUE should return Integer.MAX_VALUE"); + + } + @Test void testAddWithMaxValueException() { + Exception exception = assertThrows(ArithmeticException.class, () -> { + calculator.add(Integer.MAX_VALUE, Integer.MAX_VALUE); + }); + assertTrue(exception.getMessage().contains("integer overflow")); + } + +} \ No newline at end of file -- GitLab