def test_numeric_function_set(): lang = numeric.generate_numeric_instance() lang.get_sort('particle') p1 = lang.get_constant('p1') x = lang.get_function('x') model = tarski.model.create(lang) model.setx(x(p1), 1.0)
def test_blocksworld_set(): lang = blocksworld.generate_small_fstrips_bw_language() model = Model(lang) loc = lang.get_function('loc') b1, table = (lang.get_constant(s) for s in ('b1', 'table')) model.setx(loc(b1), table) assert evaluate(loc(b1), model) == table
def test_blocksworld_set_via_square_brackets(): lang = blocksworld.generate_small_fstrips_bw_language() model = Model(lang) model.evaluator = evaluate loc = lang.get_function('loc') b1, table = (lang.get_constant(s) for s in ('b1', 'table')) model.setx(loc(b1), table) assert model[loc(b1)] == table
def test_numeric_rel_formula_evaluation(): lang = numeric.generate_numeric_instance() p1 = lang.get_constant('p1') p2 = lang.get_constant('p2') x = lang.get_function('x') model = tarski.model.create(lang) model.evaluator = evaluate model.setx(x(p1), 1.0) model.setx(x(p2), 2.0) assert model[x(p1) < x(p2)] is True
def test_numeric_builtin_addition(): lang = numeric.generate_numeric_instance() p1 = lang.get_constant('p1') x = lang.get_function('x') model = tarski.model.create(lang) model.evaluator = evaluate model.setx(x(p1), 1.0) expr = model[x(p1) + 1.0] assert isinstance(expr, Constant) assert expr.symbol == 2.0
def test_numeric_builtin_addition_int(): lang = language(theories=[Theory.EQUALITY, Theory.ARITHMETIC]) # The sorts particle = lang.sort('bowl') eggs = lang.function('eggs', lang.Object, lang.Integer) bowl_1 = lang.constant('bowl_1', particle) model = tarski.model.create(lang) model.evaluator = evaluate model.setx(eggs(bowl_1), 1) expr = model[eggs(bowl_1) + 1] assert isinstance(expr, Constant) assert isinstance(expr.symbol, int) assert expr.symbol == 2
def test_predicate_without_equality_reals(): import numpy lang = tarski.language(theories=[]) leq = lang.predicate('leq', lang.Real, lang.Real) w = lang.function('w', lang.Object, lang.Real) o1 = lang.constant("o1", lang.Object) o2 = lang.constant("o2", lang.Object) model = Model(lang) model.evaluator = evaluate model.setx(w(o1), 1.0) model.setx(w(o2), 2.0) for x in numpy.arange(0.0, 5.0): for y in numpy.arange(x, 5.0): model.add(leq, x, y) assert model[leq(w(o1), w(o2))] is True assert model[leq(w(o2), w(o1))] is False
def test_ite(): lang = tarski.language('arith', [Theory.EQUALITY, Theory.ARITHMETIC]) c = lang.constant(1, lang.Integer) x = lang.function('x', lang.Integer) y = lang.function('y', lang.Integer) phi = (x() <= y()) & (y() <= x()) t1 = x() + 2 t2 = y() + 3 tau = ite(phi, t1, t2) model = Model(lang) model.evaluator = evaluate model.setx(x(), 1) model.setx(y(), 2) assert model[tau].symbol == 5