/// <summary> /// Gets the die roller based on specified type. /// </summary> /// <param name="type">Type string</param> /// <param name="tracker">Die roll tracker to use</param> /// <returns>Instance of die roller, or null if none found.</returns> public IDieRoller GetDieRoller(string type, IDieRollTracker tracker = null) { IDieRoller roller = null; if (type == typeof(ConstantDieRoller).ToString()) { roller = new ConstantDieRoller(); } else if (type == typeof(RandomDieRoller).ToString()) { roller = new RandomDieRoller(tracker); } else if (type == typeof(SecureRandomDieRoller).ToString()) { roller = new SecureRandomDieRoller(tracker); } else if (type == typeof(MathNetDieRoller).ToString()) { roller = new MathNetDieRoller(tracker); } else { throw new ArgumentOutOfRangeException(nameof(type)); } return(roller); }
public void Configure(RollerType rollerType, bool enableTracker = false, int constantValue = 1) { RollTracker = enableTracker ? new DieRollTracker() : null; switch (rollerType) { case RollerType.Random: DieRoller = new RandomDieRoller(RollTracker); break; case RollerType.Crypto: DieRoller = new CryptoDieRoller(RollTracker); break; case RollerType.MathNet: DieRoller = new MathNetDieRoller(RollTracker); break; case RollerType.Constant: DieRoller = new ConstantDieRoller(constantValue); break; default: throw new ArgumentOutOfRangeException(nameof(rollerType)); } }
public void SecureRandomDieRoller_RollErrorTest() { // setup test IDieRoller die = new MathNetDieRoller(); // run test Assert.ThrowsException <ArgumentOutOfRangeException>(() => die.Roll(0)); // validate results }
public void MathNetDieRoller_Rolld8Test() { // setup test IDieRoller die = new MathNetDieRoller(); // run test int result = die.Roll(8); // validate results AssertHelpers.IsWithinRangeInclusive(1, 8, result); }
public void MathNetDieRoller_DefaultConstructorTest() { // setup test // run test IDieRoller die = new MathNetDieRoller(); // validate results Assert.IsNotNull(die); Assert.IsInstanceOfType(die, typeof(IDieRoller)); Assert.IsInstanceOfType(die, typeof(MathNetDieRoller)); }
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 MathNetDieRoller_RollThousanD6Test() { // setup test IDieRoller die = new MathNetDieRoller(); // run test for (int i = 0; i < 1000; i++) { int result = die.Roll(6); // validate results AssertHelpers.IsWithinRangeInclusive(1, 6, result); } }
public void MathNetDieRoller_RollMultipleFudgeTest() { // setup test IDieRoller die = new MathNetDieRoller(); // run test for (int i = 0; i < 100; i++) { int result = die.Roll(3, -2); // validate results AssertHelpers.IsWithinRangeInclusive(-1, 1, result); } }