def testInterceptorsNonPure2(self): import inheritance, robin class FunctorImpl(inheritance.IFunctorImpl): pass class MyFunctorImpl(inheritance.IFunctorImpl): def operate(self, s, n): return robin.disown(stl.string(str(s) + str(n))) fi = FunctorImpl() mfi = MyFunctorImpl() elements = ["Elaine", "John", "Theodore"] melements1 = inheritance.mapper(elements, fi) melements2 = inheritance.mapper(elements, mfi) self.assertEquals(melements1, elements) self.assertEquals(melements2, map(lambda x,y:x+str(y), elements, range(len(elements))))
def testInterceptors(self): import inheritance, robin class MyFunctor(inheritance.IFunctor): def operate(self, string, index): q = str(string)*index return robin.disown(stl.string(q)) f = MyFunctor() elements = ["Aaron", "Mike", "Joseph"] melements = inheritance.mapper(elements, f) self.assertEquals(len(elements), len(melements)) for i in xrange(len(elements)): self.assertEquals(elements[i] * i, melements[i]) self.assertEquals(reduce(inheritance.mul, [f,f], 9), 9.0)