[Add] Tests summary & fix scene

This commit is contained in:
2026-03-05 10:21:05 +07:00
parent 05c2619de4
commit 9580d76a53
10 changed files with 466 additions and 0 deletions
@@ -42,6 +42,9 @@ namespace YachtDice.Tests
// ── AddPerDiceEffect ─────────────────────────────────────────
/// <summary>
/// Эффект добавляет бонус за каждую кость с целевым значением.
/// </summary>
[Test]
public void AddPerDiceEffect_CountsMatchingDice()
{
@@ -54,6 +57,9 @@ namespace YachtDice.Tests
Assert.AreEqual(30, ctx.FlatBonus); // 10 * 3 matching dice
}
/// <summary>
/// При целевом значении 0 бонус начисляется за все кости.
/// </summary>
[Test]
public void AddPerDiceEffect_ZeroTarget_CountsAllDice()
{
@@ -66,6 +72,9 @@ namespace YachtDice.Tests
Assert.AreEqual(10, ctx.FlatBonus); // 2 * 5 dice
}
/// <summary>
/// При отсутствии совпадений по значению бонус остается нулевым.
/// </summary>
[Test]
public void AddPerDiceEffect_NoMatches_ZeroBonus()
{
@@ -78,6 +87,9 @@ namespace YachtDice.Tests
Assert.AreEqual(0, ctx.FlatBonus);
}
/// <summary>
/// Бонус AddPerDice масштабируется количеством стаков модификатора.
/// </summary>
[Test]
public void AddPerDiceEffect_ScalesWithStacks()
{
@@ -93,6 +105,9 @@ namespace YachtDice.Tests
// ── AddFlatScoreEffect ──────────────────────────────────────
/// <summary>
/// Эффект AddFlatScore добавляет фиксированный бонус к очкам.
/// </summary>
[Test]
public void AddFlatScoreEffect_AddsFlat()
{
@@ -105,6 +120,9 @@ namespace YachtDice.Tests
Assert.AreEqual(15, ctx.FlatBonus);
}
/// <summary>
/// Фиксированный бонус AddFlatScore масштабируется стаками.
/// </summary>
[Test]
public void AddFlatScoreEffect_ScalesWithStacks()
{
@@ -120,6 +138,9 @@ namespace YachtDice.Tests
// ── MultiplyPerDiceEffect ────────────────────────────────────
/// <summary>
/// MultiplyPerDice увеличивает множитель за каждое совпадение по кости.
/// </summary>
[Test]
public void MultiplyPerDiceEffect_MultipliesPerMatch()
{
@@ -132,6 +153,9 @@ namespace YachtDice.Tests
Assert.AreEqual(8f, ctx.Multiplier, 0.001f); // 1 * 2 * 2 * 2 = 8
}
/// <summary>
/// Без совпадений MultiplyPerDice не изменяет множитель.
/// </summary>
[Test]
public void MultiplyPerDiceEffect_NoMatches_MultiplierUnchanged()
{
@@ -146,6 +170,9 @@ namespace YachtDice.Tests
// ── MultiplyScoreEffect ─────────────────────────────────────
/// <summary>
/// MultiplyScore применяет заданный множитель один раз.
/// </summary>
[Test]
public void MultiplyScoreEffect_MultipliesOnce()
{
@@ -158,6 +185,9 @@ namespace YachtDice.Tests
Assert.AreEqual(1.5f, ctx.Multiplier, 0.001f);
}
/// <summary>
/// MultiplyScore масштабирует множитель в зависимости от стаков.
/// </summary>
[Test]
public void MultiplyScoreEffect_ScalesWithStacks()
{
@@ -174,6 +204,9 @@ namespace YachtDice.Tests
// ── PostMultiplyEffect ──────────────────────────────────────
/// <summary>
/// PostMultiply изменяет пост-множитель контекста.
/// </summary>
[Test]
public void PostMultiplyEffect_MultipliesPostMultiplier()
{
@@ -188,6 +221,9 @@ namespace YachtDice.Tests
// ── AddCurrencyEffect ───────────────────────────────────────
/// <summary>
/// AddCurrency увеличивает дельту валюты в контексте.
/// </summary>
[Test]
public void AddCurrencyEffect_AddsToCurrencyDelta()
{
@@ -200,6 +236,9 @@ namespace YachtDice.Tests
Assert.AreEqual(25, ctx.CurrencyDelta);
}
/// <summary>
/// Эффект добавления валюты масштабируется стаками.
/// </summary>
[Test]
public void AddCurrencyEffect_ScalesWithStacks()
{
@@ -215,6 +254,9 @@ namespace YachtDice.Tests
// ── ConsumeChargeEffect ─────────────────────────────────────
/// <summary>
/// ConsumeCharge уменьшает число оставшихся использований ограниченного модификатора.
/// </summary>
[Test]
public void ConsumeChargeEffect_DecrementsRemainingUses()
{
@@ -229,6 +271,9 @@ namespace YachtDice.Tests
Assert.AreEqual(2, inst.RemainingUses);
}
/// <summary>
/// Постоянный модификатор игнорирует расход зарядов.
/// </summary>
[Test]
public void ConsumeChargeEffect_IgnoresPermanent()
{
@@ -243,6 +288,9 @@ namespace YachtDice.Tests
// ── FinalScore Integration ──────────────────────────────────
/// <summary>
/// Финальный счет корректно учитывает базу, бонус и множители.
/// </summary>
[Test]
public void FinalScore_CombinesBaseAndFlatAndMultiplier()
{