def test_list_with_two_items_without_opening_bracket(self): with self.assertRaises(readerEx.MalformedListException) as cm: self.stream.set_stream('10 123)') result = reader.read_from_stream(self.stream) printer.print_scheme_object(result, self.output_stream) desired_exception = cm.exception self.assertTrue(isinstance(desired_exception, readerEx.MalformedListException))
def test_two_consecutive_malformed_lists(self): with self.assertRaises(readerEx.MalformedListException) as cm: self.stream.set_stream('10 123)') result = reader.read_from_stream(self.stream) printer.print_scheme_object(result, self.output_stream) desired_exception = cm.exception self.assertTrue(isinstance(desired_exception, readerEx.MalformedListException)) with self.assertRaises(readerEx.MalformedListException) as cm2: self.stream.set_stream('asd 1234)') result = reader.read_from_stream(self.stream) printer.print_scheme_object(result, self.output_stream) desired_exception = cm2.exception self.assertTrue(isinstance(desired_exception, readerEx.MalformedListException))
def test_nested_quote(self): self.stream.set_stream("(x (a '(a b c d e f g)))") result = reader.read_from_stream(self.stream) printer.print_scheme_object(result, self.output_stream) self.assertEqual(self.output_stream.get_stream(), "(x (a (quote (a b c d e f g))))")
def print_result(c): global output_stream printer.print_scheme_object(c.args[0], output_stream) return None
def test_nested_list_plus_trailing(self): self.read_stream.set_stream("(a b c d (some-variable 12345) 10 15)") result = reader.read_from_stream(self.read_stream) printer.print_scheme_object(result, self.write_stream) self.assertEqual(self.write_stream.get_stream(), "(a b c d (some-variable 12345) 10 15)", "instead: " + self.write_stream.get_stream())
def test_list_with_symbol_and_integer(self): self.read_stream.set_stream("(some-variable 12345)") result = reader.read_from_stream(self.read_stream) printer.print_scheme_object(result, self.write_stream) self.assertEqual(self.write_stream.get_stream(), "(some-variable 12345)", "instead: " + self.write_stream.get_stream())
def test_float(self): self.read_stream.set_stream("0.34") result = reader.read_from_stream(self.read_stream) printer.print_scheme_object(result, self.write_stream) self.assertEqual(self.write_stream.get_stream(), "0.34", "instead: " + self.write_stream.get_stream())
def test_nested_malformed_cons(self): parsed = SchemeCons(SchemeInteger(1), SchemeCons(SchemeCons(SchemeInteger(5), SchemeInteger(10)) , SchemeNil())) printer.print_scheme_object(parsed, self.output_stream) self.assertEqual(self.output_stream.get_stream(), "(1 (5 . 10))")
def test_unevaled_nested_list_quote(self): self.input_stream.set_stream("'(a b (898 123.67 \"abcde\") c d e)") parsed = reader.read_from_stream(self.input_stream) printer.print_scheme_object(parsed, self.output_stream) self.assertEqual(self.output_stream.get_stream(), "(quote (a b (898 123.67 \"abcde\") c d e))")
def test_unevaled_integer_quote(self): self.input_stream.set_stream("'10") parsed = reader.read_from_stream(self.input_stream) printer.print_scheme_object(parsed, self.output_stream) self.assertEqual(self.output_stream.get_stream(), "(quote 10)")