def test_us31(self):
        dir_path = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..'))
        individuals, families = gedcom_file_parser(
            f"{dir_path}/data/sprint3userstorytest.ged")
        print_individuals_pretty_table(individuals, False)
        print_families_pretty_table(individuals, families, False)

        expected_result = ['@I5@']
        result = us31(individuals, families)

        self.assertEqual(result, expected_result)
    def test_us36_us37(self):
        """ Test for US36 and US37"""
        # Test with GEDCOM individual @I10@

        dir_abs_path_us36_us37 = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..'))
        directory_path_us36_us37 = f"{dir_abs_path_us36_us37}/data/us36_37.ged"
        ind, fam = gedcom_file_parser(directory_path_us36_us37)
        ind = print_individuals_pretty_table(ind, True)
        fam = print_families_pretty_table(ind, fam, True)

        # Expected Result for US36
        us36_pt = PrettyTable(field_names=["ID", "Name", "Date of Death"])
        us36_pt.add_row(['@I1@', 'Tristin /Evans/', '16 Jul 2019'])
        us36_str = str(us36_pt)

        # Expected Result for US37
        us37_pt = PrettyTable(field_names=["ID", "Name", "Relation"])
        us37_pt.add_row(['@I2@', 'Angelo /Rose/', 'Husband'])
        us37_pt.add_row(['@I6@', 'Emma /Rose/', 'Descendant'])
        us37_str = str(us37_pt)
        error_chk = (us36_str, us37_str)
        self.assertEqual(us36(ind, fam, True), error_chk)

        return None
    def test_us34(self):
        """ Test for US34"""
        # Test with GEDCOM family @F1@

        dir_abs_path_us34 = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..'))
        directory_path_us34 = f"{dir_abs_path_us34}/data/us34.ged"
        ind, fam = gedcom_file_parser(directory_path_us34)
        ind = print_individuals_pretty_table(ind, True)
        fam = print_families_pretty_table(ind, fam, True)
        fam_id = '@F1@'
        error_chk = [True, False]
        self.assertEqual(us34(ind, fam, fam_id, True), error_chk)

        return None
    def setUp(self):
        """ Class setup with assignment of self.individuals and self.families """
        # Assign directory path variables to individual gedcom files to test each user story as needed for Sprint 3 Implementation
        # Run print_pretty_table function with specialized directory path to create indivduals and families dictionaries unique to the user story that will be tested

        self.dir_abs_path = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..'))
        self.directory_path = f"{self.dir_abs_path}/data/AWFStest.ged"
        self.individuals, self.families = gedcom_file_parser(
            self.directory_path)
        self.individuals = print_individuals_pretty_table(
            self.individuals, True)
        self.families = print_families_pretty_table(self.individuals,
                                                    self.families, True)
        return super().setUp()
    def test_us35(self):
        """ Test for US35"""
        # Test with GEDCOM Individual @I6@

        dir_abs_path_us35 = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..'))
        directory_path_us35 = f"{dir_abs_path_us35}/data/us35.ged"
        ind, fam = gedcom_file_parser(directory_path_us35)
        ind = print_individuals_pretty_table(ind, True)
        fam = print_families_pretty_table(ind, fam, True)

        # Expected Result for US35
        us35_pt = PrettyTable(field_names=["ID", "Name", "Date of Birth"])
        us35_pt.add_row(['@I6@', 'Emma /Rose/', '17 Jul 2019'])
        us35_str = str(us35_pt)
        error_chk = us35_str
        self.assertEqual(us35(ind, True), error_chk)

        return None