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); }
/// <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); }
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); }
public Dimension() { Zscore = Etx.RandomDouble(); }
/// <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]); }
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")); }
public static string RandomAmericanPartialZipCode() { var zip2Wt = ZipCodePrefix2Population; return(!zip2Wt.Any() ? DF_ZIPCODE_PREFIX : Etx.RandomPickOne(zip2Wt)); }
public bool GetRandomActsSpontaneous() { return(Etx.RandomValueInNormalDist(Openness.Value.Zscore, Openness.Value.StdDev) > 0); }
public bool GetRandomActsStressed() { return(Etx.RandomValueInNormalDist(Neuroticism.Value.Zscore, Neuroticism.Value.StdDev) > 0); }
public bool GetRandomActsIrresponsible() { return(Etx.RandomValueInNormalDist(Conscientiousness.Value.Zscore, Conscientiousness.Value.StdDev) < 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)); }