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

85 lines
2.4 KiB
C#

1 year ago
using NUnit.Framework;
using UnityEditor.Performance.ProfileAnalyzer;
using System.Collections.Generic;
public class ProfileDataAPITests : ProfileAnalyzerBaseTest
{
[Test]
public void ProfileData_AddMarkerName_AddsMarkerAndContainsName()
{
var data = new ProfileData();
var markerNames = new List<string>()
{
"Marker01",
"Marker02",
"Marker03",
"Marker04"
};
var markerList = new List<ProfileMarker>();
for (int i = 0; i < 10; ++i)
{
var marker = new ProfileMarker()
{
msMarkerTotal = 0.5f,
depth = i
};
int expectedIndex = i % markerNames.Count;
data.AddMarkerName(markerNames[expectedIndex], marker);
markerList.Add(marker);
Assert.IsTrue(expectedIndex == marker.nameIndex, "Index mismatch at: " + i + " , " + marker.nameIndex);;
}
for (int i = 0; i < markerList.Count; ++i)
{
var curName = data.GetMarkerName(markerList[i]);
Assert.IsTrue(markerNames.Contains(curName));
}
}
[Test]
public void ProfileData_AddThreadName_AddsThreadAndContainsName()
{
var data = new ProfileData();
var threadNames = new List<string>()
{
"Thread01",
"Thread02",
"Thread03",
"Thread04"
};
var threadDict = new Dictionary<string, ProfileThread>();
for (int i = 0; i < 10; ++i)
{
int expectedIndex = i % threadNames.Count;
string threadName = threadNames[expectedIndex];
ProfileThread thread;
if (!threadDict.TryGetValue(threadName, out thread))
{
thread = new ProfileThread();
threadDict.Add(threadName, thread);
}
var marker = new ProfileMarker()
{
msMarkerTotal = 0.5f,
depth = i
};
thread.markers.Add(marker);
data.AddThreadName(threadName, thread);
Assert.IsTrue(expectedIndex == thread.threadIndex, "Index mismatch at: " + i + " , " + thread.threadIndex);;
}
foreach (var curThread in threadDict)
{
var curName = data.GetThreadName(curThread.Value);
Assert.IsTrue(threadNames.Contains(curName));
}
}
}