浏览代码

Test added to highlight the fixed bug

/main
Mohsen Kamalzadeh 4 年前
当前提交
109dfa68
共有 1 个文件被更改,包括 40 次插入0 次删除
  1. 40
      com.unity.perception/Tests/Runtime/GroundTruthTests/LabelEntryMatchCacheTests.cs

40
com.unity.perception/Tests/Runtime/GroundTruthTests/LabelEntryMatchCacheTests.cs


using System.Collections;
using NUnit.Framework;
using Unity.Entities;
using UnityEngine;
using UnityEngine.Perception.GroundTruth;
using UnityEngine.TestTools;

//allow label to be registered
yield return null;
Assert.IsFalse(cache.TryGetLabelEntryFromInstanceId(labeledPlane.GetComponent<Labeling>().instanceId, out var labelEntry, out var index));
Assert.AreEqual(-1, index);
Assert.AreEqual(default(IdLabelEntry), labelEntry);
}
}
[UnityTest]
public IEnumerator TryGet_ReturnsFalse_ForNonMatchingLabel_WhenAllObjectsAreDestroyedAndNewOnesAreCreated()
{
//only way to guarantee registration order is to run frames.
var labeledPlane = TestHelper.CreateLabeledPlane(label: "foo");
var config = ScriptableObject.CreateInstance<IdLabelConfig>();
config.Init(new[]
{
new IdLabelEntry()
{
id = 1,
label = "foo"
},
});
using (var cache = new LabelEntryMatchCache(config))
{
//allow label to be registered
yield return null;
//delete all labeled objects and run a frame so that instance ids of labeled entities reset
DestroyTestObject(labeledPlane);
yield return null;
var labeledPlane2 = TestHelper.CreateLabeledPlane(label: "bar");
AddTestObjectForCleanup(labeledPlane2);
//let labeledPlane2 be assigned a recycled instance id (1) previously belonging to labeledPlane
yield return null;
Assert.IsFalse(cache.TryGetLabelEntryFromInstanceId(labeledPlane2.GetComponent<Labeling>().instanceId, out var labelEntry, out var index));
Assert.AreEqual(-1, index);
Assert.AreEqual(default(IdLabelEntry), labelEntry);
}

正在加载...
取消
保存