示例#1
0
        public void AmericanRaceRatioByZipCodeTests()
        {
            const string TEST_ZIP   = "92071";
            var          testResult = UsCityStateZip.RandomAmericanRaceWithRespectToZip(TEST_ZIP);

            Assert.IsNotNull(testResult);
            Console.WriteLine(testResult);

            var testZipPrefix = new string[]
            {
                "945", "089", "945", "330", "785", "970", "974", "402",
                "920", "799", "761", "023", "750", "021", "840", "782",
                "605", "925", "549", "801", "731", "503", "806", "378",
                "770", "173", "076", "440", "754", "917", "460", "926",
                "317", "921", "016", "437", "299", "900", "357", "114",
                "070", "028", "953", "600", "112", "913", "923", "496",
                "731", "785", "882", "601", "307", "850", "631", "223",
                "208", "275", "112", "967", "356", "600", "829", "761",
                "322", "481", "463", "301", "902", "377", "776",
                "372", "073", "802", "752", "360", "454", "735", "119",
                "127", "206", "104", "341", "481", "331", "925", "970",
                "435", "321", "851", "600", "719", "781", "336", "349",
                "800", "802", "744", "481"
            };

            foreach (var t in testZipPrefix)
            {
                Console.WriteLine(t);
                testResult = UsCityStateZip.RandomAmericanRaceWithRespectToZip(t);
                Assert.IsNotNull(testResult);
                Console.WriteLine(testResult);
            }
        }
示例#2
0
        public static bool TryParse(string lastLine, out CaCityProvidencePost cityProvPost)
        {
            if (string.IsNullOrWhiteSpace(lastLine))
            {
                cityProvPost = null;
                return(false);
            }
            lastLine = lastLine.Trim();

            var addrData = new AddressData
            {
                PostalCode   = string.Empty,
                SortingCode  = string.Empty,
                RegionAbbrev = string.Empty,
                Locality     = string.Empty
            };

            GetPostalCode(lastLine, addrData);

            GetProvidence(lastLine, addrData);

            UsCityStateZip.GetCity(lastLine, addrData);
            addrData.RegionName = _caProvAbbrev2Name.ContainsKey(addrData.RegionAbbrev)
                ? _caProvAbbrev2Name[addrData.RegionAbbrev]
                : "";
            cityProvPost = new CaCityProvidencePost(addrData)
            {
                Src = lastLine
            };
            return(!string.IsNullOrWhiteSpace(addrData.PostalCode) &&
                   !string.IsNullOrWhiteSpace(addrData.RegionAbbrev) &&
                   !string.IsNullOrWhiteSpace(addrData.Locality));
        }
示例#3
0
        public void TestGetRandomBank()
        {
            var testInput = new UsCityStateZip(new AddressData {
                Locality = "New York City", RegionAbbrev = "NY"
            });
            var testResult = NoFuture.Rand.Com.Bank.RandomBank(testInput);

            Assert.IsNotNull(testResult);
            Assert.AreNotEqual("", testResult.Name);
            Assert.IsNotNull(testResult.BusinessAddress);
            Assert.IsNotNull(testResult.BusinessAddress.CityArea);
            Assert.IsInstanceOf(typeof(UsCityStateZip), testResult.BusinessAddress.CityArea);
            var city = (UsCityStateZip)testResult.BusinessAddress.CityArea;

            Assert.AreEqual("New York City", city.City);
            Assert.IsNotNull(city.StateName);
            Assert.AreEqual("NY", city.StateAbbrev);
            Console.WriteLine(testResult.Name);

            testResult = NoFuture.Rand.Com.Bank.RandomBank(null);
            Assert.IsNotNull(testResult);
            Assert.AreNotEqual("", testResult.Name);
            Assert.IsNotNull(testResult.BusinessAddress);
            Assert.IsNotNull(testResult.BusinessAddress.CityArea);
            Console.WriteLine(testResult.Name);
        }
示例#4
0
        public void TestGetZipCode()
        {
            var addrData = new AddressData();

            UsCityStateZip.GetZipCode("OKLAHOMA CITY, OK", addrData);
            Assert.IsNull(addrData.PostalCode);
            //Washington DC 20006
            UsCityStateZip.GetZipCode("Washington DC 20006", addrData);
            Assert.AreEqual("20006", addrData.PostalCode);
        }
示例#5
0
        public void TestUsCityStateZipCtor()
        {
            var addrData = new AddressData {
                RegionAbbrev = "NV", PostalCode = "89421"
            };
            var testResult = new UsCityStateZip(addrData);

            Assert.AreNotEqual("New York City", testResult.City);
            Console.WriteLine(testResult.City);
        }
示例#6
0
        public void TestFinesseCityName()
        {
            var testOutput = UsCityStateZip.FinesseCityName("CANDLER-MCAFEE");

            Assert.AreEqual("Candler-McAfee", testOutput);
            Console.WriteLine(testOutput);
            testOutput = UsCityStateZip.FinesseCityName("MC LEAN");
            Assert.AreEqual("McLean", testOutput);
            Console.WriteLine(testOutput);
        }
示例#7
0
        public void TestGetState()
        {
            var addrData = new AddressData();

            UsCityStateZip.GetState("OKLAHOMA CITY, OK", addrData);
            Assert.IsNotNull(addrData.RegionAbbrev);
            Assert.AreEqual("OK", addrData.RegionAbbrev);
            UsCityStateZip.GetState("Washington DC 20006", addrData);
            Assert.IsNotNull(addrData.RegionAbbrev);
            Assert.AreEqual("DC", addrData.RegionAbbrev);
        }
示例#8
0
        public void AmericanRaceTests()
        {
            const string TEST_ZIP   = "92071";
            var          testResult = UsCityStateZip.GetAmericanRace(TEST_ZIP);

            Assert.AreNotEqual(string.Empty, testResult);
            Debug.WriteLine(testResult);

            testResult = UsCityStateZip.GetAmericanRace("68415");
            Assert.AreEqual(NorthAmericanRace.White, testResult);
        }
示例#9
0
        public void TestUsCityStateZipCtorPickSuburb()
        {
            var addrData = new AddressData {
                RegionAbbrev = "FL", PostalCode = "32101"
            };
            var testResult = new UsCityStateZip(addrData);

            testResult.GetXmlData();
            Assert.AreNotEqual("New York City", testResult.City);
            Assert.IsNotNull(testResult.Msa);
            Console.WriteLine(testResult.City);
        }
示例#10
0
        /// <summary>
        /// Ctor is based on single line from the fed's text report
        /// </summary>
        /// <param name="li"></param>
        public static Bank GetBankFromDynData(dynamic li)
        {
            var          bank         = new Bank();
            const string COMMA        = ",";
            const string LETTER_Y     = "Y";
            var          unfoldedName = Bank.GetBankFullName(li.BankName);

            bank.AddName(KindsOfNames.Legal, unfoldedName);
            bank.AddName(KindsOfNames.Abbrev, li.BankName);
            bank.Rssd = new ResearchStatisticsSupervisionDiscount {
                Value = li.BankId
            };
            if (UsCityStateZip.TryParse(li.Location, out UsCityStateZip cityOut))
            {
                bank.BusinessAddress = new PostalAddress {
                    CityArea = cityOut
                }
            }
            ;
            if (TypeOfBankAbbrev3Enum.ContainsKey(li.Chtr))
            {
                bank.BankType = TypeOfBankAbbrev3Enum[li.Chtr];
            }
            var assets = new BankAssetsSummary {
                Src = FedLrgBnk.RELEASE_URL
            };

            if (decimal.TryParse(li.ConsolAssets.Replace(COMMA, string.Empty), out decimal conAssts))
            {
                assets.TotalAssets = conAssts * 1000;
            }
            if (decimal.TryParse(li.DomesticAssets.Replace(COMMA, string.Empty), out decimal domAssts))
            {
                assets.DomesticAssets = domAssts * 1000;
            }
            if (int.TryParse(li.NumOfDomBranches.Replace(COMMA, string.Empty), out int domBranches))
            {
                assets.DomesticBranches = domBranches;
            }
            if (int.TryParse(li.NumOfFgnBranches.Replace(COMMA, string.Empty), out int frnBranches))
            {
                assets.ForeignBranches = frnBranches;
            }
            bank.IsInternational = li.Ibf == LETTER_Y;
            if (int.TryParse(li.PercentFgnOwned, out int pfo))
            {
                assets.PercentForeignOwned = Math.Round((double)pfo / 100, 2);
            }
            bank.Assets = new Dictionary <DateTime, BankAssetsSummary> {
                { li.RptDate, assets }
            };
            return(bank);
        }
示例#11
0
        public void RandomUsZipWithRespectToPopTest()
        {
            var testResult = UsCityStateZip.RandomAmericanPartialZipCode();

            Assert.IsNotNull(testResult);

            for (var i = 0; i < 100; i++)
            {
                testResult = UsCityStateZip.RandomAmericanPartialZipCode();
                Assert.IsNotNull(testResult);
                Console.WriteLine(testResult);
            }
        }
示例#12
0
        public void TestUsCityStateZipCtorStateAndCityOnly()
        {
            var addrData = new AddressData {
                RegionAbbrev = "NC", Locality = "CHARLOTTE"
            };
            var testResult = new UsCityStateZip(addrData);

            testResult.GetXmlData();
            Assert.AreNotEqual("New York City", testResult.City);
            Assert.IsNotNull(testResult.Msa);
            Console.WriteLine(testResult.City);

            addrData = new AddressData {
                RegionAbbrev = "CA", Locality = "Westhaven-Moonstone"
            };
            testResult = new UsCityStateZip(addrData);
            testResult.GetXmlData();
            Assert.IsNotNull(testResult.Msa);
        }
示例#13
0
        public void TestTryParse()
        {
            var testAddresses = new[]
            {
                "RIVERTON WY 82501",
                "Los Angeles CA 90029",
                "Los Angeles, CA 90029",
                "CARROLLTON MS 38917",
                "TAYLORS SC 29687",
                "CARROLLTON MS 38917",
                "ASHLANDCITY TN 37015",
                "Riverside CA 92501",
                "PLEASANTVIEW TN 37146",
                "FRANKLIN TN 37067",
                "FRENCH CAMP, MS 39745",
                "MURFREESBORO TN 37128",
                "Vernal UT 84078",
                "Roosevelt UT 84066",
                "HILTON HEAD SC 29926",
                "SARDIS MS 38666",
                "FRANKLIN TN 37069",
                "VENTURA CA 93004",
                "Mayfield KY 42066",
                "Washington DC 20006"
            };

            foreach (var testAddr in testAddresses)
            {
                var testResult = UsCityStateZip.TryParse(testAddr, out var testResultOut);
                Assert.IsTrue(testResult);
                Assert.AreNotEqual(string.Empty, testResultOut.City);
                Assert.AreNotEqual(string.Empty, testResultOut.StateAbbrev);
                Assert.AreNotEqual(string.Empty, testResultOut.ZipCode);
            }

            var anotherTest = UsCityStateZip.TryParse("EL CAMPO, TX", out var usCityStateZip);

            Assert.IsFalse(anotherTest);
            Assert.AreEqual("El Campo", usCityStateZip.City);
            Assert.AreEqual("TX", usCityStateZip.StateAbbrev);
            Console.WriteLine(usCityStateZip.City);
            Console.WriteLine(usCityStateZip.StateAbbrev);
        }
示例#14
0
        public void TestGetCity()
        {
            var addrData = new AddressData();
            var ln       = "EL CAMPO, TX";

            UsCityStateZip.GetState(ln, addrData);
            UsCityStateZip.GetCity(ln, addrData);
            Assert.IsNotNull(addrData.Locality);
            Assert.AreEqual("TX", addrData.RegionAbbrev);
            Assert.AreEqual("El Campo", addrData.Locality);
            Console.WriteLine($"{addrData.Locality} {addrData.RegionAbbrev}");
            ln = "Washington DC 20006";
            UsCityStateZip.GetZipCode(ln, addrData);
            UsCityStateZip.GetState(ln, addrData);
            UsCityStateZip.GetCity(ln, addrData);
            Assert.IsNotNull(addrData.Locality);
            Assert.AreEqual("DC", addrData.RegionAbbrev);
            Assert.AreEqual("Washington", addrData.Locality);
            Console.WriteLine($"{addrData.Locality} {addrData.RegionAbbrev}");
        }
示例#15
0
文件: Bank.cs 项目: nofuture-git/31g
        /// <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);
        }
示例#16
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);
        }
示例#17
0
 internal static void GetProvidence(string lastLine, AddressData addrData)
 {
     UsCityStateZip.GetState(lastLine, addrData, RegexCaPostalProvidenceAbbrev);
 }