diff --git a/Assets/Common/Interfaces/InterfacesScripts.asmdef b/Assets/Common/Interfaces/InterfacesScripts.asmdef index 7d170b5..c6d0301 100644 --- a/Assets/Common/Interfaces/InterfacesScripts.asmdef +++ b/Assets/Common/Interfaces/InterfacesScripts.asmdef @@ -2,8 +2,7 @@ "name": "InterfacesScripts", "rootNamespace": "", "references": [ - "GUID:5c2b5ba89f9e74e418232e154bc5cc7a", - "GUID:d0b6b39a21908f94fbbd9f2c196a9725" + "GUID:5c2b5ba89f9e74e418232e154bc5cc7a" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/MediaPipeUnity/Scripts/ModelIndex.cs b/Assets/Common/Interfaces/ModelIndex.cs similarity index 100% rename from Assets/MediaPipeUnity/Scripts/ModelIndex.cs rename to Assets/Common/Interfaces/ModelIndex.cs diff --git a/Assets/MediaPipeUnity/Scripts/ModelIndex.cs.meta b/Assets/Common/Interfaces/ModelIndex.cs.meta similarity index 100% rename from Assets/MediaPipeUnity/Scripts/ModelIndex.cs.meta rename to Assets/Common/Interfaces/ModelIndex.cs.meta diff --git a/Assets/MediaPipeUnity/Scripts/ModelList.cs b/Assets/Common/Interfaces/ModelList.cs similarity index 100% rename from Assets/MediaPipeUnity/Scripts/ModelList.cs rename to Assets/Common/Interfaces/ModelList.cs diff --git a/Assets/MediaPipeUnity/Scripts/ModelList.cs.meta b/Assets/Common/Interfaces/ModelList.cs.meta similarity index 100% rename from Assets/MediaPipeUnity/Scripts/ModelList.cs.meta rename to Assets/Common/Interfaces/ModelList.cs.meta diff --git a/Assets/MediaPipeUnity/Scripts/ModelTuple.cs b/Assets/Common/Interfaces/ModelTuple.cs similarity index 100% rename from Assets/MediaPipeUnity/Scripts/ModelTuple.cs rename to Assets/Common/Interfaces/ModelTuple.cs diff --git a/Assets/MediaPipeUnity/Scripts/ModelTuple.cs.meta b/Assets/Common/Interfaces/ModelTuple.cs.meta similarity index 100% rename from Assets/MediaPipeUnity/Scripts/ModelTuple.cs.meta rename to Assets/Common/Interfaces/ModelTuple.cs.meta diff --git a/Assets/Common/Interfaces/Theme.cs b/Assets/Common/Interfaces/Theme.cs index 9ddf25d..838d223 100644 --- a/Assets/Common/Interfaces/Theme.cs +++ b/Assets/Common/Interfaces/Theme.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using Unity.Barracuda; using UnityEngine; /// diff --git a/Assets/Common/Tests/CommonTests.asmdef b/Assets/Common/Tests/CommonTests.asmdef index aaa7ab0..7e91147 100644 --- a/Assets/Common/Tests/CommonTests.asmdef +++ b/Assets/Common/Tests/CommonTests.asmdef @@ -5,7 +5,9 @@ "UnityEngine.TestRunner", "UnityEditor.TestRunner", "CommonScripts", - "InterfacesScripts" + "InterfacesScripts", + "Unity.Barracuda", + "SignPredictor" ], "includePlatforms": [ "Editor" diff --git a/Assets/Common/Tests/ModelListTest.cs b/Assets/Common/Tests/ModelListTest.cs new file mode 100644 index 0000000..d28480d --- /dev/null +++ b/Assets/Common/Tests/ModelListTest.cs @@ -0,0 +1,77 @@ +using NUnit.Framework; +using Unity.Barracuda; +using UnityEngine; +/// +/// Test the ModelList class +/// +[TestFixture] +public class ModelListTest +{ + private ModelList modelList; + + /// + /// Setup a ModelList with all possible Models in the enum + /// + [SetUp] + public void Setup_Model() + { + modelList = ScriptableObject.CreateInstance(); + + // Add a Model for each index in the enum + + // Dumb way to access each index in the enum, couldn't find a different way to do it though + foreach (var field in typeof(ModelIndex).GetFields()) + { + if (field.IsLiteral) + { + ModelIndex value = (ModelIndex)field.GetValue(null); + string name = field.Name; + ModelTuple model = new ModelTuple(); + // This is all we will need to distinguish + model.index = value; + + // Insert in front to guarantee that ModelIndex will not line up with listIndex + modelList.models.Insert(0, model); + } + } + } + + /// + /// Check if getModelByIndex returns the NMModel or return null if there is no model + /// + [Test] + public void TestGetModelByIndex() + { + foreach (var field in typeof(ModelIndex).GetFields()) + { + if (field.IsLiteral) + { + ModelIndex value = (ModelIndex)field.GetValue(null); + string name = field.Name; + Assert.IsTrue(modelList.GetModelByIndex(value) is NNModel || modelList.GetModelByIndex(value) is null); + } + } + } + + /// + /// Check if all courses can be correctly set as current via SetCurrentCourse + /// + [Test] + public void TestSetCurrentModel() + { + foreach (var field in typeof(ModelIndex).GetFields()) + { + if (field.IsLiteral) + { + ModelIndex value = (ModelIndex)field.GetValue(null); + string name = field.Name; + modelList.SetCurrentModel(value); + + // Fetch the current course and check if its name is the same as the one we made into the current one + ModelTuple m = modelList.models[modelList.currentModelIndex]; + + Assert.AreEqual(m.index, value); + } + } + } +} diff --git a/Assets/Common/Tests/ModelListTest.cs.meta b/Assets/Common/Tests/ModelListTest.cs.meta new file mode 100644 index 0000000..85cdfd3 --- /dev/null +++ b/Assets/Common/Tests/ModelListTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1313e0cc80244354eb6e2d0c1e891941 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef b/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef index cc93292..ba94856 100644 --- a/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef +++ b/Assets/MediaPipeUnity/Scripts/SignPredictor.asmdef @@ -6,7 +6,8 @@ "GUID:5c2b5ba89f9e74e418232e154bc5cc7a", "GUID:04c4d86a70aa56c55a78c61f1ab1a56d", "GUID:edc93f477bb73a743a97d6882ed330b3", - "GUID:58e104b97fb3752438ada2902a36dcbf" + "GUID:58e104b97fb3752438ada2902a36dcbf", + "GUID:7f2d0ee6dd21e1d4eb25b71b7a749d25" ], "includePlatforms": [], "excludePlatforms": [],