private void SetHouseholdTotals()
        {
            HouseholdTotals = new HouseholdTotals();

            foreach (var person in Persons)
            {
                HouseholdTotals.FullAndPartTimeWorkers += person.IsFullOrPartTimeWorker.ToFlag();
                HouseholdTotals.FulltimeWorkers        += person.IsFulltimeWorker.ToFlag();
                HouseholdTotals.PartTimeWorkers        += person.IsPartTimeWorker.ToFlag();
                HouseholdTotals.RetiredAdults          += person.IsRetiredAdult.ToFlag();
                HouseholdTotals.NonworkingAdults       += person.IsNonworkingAdult.ToFlag();
                HouseholdTotals.UniversityStudents     += person.IsUniversityStudent.ToFlag();
                HouseholdTotals.DrivingAgeStudents     += person.IsDrivingAgeStudent.ToFlag();
                HouseholdTotals.ChildrenAge5Through15  += person.IsChildAge5Through15.ToFlag();
                HouseholdTotals.ChildrenUnder5         += person.IsChildUnder5.ToFlag();
                HouseholdTotals.ChildrenUnder16        += person.IsChildUnder16.ToFlag();
                HouseholdTotals.Adults              += person.IsAdult.ToFlag();
                HouseholdTotals.AllWorkers          += person.IsWorker.ToFlag();
                HouseholdTotals.AllStudents         += person.IsStudent.ToFlag();
                HouseholdTotals.DrivingAgeMembers   += person.IsDrivingAge.ToFlag();
                HouseholdTotals.WorkersPlusStudents += (person.IsFulltimeWorker.ToFlag() + person.IsPartTimeWorker.ToFlag() + person.IsUniversityStudent.ToFlag() + person.IsDrivingAgeStudent.ToFlag());
            }

            // home-based workers and students in household
            var homeBasedPersons = Persons.Count(p => (p.IsWorker && p.UsualWorkParcelId == ResidenceParcelId) || (p.IsStudent && p.UsualSchoolParcelId == ResidenceParcelId));

            HouseholdTotals.PartTimeWorkersPerDrivingAgeMembers    = HouseholdTotals.PartTimeWorkers / Math.Max(HouseholdTotals.DrivingAgeMembers, 1D);
            HouseholdTotals.RetiredAdultsPerDrivingAgeMembers      = HouseholdTotals.RetiredAdults / Math.Max(HouseholdTotals.DrivingAgeMembers, 1D);
            HouseholdTotals.UniversityStudentsPerDrivingAgeMembers = HouseholdTotals.UniversityStudents / Math.Max(HouseholdTotals.DrivingAgeMembers, 1D);
            HouseholdTotals.DrivingAgeStudentsPerDrivingAgeMembers = HouseholdTotals.DrivingAgeStudents / Math.Max(HouseholdTotals.DrivingAgeMembers, 1D);
            HouseholdTotals.ChildrenUnder5PerDrivingAgeMembers     = HouseholdTotals.ChildrenUnder5 / Math.Max(HouseholdTotals.DrivingAgeMembers, 1D);
            HouseholdTotals.HomeBasedPersonsPerDrivingAgeMembers   = homeBasedPersons / Math.Max(HouseholdTotals.DrivingAgeMembers, 1D);
        }
Beispiel #2
0
        public void TestHouseholdTotals()
        {
            const int    fulltimeWorkers       = 1;
            const int    partTimeWorkers       = 2;
            const int    retiredAdults         = 3;
            const int    nonworkingAdults      = 4;
            const int    universityStudents    = 5;
            const int    drivingAgeStudents    = 6;
            const int    childrenAge5Through15 = 7;
            const int    childrenUnder5        = 8;
            const int    childrenUnder16       = 9;
            const int    adults                 = 10;
            const int    drivingAgeMembers      = 11;
            const int    workersPlusStudents    = 12;
            const int    fullAndPartTimeWorkers = 13;
            const int    allWorkers             = 14;
            const int    allStudents            = 15;
            const double partTimeWorkersPerDrivingAgeMembers    = 16.1;
            const double retiredAdultsPerDrivingAgeMembers      = 17.1;
            const double universityStudentsPerDrivingAgeMembers = 18.1;
            const double drivingAgeStudentsPerDrivingAgeMembers = 19.1;
            const double homeBasedPersonsPerDrivingAgeMembers   = 21.1;

            HouseholdTotals totals = new HouseholdTotals
            {
                Adults                = adults,
                AllStudents           = allStudents,
                AllWorkers            = allWorkers,
                ChildrenAge5Through15 = childrenAge5Through15,
                ChildrenUnder16       = childrenUnder16,
                ChildrenUnder5        = childrenUnder5,
                ChildrenUnder5PerDrivingAgeMembers = childrenAge5Through15,
                DrivingAgeMembers  = drivingAgeMembers,
                DrivingAgeStudents = drivingAgeStudents,
                DrivingAgeStudentsPerDrivingAgeMembers = drivingAgeStudentsPerDrivingAgeMembers,
                FullAndPartTimeWorkers = fullAndPartTimeWorkers,
                FulltimeWorkers        = fulltimeWorkers,
                HomeBasedPersonsPerDrivingAgeMembers = homeBasedPersonsPerDrivingAgeMembers,
                NonworkingAdults = nonworkingAdults,
                PartTimeWorkers  = partTimeWorkers,
                PartTimeWorkersPerDrivingAgeMembers = partTimeWorkersPerDrivingAgeMembers,
                RetiredAdults = retiredAdults,
                RetiredAdultsPerDrivingAgeMembers = retiredAdultsPerDrivingAgeMembers,
                UniversityStudents = universityStudents,
                UniversityStudentsPerDrivingAgeMembers = universityStudentsPerDrivingAgeMembers,
                WorkersPlusStudents = workersPlusStudents
            };

            Assert.Equal(adults, totals.Adults);
            Assert.Equal(allStudents, totals.AllStudents);
            Assert.Equal(allWorkers, totals.AllWorkers);
            Assert.Equal(childrenAge5Through15, totals.ChildrenAge5Through15);
            Assert.Equal(childrenUnder16, totals.ChildrenUnder16);
            Assert.Equal(childrenUnder5, totals.ChildrenUnder5);
            Assert.Equal(childrenAge5Through15, totals.ChildrenUnder5PerDrivingAgeMembers);
            Assert.Equal(drivingAgeMembers, totals.DrivingAgeMembers);
            Assert.Equal(drivingAgeStudents, totals.DrivingAgeStudents);
            Assert.Equal(drivingAgeStudentsPerDrivingAgeMembers, totals.DrivingAgeStudentsPerDrivingAgeMembers);
            Assert.Equal(fullAndPartTimeWorkers, totals.FullAndPartTimeWorkers);
            Assert.Equal(fulltimeWorkers, totals.FulltimeWorkers);
            Assert.Equal(homeBasedPersonsPerDrivingAgeMembers, totals.HomeBasedPersonsPerDrivingAgeMembers);
            Assert.Equal(nonworkingAdults, totals.NonworkingAdults);
            Assert.Equal(partTimeWorkers, totals.PartTimeWorkers);
            Assert.Equal(partTimeWorkersPerDrivingAgeMembers, totals.PartTimeWorkersPerDrivingAgeMembers);
            Assert.Equal(retiredAdults, totals.RetiredAdults);
            Assert.Equal(retiredAdultsPerDrivingAgeMembers, totals.RetiredAdultsPerDrivingAgeMembers);
            Assert.Equal(universityStudents, totals.UniversityStudents);
            Assert.Equal(universityStudentsPerDrivingAgeMembers, totals.UniversityStudentsPerDrivingAgeMembers);
            Assert.Equal(workersPlusStudents, totals.WorkersPlusStudents);
        }