public double CalculateAlcohol(ICalculateAlcohol alcoholDetails) { if (alcoholDetails.EndingGravity == 0) { throw new ArgumentOutOfRangeException("EndingGravity", 0, "0 is not a valid value for EndingGravity"); } return((((((double)1.05 * (alcoholDetails.StartingGravity - alcoholDetails.EndingGravity)) / alcoholDetails.EndingGravity) / (double)0.79) * 100) * (double)0.79336); }
public void ABWCalculation_Passes() { { ICalculateAlcoholFactory calculatorFactory = new CalculateAlcoholFactory(); ICalculateAlcohol calculator = calculatorFactory.GetCalculator(new AlcoholByWeightStrategy()); calculator.StartingGravity = 1.05; calculator.EndingGravity = 1.01; var abwAlcohol = calculator.Calculate(); Assert.AreEqual(4.1761022684546969, abwAlcohol); } }
public void ABVCalculation_Passes() { ICalculateAlcoholFactory calculatorFactory = new CalculateAlcoholFactory(); ICalculateAlcohol calculator = calculatorFactory.GetCalculator(new AlcoholByVolumeStrategy()); calculator.StartingGravity = 1.05; calculator.EndingGravity = 1.01; var abvAlcohol = calculator.Calculate(); Assert.AreEqual(5.26381752099261, abvAlcohol); }
public void AlcoholCalculationTestMethod_Fails_BadArgument() { try { ICalculateAlcoholFactory calculatorFactory = new CalculateAlcoholFactory(); ICalculateAlcohol calculator = calculatorFactory.GetCalculator(null); calculator.StartingGravity = 1.05; calculator.EndingGravity = 1.01; var alcoholCalculator = calculator.Calculate(); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(ArgumentOutOfRangeException)); } }