class SubTest(unittest.TestCase): def setUp(self): self.lista = [['a','b','c'],['me','you','he','her','it']] self.BC = BroadCaster(self.lista) def testSub0(self): """fail if you call a method meant for the subelements""" self.assertRaises(AttributeError, self.BC.upper().BClist) def testSub1(self): """can emerge it with the appropriate method""" self.res = self.BC.BCsub( 'upper' ).BClist() self.assertTrue( self.res == [['A','B','C'],['ME','YOU','HE','HER','IT']] ) def testSub2(self): self.res = self.BC.BCsub( 'BCmapfilter' ).BClist() self.assertTrue( self.res == [['a','b','c'],['me','you','he','her','it']] ) def testSub3(self): self.res = self.BC.BCsub( 'BCmapfilter', lambda i:i*2 ).BClist() self.assertTrue( self.res == [['aa','bb','cc'],['meme','youyou','hehe','herher','itit']] ) def testSub4(self): """can be made in a recursive way""" self.BC = BroadCaster([ [['a'],['b']], [['c'],['d']] ]) self.res = self.BC.BCsub('BCsub', 'BCmapfilter', lambda i:i*2 ).BClist() self.assertTrue( self.res == [ [['aa'],['bb']], [['cc'],['dd']] ] ) def testSub5(self): self.res = self.BC.BCsub( '__getitem__',0 ).BClist() self.assertTrue( self.res == [['a','b','c'],['m','y','h','h','i']] )
class EmergeTest(unittest.TestCase): def setUp(self): self.lista = 'aiuole' self.BC = BroadCaster(self.lista) def testEmerge1(self): self.res = self.BC.upper() self.assertTrue( self.res.BClist() == ['A','I','U','O','L','E'] ) def testEmerge2(self): self.res = self.BC.__add__('a') self.assertTrue( self.res.BClist() == ['aa', 'ia', 'ua', 'oa', 'la', 'ea'] ) def testEmerge3(self): self.res = BroadCaster([int,float,complex])(1) self.assertTrue( self.res.BClist() == [1, 1.0, (1+0j)] ) def tearDown(self): self.assertTrue(isinstance(self.res,BroadCaster))