typesafe-monads/tests/test_applicatives.py

19 lines
448 B
Python
Raw Normal View History

2018-10-12 18:09:16 +00:00
import pytest # type: ignore
from typing import Callable, Type, TypeVar
from monads import Applicative, Functor, Maybe, Result
T = TypeVar("T")
S = TypeVar("S")
@pytest.fixture(scope="module", params=[Maybe, Result])
def monad(request) -> Type:
return request.param
def test_fmap_using_ap(monad) -> None:
f: Callable[[int], int] = lambda x: x + 1
m: Applicative[int] = monad.pure(3)
assert m.map(f) == m.apply(monad.pure(f))