PkmnLibRSharp/PkmnLibRSharpTests/StaticData/Libraries/TypeLibraryTests.cs

95 lines
3.2 KiB
C#

using System.Collections.Generic;
using NUnit.Framework;
using PkmnLibSharp.StaticData;
using PkmnLibSharp.StaticData.Libraries;
namespace PkmnLibRSharpTests.StaticData.Libraries
{
public class TypeLibraryTests
{
[Test]
public void CreateTypeLibrary()
{
var typeLibrary = TypeLibrary.Create(0);
}
[Test]
public void RegisterType()
{
var typeLibrary = TypeLibrary.Create(0);
typeLibrary.RegisterType("foobar");
}
[Test]
public void RegisterTypeRetrieve()
{
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
Assert.AreEqual(typeIdentifier1, new TypeIdentifier(1));
var typeIdentifier2 = typeLibrary.RegisterType("bar");
Assert.AreEqual(typeIdentifier2, new TypeIdentifier(2));
Assert.AreEqual(typeIdentifier1, typeLibrary.GetTypeId("foo"));
Assert.AreEqual(typeIdentifier2, typeLibrary.GetTypeId("bar"));
}
[Test]
public void GetUnknownTypeErrors()
{
var typeLibrary = TypeLibrary.Create(0);
typeLibrary.RegisterType("foo");
Assert.Throws<KeyNotFoundException>(() =>
{
typeLibrary.GetTypeId("bar");
});
}
[Test]
public void GetTypeName()
{
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
Assert.AreEqual("foo", typeLibrary.GetTypeName(typeIdentifier1));
}
[Test]
public void GetUnknownTypeNameErrors()
{
var typeLibrary = TypeLibrary.Create(0);
typeLibrary.RegisterType("foo");
Assert.Throws<KeyNotFoundException>(() =>
{
typeLibrary.GetTypeName(new TypeIdentifier(100));
});
}
[Test]
public void SetEffectiveness()
{
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
var typeIdentifier2 = typeLibrary.RegisterType("bar");
typeLibrary.SetEffectiveness(typeIdentifier1, typeIdentifier2, 0.5f);
}
[Test]
public void GetEffectiveness()
{
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
var typeIdentifier2 = typeLibrary.RegisterType("bar");
typeLibrary.SetEffectiveness(typeIdentifier1, typeIdentifier2, 0.5f);
Assert.AreEqual(0.5f, typeLibrary.GetSingleEffectiveness(typeIdentifier1, typeIdentifier2));
}
[Test]
public void GetMultipleEffectiveness()
{
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
var typeIdentifier2 = typeLibrary.RegisterType("bar");
typeLibrary.SetEffectiveness(typeIdentifier1, typeIdentifier2, 0.5f);
Assert.AreEqual(0.25f,
typeLibrary.GetEffectiveness(typeIdentifier1, new[] { typeIdentifier2, typeIdentifier2 }));
}
}
}