Exemplo n.º 1
0
        /// <summary>
        /// Generate random digit code
        /// </summary>
        /// <param name="length">Length</param>
        /// <returns>Result string</returns>
        public static string GenerateRandomDigitCode(int length)
        {
            using var random = new SecureRandomNumberGenerator();
            var str = string.Empty;

            for (var i = 0; i < length; i++)
            {
                str = string.Concat(str, random.Next(10).ToString());
            }
            return(str);
        }
        public void NextDouble_ReturnsValuesBetween0And1()
        {
            // Arrange
            var randomValues = new double[Iterations];
            var rng          = new SecureRandomNumberGenerator();

            // Action
            for (var i = 0; i < Iterations; i++)
            {
                randomValues[i] = rng.NextDouble();
            }

            // Assert
            Assert.IsTrue(randomValues.All(x => x >= 0 && x < 1));
        }
        public void NextInt_TwoArguments_ReturnsEquallyDistributedValues()
        {
            // Arrange
            var       randomValues      = new long[Iterations];
            var       rng               = new SecureRandomNumberGenerator();
            const int AcceptedDeviation = 240;

            // Action
            for (var i = 0; i < Iterations; i++)
            {
                randomValues[i] = rng.NextInt(1_200, 3_600);
            }

            // Assert
            Assert.IsTrue(randomValues.Sum() / Iterations > 2_400 - AcceptedDeviation);
            Assert.IsTrue(randomValues.Sum() / Iterations < 2_400 + AcceptedDeviation);
        }
        public void NextDouble_ReturnsEquallyDistributedValues()
        {
            // Arrange
            var       randomValues      = new double[Iterations];
            var       rng               = new SecureRandomNumberGenerator();
            const int AcceptedDeviation = 1000;

            // Action
            for (var i = 0; i < Iterations; i++)
            {
                randomValues[i] = rng.NextDouble();
            }

            // Assert
            Assert.IsTrue(randomValues.Sum() > Iterations / 2 - AcceptedDeviation);
            Assert.IsTrue(randomValues.Sum() < Iterations / 2 + AcceptedDeviation);
        }
Exemplo n.º 5
0
        // public DbHostServerPort MasterDatabaseHost { get; set; } = new DbHostServerPort();
        // public IList<DbHostServerPort> SlaveDatabaseHost { get; set; } = new List<DbHostServerPort>();

        public string GetSecureRandomReadDataConnectionString()
        {
            if (ReadDataConnectionString == null ||
                !ReadDataConnectionString.Any())
            {
                return(MasterDataConnectionString);
            }
            else
            {
                if (ReadDataConnectionString.Count == 1)
                {
                    return(ReadDataConnectionString[0]);
                }
                else
                {
                    var index = SecureRandomNumberGenerator.GetInt32(0,
                                                                     ReadDataConnectionString.Count);
                    return(ReadDataConnectionString[index]);
                }
            }
        }
        public void NextInt_NoArgument_ReturnsEquallyDistributedValues()
        {
            // Arrange
            var       bitEquals1Counters = new int[31]; // to 31 because first bit indicates +-
            var       rng = new SecureRandomNumberGenerator();
            const int AcceptedDeviation = Iterations / 100;

            // Action
            for (var i = 0; i < Iterations; i++)
            {
                var value = rng.NextInt();
                for (var j = 0; j < 31; j++)
                {
                    if ((value & (1 << j)) == (1 << j))
                    {
                        bitEquals1Counters[j]++;
                    }
                }
            }

            // Assert
            Assert.IsTrue(bitEquals1Counters.All(x => x >= Iterations / 2 - AcceptedDeviation));
            Assert.IsTrue(bitEquals1Counters.All(x => x <= Iterations / 2 + AcceptedDeviation));
        }
Exemplo n.º 7
0
 /// <summary>
 /// Returns an random integer number within a specified rage
 /// </summary>
 /// <param name="min">Minimum number</param>
 /// <param name="max">Maximum number</param>
 /// <returns>Result</returns>
 public static int GenerateRandomInteger(int min = 0, int max = int.MaxValue)
 {
     using var random = new SecureRandomNumberGenerator();
     return(random.Next(min, max));
 }