Files
aibis-dream/Assets/Editor/Tests/TextSpeedSettingsTests.cs
T

95 lines
2.8 KiB
C#

using NUnit.Framework;
namespace AibisDream.SystemEditor.Tests
{
public sealed class TextSpeedSettingsTests
{
[SetUp]
public void SetUp()
{
TextSpeedSettings.Reset();
}
[TearDown]
public void TearDown()
{
TextSpeedSettings.Reset();
}
[Test]
public void Normalize_MapsEverySupportedValueToCanonicalForm()
{
AssertNormalized(
"0.5",
TextSpeedSettings.SlowMultiplier,
TextSpeedSettings.SlowValue);
AssertNormalized(
"1.0",
TextSpeedSettings.DefaultMultiplier,
TextSpeedSettings.DefaultValue);
AssertNormalized(
"3",
TextSpeedSettings.FastMultiplier,
TextSpeedSettings.FastValue);
}
[Test]
public void Normalize_RejectsInvalidAndUnsupportedValues()
{
foreach (var rawValue in new[]
{
null,
string.Empty,
"invalid",
"NaN",
"Infinity",
"0",
"2",
"4"
})
{
Assert.That(
TextSpeedSettings.TryNormalize(
rawValue,
out var multiplier,
out var canonicalValue),
Is.False,
rawValue);
Assert.That(multiplier, Is.EqualTo(TextSpeedSettings.DefaultMultiplier));
Assert.That(canonicalValue, Is.EqualTo(TextSpeedSettings.DefaultValue));
}
}
[Test]
public void Reset_RestoresDefaultAfterRuntimeChange()
{
Assert.That(TextSpeedSettings.ApplyStoredValue("3"), Is.True);
TextSpeedSettings.Reset();
Assert.That(
TextSpeedSettings.CurrentMultiplier,
Is.EqualTo(TextSpeedSettings.DefaultMultiplier));
Assert.That(
TextSpeedSettings.CurrentCanonicalValue,
Is.EqualTo(TextSpeedSettings.DefaultValue));
}
private static void AssertNormalized(
string rawValue,
float expectedMultiplier,
string expectedCanonicalValue)
{
Assert.That(
TextSpeedSettings.TryNormalize(
rawValue,
out var multiplier,
out var canonicalValue),
Is.True,
rawValue);
Assert.That(multiplier, Is.EqualTo(expectedMultiplier));
Assert.That(canonicalValue, Is.EqualTo(expectedCanonicalValue));
}
}
}