예제 #1
0
def test_Functorisor_call():
    f = Functorisor(lambda a: [], lambda a: [a])
    assert f(1) == [1]
예제 #2
0
def test_Functorisor_get_pure():
    f = Functorisor(lambda a: [], lambda a: [a])
    assert f.get_pure(1) == []
예제 #3
0
def test_Functorisor_fmap():
    f = Functorisor(lambda a: [], lambda a: [a])
    assert f.fmap(lambda a: a + 1)(1) == f(2)
예제 #4
0
def test_Functorisor_replace_func():
    f = Functorisor(lambda a: [], lambda a: [a])
    assert f.replace_func(lambda a: None)(1) is None
예제 #5
0
import lenses.typeclass as tc
from lenses.functorisor import Functorisor
from lenses.identity import Identity
from lenses.maybe import Just, Nothing

ident = Functorisor(lambda a: Identity(a), lambda a: Identity(4))


def test_traversal_list_using_identity():
    assert tc.traverse([1, 2, 3], ident) == Identity([4, 4, 4])


def test_traversal_empty_list_using_identity():
    assert tc.traverse([], ident) == Identity([])


def test_traversal_just_using_identity():
    assert tc.traverse(Just(1), ident) == Identity(Just(4))


def test_traversal_nothing_using_identity():
    assert tc.traverse(Nothing(), ident) == Identity(Nothing())