def test_US18_half_sibling_text(self): # testing half sibling self.famMap["F1"] = { "HUSB": ["I1"], "WIFE": ["I2"], "CHIL": ["I10", "I1"], "MARR": [1, 1, 2009], "NOTE": "JAY/GLORIA FAMILY", "FAM": "F1" } self.famMap["F3"] = { "HUSB": ["I8"], "WIFE": ["I2"], "CHIL": ["I9", "I2"], "MARR": [1, 1, 1995], "DIV": [1, 1, 2006], "NOTE": "JAVIER/GLORIA", "FAM": "F3" } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us18_no_siblingmarriages(self.parentId2Children) ret = self.logger.get_logs() str1 = "F1 has siblings as parents: ['I1', 'I2']" str2 = "F4 has siblings as parents: ['I4', 'I5']" expected_ret = [('Error', 'Family', 18, str1), ('Error', 'Family', 18, str2)] self.assertListEqual(expected_ret, ret, "Expected Return does not match")
def test_US17_2family_text(self): # should find 2 matches and the following expected result # Adding Lorraine as a child of Frank's first marriage self.indMap["I12"] = { "NAME": "Lorraine/Dunphy/", "SEX": "F", "BIRT": [1, 1, 1965], "FAMS": ["F8", "F7"], "AGE": 55, "INDI": "I12" } self.famMap["F7"] = { "HUSB": ["I11"], "WIFE": ["I13"], "CHIL": ["I7", "I12"], "MARR": [1, 1, 1965], "NOTE": "FRANK/GRACE FAMILY", "FAM": "F7" } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us17_no_marr2child(self.parentId2Children) ret = self.logger.get_logs() str1 = "F8: My spouse (I12) is one of my children: Parent (I11), Children (['I7', 'I12'])" str2 = "F11: My spouse (I26) is one of my children: Parent (I27), Children (['I26'])" expected_ret = [('Error', 'Family', 17, str1), ('Error', 'Family', 17, str2)] self.assertListEqual(expected_ret, ret, "Expected Return does not match")
def test_US18_half_sibling(self): # should get 2 matches # testing half sibling self.famMap["F1"] = { "HUSB": ["I1"], "WIFE": ["I2"], "CHIL": ["I10", "I1"], "MARR": [1, 1, 2009], "NOTE": "JAY/GLORIA FAMILY", "FAM": "F1" } self.famMap["F3"] = { "HUSB": ["I8"], "WIFE": ["I2"], "CHIL": ["I9", "I2"], "MARR": [1, 1, 1995], "DIV": [1, 1, 2006], "NOTE": "JAVIER/GLORIA", "FAM": "F3" } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us18_no_siblingmarriages(self.parentId2Children) ret = self.logger.get_logs() self.assertEqual(len(ret), 2, "Did not get the expected results")
def test_US17_2family(self): # should get 2 matches # Adding Lorraine as a child of Frank's first marriage self.indMap["I12"] = { "NAME": "Lorraine/Dunphy/", "SEX": "F", "BIRT": [1, 1, 1965], "FAMS": ["F8", "F7"], "AGE": 55, "INDI": "I12" } self.famMap["F7"] = { "HUSB": ["I11"], "WIFE": ["I13"], "CHIL": ["I7", "I12"], "MARR": [1, 1, 1965], "NOTE": "FRANK/GRACE FAMILY", "FAM": "F7" } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us17_no_marr2child(self.parentId2Children) ret = self.logger.get_logs() self.assertEqual(len(ret), 2, "Did not get the expected results")
def test_US18_1family(self): # should to get 1 match self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us18_no_siblingmarriages(self.parentId2Children) ret = self.logger.get_logs() self.assertEqual(len(ret), 1, "Did not get the expected results")
def test_US18_1family_text(self): # should find 1 match and the following expected result self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us18_no_siblingmarriages(self.parentId2Children) ret = self.logger.get_logs() str1 = "F4 has siblings as parents: ['I4', 'I5']" expected_ret = [('Error', 'Family', 18, str1)] self.assertListEqual(expected_ret, ret, "Expected Return does not match")
def test_US17_1family_text(self): # should find 1 match and the following expected result self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us17_no_marr2child(self.parentId2Children) ret = self.logger.get_logs() str1 = "F11: My spouse (I26) is one of my children: Parent (I27), Children (['I26'])" expected_ret = [('Error', 'Family', 17, str1)] self.assertListEqual(expected_ret, ret, "Expected Return does not match")
def test_US18_nomatches(self): self.famMap["F4"] = { "HUSB": ["I4", "I5"], "CHIL": ["I14", "I15"], "MARR": [1, 1, 2014], "NOTE": "PRITCHETT/TUCKER FAMILY", "FAM": "F4", "WIFE": [] } # Remove the family where parent is married to a child self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us18_no_siblingmarriages(self.parentId2Children) ret = self.logger.get_logs() self.assertEqual(len(ret), 0, "Did not get the expected results")
def test_US17_nomatches(self): # Remove the family where parent is married to a child self.famMap["F11"] = { "HUSB": ["I26"], "WIFE": ["I27"], "CHIL": ["I3"], "MARR": [16, 1, 2018], "NOTE": "MarryToChildFAMILY", "FAM": "F11" } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us17_no_marr2child(self.parentId2Children) ret = self.logger.get_logs() self.assertEqual(len(ret), 0, "Did not get the expected results")
def test_US18_nomatches_text(self): # Remove the family where parent is married to a child self.famMap["F4"] = { "HUSB": ["I4", "I5"], "CHIL": ["I14", "I15"], "MARR": [1, 1, 2014], "NOTE": "PRITCHETT/TUCKER FAMILY", "FAM": "F4", "WIFE": [] } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us18_no_siblingmarriages(self.parentId2Children) ret = self.logger.get_logs() expected_ret = [] self.assertListEqual(expected_ret, ret, "Expected Return does not match")
def test_US17_nomatches_text(self): # Remove the family where parent is married to a child self.famMap["F11"] = { "HUSB": ["I26"], "WIFE": ["I27"], "CHIL": ["I3"], "MARR": [16, 1, 2018], "NOTE": "MarryToChildFAMILY", "FAM": "F11" } self.logger.clear_logs() self.parentId2Children = getParent2ChildrenMap(self.famMap) for id, fam in self.famMap.items(): spousecheck = spouseCrossChecker(self.logger, fam, self.indMap) spousecheck.us17_no_marr2child(self.parentId2Children) expected_ret = [] ret = self.logger.get_logs() self.assertListEqual(expected_ret, ret, "Expected Return does not match")
individual["INDI"] = parsed_individual_id individual_database.AddObj(individual) indiDatechecker.us03_birtBeforeDeat(individual) indiDatechecker.us38_upcomingBirt(individual) if born_within_one_month(individual): logger.log_individual_info( 35, "{} Was born in the last 30 days!".format(parsed_individual_id)) for key in [key for key in ["BIRT", "DEAT"] if key in individual]: dateValidator.validate_date(individual[key], True) # get the map of siblings parentId2Children = getParent2ChildrenMap(parsed_families) for family_id in parsed_families: family = parsed_families[family_id] family["FAM"] = family_id # Error handling to fill in required fields which are not present in one or more families # Placeholder logic to Proof-of-concept all the branches working together if "MARR" not in family: logger.log_family_error( 0, "Family {} missing required tag MARR".format(family_id)) family["MARR"] = TablePrinter.error_output if "WIFE" not in family: logger.log_family_error( 0, "Family {} missing wife".format(family_id).format(family_id)) family["WIFE"] = TablePrinter.error_output