class TestFamily(unittest.TestCase):
    def setUp(self):
        self.King_root = Person("King", "M")
        self.family = Family(self.King_root)
        self.person_1 = Person("person1", "M")
        self.person_2 = Person("person2", "F")

    def test_search_functionality(self):
        with self.assertRaises(custom_exceptions.PersonNotFound):
            self.family.search_member(self.person_1)

    def test_child_addition(self):
        with self.assertRaises(custom_exceptions.ChildAdditionFailed):
            self.family.add_child_in_family(self.King_root, self.person_1)

    def test_get_relationship(self):
        with self.assertRaises(custom_exceptions.CommandNotFound):
            self.family.get_relationship(self.King_root, "unknown_relation")
    Satvy = Person("Satvy", constants.FEMALE)
    Asva = Person("Asva", constants.MALE)
    Krpi = Person("Krpi", constants.FEMALE)
    Vyas = Person("Vyas", constants.MALE)
    Atya = Person("Atya", constants.FEMALE)

    Yodhan = Person("Yodhan", constants.MALE)
    Laki = Person("Laki", constants.MALE)
    Lavnya = Person("Lavnya", constants.FEMALE)
    Vasa = Person("Vasa", constants.MALE)
    Kriya = Person("Kriya", constants.MALE)
    Krithi = Person("Krithi", constants.FEMALE)

    #Relating the population
    family.add_spouse_in_family(King_Shan, Queen_Anga)
    family.add_child_in_family(Queen_Anga, Chit)
    family.add_child_in_family(Queen_Anga, Ish)
    family.add_child_in_family(Queen_Anga, Vich)
    family.add_child_in_family(Queen_Anga, Aras)
    family.add_child_in_family(Queen_Anga, Satya)

    family.add_spouse_in_family(Chit, Amba)
    family.add_child_in_family(Amba, Dritha)
    family.add_child_in_family(Amba, Tritha)
    family.add_child_in_family(Amba, Vritha)

    family.add_spouse_in_family(Vich, Lika)
    family.add_child_in_family(Lika, Vila)
    family.add_child_in_family(Lika, Chika)

    family.add_spouse_in_family(Aras, Chitra)