1
This commit is contained in:
Christoph
2021-08-13 11:59:38 +02:00
parent 57447098b3
commit c91f3f89e7
7 changed files with 2 additions and 2 deletions

71
mytests/test_boolean.py Normal file
View File

@ -0,0 +1,71 @@
import py
from simpleparser import parse
from objmodel import W_NormalObject, W_Integer
from interpreter import Interpreter
def test_boolean_assignment():
ast = parse("""
x = true
y = false
""")
interpreter = Interpreter()
w_model = interpreter.make_module()
interpreter.eval(ast, w_model)
assert isinstance(w_model.getvalue("x"), W_Boolean)
assert w_model.getvalue("x").istrue() is True
assert isinstance(w_model.getvalue("y"), W_Boolean)
assert w_model.getvalue("y").istrue() is False
def test_boolean_operations():
ast = parse("""
x = true and(false)
y = true or(false)
z = not(true)
""")
interpreter = Interpreter()
w_model = interpreter.make_module()
interpreter.eval(ast, w_model)
assert isinstance(w_model.getvalue("x"), W_Boolean)
assert w_model.getvalue("x").istrue() is False
assert isinstance(w_model.getvalue("y"), W_Boolean)
assert w_model.getvalue("y").istrue() is True
assert isinstance(w_model.getvalue("z"), W_Boolean)
assert w_model.getvalue("z").istrue() is False
def test_boolean_result():
ast = parse("""
x = 1 eq(2)
y = 1 leq(2)
""")
interpreter = Interpreter()
w_model = interpreter.make_module()
interpreter.eval(ast, w_model)
assert isinstance(w_model.getvalue("x"), W_Boolean)
assert w_model.getvalue("x").istrue() is False
assert isinstance(w_model.getvalue("y"), W_Boolean)
assert w_model.getvalue("y").istrue() is True
def test_boolean_conversion():
ast = parse("""
x = 1 toboolean
y = true toint
z = false toint
""")
interpreter = Interpreter()
w_model = interpreter.make_module()
interpreter.eval(ast, w_model)
assert isinstance(w_model.getvalue("x"), W_Boolean)
assert w_model.getvalue("x").istrue() is True
assert isinstance(w_model.getvalue("y"), W_Integer)
assert w_model.getvalue("y").value == 1
assert isinstance(w_model.getvalue("z"), W_Integer)
assert w_model.getvalue("z").value == 0