class TestSocialNetwork(unittest.TestCase):

    def setUp(self):
        self.pandabook = SocialNetwork()
        self.ruja = Panda('Ruja', '*****@*****.**', 'female')
        self.martin = Panda('Martin', '*****@*****.**', 'male')

    def test_social_network_add_panda(self):
        self.pandabook.add_panda(self.ruja)

        self.assertEqual(self.pandabook._get_graph()[self.ruja], set())

    def test_social_network_has_panda(self):
        self.pandabook.add_panda(self.martin)

        self.assertTrue(self.pandabook.has_panda(self.martin))
        self.assertFalse(self.pandabook.has_panda(self.ruja))

    def test_social_network_make_friends(self):
        self.pandabook.make_friends(self.ruja, self.martin)

        self.assertEqual(self.pandabook._get_graph()[self.ruja], {self.martin})
        self.assertEqual(self.pandabook._get_graph()[self.martin], {self.ruja})

    def test_social_netowrk_connection_level(self):
        random = Panda("Random", "*****@*****.**", "male")
        random1 = Panda("Random1", "*****@*****.**", "male")
        random2 = Panda("Random2", "*****@*****.**", "female")
        random3 = Panda("Random3", "*****@*****.**", "female")

        self.pandabook.make_friends(self.ruja, self.martin)
        self.pandabook.make_friends(self.ruja, random)
        self.pandabook.make_friends(self.martin, random1)
        self.pandabook.make_friends(self.martin, random2)
        self.pandabook.make_friends(random, random3)
        
        self.assertEqual(self.pandabook.connection_level(self.ruja, random3), 2)

        random_gay = Panda("RandomGay", "*****@*****.**", "female")
        self.pandabook.add_panda(random_gay)

        self.assertEqual(self.pandabook.connection_level(self.ruja, random_gay), -1)

    def test_social_network_are_connected(self):
        gosho = Panda("Gosho", "*****@*****.**", "male")
        krasi = Panda("Krasi", "*****@*****.**", "female")

        self.pandabook.make_friends(self.ruja, self.martin)
        self.pandabook.make_friends(self.martin, gosho)

        self.assertTrue(self.pandabook.are_connected(self.ruja, gosho))

        self.assertFalse(self.pandabook.are_connected(self.ruja, krasi))

    def test_social_network_how_many_gender_in_network(self):
        random = Panda("Random", "*****@*****.**", "male")
        random1 = Panda("Random1", "*****@*****.**", "male")
        random2 = Panda("Random2", "*****@*****.**", "female")
        random3 = Panda("Random3", "*****@*****.**", "female")

        self.pandabook.make_friends(self.ruja, self.martin)
        self.pandabook.make_friends(self.ruja, random)
        self.pandabook.make_friends(self.martin, random1)
        self.pandabook.make_friends(self.martin, random2)
        self.pandabook.make_friends(random, random3)

        self.assertEqual(self.pandabook.how_many_gender_in_network(1, self.ruja, "male"), 2)
        self.assertEqual(self.pandabook.how_many_gender_in_network(1, self.ruja, "female"), 1)
        self.assertEqual(self.pandabook.how_many_gender_in_network(2, self.ruja, "male"), 3)
Esempio n. 2
0
def main():
    pandabook = SocialNetwork()
    martin = Panda("Martin", "*****@*****.**", "male")
    rado = Panda("Rado", "*****@*****.**", "male")
    lubo = Panda("Lubo", "*****@*****.**", "male")
    dimitar = Panda("Dimitar", "*****@*****.**", "male")
    stanislav = Panda("Stanislav", "*****@*****.**", "male")
    denitsa = Panda("Denitsa", "*****@*****.**", "female")
    zornitsa = Panda("Zornitsa", "*****@*****.**", "female")
    iva = Panda("Iva", "*****@*****.**", "female")
    dora = Panda("Dora", "*****@*****.**", "female")
    aneliya = Panda("Aneliya", "*****@*****.**", "female")

    pandabook.make_friends(martin, lubo)
    pandabook.make_friends(martin, rado)
    pandabook.make_friends(rado, denitsa)
    pandabook.make_friends(rado, dimitar)
    pandabook.make_friends(denitsa, zornitsa)
    pandabook.make_friends(denitsa, iva)
    pandabook.make_friends(denitsa, dora)
    pandabook.make_friends(lubo, dimitar)
    pandabook.make_friends(lubo, stanislav)
    pandabook.make_friends(stanislav, aneliya)

    pandabook.save()