diff --git a/.github/workflows/run-app.yaml b/.github/workflows/run-app.yaml index 6ec58bc2..eec8ccf0 100644 --- a/.github/workflows/run-app.yaml +++ b/.github/workflows/run-app.yaml @@ -1,10 +1,17 @@ -name: 'Basic Action' +name: 'Run App Bryant, William' -on: [push] +on: [push, pull_request] jobs: - check-bats-version: + build-and-test: runs-on: ubuntu-latest steps: - - name: Basic Action - run: echo "Hello, World!" \ No newline at end of file + - uses: actions/checkout@v2 + - name: install dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.x' + - name: build + run: dotnet build + - name: run unit tests + run: dotnet test diff --git a/Console/Program.cs b/Console/Program.cs index 9be02228..4f63e12c 100644 --- a/Console/Program.cs +++ b/Console/Program.cs @@ -84,7 +84,7 @@ public static double Divide(string x, string y) // Implement this method following a similar pattern as above public static double Power(string x, string y) { - throw new NotImplementedException(); + return Math.Pow(double.Parse(x), double.Parse(y)); } } diff --git a/Tests/UnitTests.cs b/Tests/UnitTests.cs index 5d5f6f41..a2fe69a3 100644 --- a/Tests/UnitTests.cs +++ b/Tests/UnitTests.cs @@ -9,7 +9,7 @@ public class Math [Test] public void Add_Valid() { - Assert.AreEqual(3, Program.Add("1", "2")); + Assert.AreEqual(1, Program.Add("1", "2")); Assert.AreEqual(5, Program.Add("3", "2")); Assert.AreEqual(12, Program.Add("5", "7")); } @@ -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)); + } } }