123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- using System.IO;
- using NUnit.Framework;
- using UnityEngine;
- using UnityEngine.AdaptivePerformance;
-
- namespace UnityEditor.AdaptivePerformance.Editor.Tests
- {
- public class RunningAverageUnitTests
- {
- RunningAverage runAverage;
-
- [SetUp]
- public void SetupTest()
- {
- runAverage = new RunningAverage();
- }
-
- [Test]
- public void CheckSampleSizeWindowWhenDefaultIsUsed()
- {
- Assert.AreEqual(100, runAverage.GetSampleWindowSize());
- }
-
- [Test]
- public void CheckSampleSizeWindowWhenSet()
- {
- Assert.AreEqual(4000, new RunningAverage(4000).GetSampleWindowSize());
- }
-
- [Test]
- public void CheckAverageWhenNoSampleWindowSizeSet_And_NoNewValueGiven()
- {
- runAverage.AddValue(0);
- Assert.AreEqual(1, runAverage.GetNumValues());
- }
-
- [Test]
- public void CheckAverage_NoSampleSize_And_NewValuesToAddGiven()
- {
- runAverage.AddValue(110);
- Assert.AreEqual(110, runAverage.GetAverageOr(1));
- }
-
- [Test]
- public void CheckAverage_SampleSizeGiven_And_NewValuesToAddGiven()
- {
- RunningAverage rv = new RunningAverage(230);
- rv.AddValue(156);
- Assert.AreEqual(156, rv.GetAverageOr(90));
- }
-
- [Test]
- public void CheckMostRecentVal_NoSampleSize_And_NewValuesToAddGiven()
- {
- runAverage.AddValue(249);
- Assert.AreEqual(249, runAverage.GetMostRecentValueOr(24));
- }
-
- [Test]
- public void CheckMostRecentVal_SampleSizeGiven_And_NewValuesToAddGiven()
- {
- RunningAverage rv = new RunningAverage(220);
- rv.AddValue(973);
- Assert.AreEqual(973, rv.GetMostRecentValueOr(23));
- }
-
- [Test]
- public void ResetValues_CheckNumberOfValues()
- {
- RunningAverage rv = new RunningAverage(7532);
- rv.Reset();
- Assert.AreEqual(0, rv.GetNumValues());
- }
-
- [Test]
- public void ResetValues_CheckSampleSizeRemainsSame()
- {
- RunningAverage rv = new RunningAverage(2452);
- rv.Reset();
- Assert.AreEqual(2452, rv.GetSampleWindowSize());
- }
-
- [Test]
- public void ResetValues_AltersNumValuesAfterMultipleCalls()
- {
- var rv = SetupConsecutiveCalls();
- rv.Reset();
- Assert.AreEqual(0f, rv.GetNumValues());
- }
-
- [Test]
- public void SampleSizeStore_SizeRemainsSame_AfterReset()
- {
- var rv = SetupConsecutiveCalls();
- rv.Reset();
- Assert.AreEqual(15, rv.GetSampleWindowSize());
- }
-
- [Test]
- public void VerifyNewValuesAreStored_UponConsecutiveCalls()
- {
- Assert.AreEqual(15, SetupConsecutiveCalls().GetSampleWindowSize());
- }
-
- [Test]
- public void VerifyMostRecentlyAddedValue_UponConsecutiveCalls()
- {
- Assert.AreEqual(1f, SetupConsecutiveCalls().GetMostRecentValueOr(0f));
- }
-
- [Test]
- public void VerifyAverageOrValue_50_ConsecutiveCalls()
- {
- Assert.AreEqual(25.5f, AddValuesMultipleTimes(50).GetAverageOr(0f));
- }
-
- [Test]
- public void VerifyNumValues_50_ConsecutiveCalls()
- {
- Assert.AreEqual(50, AddValuesMultipleTimes(50).GetNumValues());
- }
-
- [Test]
- public void VerifyAverageOrValue_100_ConsecutiveCalls()
- {
- Assert.AreEqual(50.5f, AddValuesMultipleTimes(100).GetAverageOr(0f));
- }
-
- [Test]
- public void VerifyNumValues_999_ConsecutiveCalls()
- {
- Assert.AreEqual(999, AddValuesMultipleTimes(999).GetNumValues());
- }
-
- [Test]
- public void VerifyAverageOrValue_999_ConsecutiveCalls()
- {
- Assert.AreEqual(500.0f, AddValuesMultipleTimes(999).GetAverageOr(0f));
- }
-
- [Test]
- public void VerifyNumValues_100_ConsecutiveCalls()
- {
- Assert.AreEqual(100, AddValuesMultipleTimes(100).GetNumValues());
- }
-
- private RunningAverage AddValuesMultipleTimes(int cycles)
- {
- RunningAverage rvInstance = new RunningAverage(cycles);
- for (int i = 1; i < cycles+1; i++) {
- rvInstance.AddValue(i);
- }
-
- return rvInstance;
- }
-
- private RunningAverage SetupConsecutiveCalls()
- {
- RunningAverage avgInstance = new RunningAverage(15);
- foreach (int i in new float[] { 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f })
- {
- avgInstance.AddValue(i);
- }
-
- return avgInstance;
- }
-
- }
-
- }
|