class TestEvaluator(unittest.TestCase):

    def setUp(self):
        # multiple forms in a single test share mutable global env
        self.r = Repl()

    def checkForm(self, form, expected):
        try:
            ival = self.r.evalForm(form)
            val, err = getVal(ival), getErr(ival)
            self.assertTrue(val == expected, "%s => (%s, %s)"%(to_string(form), val, err))
        except Exception, why:
            self.fail("%s => %s"%(form, why))