Пример #1
0
        public void AvailabilityWithNoProductionStops()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(5, 30, 0), new ProductionStopRegistration[] {}));

            Assert.AreEqual<double>(1.0, calculator.Availability);
            Assert.AreEqual<TimeSpan>(new TimeSpan(5, 30, 0), calculator.Duration);
        }
Пример #2
0
        public void AllFailed()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(100, 100));

            Assert.AreEqual<double>(0, calculator.Quality);
            Assert.AreEqual<TimeSpan>(new TimeSpan(0, 0, 0), calculator.Duration);
        }
Пример #3
0
        internal void IncreaseDynamicStatValue(EntityStatKind sk, EntityStat percIncrease, bool useCurrentValue = true)
        {
            var inc = FactorCalculator.CalcPercentageValue(Stats[sk].GetValueToCalcPercentage(useCurrentValue), percIncrease.Factor);

            //if (inc < 1)
            //  inc = 1;
            ChangeStatDynamicValue(sk, inc);
        }
Пример #4
0
        public float SumPercentageFactorAndValue(float value)
        {
            if (Unit != EntityStatUnit.Percentage)
            {
                throw new Exception("Unit != EntityStatUnit.Percentage " + this);
            }

            //float val = GetValueToCalcPercentage(useCurrentValue);
            return(FactorCalculator.AddFactor(value, this.Factor));
        }
Пример #5
0
        public float SumValueAndPercentageFactor(float factorPercentage, bool useCurrentValue)
        {
            if (Unit != EntityStatUnit.Absolute)
            {
                throw new Exception("Unit != EntityStatUnit.Absolute " + this);
            }

            float val = GetValueToCalcPercentage(useCurrentValue);

            return(FactorCalculator.AddFactor(val, factorPercentage));
        }
Пример #6
0
        public void AvailabilityWithMultiplePlannedAndUnplannedProductionStop()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(10, 0, 0), new ProductionStopRegistration[]
            {
                new ProductionStopRegistration(new ProductionStop("Test 1"), new TimeSpan(0, 40, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 2", true), new TimeSpan(0, 55, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 3", false), new TimeSpan(1, 0, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 4", true), new TimeSpan(0, 45, 0))
            }));

            Assert.AreEqual<double>(0.8, calculator.Availability);
            Assert.AreEqual<TimeSpan>(new TimeSpan(10, 0, 0), calculator.Duration);
        }
Пример #7
0
        protected static float CalcFightItemFactor(int level)
        {
            var fac = FactorCalculator.CalcFromLevel2(level + 1, 4) * 2.3f;

            return(fac);
        }
Пример #8
0
        public void AvailabilityWithProductionStopsTakingAllTheTime()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(10, 0, 0), new ProductionStopRegistration[]
            {
                new ProductionStopRegistration(new ProductionStop("Test 1"), new TimeSpan(4, 30, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 2", false), new TimeSpan(1, 0, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 3", false), new TimeSpan(0, 30, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 4", false), new TimeSpan(4, 0, 0))
            }));

            Assert.AreEqual<double>(0, calculator.Availability);
            Assert.AreEqual<TimeSpan>(new TimeSpan(10, 0, 0), calculator.Duration);
        }
Пример #9
0
        public void PerformanceWithSomeProducedAndAllStops()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(5, 30, 0), new ProductionStopRegistration[]
            {
                new ProductionStopRegistration(new ProductionStop("Test 1"), new TimeSpan(1, 25, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 2", true), new TimeSpan(1, 25, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 3", false), new TimeSpan(1, 20, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 4", true), new TimeSpan(1, 20, 0))
            }, 10, 10));

            Assert.AreEqual<double>(0, calculator.Performance);
            Assert.AreEqual<TimeSpan>(new TimeSpan(5, 30, 0), calculator.Duration);
        }
Пример #10
0
        public void PerformanceWithFullRateAndNoStops()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(5, 30, 0), new ProductionStopRegistration[] { }, 3300, 10));

            Assert.AreEqual<double>(1.0, calculator.Performance);
            Assert.AreEqual<TimeSpan>(new TimeSpan(5, 30, 0), calculator.Duration);
        }
Пример #11
0
        public void OrdinaryQuaility()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(100, 25));

            Assert.AreEqual<double>(0.75, calculator.Quality);
            Assert.AreEqual<TimeSpan>(new TimeSpan(0, 0, 0), calculator.Duration);
        }
Пример #12
0
        public void ComputeWeightedAverageOverFactorCalculators()
        {
            FactorCalculator calculator1 = new FactorCalculator(new LocalProduction(new TimeSpan(5, 0, 0), new ProductionStopRegistration[] { }));
            FactorCalculator calculator2 = new FactorCalculator(new LocalProduction(new TimeSpan(5, 0, 0), new ProductionStopRegistration[] { }));
            FactorCalculator calculator3 = new FactorCalculator(new LocalProduction(new TimeSpan(5, 0, 0), new ProductionStopRegistration[] { }));
            FactorCalculator calculator4 = new FactorCalculator(new LocalProduction(new TimeSpan(5, 0, 0), new ProductionStopRegistration[] { }));
            FactorCalculator calculator5 = new FactorCalculator(new LocalProduction(new TimeSpan(10, 0, 0), new ProductionStopRegistration[]
            {
                new ProductionStopRegistration(new ProductionStop("Test 1"), new TimeSpan(4, 30, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 2", false), new TimeSpan(1, 0, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 3", false), new TimeSpan(0, 30, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 4", false), new TimeSpan(4, 0, 0))
            }));

            List<FactorCalculator> calculators = new List<FactorCalculator>(new []{ calculator1, calculator2, calculator3, calculator4});

            Assert.AreEqual<double>(1,
                                    FactorCalculator.ComputedWeightedAverage(calculators,
                                                                             p => p.Availability));

            calculators.Add(calculator5);
            Assert.AreEqual<double>(2.0/3.0,
                                    FactorCalculator.ComputedWeightedAverage(calculators,
                                                                             p => p.Availability));
        }
Пример #13
0
        public void AvailabilityWithSingleProductionStop()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(5, 0, 0), new ProductionStopRegistration[]
            {
                new ProductionStopRegistration(new ProductionStop("Test"), new TimeSpan(1, 0, 0))
            }));

            Assert.AreEqual<double>(0.8, calculator.Availability);
            Assert.AreEqual<TimeSpan>(new TimeSpan(5, 0, 0), calculator.Duration);
        }
Пример #14
0
 private void DisplayFactors(FactorCalculator calculator1, FactorCalculator calculator2)
 {
     lblAvailabilityValue.Text = string.Format("{0} / {1}", Format(calculator1.Availability), Format(calculator2.Availability));
     lblPerformanceValue.Text = string.Format("{0} / {1}", Format(calculator1.Performance), Format(calculator2.Performance));
     lblQualityValue.Text = string.Format("{0} / {1}", Format(calculator1.Quality), Format(calculator2.Quality));
     lblOEEValue.Text = string.Format("{0} / {1}", Format(calculator1.OEE), Format(calculator2.OEE));
 }
Пример #15
0
 private float GetLevelValue(int level)
 {
     return(level == 0 ? 0 : FactorCalculator.CalcFromLevel2(level + 1) + 1);
 }
Пример #16
0
 public void Setup()
 {
     _calculator = new FactorCalculator();
 }
Пример #17
0
 public static int CalcHealthFromLevel(int lvl)
 {
     return(FactorCalculator.CalcFromLevel(lvl, baseHealth));
 }
Пример #18
0
        public void PerformanceWithFullRateAndSomeStops()
        {
            FactorCalculator calculator = new FactorCalculator(new LocalProduction(new TimeSpan(5, 30, 0), new ProductionStopRegistration[]
            {
                new ProductionStopRegistration(new ProductionStop("Test 1"), new TimeSpan(0, 30, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 2", true), new TimeSpan(1, 0, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 3", false), new TimeSpan(0, 15, 0)),
                new ProductionStopRegistration(new ProductionStop("Test 4", true), new TimeSpan(0, 5, 0))
            }, 2200, 10));

            Assert.AreEqual<double>(1, calculator.Performance);
            Assert.AreEqual<TimeSpan>(new TimeSpan(5, 30, 0), calculator.Duration);
        }