public double CalculateAttenuation(ICalculateAttenuation attenuationDetails) { if (attenuationDetails.StartingGravity == 1) { throw new ArgumentOutOfRangeException("StartingGravity", 1, "1 is not a valid value for StartingGravity"); } return((double)0.1808 * attenuationDetails.StartingGravity + (double)0.8192 * (100 * ((attenuationDetails.StartingGravity - attenuationDetails.EndingGravity) / (attenuationDetails.StartingGravity - 1)))); }
public void ApparentAttenuationTestMethod_Passes() { ICalculateAttenuationFactory calculatorFactory = new CalculateAttenuationFactory(); ICalculateAttenuation calculator = calculatorFactory.GetCalculator(new ApparentAttenuationStrategy()); calculator.StartingGravity = 1.05; calculator.EndingGravity = 1.01; var apparentAttenuation = calculator.Calculate(); Assert.AreEqual(80, apparentAttenuation); }
public void RealAttenuationTestMethod_Passes() { ICalculateAttenuationFactory calculatorFactory = new CalculateAttenuationFactory(); ICalculateAttenuation calculator = calculatorFactory.GetCalculator(new RealAttenuationStrategy()); calculator.StartingGravity = 1.05; calculator.EndingGravity = 1.01; var realAttenuation = calculator.Calculate(); Assert.AreEqual(65.72584, realAttenuation); }