Esempio n. 1
0
        public static UsCityStateZip RandomAmericanCity(string zipCodePrefix = null, bool pickSuburbAtRandom = true)
        {
            const string HAS_HIGH_SCHOOL = "has-high-school";
            const string VALUE           = "value";
            //set defaults
            var ctz = new AddressData
            {
                PostalCode   = $"{UsCityStateZip.DF_ZIPCODE_PREFIX}{Etx.RandomInteger(1, 99):00}",
                RegionAbbrev = UsCityStateZip.DF_STATE_ABBREV
            };

            //pick a zip code prefix at random
            if (String.IsNullOrWhiteSpace(zipCodePrefix))
            {
                zipCodePrefix = UsCityStateZip.RandomAmericanPartialZipCode() ?? UsCityStateZip.DF_ZIPCODE_PREFIX;
            }

            //x-ref it to the zip code data
            var xpathString = $"//{UsCityStateZip.ZIP_CODE_PLURAL}//{UsCityStateZip.ZIP_CODE_SINGULAR}[@{PREFIX}='{zipCodePrefix}']";

            UsCityStateZip.UsZipCodeXml = UsCityStateZip.UsZipCodeXml ??
                                          XmlDocXrefIdentifier.GetEmbeddedXmlDoc(UsCityStateZip.US_ZIP_CODE_DATA, Assembly.GetExecutingAssembly());
            if (UsCityStateZip.UsZipCodeXml == null)
            {
                return(null);
            }
            var randZipCode = UsCityStateZip.UsZipCodeXml.SelectSingleNode(xpathString);

            if (randZipCode?.ParentNode?.Attributes?[NAME] == null)
            {
                ctz.Locality = UsCityStateZip.DF_CITY_NAME;
                return(new UsCityStateZip(ctz));
            }

            //get the containing us state
            ctz.RegionName = randZipCode.ParentNode.Attributes[NAME].Value;
            var nfState = UsState.GetStateByName(ctz.RegionName) ??
                          UsState.GetStateByPostalCode(UsCityStateZip.DF_STATE_ABBREV);

            ctz.RegionAbbrev = nfState.StateAbbrev ?? UsCityStateZip.DF_STATE_ABBREV;
            ctz.SortingCode  = $"{Etx.MyRand.Next(1, 9999):0000}";

            if (!randZipCode.HasChildNodes)
            {
                ctz.PostalCode = $"{zipCodePrefix}{Etx.RandomInteger(1, 99):00}";
            }
            else
            {
                //pick a particular zip-code (ZIP5)
                var zipCodes =
                    randZipCode.ChildNodes.Cast <XmlElement>()
                    .Where(
                        x =>
                        x.Attributes[HAS_HIGH_SCHOOL] != null &&
                        x.Attributes[HAS_HIGH_SCHOOL].Value == Boolean.TrueString)
                    .Select(x => x.Attributes[VALUE].Value).ToArray();
                if (zipCodes.Length <= 0)
                {
                    return(new UsCityStateZip(ctz));
                }
                var pickNum = Etx.RandomInteger(0, zipCodes.Length - 1);
                ctz.PostalCode = zipCodes[pickNum];
            }
            var rr = new UsCityStateZip(ctz);

            rr.SetAddrDataToXmlValues(pickSuburbAtRandom);
            return(rr);
        }
Esempio n. 2
0
        /// <summary>
        /// Picks a single xml element at random from the US Banks data file
        /// first attempting to match on <see cref="ca"/>, if given.
        /// </summary>
        /// <param name="ca"></param>
        /// <returns></returns>
        internal static XmlElement GetBankXmlElement(CityArea ca)
        {
            UsBanksXml = UsBanksXml ?? XmlDocXrefIdentifier.GetEmbeddedXmlDoc(US_BANKS, Assembly.GetExecutingAssembly());
            if (UsBanksXml == null)
            {
                return(null);
            }
            XmlElement bankXmlElem  = null;
            var        pickFromList = new List <XmlElement>();

            if (!string.IsNullOrWhiteSpace(ca?.City) &&
                !string.IsNullOrWhiteSpace(ca.GetRegionAbbrev()))
            {
                var cityName = UsCityStateZip.FinesseCityName(ca.City);

                var nodes = UsBanksXml.SelectNodes($"//com[@us-state='{ca.GetRegionAbbrev().ToUpper()}']");
                if (nodes != null && nodes.Count > 0)
                {
                    foreach (var node in nodes)
                    {
                        var elem = node as XmlElement;
                        if (elem == null)
                        {
                            continue;
                        }
                        if (!elem.HasAttributes)
                        {
                            continue;
                        }
                        if (elem.GetAttribute("city") != cityName)
                        {
                            continue;
                        }
                        pickFromList.Add(elem);
                    }
                }
            }

            if (!pickFromList.Any())
            {
                var allNodes = UsBanksXml.SelectNodes("//com");
                if (allNodes == null)
                {
                    return(null);
                }
                foreach (var node in allNodes)
                {
                    var elem = node as XmlElement;
                    if (elem == null)
                    {
                        continue;
                    }
                    if (!elem.HasAttributes)
                    {
                        continue;
                    }
                    pickFromList.Add(elem);
                }
            }

            if (pickFromList.Any())
            {
                bankXmlElem = pickFromList[Etx.RandomInteger(0, pickFromList.Count - 1)];
            }
            return(bankXmlElem);
        }
Esempio n. 3
0
        public static WorldManufacturerId CreateRandomManufacturerId()
        {
            var wmiOut = new WorldManufacturerId();
            //JA-J0 Japan
            //KL-KR Korea
            //LA-L0 China
            //1A-10, 4A-40, 5A-50 US
            //3A-37 Mexico
            var pick = Etx.RandomInteger(1, 12);

            switch (pick)
            {
            case 1:
                wmiOut.Country = 'J';
                break;

            case 2:
                wmiOut.Country = 'K';
                break;

            case 3:
                wmiOut.Country = 'L';
                break;

            case 4:
            case 5:
            case 6:
                wmiOut.Country = '1';
                break;

            case 7:
                wmiOut.Country = '4';
                break;

            case 8:
                wmiOut.Country = '5';
                break;

            case 9:
            case 10:
            case 11:
            case 12:
                wmiOut.Country = '3';
                break;
            }

            wmiOut.RegionMaker = Vin.GetRandomVinChar();

            pick = Etx.RandomInteger(1, 3);
            switch (pick)
            {
            case 1:
                wmiOut.VehicleType = '2';
                break;

            case 2:
                wmiOut.VehicleType = '3';
                break;

            case 3:
                wmiOut.VehicleType = '7';
                break;
            }

            return(wmiOut);
        }
Esempio n. 4
0
 public Dimension()
 {
     Zscore = Etx.RandomDouble();
 }
Esempio n. 5
0
        /// <summary>
        /// Based on the <see cref="ZipCode"/> and <see cref="StateName"/> that are assigned.
        /// </summary>
        /// <returns></returns>
        protected internal XmlNode GetCityXmlNode()
        {
            UsCityXml = UsCityXml ??
                        XmlDocXrefIdentifier.GetEmbeddedXmlDoc(US_CITY_DATA, Assembly.GetExecutingAssembly());
            if (UsCityXml == null)
            {
                return(null);
            }
            string      searchCrit;
            XmlNodeList matchedNodes = null;
            var         data         = GetData();

            //search by city-state
            if (!String.IsNullOrWhiteSpace(data.RegionAbbrev) && !String.IsNullOrWhiteSpace(data.Locality) &&
                UsState.GetStateByPostalCode(data.RegionAbbrev) != null)
            {
                var cityName = FinesseCityName(data.Locality);
                searchCrit =
                    $"//state[@abbreviation='{data.RegionAbbrev}']/city[@name='{cityName.EscapeString(EscapeStringType.XML)}']";
                matchedNodes = UsCityXml.SelectNodes(searchCrit);

                //try again on place names
                if (matchedNodes == null || matchedNodes.Count <= 0)
                {
                    searchCrit =
                        $"//state[@abbreviation='{data.RegionAbbrev}']//place[@name='{cityName.EscapeString(EscapeStringType.XML)}']/..";
                    matchedNodes = UsCityXml.SelectNodes(searchCrit);
                }
            }
            //search by first 3 of Zip Code
            else if (!String.IsNullOrWhiteSpace(data.PostalCode) && data.PostalCode.Length >= 3)
            {
                var zipCodePrefix = data.PostalCode.Substring(0, 3);
                searchCrit   = $"//{ZIP_CODE_SINGULAR}[@{PREFIX}='{zipCodePrefix}']/..";
                matchedNodes = UsCityXml.SelectNodes(searchCrit);
            }

            if (matchedNodes == null || matchedNodes.Count <= 0)
            {
                return(null);
            }
            if (matchedNodes.Count == 1)
            {
                return(matchedNodes[0]);
            }

            //choose one with a msa-code value if possible
            foreach (var matchedNode in matchedNodes)
            {
                var matchedElem = matchedNode as XmlElement;
                if (matchedElem == null)
                {
                    continue;
                }
                if (!matchedElem.HasAttributes)
                {
                    continue;
                }
                var hasMsaCode  = !String.IsNullOrWhiteSpace(matchedElem.GetAttribute(MSA_CODE));
                var hasCbsaCode = !String.IsNullOrWhiteSpace(matchedElem.GetAttribute(CBSA_CODE));
                if (hasCbsaCode || hasMsaCode)
                {
                    return(matchedElem);
                }
            }

            var pick = Etx.RandomInteger(0, matchedNodes.Count - 1);

            return(matchedNodes[pick]);
        }
Esempio n. 6
0
        public void TestIsPin()
        {
            var testSubject = new CheckingAccount("ABC", DateTime.Today.AddDays(-65),
                                                  new Tuple <ICreditCard, string>(
                                                      CreditCard.RandomCreditCard(American.RandomAmerican(Etx.RandomAdultBirthDate(), Gender.Female)),
                                                      "8745"));

            Assert.IsTrue(testSubject.IsPin("8745"));
        }
Esempio n. 7
0
        public static string RandomAmericanPartialZipCode()
        {
            var zip2Wt = ZipCodePrefix2Population;

            return(!zip2Wt.Any() ? DF_ZIPCODE_PREFIX : Etx.RandomPickOne(zip2Wt));
        }
Esempio n. 8
0
 public bool GetRandomActsSpontaneous()
 {
     return(Etx.RandomValueInNormalDist(Openness.Value.Zscore, Openness.Value.StdDev) > 0);
 }
Esempio n. 9
0
 public bool GetRandomActsStressed()
 {
     return(Etx.RandomValueInNormalDist(Neuroticism.Value.Zscore, Neuroticism.Value.StdDev) > 0);
 }
Esempio n. 10
0
 public bool GetRandomActsIrresponsible()
 {
     return(Etx.RandomValueInNormalDist(Conscientiousness.Value.Zscore, Conscientiousness.Value.StdDev) < 0);
 }
Esempio n. 11
0
        public static IPerson RandomSpouse(DateTime?myDob, Gender gender, int maxAgeDiff = 4)
        {
            if (gender == Gender.Unknown)
            {
                return(null);
            }

            myDob = myDob ?? Etx.RandomAdultBirthDate();

            var ageDiff = Etx.RandomInteger(0, maxAgeDiff);

            ageDiff = gender == Gender.Female ? ageDiff * -1 : ageDiff;

            //randomize dob of spouse
            var spouseDob = myDob.Value.AddYears(ageDiff).AddDays(Etx.RandomInteger(1, 360) * Etx.RandomPlusOrMinus());

            //define spouse
            return(American.RandomAmerican(spouseDob, gender == Gender.Female ? Gender.Male : Gender.Female));
        }