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