public void DiceTerm_CalculateResultsExplodingLowerThanMaxTest() { // setup test IExpressionTerm term = new DiceTerm(10, 12, exploding: 9); // run test IReadOnlyList <TermResult> results = term.CalculateResults(new RandomDieRoller()); // validate results Assert.IsNotNull(results); int count = 10; foreach (TermResult r in results) { Assert.IsNotNull(r); Assert.AreEqual(1, r.Scalar); AssertHelpers.IsWithinRangeInclusive(1, 12, r.Value); if (r.Value >= 9) { count++; } Assert.AreEqual("DiceTerm.d12", r.Type); } Assert.AreEqual(count, results.Count); }
public void DiceTerm_CalculateResultsChooseDiceTest() { // setup test IExpressionTerm term = new FudgeDiceTerm(5, 3); // run test IReadOnlyList <TermResult> results = term.CalculateResults(roller); // validate results Assert.IsNotNull(results); Assert.AreEqual(5, results.Count); int included = 0; foreach (TermResult r in results) { Assert.IsNotNull(r); Assert.AreEqual(1, r.Scalar); AssertHelpers.IsWithinRangeInclusive(-1, 1, r.Value); Assert.AreEqual("FudgeDiceTerm.dF", r.Type); if (r.AppliesToResultCalculation) { included++; } } Assert.AreEqual(3, included); }
public void Dice_RollMultipleFudgeDiceTest() { // setup test IDice dice = new Dice(); dice.FudgeDice(6); // run test DiceResult result = dice.Roll(this.roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); AssertHelpers.IsWithinRangeInclusive(-6, 6, result.Value); Assert.AreEqual(6, result.Results.Count); int sum = 0; foreach (TermResult r in result.Results) { AssertHelpers.IsWithinRangeInclusive(-1, 1, r.Value); sum += r.Value; } Assert.AreEqual(sum, result.Value); Assert.AreEqual("6f", result.DiceExpression); }
public void Dice_RollSingleDieTest() { // setup test IDice dice = new Dice(); dice.Dice(20); // run test DiceResult result = dice.Roll(roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); AssertHelpers.IsWithinRangeInclusive(1, 20, result.Value); Assert.AreEqual(1, result.Results.Count); int sum = 0; foreach (TermResult r in result.Results) { AssertHelpers.IsWithinRangeInclusive(1, 20, r.Value); sum += r.Value; } Assert.AreEqual(sum, result.Value); Assert.AreEqual("1d20", result.DiceExpression); }
public void Dice_RollExplodingDiceTest() { // setup test IDice dice = new Dice(); dice.Dice(6, 4, exploding: 6); // run test DiceResult result = dice.Roll(roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); int sum = 0, count = 4; foreach (TermResult r in result.Results) { Assert.IsNotNull(r); Assert.AreEqual(1, r.Scalar); AssertHelpers.IsWithinRangeInclusive(1, 6, r.Value); Assert.AreEqual("DiceTerm.d6", r.Type); sum += r.Value; if (r.Value >= 6) { count++; } } Assert.AreEqual(count, result.Results.Count); Assert.AreEqual(sum, result.Value); Assert.AreEqual("4d6!6", result.DiceExpression); }
public void Dice_RollScalarMultiplierDiceTest() { // setup test IDice dice = new Dice(); dice.Dice(8, 2, 10); // run test DiceResult result = dice.Roll(roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); AssertHelpers.IsWithinRangeInclusive(20, 160, result.Value); Assert.AreEqual(2, result.Results.Count); int sum = 0; foreach (TermResult r in result.Results) { AssertHelpers.IsWithinRangeInclusive(1, 8, r.Value); sum += (int)(r.Value * r.Scalar); } Assert.AreEqual(sum, result.Value); Assert.AreEqual("2d8x10", result.DiceExpression); }
public void DiceParser_ParseDiceWithExplodingNoValueRandomTest() { // setup test DiceParser parser = new DiceParser(); // run test DiceResult result = parser.Parse("10d6!", this.config, new RandomDieRoller()); // validate results Assert.IsNotNull(result); Assert.AreEqual("10d6!", result.DiceExpression); int sum = 0, count = 10; foreach (TermResult r in result.Results) { Assert.IsNotNull(r); Assert.AreEqual(1, r.Scalar); AssertHelpers.IsWithinRangeInclusive(1, 6, r.Value); Assert.AreEqual("DiceTerm.d6", r.Type); sum += r.Value; if (r.Value >= 6) { count++; } } Assert.AreEqual(count, result.Results.Count); Assert.AreEqual(sum, result.Value); }
public void DiceTerm_CalculateResultsExplodingAndChooseTest() { // setup test IExpressionTerm term = new DiceTerm(10, 12, choose: 8, exploding: 9); // run test IReadOnlyList <TermResult> results = term.CalculateResults(new RandomDieRoller()); // validate results Assert.IsNotNull(results); int included = 0; foreach (TermResult r in results) { Assert.IsNotNull(r); Assert.AreEqual(1, r.Scalar); AssertHelpers.IsWithinRangeInclusive(1, 12, r.Value); Assert.AreEqual("DiceTerm.d12", r.Type); if (r.AppliesToResultCalculation) { included++; } } Assert.AreEqual(8, included); }
public void DieRollTracker_AddMultipleDieRollTest() { // setup test IDieRollTracker t = new DieRollTracker(); // run test t.AddDieRoll(6, 4, typeof(RandomDieRoller)); t.AddDieRoll(6, 3, typeof(RandomDieRoller)); t.AddDieRoll(6, 1, typeof(RandomDieRoller)); t.AddDieRoll(6, 6, typeof(RandomDieRoller)); t.AddDieRoll(6, 2, typeof(RandomDieRoller)); t.AddDieRoll(6, 4, typeof(RandomDieRoller)); Task <IList <DieTrackingData> > task = t.GetTrackingDataAsync(); task.Wait(); IList <DieTrackingData> d = task.Result; // validate results Assert.IsNotNull(d); Assert.AreEqual(6, d.Count); foreach (DieTrackingData e in d) { Assert.AreEqual("RandomDieRoller", e.RollerType); Assert.AreEqual("6", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 6, e.Result); } }
public void DieRollTrackerWithMathNetRoller_MultipleDieSidesTest() { // setup test this.roller.Roll(12); this.roller.Roll(12); this.roller.Roll(12); this.roller.Roll(12); this.roller.Roll(8); this.roller.Roll(8); this.roller.Roll(8); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); this.roller.Roll(20); // run test Task <IList <DieTrackingData> > t1 = this.tracker.GetTrackingDataAsync(dieSides: "12"); t1.Wait(); IList <DieTrackingData> data1 = t1.Result; Task <IList <DieTrackingData> > t2 = this.tracker.GetTrackingDataAsync(dieSides: "8"); t2.Wait(); IList <DieTrackingData> data2 = t2.Result; Task <IList <DieTrackingData> > t3 = this.tracker.GetTrackingDataAsync(dieSides: "20"); t3.Wait(); IList <DieTrackingData> data3 = t3.Result; // validate results Assert.AreEqual(17, data1.Count + data2.Count + data3.Count); Assert.AreEqual(4, data1.Count); foreach (DieTrackingData e in data1) { Assert.AreEqual("12", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 12, e.Result); } Assert.AreEqual(3, data2.Count); foreach (DieTrackingData e in data2) { Assert.AreEqual("8", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 8, e.Result); } Assert.AreEqual(10, data3.Count); foreach (DieTrackingData e in data3) { Assert.AreEqual("20", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 20, e.Result); } }
public void SecureRandomDieRoller_Rolld8Test() { // setup test IDieRoller die = new SecureRandomDieRoller(); // run test int result = die.Roll(8); // validate results AssertHelpers.IsWithinRangeInclusive(1, 8, result); }
public void RandomDieRoller_Rolld20Test() { // setup test IDieRoller die = new RandomDieRoller(); // run test int result = die.Roll(20); // validate results AssertHelpers.IsWithinRangeInclusive(1, 20, result); }
public void MathNetDieRoller_Rolld6Test() { // setup test IDieRoller die = new MathNetDieRoller(); // run test int result = die.Roll(6); // validate results AssertHelpers.IsWithinRangeInclusive(1, 6, result); }
public void MathNetDieRoller_RollWithAnotherRandomSourceTest() { // setup test - try out a different MathNet random source (there are many) IDieRoller die = new MathNetDieRoller(new WH2006()); // run test for (int i = 0; i < 1000; i++) { int result = die.Roll(6); // validate results AssertHelpers.IsWithinRangeInclusive(1, 6, result); } }
public void DiceParser_ParseSingleFudgeDieTest() { // setup test DiceParser parser = new DiceParser(); // run test DiceResult result = parser.Parse("f", config, this.roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("f", result.DiceExpression); Assert.AreEqual(1, result.Results.Count); AssertHelpers.IsWithinRangeInclusive(-1, 1, result.Value); }
public void SecureRandomDieRoller_RollThousanD6Test() { // setup test IDieRoller die = new SecureRandomDieRoller(); // run test for (int i = 0; i < 1000; i++) { int result = die.Roll(6); // validate results AssertHelpers.IsWithinRangeInclusive(1, 6, result); } }
public void DiceParser_ParseParensFudgeTest() { // setup test DiceParser parser = new DiceParser(); // run test DiceResult result = parser.Parse("(10f-2) / (1+1)", this.config, this.roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("(10f-2)/(1+1)", result.DiceExpression); Assert.AreEqual(10, result.Results.Count); AssertHelpers.IsWithinRangeInclusive(-5, 5, result.Value); }
public void SecureRandomDieRoller_RollMultipleFudgeTest() { // setup test IDieRoller die = new SecureRandomDieRoller(); // run test for (int i = 0; i < 100; i++) { int result = die.Roll(3, -2); // validate results AssertHelpers.IsWithinRangeInclusive(-1, 1, result); } }
public void Dice_RollChooseDiceTest() { // setup test IDice dice = new Dice(); dice.Dice(6, 4, choose: 3); // run test DiceResult result = dice.Roll(roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); AssertHelpers.IsWithinRangeInclusive(3, 18, result.Value); AssertHelpers.AssertDiceChoose(result, "4d6k3", "DiceTerm.d6", 4, 3); }
public void Dice_RollFudgeChooseDiceTest() { // setup test IDice dice = new Dice(); dice.FudgeDice(6, 3); // run test DiceResult result = dice.Roll(this.roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); AssertHelpers.IsWithinRangeInclusive(-3, 3, result.Value); AssertHelpers.AssertDiceChoose(result, "6fk3", "FudgeDiceTerm.dF", 6, 3); }
public void DiceTerm_CalculateResultsTest() { // setup test IExpressionTerm term = new FudgeDiceTerm(1); // run test IReadOnlyList <TermResult> results = term.CalculateResults(roller); // validate results Assert.IsNotNull(results); Assert.AreEqual(1, results.Count); TermResult r = results.FirstOrDefault(); Assert.IsNotNull(r); Assert.AreEqual(1, r.Scalar); AssertHelpers.IsWithinRangeInclusive(-1, 1, r.Value); Assert.AreEqual("FudgeDiceTerm.dF", r.Type); }
public void DieRollTracker_AddMultipleDieRollDieTypesTest() { // setup test IDieRollTracker t = new DieRollTracker(); // run test t.AddDieRoll(6, 4, typeof(RandomDieRoller)); t.AddDieRoll(6, 3, typeof(RandomDieRoller)); t.AddDieRoll(6, 5, typeof(RandomDieRoller)); t.AddDieRoll(6, 6, typeof(RandomDieRoller)); t.AddDieRoll(6, 2, typeof(ConstantDieRoller)); t.AddDieRoll(6, 2, typeof(ConstantDieRoller)); Task <IList <DieTrackingData> > task = t.GetTrackingDataAsync(); task.Wait(); IList <DieTrackingData> d = task.Result; // validate results Assert.IsNotNull(d); Assert.AreEqual(6, d.Count); int i; for (i = 0; i < 2; i++) { DieTrackingData e = d[i]; Assert.AreEqual("ConstantDieRoller", e.RollerType); Assert.AreEqual("6", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 6, e.Result); } for (int x = i; x < 6; x++) { DieTrackingData e = d[x]; Assert.AreEqual("RandomDieRoller", e.RollerType); Assert.AreEqual("6", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 6, e.Result); } }
public void Dice_ParseMultipleDiceTest() { // setup test IDice dice = new Dice(); // run test DiceResult result = dice.Roll("3d6+2", roller); // validate results Assert.IsNotNull(result); Assert.AreEqual("OnePlat.DiceNotation.DieRoller.RandomDieRoller", result.DieRollerUsed); AssertHelpers.IsWithinRangeInclusive(5, 20, result.Value); int sum = 0; foreach (TermResult r in result.Results) { AssertHelpers.IsWithinRangeInclusive(1, 6, r.Value); sum += r.Value; } sum += 2; Assert.AreEqual(sum, result.Value); Assert.AreEqual("3d6+2", result.DiceExpression); }
public void DieRollTrackerWithMathNetRoller_SingleDieSidesTest() { // setup test this.roller.Roll(12); this.roller.Roll(12); this.roller.Roll(12); this.roller.Roll(12); this.roller.Roll(12); // run test Task <IList <DieTrackingData> > t = this.tracker.GetTrackingDataAsync(); t.Wait(); IList <DieTrackingData> data = t.Result; // validate results Assert.AreEqual(5, data.Count); foreach (DieTrackingData e in data) { Assert.AreEqual("MathNetDieRoller", e.RollerType); Assert.AreEqual("12", e.DieSides); AssertHelpers.IsWithinRangeInclusive(1, 12, e.Result); } }