/// <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);
        }
Example #2
0
        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);
            }
        }