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); }
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); }