def test_raw_eval_nested(self): string = "(lambda x. x) ((lambda x. x) (lambda z. (lambda x. x) x))" parsed = self.semantic(string) print Evaluator.eval(parsed) self.assertEqual(Evaluator.raw_eval(parsed), {'type': 'lambda', 'binder': 'z', 'body': [{'type': 'lambda', 'binder': 'x', 'body': [{'type': 'variable', 'value': 'x'}]}, {'type': 'variable', 'value': 'x'}]})
def test_raw_eval2(self): newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't'] parsed = Parser.full_parse(newTokens) self.assertEqual(Evaluator.raw_eval(parsed), {'type': 'application', 'left': {'type': 'variable', 'value': 't'}, 'right': {'type': 'variable', 'value': 'y'}})
def test_raw_eval_nested(self): string = "(lambda x. x) ((lambda x. x) (lambda z. (lambda x. x) x))" parsed = self.semantic(string) print Evaluator.eval(parsed) self.assertEqual( Evaluator.raw_eval(parsed), { 'type': 'lambda', 'binder': 'z', 'body': [{ 'type': 'lambda', 'binder': 'x', 'body': [{ 'type': 'variable', 'value': 'x' }] }, { 'type': 'variable', 'value': 'x' }] })
def test_raw_eval2(self): newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't'] parsed = Parser.full_parse(newTokens) self.assertEqual( Evaluator.raw_eval(parsed), { 'type': 'application', 'left': { 'type': 'variable', 'value': 't' }, 'right': { 'type': 'variable', 'value': 'y' } })
def test_eval4(self): parsed = self.semantic("(lambda x. x z y) t") self.assertEqual(Evaluator.eval(parsed), "t z y")
def test_eval3(self): parsed = self.semantic("lambda x. x y") self.assertEqual(Evaluator.eval(parsed), "lambda x. x y")
def test_eval2(self): newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't'] parsed = Parser.full_parse(newTokens) self.assertEqual(Evaluator.eval(parsed), "t y")
def test_eval1(self): parsed = Parser.full_parse(self.application_tokens) self.assertEqual(Evaluator.eval(parsed), "t")
def test_raw_eval1(self): parsed = Parser.full_parse(self.application_tokens) self.assertEqual(Evaluator.raw_eval(parsed), { 'type': 'variable', 'value': 't' })
def test_raw_eval1(self): parsed = Parser.full_parse(self.application_tokens) self.assertEqual(Evaluator.raw_eval(parsed), {'type': 'variable', 'value': 't'})