暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

SampleGroup.cs 2.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Runtime.Serialization;
  4. using Unity.PerformanceTesting.Exceptions;
  5. namespace Unity.PerformanceTesting.Data
  6. {
  7. /// <summary>
  8. /// Represents a group of samples for a performance test that share a common name and unit.
  9. /// </summary>
  10. [Serializable]
  11. public class SampleGroup : IDeserializationCallback
  12. {
  13. /// <summary>
  14. /// Name of the sample group.
  15. /// </summary>
  16. public string Name;
  17. /// <summary>
  18. /// Measurement unit.
  19. /// </summary>
  20. public SampleUnit Unit;
  21. /// <summary>
  22. /// Whether the measurement is inverted and increase is positive.
  23. /// </summary>
  24. public bool IncreaseIsBetter;
  25. /// <summary>
  26. /// List of samples.
  27. /// </summary>
  28. public List<double> Samples = new List<double>();
  29. /// <summary>
  30. /// Minimum value of samples.
  31. /// </summary>
  32. public double Min;
  33. /// <summary>
  34. /// Maximum value of samples.
  35. /// </summary>
  36. public double Max;
  37. /// <summary>
  38. /// Median value of samples.
  39. /// </summary>
  40. public double Median;
  41. /// <summary>
  42. /// Average value of samples.
  43. /// </summary>
  44. public double Average;
  45. /// <summary>
  46. /// Standard deviation of samples.
  47. /// </summary>
  48. public double StandardDeviation;
  49. /// <summary>
  50. /// Sum of samples.
  51. /// </summary>
  52. public double Sum;
  53. /// <summary>
  54. /// Creates a sample group without initializing values.
  55. /// </summary>
  56. public SampleGroup(){}
  57. /// <summary>
  58. /// Creates a sample group with provided arguments.
  59. /// </summary>
  60. /// <param name="name">Sample group name.</param>
  61. /// <param name="unit">Measurement unit.</param>
  62. /// <param name="increaseIsBetter">Whether the measurement is inverted and increase is positive.</param>
  63. /// <exception cref="PerformanceTestException">Exception thrown when invalid name is used.</exception>
  64. public SampleGroup(string name, SampleUnit unit, bool increaseIsBetter)
  65. {
  66. Name = name;
  67. Unit = unit;
  68. IncreaseIsBetter = increaseIsBetter;
  69. if (string.IsNullOrEmpty(name))
  70. {
  71. throw new PerformanceTestException("Sample group name is empty. Please assign a valid name.");
  72. }
  73. }
  74. /// <summary>
  75. /// Validates the deserialized object.
  76. /// </summary>
  77. /// <param name="sender">The object that initiated the deserialization process.</param>
  78. public void OnDeserialization(object sender)
  79. {
  80. if (string.IsNullOrEmpty(Name))
  81. {
  82. throw new PerformanceTestException("Sample group name is empty. Please assign a valid name.");
  83. }
  84. }
  85. }
  86. }