Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
language: csharp
solution: TravisCI.sln
branches:
only:
- master
install:
- nuget restore TravisCI.sln
script:
- msbuild /p:Configuration=Release TravisCI.sln
- mono ./packages/NUnit.ConsoleRunner.*/tools/nunit3-console.exe ./Tests/bin/Release/Tests.dll
2 changes: 1 addition & 1 deletion Console/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
}

Expand Down
95 changes: 95 additions & 0 deletions Tests/UnitTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,100 @@ public void Add_Null()
}

// Implement 3 tests per operation, following a similar pattern as above
[Test]
public void Subtract_ValidZach()
{
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_InvalidZach()
{
Assert.Throws<FormatException>(() => Program.Subtract("1", "a"));
Assert.Throws<FormatException>(() => Program.Subtract("a", "1"));
Assert.Throws<FormatException>(() => Program.Subtract("a", "a"));
}

[Test]
public void Subtract_NullZach()
{
Assert.Throws<ArgumentNullException>(() => Program.Subtract("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Subtract(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Subtract(null, null));
}

[Test]
public void Multiply_ValidZach()
{
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_InvalidZach()
{
Assert.Throws<FormatException>(() => Program.Multiply("1", "a"));
Assert.Throws<FormatException>(() => Program.Multiply("a", "1"));
Assert.Throws<FormatException>(() => Program.Multiply("a", "a"));
}

[Test]
public void Multiply_NullZach()
{
Assert.Throws<ArgumentNullException>(() => Program.Multiply("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Multiply(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Multiply(null, null));
}

[Test]
public void Divide_ValidZach()
{
Assert.AreEqual(2, Program.Divide("2", "1"));
Assert.AreEqual(1.5, Program.Divide("3", "2"));
Assert.AreEqual(1, Program.Divide("5", "5"));
}

[Test]
public void Divide_InvalidZach()
{
Assert.Throws<FormatException>(() => Program.Divide("1", "a"));
Assert.Throws<FormatException>(() => Program.Divide("a", "1"));
Assert.Throws<FormatException>(() => Program.Divide("a", "a"));
}

[Test]
public void Divide_NullZach()
{
Assert.Throws<ArgumentNullException>(() => Program.Divide("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Divide(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Divide(null, null));
}

[Test]
public void Power_ValidZach()
{
Assert.AreEqual(1, Program.Power("1", "2"));
Assert.AreEqual(9, Program.Power("3", "2"));
Assert.AreEqual(78125, Program.Power("5", "7"));
}

[Test]
public void Power_InvalidZach()
{
Assert.Throws<FormatException>(() => Program.Power("1", "a"));
Assert.Throws<FormatException>(() => Program.Power("a", "1"));
Assert.Throws<FormatException>(() => Program.Power("a", "a"));
}

[Test]
public void Power_NullZach()
{
Assert.Throws<ArgumentNullException>(() => Program.Power("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Power(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Power(null, null));
}
}
}