ProfileAnalyzerEmptyTests.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using NUnit.Framework;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ProfileAnalyzerEmptyTests : ProfileAnalyzerBaseTest
  5. {
  6. List<int> SelectRange(int startIndex, int endIndex)
  7. {
  8. List<int> list = new List<int>();
  9. for (int c = startIndex; c <= endIndex; c++)
  10. {
  11. list.Add(c);
  12. }
  13. return list;
  14. }
  15. [Test]
  16. public void ProfileAnalyzer_EmptyData_IsEmpty()
  17. {
  18. int k_FirstFrameInProfiler = 1;
  19. int k_LastFrameInProfiler = 300;
  20. int k_FrameCountInProfiler = k_LastFrameInProfiler - k_FirstFrameInProfiler + 1;
  21. // the first and last frame are incomplete (empty) and therefore removed from the frame count of the loaded data in Profile Analyzer
  22. int k_FrameCountInProfileAnalyzer = k_FrameCountInProfiler - 2;
  23. // The first frame is invalid,
  24. int k_FirstValidFrameInProfiler = k_FirstFrameInProfiler + 1;
  25. // the first frame being missing is adjusted for via the frame offset, so only the last frame needs to be trimmed in
  26. int k_LastFrameInProfileAnalyzer = k_LastFrameInProfiler - 1;
  27. var analyzer = m_SetupData.analyzer;
  28. var profileData = m_SetupData.profilerWindowInterface.PullFromProfiler(k_FirstFrameInProfiler, k_LastFrameInProfiler);
  29. var depthFilter = m_SetupData.depthFilter;
  30. var threadFilters = m_SetupData.threadFilters;
  31. int firstFrameIndex = profileData.OffsetToDisplayFrame(0);
  32. int lastFrameIndex = profileData.OffsetToDisplayFrame(profileData.GetFrameCount() - 1);
  33. Assert.AreEqual(k_FirstValidFrameInProfiler, firstFrameIndex, "First Frame index not " + k_FirstValidFrameInProfiler);
  34. Assert.AreEqual(k_LastFrameInProfileAnalyzer, lastFrameIndex, "Last Frame index is not " + k_LastFrameInProfileAnalyzer);
  35. var analysis = analyzer.Analyze(profileData, SelectRange(firstFrameIndex, lastFrameIndex), threadFilters, depthFilter);
  36. var frameSummary = analysis.GetFrameSummary();
  37. Assert.AreEqual(0, analysis.GetThreads().Count);
  38. Assert.AreEqual(0, frameSummary.msTotal);
  39. Assert.AreEqual(k_FirstValidFrameInProfiler, frameSummary.first);
  40. Assert.AreEqual(k_LastFrameInProfileAnalyzer, frameSummary.last);
  41. Assert.AreEqual(k_FrameCountInProfileAnalyzer, frameSummary.count);
  42. Assert.AreEqual(0, frameSummary.msMean);
  43. Assert.AreEqual(0, frameSummary.msMedian);
  44. Assert.AreEqual(0, frameSummary.msLowerQuartile);
  45. Assert.AreEqual(0, frameSummary.msUpperQuartile);
  46. Assert.AreEqual(0, frameSummary.msMin);
  47. Assert.AreEqual(0, frameSummary.msMax);
  48. Assert.AreEqual(Mathf.RoundToInt((float)(k_LastFrameInProfileAnalyzer + 0.1f) / 2.0f), frameSummary.medianFrameIndex);
  49. Assert.AreEqual(k_FirstValidFrameInProfiler, frameSummary.minFrameIndex);
  50. Assert.AreEqual(k_FirstValidFrameInProfiler, frameSummary.maxFrameIndex);
  51. Assert.AreEqual(0, frameSummary.maxMarkerDepth);
  52. Assert.AreEqual(0, frameSummary.totalMarkers);
  53. }
  54. }