浏览代码
Fixing LabelEntryMatchCache bug where instance ids that do not match any entries are reported as matching the first entry. (#60)
/main
Fixing LabelEntryMatchCache bug where instance ids that do not match any entries are reported as matching the first entry. (#60)
/main
GitHub
4 年前
当前提交
65b8bd28
共有 6 个文件被更改,包括 142 次插入 和 2 次删除
-
1com.unity.perception/Runtime/GroundTruth/GroundTruthLabelSetupSystem.cs
-
23com.unity.perception/Runtime/GroundTruth/Labeling/IdLabelEntry.cs
-
9com.unity.perception/Runtime/GroundTruth/Labeling/LabelEntryMatchCache.cs
-
7com.unity.perception/Runtime/GroundTruth/Labeling/Labeling.cs
-
93com.unity.perception/Tests/Runtime/GroundTruthTests/LabelEntryMatchCacheTests.cs
-
11com.unity.perception/Tests/Runtime/GroundTruthTests/LabelEntryMatchCacheTests.cs.meta
|
|||
using System.Collections; |
|||
using NUnit.Framework; |
|||
using UnityEngine.Perception.GroundTruth; |
|||
using UnityEngine.TestTools; |
|||
|
|||
namespace GroundTruthTests |
|||
{ |
|||
[TestFixture] |
|||
public class LabelEntryMatchCacheTests : GroundTruthTestBase |
|||
{ |
|||
[Test] |
|||
public void TryGet_ReturnsFalse_ForInvalidInstanceId() |
|||
{ |
|||
var config = new IdLabelConfig(); |
|||
using (var cache = new LabelEntryMatchCache(config)) |
|||
{ |
|||
Assert.IsFalse(cache.TryGetLabelEntryFromInstanceId(100, out var labelEntry, out var index)); |
|||
Assert.AreEqual(-1, index); |
|||
Assert.AreEqual(default(IdLabelEntry), labelEntry); |
|||
} |
|||
} |
|||
[UnityTest] |
|||
public IEnumerator TryGet_ReturnsTrue_ForMatchingLabel() |
|||
{ |
|||
var label = "label"; |
|||
var labeledPlane = TestHelper.CreateLabeledPlane(label: label); |
|||
AddTestObjectForCleanup(labeledPlane); |
|||
var config = new IdLabelConfig(); |
|||
config.Init(new[] |
|||
{ |
|||
new IdLabelEntry() |
|||
{ |
|||
id = 1, |
|||
label = label |
|||
}, |
|||
}); |
|||
using (var cache = new LabelEntryMatchCache(config)) |
|||
{ |
|||
//allow label to be registered
|
|||
yield return null; |
|||
Assert.IsTrue(cache.TryGetLabelEntryFromInstanceId(labeledPlane.GetComponent<Labeling>().instanceId, out var labelEntry, out var index)); |
|||
Assert.AreEqual(0, index); |
|||
Assert.AreEqual(config.labelEntries[0], labelEntry); |
|||
} |
|||
} |
|||
[UnityTest] |
|||
public IEnumerator TryGet_ReturnsFalse_ForNonMatchingLabel() |
|||
{ |
|||
var label = "label"; |
|||
var labeledPlane = TestHelper.CreateLabeledPlane(label: label); |
|||
AddTestObjectForCleanup(labeledPlane); |
|||
var config = new IdLabelConfig(); |
|||
using (var cache = new LabelEntryMatchCache(config)) |
|||
{ |
|||
//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_WithOtherMatches() |
|||
{ |
|||
var label = "label"; |
|||
//only way to guarantee registration order is to run frames.
|
|||
//We want to ensure labeledPlane is registered before labeledPlane2 so that the cache does not early out
|
|||
var labeledPlane = TestHelper.CreateLabeledPlane(label: "foo"); |
|||
AddTestObjectForCleanup(labeledPlane); |
|||
yield return null; |
|||
var labeledPlane2 = TestHelper.CreateLabeledPlane(label: label); |
|||
AddTestObjectForCleanup(labeledPlane2); |
|||
var config = new IdLabelConfig(); |
|||
config.Init(new[] |
|||
{ |
|||
new IdLabelEntry() |
|||
{ |
|||
id = 1, |
|||
label = label |
|||
}, |
|||
}); |
|||
using (var cache = new LabelEntryMatchCache(config)) |
|||
{ |
|||
//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); |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 8404035e89b3b1b4e87136d8a512b6f5 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue