Пример #1
0
        public double GetNextValue(double isValue, int maxChangeinProzent, double fixChange, double meanValueBegin)
        {
            int rand = ThreadLocalRandom.Next(0, 100);

            isValue = ResetValue10ProzentRule(isValue, meanValueBegin);
            isValue = isValue + ((isValue * fixChange) / 100);
            return(Math.Ceiling(isValue + ((isValue * maxChangeinProzent * rand) / 10000)));
        }
Пример #2
0
        private double ResetValue10ProzentRule(double isValue, double meanValueBegin)
        {
            // Data leak protection
            double test = isValue / meanValueBegin;

            if (test > 2)
            {
                return(meanValueBegin);
            }
            if (test < 0.25)
            {
                return(meanValueBegin);
            }

            int rand = ThreadLocalRandom.Next(0, 10);

            if (rand == 3)
            {
                return(meanValueBegin);
            }

            return(isValue);
        }