74 lines
2.7 KiB
C#
74 lines
2.7 KiB
C#
using NUnit.Framework;
|
|
using SepCore.Definition;
|
|
using SepCore.UI;
|
|
|
|
namespace VampireLike.Tests.Gameplay.EditMode
|
|
{
|
|
[TestFixture]
|
|
public class StatPresentationTests
|
|
{
|
|
[Test]
|
|
public void StatRawData_StoresAndRetrievesValues()
|
|
{
|
|
var rawData = new StatRawData();
|
|
rawData.SetValue(StatType.MaxHp, 150f);
|
|
rawData[StatType.MeleeDamage] = 12f;
|
|
|
|
Assert.AreEqual(150f, rawData.GetValue(StatType.MaxHp));
|
|
Assert.AreEqual(12f, rawData[StatType.MeleeDamage]);
|
|
Assert.AreEqual(0f, rawData.GetValue(StatType.Armor));
|
|
}
|
|
|
|
[Test]
|
|
public void StatContext_FormatsDamagePercentAndAttackSpeedAsBonus()
|
|
{
|
|
var rawData = new StatRawData();
|
|
rawData.SetValue(StatType.DamagePercent, 1.05f);
|
|
rawData.SetValue(StatType.AttackSpeed, 1.19f);
|
|
|
|
var context = new StatContext(rawData);
|
|
|
|
string damageStr = context.GetFormattedValue(StatType.DamagePercent);
|
|
string attackSpeedStr = context.GetFormattedValue(StatType.AttackSpeed);
|
|
|
|
Assert.IsTrue(damageStr.Contains("+5%"), $"Expected '+5%' in '{damageStr}'");
|
|
Assert.IsTrue(attackSpeedStr.Contains("+19%"), $"Expected '+19%' in '{attackSpeedStr}'");
|
|
}
|
|
|
|
[Test]
|
|
public void StatContext_FormatsProbabilityStatsAsPercent()
|
|
{
|
|
var rawData = new StatRawData();
|
|
rawData.SetValue(StatType.CritChance, 0.25f);
|
|
rawData.SetValue(StatType.Dodge, 0.15f);
|
|
rawData.SetValue(StatType.LifeSteal, 0.05f);
|
|
|
|
var context = new StatContext(rawData);
|
|
|
|
string critStr = context.GetFormattedValue(StatType.CritChance);
|
|
string dodgeStr = context.GetFormattedValue(StatType.Dodge);
|
|
string lifeStealStr = context.GetFormattedValue(StatType.LifeSteal);
|
|
|
|
Assert.IsTrue(critStr.Contains("25%"), $"Expected '25%' in '{critStr}'");
|
|
Assert.IsTrue(dodgeStr.Contains("15%"), $"Expected '15%' in '{dodgeStr}'");
|
|
Assert.IsTrue(lifeStealStr.Contains("5%"), $"Expected '5%' in '{lifeStealStr}'");
|
|
}
|
|
|
|
[Test]
|
|
public void StatContext_FormatsScalarStatsAccurately()
|
|
{
|
|
var rawData = new StatRawData();
|
|
rawData.SetValue(StatType.MaxHp, 120f);
|
|
rawData.SetValue(StatType.Armor, 8f);
|
|
|
|
var context = new StatContext(rawData);
|
|
|
|
string hpStr = context.GetFormattedValue(StatType.MaxHp);
|
|
string armorStr = context.GetFormattedValue(StatType.Armor);
|
|
|
|
Assert.IsTrue(hpStr.Contains("120"), $"Expected '120' in '{hpStr}'");
|
|
Assert.IsTrue(armorStr.Contains("8"), $"Expected '8' in '{armorStr}'");
|
|
}
|
|
}
|
|
}
|