diff --git a/Emne 3/UnitTesting/UnitTesting.Test/UnitTest1.cs b/Emne 3/UnitTesting/UnitTesting.Test/UnitTest1.cs index c099fe3..a03b423 100644 --- a/Emne 3/UnitTesting/UnitTesting.Test/UnitTest1.cs +++ b/Emne 3/UnitTesting/UnitTesting.Test/UnitTest1.cs @@ -5,7 +5,30 @@ public class StatsTest [Test] public void TestWith3And4() { + // arrange var stats = new Stats(); - Assert.Pass(); + + //act + stats.Add(3); + stats.Add(4); + + // assert + Assert.AreEqual(2, stats.Count); + Assert.AreEqual(7, stats.Sum); + Assert.AreEqual(4, stats.Max); + Assert.AreEqual(3, stats.Min); + Assert.AreEqual(3.5, stats.Mean, 0.0001); + } + + [Test] + public void TestEmptyStats() + { + var stats = new Stats(); + + Assert.AreEqual(0, stats.Count); + Assert.AreEqual(0, stats.Sum); + Assert.IsNull(stats.Max); + Assert.IsNull(stats.Min); + Assert.AreEqual(float.NaN, stats.Mean); } } \ No newline at end of file diff --git a/Emne 3/UnitTesting/UnitTesting/Stats.cs b/Emne 3/UnitTesting/UnitTesting/Stats.cs index 319bef2..eb49f1b 100644 --- a/Emne 3/UnitTesting/UnitTesting/Stats.cs +++ b/Emne 3/UnitTesting/UnitTesting/Stats.cs @@ -6,14 +6,14 @@ public class Stats { public int Count {get; private set;} public int Sum {get; private set;} - public int Max {get; private set;} - public int Min {get; private set;} + public int? Max { get; private set; } + public int? Min {get; private set;} public float Mean => (float)Sum / Count; public void Add(int number) { - if (Max == -1 || number > Max) Max = number; - if (Min == -1 || number < Min) Min = number; + if (Max == null || number > Max) Max = number; + if (Min == null || number < Min) Min = number; Count++; Sum += number; } @@ -23,20 +23,22 @@ public class Stats return Format("Antall tall", Count) + Format("Sum", Sum) + - Format("Max", Max) + - Format("Min", Min) + + Format("Max", Max.Value) + + Format("Min", Min.Value) + Format("Gjennomsnitt", Mean); } - private static string Format(string label, float number) + private static string Format(string label, float? number) { - return FormatImpl(label, number.ToString("####.##")); + if (number == null) return String.Empty; + return FormatImpl(label, number.Value.ToString("####.##")); } - private static string Format(string label, int number) + private static string Format(string label, int? number) { - return FormatImpl(label, number.ToString("####")); + if (number == null) return String.Empty; + return FormatImpl(label, number.Value.ToString("####")); } private static string FormatImpl(string label, string number)