1
Files
lecture-interpreters/mytest/test_string.py
2021-08-09 16:37:33 +02:00

36 lines
944 B
Python

import py
from simpleparser import parse
from objmodel import W_NormalObject, W_Integer
from interpreter import Interpreter
def test_string_assignment():
ast = parse("""
x = "Hallo"
""")
interpreter = Interpreter()
w_model = interpreter.make_module()
interpreter.eval(ast, w_model)
assert isinstance(w_model.getvalue("x"), W_String)
assert w_model.getvalue("x").value == "Hallo"
def test_string_operations():
ast = parse("""
x = "Hallo" add("ollaH")
y = "Hallo" rev
z = "Hallo" len
""")
interpreter = Interpreter()
w_model = interpreter.make_module()
interpreter.eval(ast, w_model)
assert isinstance(w_model.getvalue("x"), W_String)
assert w_model.getvalue("x").value == "HalloollaH"
assert isinstance(w_model.getvalue("y"), W_String)
assert w_model.getvalue("y").value == "ollaH"
assert isinstance(w_model.getvalue("z"), W_Integer)
assert w_model.getvalue("z").value == 5