def checkSiblingPair(sibling1, sibling2, family): errMsg = [] sib1BirthDate = utils.calcDate(sibling1['BIRT'][0]) sib2BirthDate = utils.calcDate(sibling2['BIRT'][0]) if(abs((sib1BirthDate - sib2BirthDate).days)/30 <= 8 and abs((sib1BirthDate - sib2BirthDate).days) >= 2): errMsg += [(("Anomaly US13: Sibling %s: %s and sibling %s: %s in family %s were born too close together" %(sibling1['ID'], sibling1['NAME'][0], sibling2['ID'], sibling2['NAME'][0], family['ID'])))] return errMsg
def checkFamily(family): errMsg = [] marriageDate = utils.calcDate(family['MARR'][0]) if("DIV" in family.keys()): divorceDate = utils.calcDate(family['DIV'][0]) if(divorceDate < marriageDate): errMsg+= [("Error US04: Divorce date is before marriage date in family %s" %(family['ID']))] return errMsg
def test_calcDate(self): dateObj = datetime.datetime(2000, 8, 10) calculatedDate = utils.calcDate("10 AUG 2000") self.assertEqual( calculatedDate, dateObj, "Date was calculated as %s when it should be %s" % (calculatedDate, dateObj))
def marriageAllowed(family, husband, wife): allowableMarriage = True marriageDate = utils.calcDate(family["MARR"][0]) wifeAgeAtMarriage = utils.calculateAge(wife, marriageDate) husbandAgeAtMarriage = utils.calculateAge(husband, marriageDate) if wifeAgeAtMarriage < 14 or husbandAgeAtMarriage < 14: allowableMarriage = False return allowableMarriage
def checkFamily(family, individualDict): errMsg = [] marriageDate = utils.calcDate(family['MARR'][0]) husband = individualDict[family['HUSB'][0]] wife = individualDict[family['WIFE'][0]] if ('DEAT' in wife.keys()): wifeDeath = utils.calcDate(wife['DEAT'][0]) if (wifeDeath < marriageDate): errMsg += [( "Error US05: Wife %s: %s in family %s died before she got married" % (wife['ID'], wife['NAME'][0], family['ID']))] if ('DEAT' in husband.keys()): husbandDeath = utils.calcDate(husband['DEAT'][0]) if (husbandDeath < marriageDate): errMsg += [( "Error US05: Husband %s: %s in family %s died before he got married" % (husband['ID'], husband['NAME'][0], family['ID']))] return errMsg
def checkForDiff(family, husband, wife): allowableMarriage = True marriageDate = utils.calcDate(family["MARR"][0]) wifeAgeAtMarriage = utils.calculateAge(wife, marriageDate) husbandAgeAtMarriage = utils.calculateAge(husband, marriageDate) ageDifference = abs(wifeAgeAtMarriage - husbandAgeAtMarriage) if (((wifeAgeAtMarriage > husbandAgeAtMarriage) and (ageDifference >= husbandAgeAtMarriage)) or ((wifeAgeAtMarriage < husbandAgeAtMarriage) and (ageDifference >= wifeAgeAtMarriage))): allowableMarriage = False return allowableMarriage