diff --git a/Tests/UnitTests.cs b/Tests/UnitTests.cs index 5d5f6f41..793ab7d7 100644 --- a/Tests/UnitTests.cs +++ b/Tests/UnitTests.cs @@ -31,5 +31,102 @@ public void Add_Null() } // Implement 3 tests per operation, following a similar pattern as above + + [Test] + public void Subtract_Valid() + { + Assert.AreEqual(-1, Program.Subtract("1", "2")); + Assert.AreEqual(1, Program.Subtract("3", "2")); + Assert.AreEqual(-2, Program.Subtract("5", "7")); + } + + [Test] + public void Subtract_Invalid() + { + Assert.Throws(() => Program.Subtract("1", "a")); + Assert.Throws(() => Program.Subtract("a", "1")); + Assert.Throws(() => Program.Subtract("a", "a")); + } + + [Test] + public void Subtract_Null() + { + Assert.Throws(() => Program.Subtract("1", null)); + Assert.Throws(() => Program.Subtract(null, "1")); + Assert.Throws(() => Program.Subtract(null, null)); + } + + [Test] + public void Multiply_Valid() + { + Assert.AreEqual(2, Program.Multiply("1", "2")); + Assert.AreEqual(6, Program.Multiply("3", "2")); + Assert.AreEqual(35, Program.Multiply("5", "7")); + } + + [Test] + public void Multiply_Invalid() + { + Assert.Throws(() => Program.Multiply("1", "a")); + Assert.Throws(() => Program.Multiply("a", "1")); + Assert.Throws(() => Program.Multiply("a", "a")); + } + + [Test] + public void Multiply_Null() + { + Assert.Throws(() => Program.Multiply("1", null)); + Assert.Throws(() => Program.Multiply(null, "1")); + Assert.Throws(() => Program.Multiply(null, null)); + } + + [Test] + public void Divide_Valid() + { + Assert.AreEqual(2, Program.Divide("2", "1")); + Assert.AreEqual(1.5, Program.Divide("3", "2"), 0.001); + Assert.AreEqual(2.5, Program.Divide("17.5", "7"), 0.001); + } + + [Test] + public void Divide_Invalid() + { + Assert.Throws(() => Program.Divide("1", "a")); + Assert.Throws(() => Program.Divide("a", "1")); + Assert.Throws(() => Program.Divide("a", "a")); + } + + [Test] + public void Divide_Null() + { + Assert.Throws(() => Program.Divide("1", null)); + Assert.Throws(() => Program.Divide(null, "1")); + Assert.Throws(() => Program.Divide(null, null)); + } + + + [Test] + public void Power_Valid() + { + Assert.AreEqual(2, Program.Power("2", "1")); + Assert.AreEqual(9, Program.Power("3", "2")); + Assert.AreEqual(64, Program.Power("4", "3")); + } + + [Test] + public void Power_Invalid() + { + Assert.Throws(() => Program.Power("1", "a")); + Assert.Throws(() => Program.Power("a", "1")); + Assert.Throws(() => Program.Power("a", "a")); + } + + [Test] + public void Power_Null() + { + Assert.Throws(() => Program.Power("1", null)); + Assert.Throws(() => Program.Power(null, "1")); + Assert.Throws(() => Program.Power(null, null)); + } } }