blob: 173114febe314c93e88604246d962330531f2110 [file] [log] [blame]
from more_executors import f_return, f_apply
def mult2(x):
return x * 2
def mult(x, y, *rest):
out = x * y
for val in rest:
out = out * val
return out
def dump_args(*args, **kwargs):
return (args, kwargs)
def test_f_apply_no_arg():
applied = f_apply(f_return(lambda: 42))
assert applied.result() == 42
def test_f_apply_single_arg():
applied = f_apply(f_return(mult2), f_return(42))
assert applied.result() == 84
def test_f_apply_multi_arg():
applied = f_apply(f_return(mult), f_return(3), f_return(4), f_return(2))
assert applied.result() == 24
def test_f_apply_kwargs():
applied = f_apply(f_return(dump_args), key1=f_return(42), key2=f_return(12))
assert applied.result() == ((), {"key1": 42, "key2": 12})
def test_f_apply_mixed():
applied = f_apply(
f_return(dump_args),
f_return("a"),
f_return("b"),
f_return("c"),
key1=f_return("val1"),
key2=f_return("val2"),
key3=f_return("val3"),
)
assert applied.result() == (
("a", "b", "c"),
{"key1": "val1", "key2": "val2", "key3": "val3"},
)