[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
@@ -80,6 +80,9 @@ namespace YachtDice.Tests
// ── Phase Ordering ──────────────────────────────────────────
/// <summary>
/// Аддитивные эффекты применяются раньше мультипликативных.
/// </summary>
[Test]
public void Execute_AdditiveBeforeMultiplicative()
{
@@ -101,6 +104,9 @@ namespace YachtDice.Tests
Assert.AreEqual(60, result.FinalScore);
}
/// <summary>
/// Пост-мультипликативная фаза выполняется после мультипликативной.
/// </summary>
[Test]
public void Execute_PostMultiplicativeAfterMultiplicative()
{
@@ -124,6 +130,9 @@ namespace YachtDice.Tests
// ── Condition Filtering ─────────────────────────────────────
/// <summary>
/// Эффект пропускается, если условие модификатора не выполнено.
/// </summary>
[Test]
public void Execute_ConditionFails_SkipsEffect()
{
@@ -144,6 +153,9 @@ namespace YachtDice.Tests
Assert.AreEqual(5, result.FinalScore);
}
/// <summary>
/// Эффект применяется, когда условие модификатора выполняется.
/// </summary>
[Test]
public void Execute_ConditionPasses_AppliesEffect()
{
@@ -165,6 +177,9 @@ namespace YachtDice.Tests
// ── Trigger Filtering ───────────────────────────────────────
/// <summary>
/// Модификатор пропускается при несовпадении триггера события.
/// </summary>
[Test]
public void Execute_WrongTrigger_SkipsModifier()
{
@@ -183,6 +198,9 @@ namespace YachtDice.Tests
// ── Multiple Modifiers ──────────────────────────────────────
/// <summary>
/// Несколько модификаторов применяются в правильном порядке фаз и приоритетов.
/// </summary>
[Test]
public void Execute_MultipleModifiers_CorrectOrder()
{
@@ -215,6 +233,9 @@ namespace YachtDice.Tests
// ── Empty / Null Cases ──────────────────────────────────────
/// <summary>
/// При отсутствии активных модификаторов результат не изменяется.
/// </summary>
[Test]
public void Execute_NoActiveModifiers_NoChange()
{
@@ -226,6 +247,9 @@ namespace YachtDice.Tests
Assert.AreEqual(1f, result.Multiplier);
}
/// <summary>
/// Неактивный модификатор не влияет на вычисление результата.
/// </summary>
[Test]
public void Execute_InactiveModifier_Skipped()
{
@@ -244,6 +268,9 @@ namespace YachtDice.Tests
// ── Side Effects ────────────────────────────────────────────
/// <summary>
/// Побочные эффекты выполняются в фазе SideEffect и сохраняют корректный результат.
/// </summary>
[Test]
public void Execute_SideEffectsInSideEffectPhase()
{
@@ -265,6 +292,9 @@ namespace YachtDice.Tests
// ── Tracing ─────────────────────────────────────────────────
/// <summary>
/// При включенном трейсинге pipeline наполняет отладочный лог.
/// </summary>
[Test]
public void Execute_TracingEnabled_PopulatesDebugLog()
{
@@ -285,6 +315,9 @@ namespace YachtDice.Tests
// ── DiceValue Condition ──────────────────────────────────────
/// <summary>
/// Условие по значению костей срабатывает только при достижении нужного количества совпадений.
/// </summary>
[Test]
public void Execute_DiceValueCondition_OnlyTriggersOnMatch()
{
@@ -312,6 +345,9 @@ namespace YachtDice.Tests
// ── MinScore Condition ──────────────────────────────────────
/// <summary>
/// Условие минимального базового счета работает ниже и на пороговом значении.
/// </summary>
[Test]
public void Execute_MinScoreCondition_ThresholdWorks()
{
@@ -339,6 +375,9 @@ namespace YachtDice.Tests
// ── ToScoreResult ───────────────────────────────────────────
/// <summary>
/// Преобразование контекста в ScoreResult корректно переносит все поля.
/// </summary>
[Test]
public void ToScoreResult_ConvertsCorrectly()
{