public void Successfully_RerollN_WhenConditionMet() { var node = new RerollNode(2, less5, Two) { Expression = _1d20 }; EvaluateNode(node, Data(RerollConf), 3, "1d20.rerollN(2, <5) => 1!* + 2* + 1! => 1"); }
public void Successfully_RerollOnce_WhenConditionMet() { var node = new RerollNode(1, less5) { Expression = _1d20 }; EvaluateNode(node, Data(RerollConf), 2, "1d20.rerollOnce(<5) => 1!* + 2 => 2"); }
public void Successfully_NotReroll_WhenConditionNotMet() { var node = new RerollNode(0, less5) { Expression = _1d20 }; EvaluateNode(node, Data(Roll9Conf), 1, "1d20.reroll(<5) => 9 => 9"); }
public void Successfully_Reroll_WhenConditionMet() { var node = new RerollNode(0, less5) { Expression = _1d20 }; EvaluateNode(node, Data(RerollConf), 4, "1d20.reroll(<5) => 1!* + 2* + 1!* + 10 => 10"); }
public void Successfully_AbortRerollWhenMaxRerollsReached() { var conf = new RollerConfig() { MaxRerolls = 2, GetRandomBytes = GetRNG(Roll1()) }; var node = new RerollNode(0, equal1) { Expression = _1d20 }; EvaluateNode(node, Data(conf), 3, "1d20.reroll(=1) => 1!* + 1!* + 1! => 1"); }
public void ThrowTooManyDice_WhenRerollingMoreThanMaxDice() { var conf = new RollerConfig() { MaxDice = 10, GetRandomBytes = GetRNG(Roll1()) }; var node = new RerollNode(0, equal1) { Expression = _1d20 }; EvaluateNode(node, Data(conf), DiceErrorCode.TooManyDice); }