public void BuildDiceBucket_BasicFateDice() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(1); numberGenerator.QueuedResults.Enqueue(2); numberGenerator.QueuedResults.Enqueue(3); var bucket = diceRoller.BuildDiceBucket("3dF", RollType.normalRoll, new List <int>()); Assert.That(bucket.Count == 1); Assert.That(bucket[3].ToArray()[0] == "-1"); Assert.That(bucket[3].ToArray()[1] == "+0"); Assert.That(bucket[3].ToArray()[2] == "+1"); }
public void BuildDiceBucket_ComplicatedRollWithBadData() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(3); numberGenerator.QueuedResults.Enqueue(5); var bucket = diceRoller.BuildDiceBucket("d20 + fred -george !r#andom %%text IS $here + 5-3-2d10 + 7-2", RollType.normalRoll, new List <int>()); Assert.That(bucket.Count == 3); Assert.That(bucket[20].Count == 1); Assert.That(bucket[10].Count == 2); Assert.That(bucket[0].Count == 4); }
public void BuildDiceBucket_DiceMultiplier() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(15); numberGenerator.QueuedResults.Enqueue(5); numberGenerator.QueuedResults.Enqueue(8); numberGenerator.QueuedResults.Enqueue(3); var bucket = diceRoller.BuildDiceBucket(@"2d20 + 5 - 3d6", RollType.normalRoll, new List <int>()); Assert.That(bucket.Count == 3); Assert.That(bucket[20].Count == 2); Assert.That(bucket[6].Count == 3); }
public void BuildDiceBucket_MultipleLists() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(3); var bucket = diceRoller.BuildDiceBucket(@"d20 +5, d10+3", RollType.normalRoll, new List <int>()); Assert.That(bucket.Count == 3); Assert.That(bucket[20].Count == 1); Assert.That(bucket[20].ToArray()[0] == "+10"); Assert.That(bucket[10].Count == 1); Assert.That(bucket[10].ToArray()[0] == "+3"); Assert.That(bucket[0].Count == 2); }
public void BuildDiceBucket_RollWithDisadvantage() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(3); var throwAway = new List <int>(); var bucket = diceRoller.BuildDiceBucket("d20+4 /dis", RollType.withDisadvantage, throwAway); Assert.That(bucket.Count == 2); Assert.That(bucket[20].Count == 1); Assert.That(bucket[20].ToArray()[0] == "+3"); Assert.That(throwAway.Count == 1); }
public void BuildDiceBucket_ComplicatedRoll() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(3); var bucket = diceRoller.BuildDiceBucket(@"/d20 + 5 -3-/d10 + 7-2", RollType.normalRoll, new List <int>()); Assert.That(bucket.Count == 3); Assert.That(bucket[20].Count == 1); Assert.That(bucket[20].ToArray()[0] == "+10"); Assert.That(bucket[10].Count == 1); Assert.That(bucket[10].ToArray()[0] == "-3"); Assert.That(bucket[0].Count == 4); Assert.That(bucket[0].ToArray()[0] == "+5"); Assert.That(bucket[0].ToArray()[1] == "-3"); Assert.That(bucket[0].ToArray()[2] == "+7"); Assert.That(bucket[0].ToArray()[3] == "-2"); }
public void BuildDiceBucket_RollWithAdvantageMoreComplicatedRoll() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(3); numberGenerator.QueuedResults.Enqueue(4); numberGenerator.QueuedResults.Enqueue(6); numberGenerator.QueuedResults.Enqueue(2); var throwAway = new List <int>(); var bucket = diceRoller.BuildDiceBucket("d20 +2d8 -7 +2 -1d4 adv", RollType.withAdvantage, throwAway); Assert.That(bucket.Count == 4); Assert.That(bucket[20].Count == 1); Assert.That(bucket[20].ToArray()[0] == "+10"); Assert.That(throwAway.Count == 1); Assert.That(bucket[8].Count == 2); Assert.That(bucket[4].Count == 1); }
public void BuildDiceBucket_RollWithAdvantageMultipleD20s() { var diceRoller = new DiceRoller(numberGenerator); numberGenerator.QueuedResults.Enqueue(10); numberGenerator.QueuedResults.Enqueue(3); numberGenerator.QueuedResults.Enqueue(6); numberGenerator.QueuedResults.Enqueue(20); // Right now the way this is coded, each d20 will get multiple rolls, so effectively each roll // will be rolled with advantage. Not sure if this is what we really want in the end or not. var throwAway = new List <int>(); var bucket = diceRoller.BuildDiceBucket("2d20+4 /adv", RollType.withAdvantage, throwAway); Assert.That(bucket.Count == 2); Assert.That(bucket[20].Count == 2); Assert.That(throwAway.Count == 2); Assert.That(bucket[20].ToArray()[0] == "+10"); Assert.That(bucket[20].ToArray()[1] == "+20"); }