public void TestCalculateExpectedValueOfCurrentDiceRoll(int[] diceRoll, double expectedExpectedValue) { var diceRerollOptimizer = new DiceRerollOptimizer(); var memo = new Dictionary <int, double> { { 0, 0 }, { 1, 3.5 }, { 2, 4.11805556 } }; var actualExpectedValue = diceRerollOptimizer.CalculateExpectedValueOfCurrentDiceRoll(diceRoll.ToList(), diceRoll.Length, memo); Assert.LessOrEqual(Math.Abs(actualExpectedValue - expectedExpectedValue), epsilon); }