typesafe-monads/tests/test_maybe.py

29 lines
693 B
Python
Raw Normal View History

2018-10-12 00:44:57 +00:00
import pytest # type: ignore
from typing import List
from monads.maybe import Maybe, Just, Nothing, maybe, first, last
2018-10-11 05:26:00 +00:00
def test_maybe_none():
assert isinstance(maybe(None), Nothing)
def test_maybe_something():
assert isinstance(maybe(False), Just)
def test_maybe_boolean_false():
assert isinstance(maybe(False, predicate=bool), Nothing)
def test_maybe_boolean_true():
assert isinstance(maybe(True, predicate=bool), Just)
2018-10-12 00:44:57 +00:00
def test_first() -> None:
maybes: List[Maybe[int]] = [Nothing(), Just(1), Just(2)]
assert Just(1) == first(maybes)
def test_last() -> None:
maybes: List[Maybe[int]] = [Just(1), Just(2), Nothing()]
assert Just(2) == last(maybes)