59 lines
2.6 KiB
C#
59 lines
2.6 KiB
C#
using NUnit.Framework;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Reflection;
|
|
|
|
|
|
namespace VRM
|
|
{
|
|
public class VRMBlendShapeKeyTest
|
|
{
|
|
static BlendShapeKey CreateBlendShapeKey(string name, BlendShapePreset preset)
|
|
{
|
|
var argTypes = new Type[] {typeof(string), typeof(BlendShapePreset)};
|
|
// private constructor
|
|
var constructor = typeof(BlendShapeKey).GetConstructor(
|
|
BindingFlags.Instance | BindingFlags.NonPublic,
|
|
null, argTypes, null);
|
|
return (BlendShapeKey) constructor.Invoke(new object[] {name, preset});
|
|
}
|
|
|
|
[Test]
|
|
public void KeyTest()
|
|
{
|
|
var key = BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink);
|
|
Assert.AreEqual(key, BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink));
|
|
Assert.AreEqual(key, CreateBlendShapeKey("Blink", BlendShapePreset.Blink));
|
|
Assert.AreEqual(key, CreateBlendShapeKey("xxx", BlendShapePreset.Blink));
|
|
Assert.AreEqual(key.Name, "Blink");
|
|
|
|
var dict = new Dictionary<BlendShapeKey, float>();
|
|
dict[key] = 1.0f;
|
|
|
|
Assert.IsTrue(dict.ContainsKey(CreateBlendShapeKey("Blink", BlendShapePreset.Blink)));
|
|
Assert.IsTrue(dict.ContainsKey(BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink)));
|
|
Assert.IsTrue(dict.ContainsKey(CreateBlendShapeKey("xxx", BlendShapePreset.Blink)));
|
|
|
|
dict.Clear();
|
|
|
|
var key2 = BlendShapeKey.CreateUnknown("Blink"); // Name: Blink, Preset: Unknown
|
|
dict[key2] = 1.0f;
|
|
|
|
Assert.AreEqual(key2, CreateBlendShapeKey("Blink", BlendShapePreset.Unknown));
|
|
Assert.AreNotEqual(key2, BlendShapeKey.CreateUnknown("blink"));
|
|
Assert.AreNotEqual(key2, CreateBlendShapeKey("Blink", BlendShapePreset.Blink));
|
|
Assert.AreNotEqual(key2, BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink));
|
|
Assert.AreEqual(key2.Name, "Blink");
|
|
|
|
Assert.IsFalse(dict.ContainsKey(BlendShapeKey.CreateUnknown("blink")));
|
|
Assert.IsFalse(dict.ContainsKey(CreateBlendShapeKey("Blink", BlendShapePreset.Blink)));
|
|
Assert.IsFalse(dict.ContainsKey(BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink)));
|
|
|
|
var key3 = CreateBlendShapeKey("xxx", BlendShapePreset.Blink); // Unknown 以外は独自の名前を持てない
|
|
Assert.AreEqual(key3, BlendShapeKey.CreateFromPreset(BlendShapePreset.Blink));
|
|
Assert.AreNotEqual(key3, CreateBlendShapeKey("xxx", BlendShapePreset.Unknown));
|
|
Assert.AreEqual(key3.Name, "Blink");
|
|
}
|
|
}
|
|
}
|