def test_without_optimization_fact(self): stdout, stderr, rc = test(_compiler(''' int fact(int n) { if n <= 1 return 1; return n * fact(n - 1); }; fact(50000) >>; ''')) self.assertEqual(1, rc) self.assertRegex(stderr, 'Exception in thread "main" java.lang.StackOverflowError')
def test_without_optimization(self): stdout, stderr, rc = test(_compiler(''' void f(int n) { if n > 50000 return; f(n + 1); pass }; f(0); ''')) self.assertEqual(1, rc) self.assertRegex(stderr, 'Exception in thread "main" java.lang.StackOverflowError')
def base(self, src, expected_output): stdout, stderr, rc = test(_compiler(src)) self.assertEqual(0, rc, "expect zero return code") self.assertEqual('', stderr, 'Expect empty stderr') self.assertEqual(expected_output, stdout)