示例#1
0
        public void AlphaUpperTest()
        {
            var alphaUpper = DataRandomizer.CreateString(DataRandomizer.DataType.AlphaUpper, 10);

            Assert.IsTrue(alphaUpper.All(ch => char.IsUpper(ch)), $"The string {alphaUpper} wasn't all uppercase.");
            Assert.AreEqual(10, alphaUpper.Length, "The string length wasn't 10.");
        }
示例#2
0
        /// <summary>
        /// Generates a random Social Security Number
        /// in the format of ###-##-####
        /// </summary>
        /// <returns></returns>
        private string GenerateRandomSSN()
        {
            var date = new DateTime(2011, 06, 25);
            int loc;
            var group    = DataRandomizer.GenearteRandomNumber(2);
            var sequence = DataRandomizer.GenearteRandomNumber(4);

            // Location part cannot be 000,666 or 900-999
            // If person is born after 6/25/2011
            if (DateOfBirth >= date)
            {
                do
                {
                    loc = Convert.ToInt32(DataRandomizer.GenearteRandomNumber(3));
                }while (loc == 000 || loc == 666 || !Enumerable.Range(900, 999).Contains(loc));

                return($"{loc.ToString()}-{group}-{sequence}");
            }
            //If Born before 06/25/2011 location part cannot be 667–679, 681–699 ,729–730, 750–772
            else
            {
                do
                {
                    loc = Convert.ToInt32(DataRandomizer.GenearteRandomNumber(3));
                }while (!Enumerable.Range(667, 679).Contains(loc) || !Enumerable.Range(681, 699).Contains(loc) || !Enumerable.Range(729, 730).Contains(loc) || !Enumerable.Range(750, 772).Contains(loc));

                return($"{loc.ToString()}-{group}-{sequence}");
            }
        }
示例#3
0
        public void NumericTest()
        {
            var numeric = DataRandomizer.CreateString(DataRandomizer.DataType.Numeric, 10);

            Assert.IsTrue(numeric.All(ch => char.IsNumber(ch)), $"The string {numeric} didn't contain all numbers.");
            Assert.AreEqual(10, numeric.Length, "The string length wasn't 10.");
        }
示例#4
0
        /// <summary>
        /// Generate a random contact message in json
        /// </summary>
        /// <returns></returns>
        private BrokeredMessage GenerateRandomContactMessage()
        {
            var year      = DataRandomizer.GetRandomInt(1950, 2000);
            var month     = DataRandomizer.GetRandomInt(1, 12);
            var day       = DataRandomizer.GetRandomInt(1, 25);
            var birthDate = new DateTime(year, month, day);

            var contact = new Contact
            {
                birthdate     = birthDate,
                contactid     = Guid.NewGuid(),
                description   = DataRandomizer.GetRandomString(5, 30),
                emailaddress1 = string.Concat(DataRandomizer.GetRandomString(5, 10), "@nonexistingdomain.disabled"),
                firstname     = DataRandomizer.GetRandomString(5, 10),
                gendercode    = DataRandomizer.GetRandomInt(1, 2).ToString(),
                jobtitle      = DataRandomizer.GetRandomString(5, 20),
                lastname      = DataRandomizer.GetRandomString(5, 10),
                mobilephone   = DataRandomizer.GetRandomPhoneNumber(true),
                telephone1    = DataRandomizer.GetRandomPhoneNumber(),
                telephone2    = DataRandomizer.GetRandomPhoneNumber()
            };

            var jsonSerializerSettings = new JsonSerializerSettings
            {
                DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate,
                NullValueHandling    = NullValueHandling.Ignore
            };
            var json = JsonConvert.SerializeObject(contact, jsonSerializerSettings);

            return(new BrokeredMessage(json)
            {
                ContentType = "application/json"
            });
        }
示例#5
0
        public void AlphaUpperNumericTest()
        {
            var alphaUpperNumeric = DataRandomizer.CreateString(DataRandomizer.DataType.AlphaUpperNumeric, 10);

            Assert.IsTrue(alphaUpperNumeric.Any(ch => char.IsUpper(ch)), $"The string {alphaUpperNumeric} didn't contain uppercase.");
            Assert.IsTrue(alphaUpperNumeric.Any(ch => char.IsNumber(ch)), $"The string {alphaUpperNumeric} didn't contain a number.");
            Assert.AreEqual(10, alphaUpperNumeric.Length, "The string length wasn't 10.");
        }
示例#6
0
        public void AlphaLowerUpperTest()
        {
            var alphaLowerUpper = DataRandomizer.CreateString(DataRandomizer.DataType.AlphaLowerUpper, 10);

            Assert.IsTrue(alphaLowerUpper.Any(ch => char.IsUpper(ch)), $"The string {alphaLowerUpper} didn't contain uppercase.");
            Assert.IsTrue(alphaLowerUpper.Any(ch => char.IsLower(ch)), $"The string {alphaLowerUpper} didn't contain lowercase.");
            Assert.AreEqual(10, alphaLowerUpper.Length, "The string length wasn't 10.");
        }
示例#7
0
 public RandomAddress()
 {
     Number = DataRandomizer.GenearteRandomNumber(GenerateNumberLength());
     Street = new Street();
     GetRandomCityStateZip();
     City    = GetCityFromLine();
     State   = GetStateFromLine();
     Zipcode = GetZipFromLine();
 }
示例#8
0
        /// <summary>
        /// Generate the random length of the address box number
        /// </summary>
        /// <returns></returns>
        private int GenerateNumberLength()
        {
            int length;

            do
            {
                length = Convert.ToInt32(DataRandomizer.GenearteRandomNumber(1));
            }while (length == 0 || length > 5);
            {
                return(length);
            }
        }
示例#9
0
        private int?GenerateDependents()
        {
            int num = 0;

            int.TryParse(DataRandomizer.GenearteRandomNumber(1), out num);

            if (num <= 5)
            {
                return(num);
            }
            return(null);
        }
示例#10
0
 /// <summary>
 /// Generate the Random segments of the phonenumber
 /// </summary>
 private void GeneartePhoneNumberItems()
 {
     _areacode   = DataRandomizer.GenearteRandomNumber(3);
     _prefix     = DataRandomizer.GenearteRandomNumber(3);
     _linenumber = DataRandomizer.GenearteRandomNumber(4);
 }
示例#11
0
 /// <summary>
 /// Generates a random alpha lower string with a length of 10
 /// </summary>
 /// <returns></returns>
 private string GenerateRandomSecondLevelDomain()
 {
     return(DataRandomizer.GenearteRandomString(10).ToLower());
 }
示例#12
0
 /// <summary>
 /// Generates and returns the Email Local Part
 /// </summary>
 /// <returns></returns>
 private string GetLocalPart()
 {
     return(DataRandomizer.GenearteRandomString(8).ToLower());
 }
示例#13
0
        public ActionResult <CalculationStatistic[]> CalculateStatistic(CalculationStatisticRequest request)
        {
            var result = new List <CalculationStatistic>();

            Runs = request.Amounts[0];
            var gaCalculator =
                new TravelingSalesmanProblemCalculation(
                    MaxNotChangedGenerations,
                    PopulationSize,
                    MutationRate,
                    CrossoverRate,
                    ElitismCount);

            foreach (var amount in request.Amounts)
            {
                var data = DataRandomizer.GenerateRandomPlaces(amount).ToArray();

                var statPoint = DateTime.Now;

                gaCalculator.CalculateBestRoute(data);

                var endPoint = DateTime.Now;

                result.Add(
                    new CalculationStatistic
                {
                    AmountOfData = amount * 10,
                    Duration     = endPoint.Subtract(statPoint).TotalSeconds * 5
                });
            }

            //var gaCalculator =
            //    new TravelingSalesmanProblemCalculation(
            //        MaxNotChangedGenerations,
            //        300,
            //        MutationRate,
            //        CrossoverRate,
            //        ElitismCount);

            //if (data == null)
            //{
            //    data = DataRandomizer.GenerateRandomPlaces(75).ToArray();
            //}

            //if (exactValue == null)
            //{
            //    exactValue = gaCalculator.CalculateBestRoute(data);
            //}

            //// коефіцієнту мутації від часу виконання
            //if (Runs == 0)
            //{
            //    Runs++;
            //    var rate = 0.001;
            //    for (int i = 1; i <= 10; i++, rate += 0.005)
            //    {
            //        gaCalculator =
            //            new TravelingSalesmanProblemCalculation(
            //                MaxNotChangedGenerations,
            //                PopulationSize,
            //                CrossoverRate,
            //                rate,
            //                ElitismCount);

            //        var solution = gaCalculator.CalculateBestRoute(data);

            //        result.Add(
            //            new CalculationStatistic
            //            {
            //                AmountOfData = rate,
            //                Duration = solution.DurationInMilliseconds
            //            });

            //        if (rate == 0.006)
            //        {
            //            rate -= 0.001;
            //        }
            //    }
            //}
            //// коефіцієнту мутації від точності розв’язку
            //else if (Runs == 1)
            //{
            //    Runs++;
            //    var rate = 0.001;
            //    for (int i = 1; i <= 10; i++, rate += 0.005)
            //    {
            //        gaCalculator =
            //            new TravelingSalesmanProblemCalculation(
            //                MaxNotChangedGenerations,
            //                PopulationSize,
            //                CrossoverRate,
            //                rate,
            //                ElitismCount);

            //        var solution = gaCalculator.CalculateBestRoute(data);

            //        result.Add(
            //            new CalculationStatistic
            //            {
            //                AmountOfData = rate,
            //                Duration = ((solution.distance - exactValue.distance) / solution.distance) * 100
            //            });

            //        if (rate == 0.006)
            //        {
            //            rate -= 0.001;
            //        }
            //    }
            //}


            //// коефіцієнту схрещування від часу виконання
            //else if (Runs == 2)
            //{
            //    Runs++;
            //    var rate = 0.1;
            //    for (int i = 1; i <= 9; i++, rate += 0.1)
            //    {
            //        gaCalculator =
            //            new TravelingSalesmanProblemCalculation(
            //                MaxNotChangedGenerations,
            //                PopulationSize,
            //                rate,
            //                MutationRate,
            //                ElitismCount);

            //        var solution = gaCalculator.CalculateBestRoute(data);

            //        result.Add(
            //            new CalculationStatistic
            //            {
            //                AmountOfData = rate,
            //                Duration = solution.DurationInMilliseconds
            //            });
            //    }
            //}
            //// коефіцієнту схрещування від точності розв’язку
            //else if (Runs == 3)
            //{
            //    Runs++;
            //    var rate = 0.1;
            //    for (int i = 1; i <= 9; i++, rate += 0.1)
            //    {
            //        gaCalculator =
            //            new TravelingSalesmanProblemCalculation(
            //                MaxNotChangedGenerations,
            //                PopulationSize,
            //                rate,
            //                MutationRate,
            //                ElitismCount);

            //        var solution = gaCalculator.CalculateBestRoute(data);

            //        result.Add(
            //            new CalculationStatistic
            //            {
            //                AmountOfData = rate,
            //                Duration = ((solution.distance - exactValue.distance) / solution.distance) * 100
            //            });
            //    }
            //}



            //// коефіцієнту розміру популяції від часу виконання
            //else if (Runs == 4)
            //{
            //    Runs++;
            //    var amount = 10;
            //    for (int i = 1; i <= 10; i++, amount += 10)
            //    {
            //        gaCalculator =
            //            new TravelingSalesmanProblemCalculation(
            //                MaxNotChangedGenerations,
            //                amount,
            //                CrossoverRate,
            //                MutationRate,
            //                ElitismCount);

            //        var solution = gaCalculator.CalculateBestRoute(data);

            //        result.Add(
            //            new CalculationStatistic
            //            {
            //                AmountOfData = amount,
            //                Duration = solution.DurationInMilliseconds
            //            });
            //    }
            //}
            //// коефіцієнту розміру популяції від точності розв’язку
            //else if (Runs == 5)
            //{
            //    Runs++;

            //    var amount = 10;
            //    for (int i = 1; i <= 10; i++, amount += 10)
            //    {
            //        gaCalculator =
            //            new TravelingSalesmanProblemCalculation(
            //                MaxNotChangedGenerations,
            //                amount,
            //                CrossoverRate,
            //                MutationRate,
            //                ElitismCount);

            //        var solution = gaCalculator.CalculateBestRoute(data);

            //        result.Add(
            //            new CalculationStatistic
            //            {
            //                AmountOfData = amount,
            //                Duration = ((solution.distance - exactValue.distance) / solution.distance) * 100
            //            });
            //    }
            //}

            return(result.ToArray());
        }