public ICalculateIbu GetCalculator(IIbuStrategy ibuStrategy) { ICalculateIbu myCalculator = new IbuCalculation(); myCalculator.IbuCalculationType = ibuStrategy; return(myCalculator); }
public double CalculateIbus(IbuCalculation ibuDetails) { double gravityAdjustment = 0; if (ibuDetails.BatchOriginalGravity > 1.050) { gravityAdjustment = ibuDetails.BatchOriginalGravity - 1.050 / 0.2; } var utilization = 18.11 + (13.86 * Math.Tanh((ibuDetails.BoilTimeInMinutes - 31.32) / 18.27)); var ibus = (ibuDetails.HopeQuantityInOunces * utilization / 100 * ibuDetails.AlphaAcids / 100 * 7462) / (ibuDetails.BatchVolumeInGallons * (1 + gravityAdjustment)); return(ibus); }
public double CalculateIbus(IbuCalculation ibuDetails) { if (ibuDetails.BatchVolumeInGallons > 0 && ibuDetails.AlphaAcids > 0 && ibuDetails.HopeQuantityInOunces > 0) { var milligramsLiterOfAA = (ibuDetails.AlphaAcids / 100 * ibuDetails.HopeQuantityInOunces * 7490) / ibuDetails.BatchVolumeInGallons; var bignessFactor = 1.65 * System.Math.Pow(0.000125, (ibuDetails.BatchOriginalGravity - 1)); var boilTimeFactor = (1 - System.Math.Pow(2.71828, (-0.04 * ibuDetails.BoilTimeInMinutes))) / 4.15; var utilization = ibuDetails.BatchOriginalGravity * boilTimeFactor; var ibus = utilization * milligramsLiterOfAA; return(ibus); } else { throw new ArgumentOutOfRangeException("BatchVolumeInGallons", "Batch Volume, Alpha Acids And Hop Quantity Must All Be Greater Than Zero!"); } }
public void Interpret_OriginalGravity_To_Brix_Wrong_Type_Causes_Exception() { ICalculateIbu calculator = new IbuCalculation.IbuCalculation(); calculator.AlphaAcids = 10; calculator.BatchOriginalGravity = 1.05; calculator.BatchVolumeInGallons = 5; calculator.BoilTimeInMinutes = 60; calculator.BoilVolumeInGallons = 6; calculator.HopeQuantityInOunces = 1; OriginalGravityToBrixCalculatedTypeInterpretor interpretor = new OriginalGravityToBrixCalculatedTypeInterpretor(); try { var brixValue = interpretor.Interpret((calculator as Calculator)); } catch (Exception exception) { Assert.IsInstanceOfType(exception, typeof(InvalidOperationException)); } }