public void CalculateBoilOff_Passes()
        {
            ICalculateBoilOffFactory calculatorFactory = new CalculateBoilOffFactory();
            ICalculateBoilOff        calculator        = calculatorFactory.GetCalculator(new BoilOffStrategy());

            calculator.BoilTimeInMinutes        = 60;
            calculator.StartingVolumeInGallons  = 5;
            calculator.EvaporationRateInPercent = 4;
            var boiledOffVolumeInGalls = calculator.Calculate();

            Assert.AreEqual(0.2, boiledOffVolumeInGalls);
        }
Exemplo n.º 2
0
        public void CalculateVolumeShrinkageFromCooling_Passes()
        {
            ICalculateBoilOffFactory boilCalculatorFactory = new CalculateBoilOffFactory();
            ICalculateBoilOff        boilCalculator        = boilCalculatorFactory.GetCalculator(new BoilOffStrategy());

            boilCalculator.BoilTimeInMinutes        = 60;
            boilCalculator.StartingVolumeInGallons  = 5;
            boilCalculator.EvaporationRateInPercent = 4;
            var boiledOffVolumeInGalls = boilCalculator.Calculate();

            Assert.AreEqual(0.2, boiledOffVolumeInGalls);

            ICalculateVolumeShrinkageFromCoolingFactory calculatorFactory = new CalculateVolumeShrinkageFromCoolingFactory();
            ICalculateVolumeShrinkageFromCooling        calculator        = calculatorFactory.GetCalculator(new VolumeShrinkageFromCoolingStrategy());

            calculator.VolumeAfterBoilOff      = 5 - boiledOffVolumeInGalls;
            calculator.StartingVolumeInGallons = 5;
            calculator.CoolingLossInPercent    = 4;
            var shrinkageFromCoolingInGals = calculator.Calculate();

            Assert.AreEqual(0.192, shrinkageFromCoolingInGals);
        }
Exemplo n.º 3
0
 public double CalculateBoilOff(ICalculateBoilOff boiloffDetails)
 {
     return((boiloffDetails.StartingVolumeInGallons * (boiloffDetails.EvaporationRateInPercent / 100)) * (boiloffDetails.BoilTimeInMinutes / 60));
 }