import relationship import unittest relations_first_grade_female = [ (('1.2.3.4.5', '1.2.3.4', 'w'), 'Mutter'), (('1.2.3.4.5', '1.2.3', 'w'), 'Großmutter'), (('1.2.3.4.5', '1.2', 'w'), 'Ur-Großmutter'), (('1.2.3.4.5', '1', 'w'), 'Ur-Ur-Großmutter'), (('1.2.3.4.5', '1.2.3.4.5.6', 'w'), 'Tochter'), (('1.2.3.4.5', '1.2.3.4.5.6.7', 'w'), 'Enkelin'), (('1.2.3.4.5', '1.2.3.4.5.6.7.8', 'w'), 'Ur-Enkelin'), (('1.2.3.4.5', '1.2.3.4.5.6.7.8.9', 'w'), 'Ur-Ur-Enkelin'), ] relations_second_grade_female = [ (('1.2.3.4.5', '1.2.3.x', 'w'), 'Tante'), (('1.2.3.4.5', '1.2.x', 'w'), 'Großtante'), (('1.2.3.4.5', '1.x', 'w'), 'Ur-Großtante'), (('1.2.3.4.5', 'x', 'w'), 'Ur-Ur-Großtante'), (('1.2.3.4.5', '1.2.3.4.x', 'w'), 'Schwester'), (('1.2.3.4.5', '1.2.3.4.x.6', 'w'), 'Nichte'), (('1.2.3.4.5', '1.2.3.4.x.6.7', 'w'), 'Großnichte'), (('1.2.3.4.5', '1.2.3.4.x.6.7.8', 'w'), 'Ur-Großnichte'), (('1.2.3.4.5', '1.2.3.4.x.6.7.8.9', 'w'), 'Ur-Ur-Großnichte'), ] relations_higher_grade_female = [ (('1.2.3.4.5', '1.2.3.x', 'w'), 'Tante'), (('1.2.3.4.5', '1.2.x.x', 'w'), 'Tante 2. Grades'), (('1.2.3.4.5', '1.x.x.x', 'w'), 'Tante 3. Grades'), (('1.2.3.4.5', 'x.x.x.x', 'w'), 'Tante 4. Grades'), (('1.2.3.4.5', '1.2.x', 'w'), 'Großtante'), (('1.2.3.4.5', '1.x.x', 'w'), 'Großtante 2. Grades'), (('1.2.3.4.5', 'x.x.x', 'w'), 'Großtante 3. Grades'), (('1.2.3.4.5', '1.x', 'w'), 'Ur-Großtante'), (('1.2.3.4.5', 'x.x', 'w'), 'Ur-Großtante 2. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x', 'w'), 'Nichte'), (('1.2.3.4.5', '1.2.3.x.x.x', 'w'), 'Nichte 2. Grades'), (('1.2.3.4.5', '1.2.x.x.x.x', 'w'), 'Nichte 3. Grades'), (('1.2.3.4.5', '1.x.x.x.x.x', 'w'), 'Nichte 4. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x.x', 'w'), 'Großnichte'), (('1.2.3.4.5', '1.2.3.x.x.x.x', 'w'), 'Großnichte 2. Grades'), (('1.2.3.4.5', '1.2.x.x.x.x.x', 'w'), 'Großnichte 3. Grades'), (('1.2.3.4.5', '1.x.x.x.x.x.x', 'w'), 'Großnichte 4. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x.x.x', 'w'), 'Ur-Großnichte'), (('1.2.3.4.5', '1.2.3.x.x.x.x.x', 'w'), 'Ur-Großnichte 2. Grades'), (('1.2.3.4.5', '1.2.x.x.x.x.x.x', 'w'), 'Ur-Großnichte 3. Grades'), (('1.2.3.4.5', '1.x.x.x.x.x.x.x', 'w'), 'Ur-Großnichte 4. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x.x.x.x', 'w'), 'Ur-Ur-Großnichte'), (('1.2.3.4.5', '1.2.3.x.x.x.x.x.x', 'w'), 'Ur-Ur-Großnichte 2. Grades'), ] relations_special_grade_female = [ (('1.2.3.4.5', '1.2.3.4.x', 'w'), 'Schwester'), (('1.2.3.4.5', '1.2.3.x.x', 'w'), 'Cousine'), (('1.2.3.4.5', '1.2.x.x.x', 'w'), 'Cousine 2. Grades'), (('1.2.3.4.5', '1.x.x.x.x', 'w'), 'Cousine 3. Grades') ] relations_first_grade_male = [ (('1.2.3.4.5', '1.2.3.4', 'm'), 'Vater'), (('1.2.3.4.5', '1.2.3', 'm'), 'Großvater'), (('1.2.3.4.5', '1.2', 'm'), 'Ur-Großvater'), (('1.2.3.4.5', '1', 'm'), 'Ur-Ur-Großvater'), (('1.2.3.4.5', '1.2.3.4.5.6', 'm'), 'Sohn'), (('1.2.3.4.5', '1.2.3.4.5.6.7', 'm'), 'Enkel'), (('1.2.3.4.5', '1.2.3.4.5.6.7.8', 'm'), 'Ur-Enkel'), (('1.2.3.4.5', '1.2.3.4.5.6.7.8.9', 'm'), 'Ur-Ur-Enkel'), ] relations_second_grade_male = [ (('1.2.3.4.5', '1.2.3.x', 'm'), 'Onkel'), (('1.2.3.4.5', '1.2.x', 'm'), 'Großonkel'), (('1.2.3.4.5', '1.x', 'm'), 'Ur-Großonkel'), (('1.2.3.4.5', 'x', 'm'), 'Ur-Ur-Großonkel'), (('1.2.3.4.5', '1.2.3.4.x', 'm'), 'Bruder'), (('1.2.3.4.5', '1.2.3.4.x.6', 'm'), 'Neffe'), (('1.2.3.4.5', '1.2.3.4.x.6.7', 'm'), 'Großneffe'), (('1.2.3.4.5', '1.2.3.4.x.6.7.8', 'm'), 'Ur-Großneffe'), (('1.2.3.4.5', '1.2.3.4.x.6.7.8.9', 'm'), 'Ur-Ur-Großneffe'), ] relations_higher_grade_male = [ (('1.2.3.4.5', '1.2.3.x', 'm'), 'Onkel'), (('1.2.3.4.5', '1.2.x.x', 'm'), 'Onkel 2. Grades'), (('1.2.3.4.5', '1.x.x.x', 'm'), 'Onkel 3. Grades'), (('1.2.3.4.5', 'x.x.x.x', 'm'), 'Onkel 4. Grades'), (('1.2.3.4.5', '1.2.x', 'm'), 'Großonkel'), (('1.2.3.4.5', '1.x.x', 'm'), 'Großonkel 2. Grades'), (('1.2.3.4.5', 'x.x.x', 'm'), 'Großonkel 3. Grades'), (('1.2.3.4.5', '1.x', 'm'), 'Ur-Großonkel'), (('1.2.3.4.5', 'x.x', 'm'), 'Ur-Großonkel 2. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x', 'm'), 'Neffe'), (('1.2.3.4.5', '1.2.3.x.x.x', 'm'), 'Neffe 2. Grades'), (('1.2.3.4.5', '1.2.x.x.x.x', 'm'), 'Neffe 3. Grades'), (('1.2.3.4.5', '1.x.x.x.x.x', 'm'), 'Neffe 4. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x.x', 'm'), 'Großneffe'), (('1.2.3.4.5', '1.2.3.x.x.x.x', 'm'), 'Großneffe 2. Grades'), (('1.2.3.4.5', '1.2.x.x.x.x.x', 'm'), 'Großneffe 3. Grades'), (('1.2.3.4.5', '1.x.x.x.x.x.x', 'm'), 'Großneffe 4. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x.x.x', 'm'), 'Ur-Großneffe'), (('1.2.3.4.5', '1.2.3.x.x.x.x.x', 'm'), 'Ur-Großneffe 2. Grades'), (('1.2.3.4.5', '1.2.x.x.x.x.x.x', 'm'), 'Ur-Großneffe 3. Grades'), (('1.2.3.4.5', '1.x.x.x.x.x.x.x', 'm'), 'Ur-Großneffe 4. Grades'), (('1.2.3.4.5', '1.2.3.4.x.x.x.x.x', 'm'), 'Ur-Ur-Großneffe'), (('1.2.3.4.5', '1.2.3.x.x.x.x.x.x', 'm'), 'Ur-Ur-Großneffe 2. Grades'), ] relations_special_grade_male = [ (('1.2.3.4.5', '1.2.3.4.x', 'm'), 'Bruder'), (('1.2.3.4.5', '1.2.3.x.x', 'm'), 'Cousin'), (('1.2.3.4.5', '1.2.x.x.x', 'm'), 'Cousin 2. Grades'), (('1.2.3.4.5', '1.x.x.x.x', 'm'), 'Cousin 3. Grades') ] relations_higher_grade_distance = [ (('1.2.3.4.5', '1.2.3.4.5.6', 'w'), 'Tochter', 1), (('1.2.3.4.5', '1.2.3.4.5.6.7', 'w'), 'Enkelin', 2), (('1.2.3.4.5', '1', 'w'), 'Ur-Ur-Großmutter', 4), (('1.2.3.4.5', '1.2.3.x', 'w'), 'Tante', 3), (('1.2.3.4.5', '1.2.x.x', 'w'), 'Tante 2. Grades', 5), (('1.2.3.4.5', '1.x.x.x', 'w'), 'Tante 3. Grades', 7), (('1.2.3.4.5', 'x.x.x.x', 'w'), 'Tante 4. Grades', 9), (('1.2.3.4.5', '1.2.x', 'w'), 'Großtante', 4), (('1.2.3.4.5', '1.x.x', 'w'), 'Großtante 2. Grades', 6), (('1.2.3.4.5', 'x.x.x', 'w'), 'Großtante 3. Grades', 8), (('1.2.3.4.5', '1.x', 'w'), 'Ur-Großtante', 5), (('1.2.3.4.5', 'x.x', 'w'), 'Ur-Großtante 2. Grades', 7), (('1.2.3.4.5', '1.2.3.4.x.x', 'w'), 'Nichte', 3), (('1.2.3.4.5', '1.2.3.x.x.x', 'w'), 'Nichte 2. Grades', 5), (('1.2.3.4.5', '1.2.x.x.x.x', 'w'), 'Nichte 3. Grades', 7), (('1.2.3.4.5', '1.x.x.x.x.x', 'w'), 'Nichte 4. Grades', 9), (('1.2.3.4.5', '1.2.3.4.x.x.x', 'w'), 'Großnichte', 4), (('1.2.3.4.5', '1.2.3.x.x.x.x', 'w'), 'Großnichte 2. Grades', 6), (('1.2.3.4.5', '1.2.x.x.x.x.x', 'w'), 'Großnichte 3. Grades', 8), (('1.2.3.4.5', '1.x.x.x.x.x.x', 'w'), 'Großnichte 4. Grades', 10), (('1.2.3.4.5', '1.2.3.4.x.x.x.x', 'w'), 'Ur-Großnichte', 5), (('1.2.3.4.5', '1.2.3.x.x.x.x.x', 'w'), 'Ur-Großnichte 2. Grades', 7), (('1.2.3.4.5', '1.2.x.x.x.x.x.x', 'w'), 'Ur-Großnichte 3. Grades', 9), (('1.2.3.4.5', '1.x.x.x.x.x.x.x', 'w'), 'Ur-Großnichte 4. Grades', 11), (('1.2.3.4.5', '1.2.3.4.x.x.x.x.x', 'w'), 'Ur-Ur-Großnichte', 6), (('1.2.3.4.5', '1.2.3.x.x.x.x.x.x', 'w'), 'Ur-Ur-Großnichte 2. Grades', 8), ] burghard = [ ('Harald', '1.4.6.3.4', 'm'), ('Alice', '1.4.6.3.4.1', 'w'), ('Janina', '1.4.6.3.4.2', 'w'), ('Theresa', '1.4.6.3.4.2.1', 'w'), ('Valentin', '1.4.6.3.4.2.2', 'm'), ('Freya', '1.4.6.3.4.3', 'w') ] burghard_freya = [ ('Freya', '1.4.6.3.4.3', 'w', 'Tochter', 'Harald', '1.4.6.3.4', 'm', 'Vater', 1) ] burghard_all = [ ('Harald', '1.4.6.3.4', 'm', 'ich', 'Harald', '1.4.6.3.4', 'm', 'ich', 0) ] class test_relatives(unittest.TestCase): def test_first_grade_female(self): self.relations(relations_first_grade_female) def test_second_grade_female(self): self.relations(relations_second_grade_female) def test_higher_grade_female(self): self.relations(relations_higher_grade_female) def test_special_grade_female(self): self.relations(relations_special_grade_female) def test_first_grade_male(self): self.relations(relations_first_grade_male) def test_second_grade_male(self): self.relations(relations_second_grade_male) def test_higher_grade_male(self): self.relations(relations_higher_grade_male) def test_special_grade_male(self): self.relations(relations_special_grade_male) def relations(self, relations_list): for rel, title in relations_list: result = relationship.relationship_name(*rel) self.assertEqual(result, title) def test_distance(self): for rel, title, distance in relations_higher_grade_distance: result = relationship.relationship_distance(rel[0], rel[1]) self.assertEqual(result, distance, title) def test_relations_list(self): result = relationship.relationship_list(burghard, 5) self.assertEqual(result[0], burghard_freya[0]) def test_relations_list_all(self): result = relationship.relationship_list_all(burghard) self.assertEqual(result[0], burghard_all[0]) if __name__ == '__main__': unittest.main()