For each (exp, expected) test case, see if eval(parse(exp)) == expected.
(tests, name='')
| 99 | ] |
| 100 | |
| 101 | def test(tests, name=''): |
| 102 | "For each (exp, expected) test case, see if eval(parse(exp)) == expected." |
| 103 | fails = 0 |
| 104 | for (x, expected) in tests: |
| 105 | try: |
| 106 | result = eval(parse(x)) |
| 107 | print(x, '=>', lispstr(result)) |
| 108 | ok = (result == expected) |
| 109 | except Exception as e: |
| 110 | print(x, '=raises=>', type(e).__name__, e) |
| 111 | ok = isinstance(expected, type) and issubclass(expected, Exception) and isinstance(e, expected) |
| 112 | if not ok: |
| 113 | fails += 1 |
| 114 | print('FAIL!!! Expected', expected) |
| 115 | print('%s %s: %d out of %d tests fail.' % ('*'*45, name, fails, len(tests))) |
| 116 | |
| 117 | if __name__ == '__main__': |
| 118 | from lis import * |
no test coverage detected