Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RunningAverageUnitTests.cs 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using System.IO;
  2. using NUnit.Framework;
  3. using UnityEngine;
  4. using UnityEngine.AdaptivePerformance;
  5. namespace UnityEditor.AdaptivePerformance.Editor.Tests
  6. {
  7. public class RunningAverageUnitTests
  8. {
  9. RunningAverage runAverage;
  10. [SetUp]
  11. public void SetupTest()
  12. {
  13. runAverage = new RunningAverage();
  14. }
  15. [Test]
  16. public void CheckSampleSizeWindowWhenDefaultIsUsed()
  17. {
  18. Assert.AreEqual(100, runAverage.GetSampleWindowSize());
  19. }
  20. [Test]
  21. public void CheckSampleSizeWindowWhenSet()
  22. {
  23. Assert.AreEqual(4000, new RunningAverage(4000).GetSampleWindowSize());
  24. }
  25. [Test]
  26. public void CheckAverageWhenNoSampleWindowSizeSet_And_NoNewValueGiven()
  27. {
  28. runAverage.AddValue(0);
  29. Assert.AreEqual(1, runAverage.GetNumValues());
  30. }
  31. [Test]
  32. public void CheckAverage_NoSampleSize_And_NewValuesToAddGiven()
  33. {
  34. runAverage.AddValue(110);
  35. Assert.AreEqual(110, runAverage.GetAverageOr(1));
  36. }
  37. [Test]
  38. public void CheckAverage_SampleSizeGiven_And_NewValuesToAddGiven()
  39. {
  40. RunningAverage rv = new RunningAverage(230);
  41. rv.AddValue(156);
  42. Assert.AreEqual(156, rv.GetAverageOr(90));
  43. }
  44. [Test]
  45. public void CheckMostRecentVal_NoSampleSize_And_NewValuesToAddGiven()
  46. {
  47. runAverage.AddValue(249);
  48. Assert.AreEqual(249, runAverage.GetMostRecentValueOr(24));
  49. }
  50. [Test]
  51. public void CheckMostRecentVal_SampleSizeGiven_And_NewValuesToAddGiven()
  52. {
  53. RunningAverage rv = new RunningAverage(220);
  54. rv.AddValue(973);
  55. Assert.AreEqual(973, rv.GetMostRecentValueOr(23));
  56. }
  57. [Test]
  58. public void ResetValues_CheckNumberOfValues()
  59. {
  60. RunningAverage rv = new RunningAverage(7532);
  61. rv.Reset();
  62. Assert.AreEqual(0, rv.GetNumValues());
  63. }
  64. [Test]
  65. public void ResetValues_CheckSampleSizeRemainsSame()
  66. {
  67. RunningAverage rv = new RunningAverage(2452);
  68. rv.Reset();
  69. Assert.AreEqual(2452, rv.GetSampleWindowSize());
  70. }
  71. [Test]
  72. public void ResetValues_AltersNumValuesAfterMultipleCalls()
  73. {
  74. var rv = SetupConsecutiveCalls();
  75. rv.Reset();
  76. Assert.AreEqual(0f, rv.GetNumValues());
  77. }
  78. [Test]
  79. public void SampleSizeStore_SizeRemainsSame_AfterReset()
  80. {
  81. var rv = SetupConsecutiveCalls();
  82. rv.Reset();
  83. Assert.AreEqual(15, rv.GetSampleWindowSize());
  84. }
  85. [Test]
  86. public void VerifyNewValuesAreStored_UponConsecutiveCalls()
  87. {
  88. Assert.AreEqual(15, SetupConsecutiveCalls().GetSampleWindowSize());
  89. }
  90. [Test]
  91. public void VerifyMostRecentlyAddedValue_UponConsecutiveCalls()
  92. {
  93. Assert.AreEqual(1f, SetupConsecutiveCalls().GetMostRecentValueOr(0f));
  94. }
  95. [Test]
  96. public void VerifyAverageOrValue_50_ConsecutiveCalls()
  97. {
  98. Assert.AreEqual(25.5f, AddValuesMultipleTimes(50).GetAverageOr(0f));
  99. }
  100. [Test]
  101. public void VerifyNumValues_50_ConsecutiveCalls()
  102. {
  103. Assert.AreEqual(50, AddValuesMultipleTimes(50).GetNumValues());
  104. }
  105. [Test]
  106. public void VerifyAverageOrValue_100_ConsecutiveCalls()
  107. {
  108. Assert.AreEqual(50.5f, AddValuesMultipleTimes(100).GetAverageOr(0f));
  109. }
  110. [Test]
  111. public void VerifyNumValues_999_ConsecutiveCalls()
  112. {
  113. Assert.AreEqual(999, AddValuesMultipleTimes(999).GetNumValues());
  114. }
  115. [Test]
  116. public void VerifyAverageOrValue_999_ConsecutiveCalls()
  117. {
  118. Assert.AreEqual(500.0f, AddValuesMultipleTimes(999).GetAverageOr(0f));
  119. }
  120. [Test]
  121. public void VerifyNumValues_100_ConsecutiveCalls()
  122. {
  123. Assert.AreEqual(100, AddValuesMultipleTimes(100).GetNumValues());
  124. }
  125. private RunningAverage AddValuesMultipleTimes(int cycles)
  126. {
  127. RunningAverage rvInstance = new RunningAverage(cycles);
  128. for (int i = 1; i < cycles+1; i++) {
  129. rvInstance.AddValue(i);
  130. }
  131. return rvInstance;
  132. }
  133. private RunningAverage SetupConsecutiveCalls()
  134. {
  135. RunningAverage avgInstance = new RunningAverage(15);
  136. 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 })
  137. {
  138. avgInstance.AddValue(i);
  139. }
  140. return avgInstance;
  141. }
  142. }
  143. }