def test_join_on_key_phased(self): a = Chain(range(4)).map(lambda x: {'a': x, 'b': 'z%d' % x}) b = Chain(range(4)).map(lambda x: {'a': 3 - x, 'c': 'y%d' % x}) a.join_on_key('a', b) desired_result = [ { 'a': 0, 'b': 'z0', 'c': 'y3' }, { 'a': 1, 'b': 'z1', 'c': 'y2' }, { 'a': 2, 'b': 'z2', 'c': 'y1' }, { 'a': 3, 'b': 'z3', 'c': 'y0' }, ] actual_result = sorted(list(a), key=lambda o: o['a']) self.assertEqual(actual_result, desired_result)
def test_join_on_key(self): a = Chain(range(4)).map(lambda x: {'a': x, 'b': 'z%d' % x}) b = Chain(range(4)).map(lambda x: {'a': x, 'c': 'y%d' % x}) a.join_on_key('a', b) desired_result = [ { 'a': 0, 'b': 'z0', 'c': 'y0' }, { 'a': 1, 'b': 'z1', 'c': 'y1' }, { 'a': 2, 'b': 'z2', 'c': 'y2' }, { 'a': 3, 'b': 'z3', 'c': 'y3' }, ] self.assertEqual(list(a), desired_result)