public City(string n, UsState s, int p, double a)
 {
     Name = n;
      State = s;
      Population = p;
      Area = a;
 }
Example #2
0
        public void TestGetStateData()
        {
            var testStateName = "Maryland";
            var testState     = UsState.GetStateByName(testStateName);
            var testResult    = UsStateData.GetStateData(testState.ToString());

            Assert.IsNotNull(testResult);
            Assert.AreEqual("Maryland", testResult.StateName);
            Assert.IsNotNull(testResult.AverageEarnings);
            Assert.AreNotEqual(0, testResult.EmploymentSectors.Count);
            Assert.AreNotEqual(0, testResult.PercentOfGrads.Count);
            Assert.AreNotEqual(0, testResult.PropertyCrimeRate.Count);
            Assert.AreNotEqual(0, testResult.ViolentCrimeRate.Count);
            var percentCollegeGrad =
                testResult.PercentOfGrads.FirstOrDefault(x => x.Item1 == (OccidentalEdu.Bachelor | OccidentalEdu.Grad));

            Assert.AreNotEqual(0, percentCollegeGrad);
            System.Diagnostics.Debug.WriteLine(percentCollegeGrad);
            for (var i = 0; i < 100; i++)
            {
                var attempt = Etx.RandomRollAboveOrAt((int)Math.Round(percentCollegeGrad.Item2 * 2), Etx.Dice.OneHundred);
                System.Diagnostics.Debug.WriteLine(attempt);
            }

            //expected to resolve to national
            testResult = UsStateData.GetStateData(null);
            Assert.IsNotNull(testResult);
            Assert.AreEqual("United States", testResult.StateName);
            Assert.IsNotNull(testResult);
            Assert.IsNotNull(testResult.AverageEarnings);
            Assert.AreNotEqual(0, testResult.EmploymentSectors.Count);
            Assert.AreNotEqual(0, testResult.PercentOfGrads.Count);
            Assert.AreNotEqual(0, testResult.PropertyCrimeRate.Count);
            Assert.AreNotEqual(0, testResult.ViolentCrimeRate.Count);
        }
Example #3
0
        public void TestGetStateByName()
        {
            var testResult = UsState.GetStateByName("New York");

            Assert.IsNotNull(testResult);

            testResult = UsState.GetStateByName("NewYork");
            Assert.IsNotNull(testResult);

            testResult = UsState.GetStateByName("Kansas");
            Assert.IsNotNull(testResult);
        }
Example #4
0
        public void TestGetStateAll()
        {
            var noUse     = UsState.GetStateByPostalCode("AZ");//the internal member is a singleton, this gets it pop'ed
            var theStates = UsState._theStates;

            foreach (var state in theStates)
            {
                System.Diagnostics.Debug.WriteLine(state.StateAbbrev);
                var randOut = state.GetRandomDriversLicense();
                System.Diagnostics.Debug.WriteLine("{0} '{1}'", state.StateAbbrev, randOut);
                var randIn = state.ValidDriversLicense(randOut);

                Assert.IsTrue(randIn);
            }
        }
Example #5
0
        /// <summary>
        /// Gets High Schools based on US State
        /// </summary>
        /// <param name="state">
        /// Gets either a specific states high schools or picks a state at random if missing.
        /// Use either the name or the postal code.
        /// </param>
        /// <returns></returns>
        public static AmericanHighSchool[] GetHighSchoolsByState(string state = null)
        {
            HsXml = HsXml ?? XmlDocXrefIdentifier.GetEmbeddedXmlDoc(US_HIGH_SCHOOL_DATA,
                                                                    Assembly.GetExecutingAssembly());
            if (HsXml == null)
            {
                return new[] { GetDefaultHs() }
            }
            ;
            if (String.IsNullOrWhiteSpace(state))
            {
                _allStateAbbreviations = _allStateAbbreviations ?? GetAllXmlStateAbbreviations(HsXml);

                state = GetRandomStateAbbrev(_allStateAbbreviations);
            }

            //have this deal with if its a postal code or a full name
            var usState = UsState.GetState(state);

            if (usState == null)
            {
                return new[] { GetDefaultHs() }
            }
            ;

            var elements =
                HsXml.SelectNodes($"//state[@name='{usState}']//high-school");

            var parsedList = ParseHighSchoolsFromNodeList(elements);

            foreach (var hs in parsedList)
            {
                hs.StateAbbrev = usState.StateAbbrev;

                hs.StateName = usState.ToString();
            }

            return(parsedList);
        }
Example #6
0
        public void TestSolvePercentHsGradByStateAndRace()
        {
            //test resolves to simple natl average given no input
            var testResult = AmericanSchoolBase.SolvePercentGradByStateAndRace(null, null);

            //test resolves to natl avg's when no state
            Assert.AreEqual(89.6, testResult);
            testResult = AmericanSchoolBase.SolvePercentGradByStateAndRace(null, NorthAmericanRace.Mixed);
            Assert.AreEqual(89.6, testResult);
            testResult = AmericanSchoolBase.SolvePercentGradByStateAndRace(null, NorthAmericanRace.AmericanIndian);
            Assert.AreEqual(77.6, testResult);
            var testState     = UsState.GetStateByPostalCode("CA");
            var testStateData = UsStateData.GetStateData(testState.ToString());

            Assert.IsNotNull(testStateData);

            //percent-highschool-grad="80.6"
            //asian="89.0" natl-percent="82.0"
            // 89 - 82 = 7
            testResult = AmericanSchoolBase.SolvePercentGradByStateAndRace(testState.ToString(), NorthAmericanRace.Asian);
            Assert.AreEqual(87.6, testResult);

            //american-indian="70.0"
            // 70 - 82 = -12
            testResult = AmericanSchoolBase.SolvePercentGradByStateAndRace(testState.ToString(), NorthAmericanRace.AmericanIndian);
            Assert.AreEqual(68.6, testResult);

            testState = UsState.GetStateByPostalCode("ID");
            Assert.IsNotNull(testState);
            Assert.IsNotNull(UsStateData.GetStateData(testState.ToString()));

            testResult = AmericanSchoolBase.SolvePercentGradByStateAndRace(testState.ToString(), NorthAmericanRace.Asian, OccidentalEdu.Bachelor | OccidentalEdu.Grad);
            //percent-college-grad="23.9"
            //
            //asian="54.0" natl-percent="30.0"
            // 54.0 - 30.0 = 24, 23.9+24 = 47.9
            Assert.AreEqual(47.9, testResult);
        }
Example #7
0
        public static AmericanEducation RandomEducation(DateTime?birthDate = null, string homeState = null, string zipCode = null)
        {
            var edu = new AmericanEducation();
            var dob = birthDate ?? Etx.RandomAdultBirthDate();
            var age = Etc.CalcAge(dob);

            if (age < DF_MIN_AGE_ENTER_HS)
            {
                return(edu);
            }

            var dtAtAge18    = dob.AddYears(UsState.AGE_OF_ADULT);
            var isLegalAdult = age >= UsState.AGE_OF_ADULT;

            if (!edu.AssignRandomHighSchool(homeState, zipCode, isLegalAdult, dtAtAge18, out var hsGradDt))
            {
                return(edu);
            }

            var usstate = UsState.GetState(homeState);

            edu.AssignRandomCollege(usstate?.ToString(), hsGradDt);
            return(edu);
        }
Example #8
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);
        }
 public async Task <StateMetadata> GetStateMetadata(UsState usState)
 {
     return(await RequestData <StateMetadata>(string.Format(stateSingleMetadata, usState.ToString().ToLower())));
 }
 public async Task <State> GetStateCurrent(UsState usState)
 {
     return(await RequestData <State>(string.Format(stateSingleCurrent, usState.ToString().ToLower())));
 }
 public async Task <IEnumerable <State> > GetStateHistoric(UsState usState)
 {
     return(await RequestData <IEnumerable <State> >(string.Format(stateSingleHistoric, usState.ToString().ToLower())));
 }
Example #12
0
        public void GetStateTest()
        {
            var testState  = "AZ";
            var testResult = UsState.GetStateByPostalCode(testState);

            Assert.IsNotNull(testResult);
            Assert.IsInstanceOf <Arizona>(testResult);

            Assert.AreEqual(testState, testResult.StateAbbrev);

            var testDlResult = testResult.GetRandomDriversLicense();

            Assert.IsNotNull(testDlResult);
            System.Diagnostics.Debug.WriteLine(testDlResult);

            Assert.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(testDlResult, "^[ABDY][0-9]{8}$"));
            Assert.IsTrue(testResult.ValidDriversLicense("B70350018"));
            Assert.IsTrue(testResult.ValidDriversLicense("686553072"));
            Assert.IsFalse(testResult.ValidDriversLicense("68655307"));

            testState  = "AR";
            testResult = UsState.GetStateByPostalCode(testState);
            Assert.IsNotNull(testResult);
            Assert.IsInstanceOf <Arkansas>(testResult);

            Assert.AreEqual(testState, testResult.StateAbbrev);

            testDlResult = testResult.GetRandomDriversLicense();
            Assert.IsNotNull(testDlResult);
            System.Diagnostics.Debug.WriteLine(testDlResult);

            Assert.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(testDlResult, "^[0-9]{9}$"));
            Assert.IsFalse(testResult.ValidDriversLicense("U7376050"));
            Assert.IsTrue(testResult.ValidDriversLicense("686553072"));
            Assert.IsTrue(testResult.ValidDriversLicense("68655307"));

            testState  = "CA";
            testResult = UsState.GetStateByPostalCode(testState);
            Assert.IsNotNull(testResult);
            Assert.IsInstanceOf <California>(testResult);

            Assert.AreEqual(testState, testResult.StateAbbrev);

            testDlResult = testResult.GetRandomDriversLicense();
            Assert.IsNotNull(testDlResult);
            System.Diagnostics.Debug.WriteLine(testDlResult);

            Assert.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(testDlResult, "^[A-Z][0-9]{7}$"));
            Assert.IsTrue(testResult.ValidDriversLicense("U7376050"));
            Assert.IsFalse(testResult.ValidDriversLicense("686553072"));

            testState  = "CT";
            testResult = UsState.GetStateByPostalCode(testState);
            Assert.IsNotNull(testResult);
            Assert.IsInstanceOf <Connecticut>(testResult);

            Assert.AreEqual(testState, testResult.StateAbbrev);

            testDlResult = testResult.GetRandomDriversLicense();
            Assert.IsNotNull(testDlResult);
            System.Diagnostics.Debug.WriteLine(testDlResult);
        }
 public void Update(UsState entity)
 {
     _usStateDal.Update(entity);
 }
 public void Delete(UsState entity, bool realDelete = true)
 {
     _usStateDal.Delete(entity, realDelete);
 }
 public void Add(UsState entity)
 {
     _usStateDal.Add(entity);
 }
 public async Task DeleteAsync(UsState entity, bool realDelete = false)
 {
     var cancelToken = new CancellationTokenSource();
     await _usStateDal.DeleteAsync(entity, cancelToken.Token, realDelete);
 }
Example #17
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]);
        }
 public async Task <State> GetStateHistoricByDate(UsState usState, DateTime date)
 {
     return(await RequestData <State>(string.Format(stateSingleHistoricByDay, usState.ToString().ToLower(), date.ToCovidTrackingDate())));
 }
 public async Task UpdateAsync(UsState entity)
 {
     var cancelToken = new CancellationTokenSource();
     await _usStateDal.UpdateAsync(entity, cancelToken.Token);
 }
Example #20
0
        public void TestRandomState()
        {
            var testResult = UsState.RandomUsState();

            Assert.IsNotNull(testResult);
        }