public static void Main()
var x = new NUnitLite.AutoRun().Execute(new string[]{"--test:LS.CalculatorTests", "--noc"});
Console.WriteLine("----------------------------------------------");
Console.WriteLine(x==0?"All Test Passed... :¬)": string.Format("{0} tests failed... :¬(", x));
Console.WriteLine("----------------------------------------------");
public decimal Divide(decimal dividend, decimal divisor)
return Math.Abs(dividend / divisor);
catch (DivideByZeroException)
public class CalculatorTests
[TestCase(6, 3, 2, Description = "6 / 3 = 2")]
[TestCase(9, 2, 4.5, Description = "9 / 2 = 4.5")]
public void Divide_ReturnsExpectedQuotient_WhenDividingInputs(decimal dividend, decimal divisor, decimal expectedQuotient)
var actualQuotient = c.Divide(dividend, divisor);
Assert.AreEqual(expectedQuotient, actualQuotient);
[TestCase(-10, 5, 2, Description = "-10 / 5 = 2")]
[TestCase(10, -5, 2, Description = "10 / -5 = 2")]
[TestCase(-10, -5, 2, Description = "-10 / -5 = 2")]
public void Divide_ReturnsPositiveQuotient_WhenInput(decimal dividend, decimal divisor, decimal expectedQuotient)
var actualQuotient = c.Divide(dividend, divisor);
Assert.GreaterOrEqual(actualQuotient, 0);
[TestCase(5, Description = "5 / 0 = 0")]
[TestCase(0, Description = "0 / 0 = 0")]
[TestCase(-5, Description = "-5 / 0 = 0")]
public void Divide_ReturnsZero_WhenDivisorIsZero(decimal input)
var actualQuotient = c.Divide(input, 0);
Assert.AreEqual(0, actualQuotient);