def test_pipe_func(self): add = pipe.func() | this[0] + this[1] assert 3 == add(1, 2) sub = pipe.func("left", "right") | this.left - this.right assert 1 == sub(3, 2) assert 1 == sub(right=2, left=3)
def test_pipe_func_multi_step(self): add = pipe.func() | this[0] + this[1] | this ** 3 | (lambda o: o + 3) assert 30 == add(1, 2) sub = pipe.func("left", "right") | this.left - this.right assert 1 == sub(3, 2) assert 1 == sub(right=2, left=3)
def test_pipe_func_multi_step(self): add = pipe.func() | this[0] + this[1] | this**3 | (lambda o: o + 3) assert 30 == add(1, 2) sub = pipe.func("left", "right") | this.left - this.right assert 1 == sub(3, 2) assert 1 == sub(right=2, left=3)
def test_pipe_func_two_args(self): result = pipe.func("left", "right")(1, 2, 3) self.assertEqual({"left", "right"}, self._args(result)) self.assertEqual(1, len(result)) self.assertEqual(1, result.left) self.assertEqual(2, result.right) self.assertEqual(3, result[0])
def test_pipe_func_args_single_arg(self): result = pipe.func("left")(1, 2, 3) self.assertEqual({"left"}, self._args(result)) self.assertEqual(2, len(result)) self.assertEqual(1, result.left) self.assertEqual(2, result[0]) self.assertEqual(3, result[1])
def test_pipe_func_args_single_arg_kwargs(self): result = pipe.func("left")(1, 2, 3, foo="bar") self.assertEqual({"left", "foo"}, self._args(result)) self.assertEqual(2, len(result)) self.assertEqual(1, result.left) self.assertEqual(2, result[0]) self.assertEqual(3, result[1]) self.assertEqual("bar", result.foo)
def test_pipe_func_args_empty_argspec(self): result = pipe.func()(1, 2, 3) self.assertEqual(set(), self._args(result)) self.assertEqual(1, result[0]) self.assertEqual(2, result[1]) self.assertEqual(3, result[2])
def test_pipe_func_kwargs(self): result = pipe.func("left", "right")(left=1, right=2) self.assertEqual({"left", "right"}, self._args(result)) self.assertEqual(0, len(result)) self.assertEqual(1, result.left) self.assertEqual(2, result.right)