Пример #1
0
        protected override void DoHandleWork(WorkContext work)
        {
            var cnt    = work.MatchedVars["cnt"].AsInt(10);
            var pretty = work.MatchedVars["pretty"].AsBool(true);

            if (cnt > 10000)
            {
                cnt = 10000;
            }
            if (cnt < 0)
            {
                cnt = 1;
            }

            var lst = new List <object>();

            for (var i = 0; i < cnt; i++)
            {
                lst.Add(new {
                    FirstName  = NaturalTextGenerator.GenerateFirstName(),
                    MiddleName = NaturalTextGenerator.GenerateFirstName(),
                    LastName   = NaturalTextGenerator.GenerateLastName(),
                    Address    = "{0}\n{1}".Args(NaturalTextGenerator.GenerateAddressLine(),
                                                 NaturalTextGenerator.GenerateUSCityStateZip()),
                    Email = NaturalTextGenerator.GenerateEMail()
                });
            }

            work.Response.WriteJSON(lst, pretty ?
                                    NFX.Serialization.JSON.JSONWritingOptions.PrettyPrint :
                                    NFX.Serialization.JSON.JSONWritingOptions.Compact);
        }
Пример #2
0
 public static HumanName Build()
 {
     return(new HumanName
     {
         FirstName = NaturalTextGenerator.GenerateFirstName(),
         MiddleName = ExternalRandomGenerator.Instance.NextRandomInteger > 500000000 ? NaturalTextGenerator.GenerateFirstName() : null,
         LastName = NaturalTextGenerator.GenerateLastName()
     });
 }
Пример #3
0
 public void GenerateLastNames()
 {
     for (var i = 0; i < 100; i++)
     {
         var txt = NaturalTextGenerator.GenerateLastName();
         Console.WriteLine(txt);
         Assert.IsTrue(txt.IsNotNullOrWhiteSpace());
         Assert.IsTrue(txt.Length >= 3);
         Assert.IsTrue(txt.Length <= 20);
     }
 }
Пример #4
0
        public void PerfFullInfo()
        {
            const int CNT = 1000000;
            var       sw  = Stopwatch.StartNew();

            for (var i = 0; i < CNT; i++)
            {
                var name = NaturalTextGenerator.GenerateFirstName() + " " + NaturalTextGenerator.GenerateLastName();
                var addr = NaturalTextGenerator.GenerateAddressLine();
                var csz  = NaturalTextGenerator.GenerateUSCityStateZip();
            }

            var elapsed = sw.ElapsedMilliseconds;
            var ops     = CNT / (elapsed / 1000d);

            Console.WriteLine("Genereated {0} full infos, in {1:n0} ms at {2:n0} ops/sec", CNT, elapsed, ops);
            Assert.IsTrue(ops > 180000);//180,000 ops/sec
        }
Пример #5
0
 public static NM1_PartyName Make()
 {
     return(new NM1_PartyName
     {
         Entity_Identifier_Code = "EI",
         Entity_Type_Qualifier = "QQ",
         Name_Last_or_Organization_Name = NaturalTextGenerator.GenerateFullName(),
         Name_First = NaturalTextGenerator.GenerateFirstName(),
         Name_Middle = NaturalTextGenerator.GenerateFirstName(),
         Name_Prefix = "Mrs.",
         Name_Suffix = "Jr",
         Identification_Code_Qualifier = "CQ",
         Identification_Code = NaturalTextGenerator.GenerateWord(),
         Entity_Relationship_Code = NaturalTextGenerator.GenerateWord(),
         Entity_Identifier_Code2 = NaturalTextGenerator.GenerateWord(),
         Name_Last_or_Organization_Name2 = NaturalTextGenerator.GenerateLastName()
     });
 }
Пример #6
0
        public void PerfFullInfo_Parallel()
        {
            const int CNT = 3000000;
            var       sw  = Stopwatch.StartNew();

            System.Threading.Tasks.Parallel.For(0, CNT,
                                                (i) =>
            {
                var name = NaturalTextGenerator.GenerateFirstName() + " " + NaturalTextGenerator.GenerateLastName();
                var addr = NaturalTextGenerator.GenerateAddressLine();
                var csz  = NaturalTextGenerator.GenerateUSCityStateZip();
            });

            var elapsed = sw.ElapsedMilliseconds;
            var ops     = CNT / (elapsed / 1000d);

            Assert.IsTrue(ops > 750000);//750,000 ops/sec

            Console.WriteLine("Genereated {0} full infos, in {1:n0} ms at {2:n0} ops/sec", CNT, elapsed, ops);
        }
Пример #7
0
        public void AnalyzeUniqueness(int CNT)
        {
            var fnames  = new List <string>();
            var lnames  = new List <string>();
            var flnames = new List <string>();
            var cities  = new List <string>();

            for (var i = 0; i < CNT; i++)
            {
                var fn = NaturalTextGenerator.GenerateFirstName();
                fnames.Add(fn);
                var ln = NaturalTextGenerator.GenerateLastName();
                lnames.Add(ln);
                flnames.Add(fn + " " + ln);
                cities.Add(NaturalTextGenerator.GenerateCityName());
            }
            Console.WriteLine("Generated {0:n0} times", CNT);
            Console.WriteLine("----------------------------");
            var dfn = fnames.Distinct().Count();
            var pfn = 100d * (dfn / (double)CNT);

            Console.WriteLine(" First names {0:n0} unique {1:n3}%", dfn, pfn);

            var dln = lnames.Distinct().Count();
            var pln = 100d * (dln / (double)CNT);

            Console.WriteLine(" Last names {0:n0} unique {1:n3}%", dln, pln);

            var dfln = flnames.Distinct().Count();
            var pfln = 100d * (dfln / (double)CNT);

            Console.WriteLine(" First+Last names {0:n0} unique {1:n3}%", dfln, pfln);
            Assert.IsTrue(pfln > 85d);//85% uniqueness

            var dct = cities.Distinct().Count();
            var pct = 100d * (dct / (double)CNT);

            Console.WriteLine(" Cities {0:n0} unique {1:n3}%", dct, pct);
            Console.WriteLine();
        }
Пример #8
0
 public void GenerateFullInfo()
 {
     for (var i = 0; i < 100; i++)
     {
         var name = NaturalTextGenerator.GenerateFirstName() + " " + NaturalTextGenerator.GenerateLastName();
         var addr = NaturalTextGenerator.GenerateAddressLine();
         var csz  = NaturalTextGenerator.GenerateUSCityStateZip();
         Console.WriteLine(name);
         Console.WriteLine(addr);
         Console.WriteLine(csz);
         Console.WriteLine("-------------------------------------------");
         Assert.IsTrue(name.IsNotNullOrWhiteSpace());
         Assert.IsTrue(addr.IsNotNullOrWhiteSpace());
         Assert.IsTrue(csz.IsNotNullOrWhiteSpace());
         Assert.IsTrue(name.Length >= 3);
         Assert.IsTrue(name.Length <= 100);
         Assert.IsTrue(addr.Length >= 3);
         Assert.IsTrue(addr.Length <= 100);
         Assert.IsTrue(csz.Length >= 3);
         Assert.IsTrue(csz.Length <= 100);
     }
 }
Пример #9
0
        public static TypicalPersonData MakeRandom()
        {
            var rnd = ExternalRandomGenerator.Instance.NextRandomInteger;

            var data = new TypicalPersonData
            {
                FirstName  = NaturalTextGenerator.GenerateFirstName(),
                MiddleName =
                    ExternalRandomGenerator.Instance.NextRandomInteger > 500000000
                        ? NaturalTextGenerator.GenerateFirstName()
                        : null,
                LastName         = NaturalTextGenerator.GenerateLastName(),
                DOB              = DateTime.Now.AddYears(ExternalRandomGenerator.Instance.NextScaledRandomInteger(-90, -1)),
                Salary           = ExternalRandomGenerator.Instance.NextScaledRandomInteger(30, 250) * 1000m,
                YearsOfService   = 25,
                CreditScore      = 0.7562,
                RegisteredToVote = (DateTime.UtcNow.Ticks & 1) == 0,
                MaritalStatus    = MaritalStatus.HatesAll,
                Address1         = NaturalTextGenerator.GenerateAddressLine(),
                Address2         = NaturalTextGenerator.GenerateAddressLine(),
                AddressCity      = NaturalTextGenerator.GenerateCityName(),
                AddressState     = "CA",
                AddressZip       = "91606",
                HomePhone        = (DateTime.UtcNow.Ticks & 1) == 0 ? "(555) 123-4567" : null,
                EMail            = NaturalTextGenerator.GenerateEMail()
            };

            if (0 != (rnd & (1 << 32)))
            {
                data.Notes = NaturalTextGenerator.Generate(45);
            }
            if (0 != (rnd & (1 << 31)))
            {
                data.SkypeID = NaturalTextGenerator.GenerateEMail();
            }
            if (0 != (rnd & (1 << 30)))
            {
                data.YahooID = NaturalTextGenerator.GenerateEMail();
            }

            if (0 != (rnd & (1 << 29)))
            {
                data.IsSmoker = 0 != (rnd & (1 << 17));
            }
            if (0 != (rnd & (1 << 28)))
            {
                data.IsLoving = 0 != (rnd & (1 << 16));
            }
            if (0 != (rnd & (1 << 27)))
            {
                data.IsLoved = 0 != (rnd & (1 << 15));
            }
            if (0 != (rnd & (1 << 26)))
            {
                data.IsDangerous = 0 != (rnd & (1 << 14));
            }
            if (0 != (rnd & (1 << 25)))
            {
                data.IsEducated = 0 != (rnd & (1 << 13));
            }

            if (0 != (rnd & (1 << 24)))
            {
                data.LastSmokingDate = DateTime.Now.AddYears(-10);
            }


            if (0 != (rnd & (1 << 23)))
            {
                data.DesiredSalary = rnd / 1000m;
            }
            if (0 != (rnd & (1 << 22)))
            {
                data.ProbabilityOfSpaceFlight = rnd / (double)int.MaxValue;
            }

            if (0 != (rnd & (1 << 21)))
            {
                data.CurrentFriendCount = rnd % 123;
                data.DesiredFriendCount = rnd % 121000;
            }

            return(data);
        }
Пример #10
0
        //   public object SomeObject;

        public static TypicalPersonData MakeRandom(bool extraData = false)
        {
            var rnd = ExternalRandomGenerator.Instance.NextRandomInteger;

            var data = new TypicalPersonData
            {
                FirstName        = NaturalTextGenerator.GenerateFirstName(),
                MiddleName       = ExternalRandomGenerator.Instance.NextRandomInteger > 500000000 ? NaturalTextGenerator.GenerateFirstName() : null,
                LastName         = NaturalTextGenerator.GenerateLastName(),
                DOB              = DateTime.Now.AddYears(ExternalRandomGenerator.Instance.NextScaledRandomInteger(-90, -1)),
                Salary           = ExternalRandomGenerator.Instance.NextScaledRandomInteger(30, 250) * 1000m,
                YearsOfService   = 25,
                CreditScore      = 0.7562,
                RegisteredToVote = (DateTime.UtcNow.Ticks & 1) == 0,
                MaritalStatus    = MaritalStatus.HatesAll,
                Address1         = NaturalTextGenerator.GenerateAddressLine(),
                Address2         = NaturalTextGenerator.GenerateAddressLine(),
                AddressCity      = NaturalTextGenerator.GenerateCityName(),
                AddressState     = "CA",
                AddressZip       = "91606",
                HomePhone        = (DateTime.UtcNow.Ticks & 1) == 0 ? "(555) 123-4567" : null,
                EMail            = NaturalTextGenerator.GenerateEMail()
            };

            //if (extraData)
            //  data.SomeObject = new Dictionary<object, object>
            //  {
            //    { "1aaaaa", TypicalPersonData.MakeRandom(false)}, { 2212, -234123}, {13000,100}, { Tuple.Create(2, false,true), "yes"}, {"4aaa",'a'},
            //    { "a2aaaa", TypicalPersonData.MakeRandom(false)}, { 132, TypicalPersonData.MakeRandom(false)}, {130400,100}, { Tuple.Create(3, false,true), "yes"}, {"a234aa",'a'},
            //    { "aa4aaa", TypicalPersonData.MakeRandom(false)}, { 412, -123}, {2100d,100L}, { Tuple.Create(4, false,TypicalPersonData.MakeRandom(false)), "yes"}, {"a5aa",'a'},
            //    { "aa3aaa", TypicalPersonData.MakeRandom(false)}, { 212, 0}, {1222200m,100}, { Tuple.Create(5, false,true), "yes"}, {"a43aa1",'a'},
            //    { "a5aaaa", TypicalPersonData.MakeRandom(false)}, { 512, new int[]{1,2,-3,4,5,-6,-1,-2,-3,-4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,60}},
            //    {102200,100}, { Tuple.Create(-213232d, false,false), "yes"}, {"222222222222aaa",'a'},
            //  };

            if (0 != (rnd & (1 << 32)))
            {
                data.Notes = NaturalTextGenerator.Generate(45);
            }
            if (0 != (rnd & (1 << 31)))
            {
                data.SkypeID = NaturalTextGenerator.GenerateEMail();
            }
            if (0 != (rnd & (1 << 30)))
            {
                data.YahooID = NaturalTextGenerator.GenerateEMail();
            }

            if (0 != (rnd & (1 << 29)))
            {
                data.IsSmoker = 0 != (rnd & (1 << 17));
            }
            if (0 != (rnd & (1 << 28)))
            {
                data.IsLoving = 0 != (rnd & (1 << 16));
            }
            if (0 != (rnd & (1 << 27)))
            {
                data.IsLoved = 0 != (rnd & (1 << 15));
            }
            if (0 != (rnd & (1 << 26)))
            {
                data.IsDangerous = 0 != (rnd & (1 << 14));
            }
            if (0 != (rnd & (1 << 25)))
            {
                data.IsEducated = 0 != (rnd & (1 << 13));
            }

            if (0 != (rnd & (1 << 24)))
            {
                data.LastSmokingDate = DateTime.Now.AddYears(-10);
            }


            if (0 != (rnd & (1 << 23)))
            {
                data.DesiredSalary = rnd / 1000m;
            }
            if (0 != (rnd & (1 << 22)))
            {
                data.ProbabilityOfSpaceFlight = rnd / (double)int.MaxValue;
            }

            if (0 != (rnd & (1 << 21)))
            {
                data.CurrentFriendCount = rnd % 123;
                data.DesiredFriendCount = rnd % 121000;
            }


            return(data);
        }