MicrosecondsUnitsTest.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. using NUnit.Framework;
  2. using UnityEditor.Performance.ProfileAnalyzer;
  3. using System.Collections.Generic;
  4. public class MicrosecondsUnitsFixture : UnitsTestFixture
  5. {
  6. [SetUp]
  7. public void SetupTest()
  8. {
  9. displayUnits = new DisplayUnits(Units.Microseconds);
  10. }
  11. }
  12. public class MicrosecondsUnitsTest : MicrosecondsUnitsFixture
  13. {
  14. static TestData[] DecimalLimitValues = new TestData[]
  15. {
  16. new TestData(0.000000001f, "0.0"),
  17. new TestData(0.00009f, "0.1"),
  18. new TestData(0.0004f, "0.4"),
  19. new TestData(0.0005f, "0.5"),
  20. new TestData(0.0112f, "11.2"),
  21. new TestData(0.0091f, "9.1"), // Show 1 decimal point for <100us
  22. new TestData(0.1012f, "101"),
  23. new TestData(1.0012f, "1001"),
  24. new TestData(10.0012f, "10001"),
  25. new TestData(100.0012f, "100001"),
  26. new TestData(1000.0012f, "1000001"),
  27. new TestData(10000.0012f, "10000000"), // Only 6 sf valid
  28. new TestData(100000.0012f, "100000000"),
  29. };
  30. [Test]
  31. public void DecimalLimit([ValueSource("DecimalLimitValues")] TestData testData)
  32. {
  33. string output = displayUnits.ToString(testData.value, showUnits: false, limitToNDigits: 0, showFullValueWhenBelowZero: false);
  34. Assert.AreEqual(testData.expectedOutput, output);
  35. }
  36. static TestData[] ShowFullValueWhenBelowZeroValues = new TestData[]
  37. {
  38. new TestData(0.000000001f, "1E-06"),
  39. new TestData(0.00009f, "0.09"),
  40. new TestData(0.0004f, "0.4"),
  41. new TestData(0.0005f, "0.5"),
  42. new TestData(0.0009f, "0.9"),
  43. new TestData(0.0015f, "1.5"),
  44. new TestData(0.0112f, "11.2"),
  45. new TestData(0.0959f, "95.9"),
  46. new TestData(0.1012f, "101"),
  47. new TestData(1.0012f, "1001"),
  48. new TestData(10.0012f, "10001"),
  49. new TestData(100.0012f, "100001"),
  50. new TestData(1000.0012f, "1000001"),
  51. new TestData(10000.0012f, "10000000"), // Only 6 sf valid
  52. new TestData(100000.0012f, "100000000"),
  53. };
  54. [Test]
  55. public void ShowFullValueWhenBelowZero([ValueSource("ShowFullValueWhenBelowZeroValues")] TestData testData)
  56. {
  57. string output = displayUnits.ToString(testData.value, showUnits: false, limitToNDigits: 0, showFullValueWhenBelowZero: true);
  58. Assert.AreEqual(testData.expectedOutput, output);
  59. }
  60. static TestData[] WithUnitsValues = new TestData[]
  61. {
  62. new TestData(0.000000001f, "0.0us"),
  63. new TestData(0.00009f, "0.1us"),
  64. new TestData(0.0004f, "0.4us"),
  65. new TestData(0.0005f, "0.5us"),
  66. new TestData(0.0015f, "1.5us"),
  67. new TestData(0.0112f, "11.2us"),
  68. new TestData(0.1012f, "101us"),
  69. new TestData(1.0012f, "1001us"),
  70. new TestData(10.0012f, "10001us"),
  71. new TestData(100.0012f, "100001us"),
  72. new TestData(1000.0012f, "1000001us"),
  73. new TestData(10000.0012f, "10000000us"), // Only 6 sf valid
  74. new TestData(100000.0012f, "100000000us"),
  75. };
  76. [Test]
  77. public void WithUnits([ValueSource("WithUnitsValues")] TestData testData)
  78. {
  79. string output = displayUnits.ToString(testData.value, showUnits: true, limitToNDigits: 0, showFullValueWhenBelowZero: false);
  80. Assert.AreEqual(testData.expectedOutput, output);
  81. }
  82. static TestData[] LimitedTo5DigitsValues = new TestData[]
  83. {
  84. new TestData(0.000000001f, "0.0"),
  85. new TestData(0.00009f, "0.1"),
  86. new TestData(0.0004f, "0.4"),
  87. new TestData(0.0005f, "0.5"),
  88. new TestData(0.0112f, "11.2"),
  89. new TestData(0.1012f, "101"),
  90. new TestData(1.0012f, "1001"),
  91. new TestData(10.0012f, "10001"),
  92. new TestData(100.0012f, "100ms"),
  93. new TestData(1000.0012f, "1s"),
  94. new TestData(10000.0012f, "10s"),
  95. new TestData(100000.0012f, "100s"),
  96. };
  97. [Test]
  98. public void LimitedTo5Digits([ValueSource("LimitedTo5DigitsValues")] TestData testData)
  99. {
  100. string output = displayUnits.ToString(testData.value, showUnits: false, limitToNDigits: 5, showFullValueWhenBelowZero: false);
  101. Assert.AreEqual(testData.expectedOutput, output);
  102. }
  103. static TestData[] WithUnitsLimitedTo5DigitsValuesAndShowFullValueWhenBelowZeroValues = new TestData[]
  104. {
  105. new TestData(0.000000001f, "0.001ns"),
  106. new TestData(0.00009f, "0.09us"),
  107. new TestData(0.0004f, "0.4us"),
  108. new TestData(0.0005f, "0.5us"),
  109. new TestData(0.0015f, "1.5us"),
  110. new TestData(0.0112f, "11.2us"),
  111. new TestData(0.1012f, "101.2us"),
  112. new TestData(1.0012f, "1001.2us"),
  113. new TestData(10.0012f, "10001us"),
  114. new TestData(100.0012f, "100ms"),
  115. new TestData(1000.0012f, "1s"),
  116. new TestData(10000.0012f, "10s"), // Only 6 sf valid
  117. new TestData(100000.0012f, "100s"),
  118. };
  119. [Test]
  120. public void WithUnitsLimitedTo5DigitsAndShowFullValueWhenBelowZero([ValueSource("WithUnitsLimitedTo5DigitsValuesAndShowFullValueWhenBelowZeroValues")] TestData testData)
  121. {
  122. string output = displayUnits.ToString(testData.value, showUnits: true, limitToNDigits: 5, showFullValueWhenBelowZero: true);
  123. Assert.AreEqual(testData.expectedOutput, output);
  124. }
  125. }