typesafe-monads/tests/test_maybe.py
2018-10-11 20:45:56 -04:00

28 lines
693 B
Python

import pytest # type: ignore
from typing import List
from monads.maybe import Maybe, Just, Nothing, maybe, first, last
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)
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)