public void CanGetProficiencyBonus() { var proficiencyCalculator = new ProficiencyCalculator(); //Base threshold. var result = proficiencyCalculator.GetProficiencyBonus(1); result.ShouldBeEquivalentTo(2); //Level 5 threshold. result = proficiencyCalculator.GetProficiencyBonus(5); result.ShouldBeEquivalentTo(3); //Level 10 threshold. result = proficiencyCalculator.GetProficiencyBonus(10); result.ShouldBeEquivalentTo(4); //Level 15 threshold. result = proficiencyCalculator.GetProficiencyBonus(15); result.ShouldBeEquivalentTo(5); //Level 20 threshold. result = proficiencyCalculator.GetProficiencyBonus(20); result.ShouldBeEquivalentTo(6); }
public void CalculateProficiency_NormalLevelProgression_ReturnsCorrectProficiency(int level, int expectedProficiency) { // Act int result = ProficiencyCalculator.CalculateProficiency(level); // Assert Assert.AreEqual(expectedProficiency, result, $"Proficiency for level {level} is expected to be {expectedProficiency}, but is {result}"); }
public void ProficiencyArgumentsOutOfRange() { var proficiencyCalculator = new ProficiencyCalculator(); //Test if character level is less than 1. proficiencyCalculator.Invoking(f => f.GetProficiencyBonus(0)).ShouldThrow <ArgumentOutOfRangeException>(); //Test if modifier is less than 0. proficiencyCalculator.Invoking(f => f.GetProficiencyBonus(20, -1)).ShouldThrow <ArgumentOutOfRangeException>(); }