示例#1
0
        public void RefreshUnitStats(Unit unit)
        {
            var health = unit.Stats.Health();
            var magic  = unit.Stats.Magic();

            StatsComputer.RecomputeStats(unit.Stats, unit.GetUnitEffects().ToArray());
            unit.Stats.Health(health);
            unit.Stats.Magic(magic);
        }
示例#2
0
        public void IgnoresNaNValuesIfListHasNaN()
        {
            var statsComputer = new StatsComputer();
            var returnedList  = statsComputer.CalculateStatistics(new List <double> {
                3.7, double.NaN, 7.0, double.NaN, 10.6, 4.5
            });

            Assert.True(statsComputer.numbers.Count == 6);
        }
 public void ReportsNaNForEmptyInput()
 {
     var          statsComputer = new StatsComputer();
     List <float> numbers       = new List <float>();
     var          computedStats = statsComputer.CalculateStatistics(numbers);
     //All fields of computedStats (average, max, min) must be
     //Double.NaN (not-a-number), as described in
     //https://docs.microsoft.com/en-us/dotnet/api/system.double.nan?view=netcore-3.1
 }
        public void ReportsNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <float> {
            });

            Assert.Equal(Double.NaN, computedStats.average);
            Assert.Equal(Double.NaN, computedStats.max);
            Assert.Equal(Double.NaN, computedStats.min);
        }
        public void WnenCalledWithEmptyListThenReportsNANForAverageMinMax()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <double> {
            });

            Assert.True(Double.IsNaN(computedStats.average));
            Assert.True(Double.IsNaN(computedStats.max));
            Assert.True(Double.IsNaN(computedStats.min));
        }
示例#6
0
        public void ReportsNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <double> {
            });

            Assert.True(Math.Abs(computedStats.average).Equals(double.NaN));
            Assert.True(Math.Abs(computedStats.maximum).Equals(double.NaN));
            Assert.True(Math.Abs(computedStats.minimum).Equals(double.NaN));
        }
示例#7
0
        public void WhenCalculateStatisticsCalledwithEmptyInputThenReportsNaN()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
            });

            Assert.True(Double.IsNaN(computedStats.average));
            Assert.True(Double.IsNaN(computedStats.max));
            Assert.True(Double.IsNaN(computedStats.min));
        }
        public void ReportStatisticsAsNaNForEmplyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <float> {
            });

            Assert.True((float)Double.NaN.CompareTo(statsComputer.Average) == 0);
            Assert.True((float)Double.NaN.CompareTo(statsComputer.Average) == 0);
            Assert.True((float)Double.NaN.CompareTo(statsComputer.Average) == 0);
            Console.WriteLine("ReportStatisticsAsNaNForEmplyInput Done!");
        }
示例#9
0
        public void ReportsNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
            });

            Assert.True(computedStats.average.Equals(float.NaN));
            Assert.True(computedStats.min.Equals(float.NaN));
            Assert.True(computedStats.max.Equals(float.NaN));
        }
        public void ReportsNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <double> {
            });

            Assert.True(Double.IsNaN(computedStats.average));
            Assert.True(Double.IsNaN(computedStats.max));
            Assert.True(Double.IsNaN(computedStats.min));
        }
示例#11
0
        public void ReportsComputedStatsForListOfNumbersHavingFewNaNValues()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <double> {
                3.7, double.NaN, 7.0, double.NaN, 10.6, 4.5
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.Average - 6.45) <= epsilon);
            Assert.True(Math.Abs(computedStats.Max - 10.6) <= epsilon);
            Assert.True(Math.Abs(computedStats.Min - 3.7) <= epsilon);
        }
        public void ReportsAverageMinMax()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <double> {
                1.5, 8.9, 3.2, 4.5
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.average - 4.525) <= epsilon);
            Assert.True(Math.Abs(computedStats.max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.min - 1.5) <= epsilon);
        }
        public void ReportsNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var list          = new List <double> {
                1.5, 8.9, 3.2, 4.5, double.NaN
            };
            var computedStats = statsComputer.CalculateStatistics(list);

            Assert.True(double.IsNaN(computedStats.average));
            Assert.True(double.IsNaN(computedStats.min));
            Assert.True(double.IsNaN(computedStats.max));
        }
        public void ReportNaNForListHavingAllNaNElements()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
                float.NaN, float.NaN
            });

            Assert.True(float.IsNaN(computedStats.Average));
            Assert.True(float.IsNaN(computedStats.Max));
            Assert.True(float.IsNaN(computedStats.Min));
        }
示例#15
0
        public void TestForOneOrMoreNaNValueInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
                1.5F, 8.9F, float.NaN, 4.5F
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.average - 4.967) <= epsilon);
            Assert.True(Math.Abs(computedStats.max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.min - 1.5) <= epsilon);
        }
示例#16
0
        public void WhenCallerInvokesAListOfNumbersHavingNaNThenStatsOfRemainingAreReturned()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <double> {
                1.8, double.NaN, 6.9, 1.1
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.Average - 3.26666667) <= epsilon);
            Assert.True(Math.Abs(computedStats.Max - 6.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.Min - 1.1) <= epsilon);
        }
        public void WhenUserInputsAEmptyListOfFloatNANisReturned()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
            });

            //All fields of computedStats (average, max, min) must be

            Assert.True(float.IsNaN(computedStats.average));
            Assert.True(float.IsNaN(computedStats.max));
            Assert.True(float.IsNaN(computedStats.min));
        }
        public void TestForListHavingSomeElementsAsNaN()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
                float.NaN, 1.5F, 8.9F, 3.2F, 4.5F
            });
            float epsilon = 0.001F;

            Assert.True(float.IsNaN(computedStats.Average));
            Assert.True(Math.Abs(computedStats.Max - 8.9) <= epsilon);
            Assert.True(float.IsNaN(computedStats.Min));
        }
示例#19
0
        public void ReportsNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
            });

            float epsilon = 0.001F;

            Assert.False(Math.Abs(computedStats.average - float.NaN) <= epsilon);
            Assert.False(Math.Abs(computedStats.max - float.NaN) <= epsilon);
            Assert.False(Math.Abs(computedStats.min - float.NaN) <= epsilon);
        }
        public void ReportStatisticsForValidFloatTypeInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <float> {
                1.5F, 8.9F, 3.2F, 4.5F
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(statsComputer.Average - 4.525) <= epsilon);
            Assert.True(Math.Abs(statsComputer.Max - 8.9) <= epsilon);
            Assert.True(Math.Abs(statsComputer.Min - 1.5) <= epsilon);
            Console.WriteLine("ReportStatisticsForValidFloatTypeInput Done!");
        }
        public void WhenUserInputsAnNonEmptyListOfFloatWithSomeNaNInputsStatisticsareProducedForTheNonNaNInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
                1.5F, 8.9F, float.NaN, 3.2F, 4.5F
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.average - 4.525) <= epsilon);
            Assert.True(Math.Abs(computedStats.max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.min - 1.5) <= epsilon);
        }
示例#22
0
        public void ReportsAllNaNForEmptyInput()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <double> {
            });

            Assert.True(Double.IsNaN(computedStats.Average));
            Assert.True(Double.IsNaN(computedStats.Min));
            Assert.True(Double.IsNaN(computedStats.Max));
            //All fields of computedStats (average, max, min) must be
            //Double.NaN (not-a-number), as described in
            //https://docs.microsoft.com/en-us/dotnet/api/system.double.nan?view=netcore-3.1
        }
示例#23
0
        public void whenListContainsNaNthenReportStatsForRestofTheElements()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
                1.5f, 8.9f, float.NaN, 4.5f
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.average - 4.9666) <= epsilon);
            Assert.True(Math.Abs(computedStats.max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.min - 1.5) <= epsilon);
        }
        public void WhenNaNItemsAreInListThenStatisticsOfNonNanItemsIsCalculated()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <double> {
                1.5, double.NaN, 3.2, 4.5
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.average - 3.067) <= epsilon);
            Assert.True(Math.Abs(computedStats.max - 4.5) <= epsilon);
            Assert.True(Math.Abs(computedStats.min - 1.5) <= epsilon);
        }
        public void WhenInputHavingOneOrMoreNanThenReturnStatisticsOfRemainingNumbers()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <float> {
                5.4F, float.NaN, 8.9F, 1.6F
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.Average - 5.300) <= epsilon);
            Assert.True(Math.Abs(computedStats.Max - 8.9F) <= epsilon);
            Assert.True(Math.Abs(computedStats.Min - 1.6F) <= epsilon);
            Console.WriteLine("ReportsAverageMinMax Complete");
        }
        public void ReportsAverageMinMax()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(new List <float> {
                1.5F, 8.9F, 3.2F, 4.5F
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.Average - 4.525) <= epsilon);
            Assert.True(Math.Abs(computedStats.Max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.Min - 1.5) <= epsilon);
            Console.WriteLine("ReportsAverageMinMax Complete");
        }
示例#27
0
        public void ReportsStatsForAListOfNums()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <double> {
                1.5, 8.9, 3.2, 4.5
            });
            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.AVG - 4.525) <= epsilon);
            Assert.True(Math.Abs(computedStats.MAX - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.MIN - 1.5) <= epsilon);
        }
        public void TestForStatisticsWhenInputListContainsNaN()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <Double> {
                1.5, 8.9, Double.NaN, 3.2, 4.5
            });
            float epsilon = 0.001F;

            Console.WriteLine(computedStats.ave + " * " + computedStats.max + " * " + computedStats.min);
            Assert.True(Math.Abs(computedStats.ave - 4.525) <= epsilon);
            Assert.True(Math.Abs(computedStats.max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.min - 1.5) <= epsilon);
        }
示例#29
0
        public void ReportsNaNForMoreThanOneNaNValue()
        {
            var statsComputer = new StatsComputer();
            var computedStats = statsComputer.CalculateStatistics(
                new List <float> {
                2.8F, float.NaN, 5.96F, 6.14F, 9.6F, float.NaN, float.NaN, 4.123F
            });

            float epsilon = 0.001F;

            Assert.True(Math.Abs(computedStats.Average - 5.7246) <= epsilon);
            Assert.True(Math.Abs(computedStats.Max - 9.6) <= epsilon);
            Assert.True(Math.Abs(computedStats.Min - 2.8) <= epsilon);
        }
        public void TestAverageMinMaxForAListOfFloatValues()
        {
            var          statsComputer = new StatsComputer();
            List <float> numbers       = new List <float>()
            {
                1.5f, 8.9f, 3.2f, 4.5f
            };
            var   computedStats = statsComputer.CalculateStatistics(numbers);
            float epsilon       = 0.001F;

            Assert.True(Math.Abs(computedStats.Average - 4.525) <= epsilon);
            Assert.True(Math.Abs(computedStats.Max - 8.9) <= epsilon);
            Assert.True(Math.Abs(computedStats.Min - 1.5) <= epsilon);
        }