Exemplo n.º 1
0
def test_add():
    context1 = Context.cons(c=Context.empty(),
                            k=String('b'),
                            v=Literal.lit_nat(Nat(0)))
    context12 = Context.cons(c=Context.empty(),
                             k=String('b'),
                             v=Literal.lit_nat(Nat(4)))
    context2 = Context.add(c=Context.empty(),
                           k=String('b'),
                           v=Literal.lit_nat(Nat(0)))
    context3 = Context.add(c=context2,
                           k=String('b'),
                           v=Literal.lit_nat(Nat(4)))
    context4 = Context.add(c=context2,
                           k=String('c'),
                           v=Literal.lit_nat(Nat(4)))
    assert context2 == context1
    assert context3 == context12
    assert context3 != context1
    assert context4 != context1
    assert context4 != context3
Exemplo n.º 2
0
def test_remove():
    context1 = Context.cons(c=Context.empty(),
                            k=String('b'),
                            v=Literal.lit_nat(Nat(0)))
    context2 = Context.add(c=Context.empty(),
                           k=String('b'),
                           v=Literal.lit_nat(Nat(0)))
    context3 = Context.add(c=context2,
                           k=String('b'),
                           v=Literal.lit_nat(Nat(4)))
    context4 = Context.add(c=context2,
                           k=String('c'),
                           v=Literal.lit_nat(Nat(4)))
    context5 = Context.cons(c=Context.empty(),
                            k=String('c'),
                            v=Literal.lit_nat(Nat(4)))
    assert Context.remove(c=context1, k=String('b')) == Context.empty()
    assert Context.remove(c=context2, k=String('b')) == Context.empty()
    assert Context.remove(c=context4, k=String('b')) == context5
    assert Context.remove(c=context4, k=String('c')) == context2
Exemplo n.º 3
0
def test_get_value():
    context1 = Context.cons(c=Context.empty(),
                            k=String('b'),
                            v=Literal.lit_nat(Nat(0)))
    context2 = Context.add(c=Context.empty(),
                           k=String('b'),
                           v=Literal.lit_nat(Nat(0)))
    context3 = Context.add(c=context2,
                           k=String('b'),
                           v=Literal.lit_nat(Nat(4)))
    context4 = Context.add(c=context2,
                           k=String('c'),
                           v=Literal.lit_nat(Nat(4)))
    assert Context.get_value(c=context1,
                             k=String('b')) == Literal.lit_nat(Nat(0))
    assert Context.get_value(c=context1, k=String('b')) != Literal.lit_nat(
        Nat(1))
    assert Context.get_value(c=context3,
                             k=String('b')) == Literal.lit_nat(Nat(4))
Exemplo n.º 4
0
def test_generator():
    assert String.empty()._generator == String.empty
    assert String.cons(tail=String.empty(),
                       head=Char('a'))._generator == String.cons
Exemplo n.º 5
0
def test_pop():
    assert String('abc').pop() == (String('ab'), Char('c'))
    assert String([]).pop() == (String.empty(), String.empty())
Exemplo n.º 6
0
def test_str_():
    assert String('').__str__() == 'String()'
    assert String.empty().__str__() == 'String()'
    assert String('abc').__str__() == 'String(abc)'
Exemplo n.º 7
0
def test_add_():
    assert String('a') + String('b') == String('ab')
    assert String('a') + String('') == String('a')
    assert String('') + String('a') == String('a')
    assert String('') + String('') == String('')
Exemplo n.º 8
0
def test_constructor():
    assert String('') == String.empty()
    assert String('ab') == String.cons(tail=String.cons(tail=String.empty(),
                                                        head=Char('a')),
                                       head=Char('b'))
Exemplo n.º 9
0
from adt.util.expr_list import Expr_list
from adt.util.expr import Expr
from adt.util.literal import Literal

from adt.types.nat import Nat
from adt.types.string import String

expr1 = Expr.expr_lit(Literal.lit_nat(Nat(2)))
expr2 = Expr.expr_variable(String("test"))
u_expr_list = Expr_list.cons(tail=Expr_list.empty(), head=expr2)
expr_list = Expr_list.cons(tail=u_expr_list, head=expr1)


def test_car():
    assert Expr_list.car(expr_list) == expr1


def test_cdr():
    assert Expr_list.cdr(expr_list) == u_expr_list
    assert Expr_list.car(Expr_list.cdr(expr_list)) == expr2