def test_are_connected_two_pandas_that_are(self): panda1 = Panda('name', '*****@*****.**', 'male') panda2 = Panda('name', '*****@*****.**', 'male') self.panda_social_network.make_friends(panda1, panda2) self.assertTrue(self.panda_social_network.are_connected( panda1, panda2))
def test_invalid_email(self): with self.assertRaises(InvalidEmailError): Panda('Ivo', '[email protected]', 'male') Panda('Ivo', '*****@*****.**', 'male') Panda('Ivo', 'nqkoisiBre.com', 'male') Panda('Ivo', 'nqkoisiBre@Abv.', 'male') Panda('Ivo', 'nqkoisiBre@Abv', 'male')
class TestPanda(unittest.TestCase): def setUp(self, name, email, male): self.ivo = Panda("Ivo", "*****@*****.**", "male") self.name = "Ivo" self.email = "*****@*****.**" self.gender = "male" def test_init(self): self.assertTrue(isinstance(self.ivo, Panda)) self.assertEqual(self.ivo.name, self.name) self.assertEqual(self.ivo.email, self.email) self.assertEqual(self.ivo.gender, self.gender) with self.assertRaises(ValueError): self.ivo = Panda("Ivo", "ivopandamail.com", "male") def test_gender(self): self.assertTrue(self.ivo.isMale()) self.assertFalse(self.ivo.isFemale()) def test_str(self): self.assertEqual(str(self.ivo), self.ivo.name) def test_eq(self): other_panda = Panda("Rado", "*****@*****.**", "male") self.assertFalse(self.ivo == other_panda) def test_hash(self): self.assertTrue(isinstance(self.ivo.__hash__(), int))
def test_make_friends_work_properly(self): panda1 = Panda('Pesho', '*****@*****.**', 'male') panda2 = Panda('Peshoze', '*****@*****.**', 'male') self.assertEqual(0, len(self.panda_social_network.get_pandas())) self.panda_social_network.make_friends(panda1, panda2) self.assertEqual(2, len(self.panda_social_network.get_pandas())) self.assertTrue(self.panda_social_network.are_friends(panda1, panda2)) self.assertTrue(self.panda_social_network.are_friends(panda2, panda1))
def test_make_friends_work_properly(self): panda1 = Panda('testtest', '*****@*****.**', 'male') panda2 = Panda('testtest2', '*****@*****.**', 'male') self.assertEqual(0, len(self.panda_social_network.get_pandas())) self.panda_social_network.make_friends(panda1, panda2) self.assertEqual(2, len(self.panda_social_network.get_pandas())) self.assertTrue(self.panda_social_network.are_friends(panda1, panda2)) self.assertTrue(self.panda_social_network.are_friends(panda2, panda1))
def test_init(self): self.assertTrue(isinstance(self.ivo, Panda)) self.assertEqual(self.ivo.name, self.name) self.assertEqual(self.ivo.email, self.email) self.assertEqual(self.ivo.gender, self.gender) with self.assertRaises(ValueError): self.ivo = Panda("Ivo", "ivopandamail.com", "male")
def test_connection_level_for_two_pandas_who_are_not_connected(self): panda1 = Panda('name', '*****@*****.**', 'male') panda2 = Panda('name', '*****@*****.**', 'male') self.panda_social_network.add_panda(panda1) self.panda_social_network.add_panda(panda2) self.assertEqual( self.panda_social_network.connection_level(panda1, panda2), -1)
def test_connection_level_3_pandas(self): ivo = Panda("Ivo", "*****@*****.**", "male") pandio = Panda("Pandio", "*****@*****.**", "male") hime = Panda("Hime", "*****@*****.**", "female") self.network.add_panda(ivo) self.network.add_panda(pandio) self.network.add_panda(hime) self.network.make_friends(ivo, pandio) self.network.make_friends(pandio, hime) self.assertEqual(2, self.network.connection_level(ivo, hime))
def test_gender_when_level_is_0(self): panda1 = Panda('name', '*****@*****.**', 'male') panda2 = Panda('name', '*****@*****.**', 'male') panda3 = Panda('name', '*****@*****.**', 'male') self.panda_social_network.make_friends(panda1, panda2) self.panda_social_network.make_friends(panda1, panda3) self.assertEqual( self.panda_social_network.how_many_gender_in_network( 1, panda1, 'male'), 2)
def test_friends_of_panda_with_two_friends(self): panda1 = Panda('name', '*****@*****.**', 'male') panda2 = Panda('name', '*****@*****.**', 'male') panda3 = Panda('name', '*****@*****.**', 'male') self.panda_social_network.make_friends(panda1, panda2) self.panda_social_network.make_friends(panda1, panda3) self.assertEqual(self.panda_social_network.friends_of(panda1), set([panda2, panda3]))
def setUp(self): self.ivo = Panda('Ivo', '*****@*****.**', 'male') self.ivo_copy = Panda('Ivo', '*****@*****.**', 'male') self.roza = Panda('Rositsa', '*****@*****.**', 'female') self.smith = Panda('John', '*****@*****.**', 'male') self.smalling = Panda('Paul', '*****@*****.**', 'male') self.patrice = Panda('Evra', '*****@*****.**', 'male') self.girl = Panda('Girl', '*****@*****.**', 'female')
def test_connection_level_for_graph_with_4_pandas(self): panda1 = Panda('name', '*****@*****.**', 'male') panda2 = Panda('name', '*****@*****.**', 'male') panda3 = Panda('name', '*****@*****.**', 'male') panda4 = Panda('name', '*****@*****.**', 'male') self.panda_social_network.make_friends(panda1, panda2) self.panda_social_network.make_friends(panda2, panda3) self.panda_social_network.make_friends(panda3, panda4) level = self.panda_social_network. \ connection_level(panda1, panda4) self.assertEqual(3, level)
def test_hash(self): """ Create three almost equal pandas and see if their hash function works as expected""" one = Panda('Ivo', '*****@*****.**', 'male') two = Panda('Ivo', '*****@*****.**', 'male') three = Panda('ivo', '*****@*****.**', 'male') four = Panda('shopa', '*****@*****.**', 'male') # create a set and see if all four pandas are there, if not, some have been overwritten pandas = {one, two, three, four} self.assertEqual(len(pandas), 4) # create a set again one_copy = Panda('Ivo', '*****@*****.**', 'male') pandas = {one, one_copy} # THESE SHOULD OVERWRITE self.assertNotEqual(len(pandas), 2) self.assertEqual(len(pandas), 1)
class PandaTests(unittest.TestCase): def setUp(self): self.ivo = Panda('Ivo', '*****@*****.**', 'male') self.ivo_copy = Panda('Ivo', '*****@*****.**', 'male') self.roza = Panda('Rositsa', '*****@*****.**', 'female') self.smith = Panda('John', '*****@*****.**', 'male') self.smalling = Panda('Paul', '*****@*****.**', 'male') self.patrice = Panda('Evra', '*****@*****.**', 'male') self.girl = Panda('Girl', '*****@*****.**', 'female') def test_equal(self): self.assertNotEqual(self.ivo, self.roza) self.assertEqual(self.ivo, self.ivo_copy) def test_gender(self): self.assertTrue(self.girl.isFemale()) self.assertTrue(self.patrice.isMale()) def test_invalid_email(self): with self.assertRaises(InvalidEmailError): Panda('Ivo', '[email protected]', 'male') Panda('Ivo', '*****@*****.**', 'male') Panda('Ivo', 'nqkoisiBre.com', 'male') Panda('Ivo', 'nqkoisiBre@Abv.', 'male') Panda('Ivo', 'nqkoisiBre@Abv', 'male') def test_hash(self): """ Create three almost equal pandas and see if their hash function works as expected""" one = Panda('Ivo', '*****@*****.**', 'male') two = Panda('Ivo', '*****@*****.**', 'male') three = Panda('ivo', '*****@*****.**', 'male') four = Panda('shopa', '*****@*****.**', 'male') # create a set and see if all four pandas are there, if not, some have been overwritten pandas = {one, two, three, four} self.assertEqual(len(pandas), 4) # create a set again one_copy = Panda('Ivo', '*****@*****.**', 'male') pandas = {one, one_copy} # THESE SHOULD OVERWRITE self.assertNotEqual(len(pandas), 2) self.assertEqual(len(pandas), 1)
def setUp(self): self.ivo = Panda('Ivo', '*****@*****.**', 'male') self.ivo_copy = Panda('Ivo', '*****@*****.**', 'male') self.roza = Panda('Rositsa', '*****@*****.**', 'female') self.smith = Panda('John', '*****@*****.**', 'male') self.smalling = Panda('Paul', '*****@*****.**', 'male') self.patrice = Panda('Evra', '*****@*****.**', 'male') self.girl = Panda('Girl', '*****@*****.**', 'female') self.friendless_guy = Panda('Friendless', '*****@*****.**', 'male') self.social_network = PandaSocialNetwork() self.social_network.add_panda(self.friendless_guy) self.social_network.make_friends(self.ivo, self.roza) self.social_network.make_friends(self.ivo, self.smith) self.social_network.make_friends(self.ivo, self.smalling) self.social_network.make_friends(self.patrice, self.smalling) self.social_network.make_friends(self.patrice, self.girl)
def setUp(self, name, email, male): self.ivo = Panda("Ivo", "*****@*****.**", "male") self.name = "Ivo" self.email = "*****@*****.**" self.gender = "male"
def setUp(self): self.network = PandaSocialNetwork() self.network.all_pandas = {} self.ivo = Panda("Ivo", "*****@*****.**", "male") self.pandio = Panda("Pandio", "*****@*****.**", "male") self.hime = Panda("Hime", "*****@*****.**", "female")
def test_get_pandas_return_1_panda_if_1_panda_is_added(self): panda = Panda('Pesho', '*****@*****.**', 'male') self.panda_social_network.add_panda(panda) self.assertEqual(self.panda_social_network.get_pandas(), [panda])
def test_eq(self): other_panda = Panda("Rado", "*****@*****.**", "male") self.assertFalse(self.ivo == other_panda)
def test_panda_name_method_avoids_collision(self): panda = Panda('name', '*****@*****.**', 'male') self.assertEqual(panda.name(), 'name')
def test_friends_of_panda_with_0_friends(self): panda1 = Panda('name', '*****@*****.**', 'male') self.panda_social_network.add_panda(panda1) self.assertEqual(self.panda_social_network.friends_of(panda1), set())
def test_get_pandas_return_1_panda_if_1_panda_is_added(self): panda = Panda('testtest', '*****@*****.**', 'male') self.panda_social_network.add_panda(panda) self.assertEqual(self.panda_social_network.get_pandas(), [panda])