def test_findall_template_func(self): x, y, z = LogicVar('x'), LogicVar('y'), LogicVar('z') f = Var('f') eq_( eval( let([(f, rules(((), 2), ((), 3)))], findall(is_(x, f()), x, y), getvalue(y))), [2, 3])
def test_unify2(self): x = LogicVar('x') result = compile_optimize(unify(x, 2)) x1 = il.LogicVar('x') x2 = il.ConstLocalVar('x') expect = il.begin( il.Assign(x2, il.Deref(LogicVar(x1))), il.If( il.IsLogicVar(x2), il.begin(il.SetBinding(x2, il.Integer(2)), il.TRUE), il.If(il.Eq(x2, il.Integer(2)), il.TRUE, il.failcont(il.TRUE)))) eq_(result, expect)
def test_greedy_seplist5(self): _ = DummyVar('_') y = LogicVar('y') assert_raises( NoSolution, eval, begin(set_text('a,a,a'), greedy_seplist(char(_), char(','), _, y), char(_), eoi, getvalue(y)))
def test_seplist5(self): _ = DummyVar('_') y = LogicVar('y') eq_( eval( begin(set_text('a,b,cd'), seplist(char(_), char(','), _, y), char(_), eoi, getvalue(y))), ['a', 'b', 'c'])
def test_greedy_some5(self): _ = DummyVar('_') y = LogicVar('y') assert_raises( NoSolution, eval, begin(set_text('aaa'), greedy_some(char(_), _, y), char(_), eoi, y))
def test_greedy_some4(self): _ = DummyVar('_') y = LogicVar('y') eq_( eval( begin(set_text('aaa'), greedy_some(char(_), _, y), eoi, getvalue(y))), ['a', 'a', 'a'])
def test_some5(self): _ = DummyVar('_') y = LogicVar('y') eq_( eval( begin(set_text('abc'), some(char(_), _, y), char(_), eoi, getvalue(y))), ['a', 'b'])
def test2(self): x = Var('x') Lx = LogicVar('x') eq_(eval(unify(1, 1)), True) eq_(eval(begin(unify(1, 1), unify(2, 2))), True) eq_(eval(begin(unify(Lx, 1), unify(Lx, 1))), True) eq_(eval(let([(x, 1)], unify(x, 1))), True)
def test_lazy_seplist5(self): _ = DummyVar('_') y = LogicVar('y') eq_( eval( begin(set_text('a,a,aa'), lazy_seplist(char(_), char(','), _, y), char(_), eoi, getvalue(y))), ['a', 'a', 'a'])
def test10(self): x = LogicVar('x') x1 = Const('x') y1 = Const('y') eq_( eval( begin(assign(x1, L(L(1, x))), assign(y1, L(L(1, x))), unify(x1, y1))), True)
def test_type(self): x = LogicVar('x') eq_(eval(isinteger(x)), False) eq_(eval(isinteger(1)), True) eq_(eval(isfloat(1)), False) eq_(eval(isfloat(1.0)), True) eq_(eval(isnumber(1.0)), True) eq_(eval(isnumber(1)), True) eq_(eval(istuple(())), True) eq_(eval(islist([])), True) eq_(eval(isdict({})), True)