12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System;
- using System.Collections.Generic;
- using System.Runtime.Serialization;
- using Unity.PerformanceTesting.Exceptions;
-
- namespace Unity.PerformanceTesting.Data
- {
- /// <summary>
- /// Represents a group of samples for a performance test that share a common name and unit.
- /// </summary>
- [Serializable]
- public class SampleGroup : IDeserializationCallback
- {
- /// <summary>
- /// Name of the sample group.
- /// </summary>
- public string Name;
- /// <summary>
- /// Measurement unit.
- /// </summary>
- public SampleUnit Unit;
- /// <summary>
- /// Whether the measurement is inverted and increase is positive.
- /// </summary>
- public bool IncreaseIsBetter;
- /// <summary>
- /// List of samples.
- /// </summary>
- public List<double> Samples = new List<double>();
- /// <summary>
- /// Minimum value of samples.
- /// </summary>
- public double Min;
- /// <summary>
- /// Maximum value of samples.
- /// </summary>
- public double Max;
- /// <summary>
- /// Median value of samples.
- /// </summary>
- public double Median;
- /// <summary>
- /// Average value of samples.
- /// </summary>
- public double Average;
- /// <summary>
- /// Standard deviation of samples.
- /// </summary>
- public double StandardDeviation;
- /// <summary>
- /// Sum of samples.
- /// </summary>
- public double Sum;
-
- /// <summary>
- /// Creates a sample group without initializing values.
- /// </summary>
- public SampleGroup(){}
-
- /// <summary>
- /// Creates a sample group with provided arguments.
- /// </summary>
- /// <param name="name">Sample group name.</param>
- /// <param name="unit">Measurement unit.</param>
- /// <param name="increaseIsBetter">Whether the measurement is inverted and increase is positive.</param>
- /// <exception cref="PerformanceTestException">Exception thrown when invalid name is used.</exception>
- public SampleGroup(string name, SampleUnit unit, bool increaseIsBetter)
- {
- Name = name;
- Unit = unit;
- IncreaseIsBetter = increaseIsBetter;
-
- if (string.IsNullOrEmpty(name))
- {
- throw new PerformanceTestException("Sample group name is empty. Please assign a valid name.");
- }
- }
-
- /// <summary>
- /// Validates the deserialized object.
- /// </summary>
- /// <param name="sender">The object that initiated the deserialization process.</param>
- public void OnDeserialization(object sender)
- {
- if (string.IsNullOrEmpty(Name))
- {
- throw new PerformanceTestException("Sample group name is empty. Please assign a valid name.");
- }
- }
- }
- }
|