Ejemplo n.º 1
0
        public ICalculateIbu GetCalculator(IIbuStrategy ibuStrategy)
        {
            ICalculateIbu myCalculator = new IbuCalculation();

            myCalculator.IbuCalculationType = ibuStrategy;
            return(myCalculator);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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!");
     }
 }
Ejemplo n.º 4
0
        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));
            }
        }