def test_comments(self): raise unittest.SkipTest self.assertEqual(update('/*/jugfytgiuh/*/'), [ ('multiline_comment', '/*/jugfytgiuh/*/')]) self.assertEqual(update('/* */'), [ ('multiline_comment', '/* */')]) self.assertEqual(update('/**/'), [ ('multiline_comment', '/**/')]) self.assertEqual(update('/* /* /* * */'), [ ('multiline_comment', '/* /* /* * */')]) self.assertEqual(update('/*/*/*/*/*/*/**/asd'), [ ('multiline_comment', '/*/*/'), ('times_sign', '*'), ('multiline_comment', '/*/*/'), ('times_sign', '*'), ('multiline_comment', '/**/'), ('identifier', 'asd')]) s = ''' // And my aunt slew a dragon! she is // paper ''' self.assertEqual(update_and_get_names(s), [ 'singleline_comment', 'identifier', 'identifier', 'singleline_comment'])
def test_cut_identifiers(self): self.assertEqual(update('id-ntifier'), [ ('identifier','id'), ('minus_sign', '-'), ('identifier', 'ntifier')]) self.assertEqual(update('id+nti0fier'), [ ('identifier','id'), ('plus_sign', '+'), ('identifier', 'nti0fier')])
def test_string(self): raise unittest.SkipTest self.assertEqual(update('"s" "asd"'), [ ('string_literal', '"s"'), ('string_literal', '"asd"')]) heavily_escaped_string = r'" pls. allow: \"\\\" \\"' self.assertEqual(update(heavily_escaped_string), [ ('string_literal', heavily_escaped_string)]) corner1 = '""""' self.assertEqual(update(corner1), [ ('string_literal', '""'), ('string_literal', '""')])
def test_everything(self): self.assertEqual(update('int a=3'), [ ('identifier', 'int'), ('identifier', 'a'), ('equal_sign', '='), ('decimal_number_literal', '3')]) # self.assertEqual(update('int a=031'), [ # ('identifier', 'int'), # ('identifier', 'a'), # ('equal_sign', '='), # ('octal_number_literal', '031')]) self.assertEqual(update_and_get_names( '{}()?;:,!*+/'), [ 'open_brace', 'close_brace', 'open_paren', 'close_paren', 'question_mark', 'semicolon', 'colon', 'comma', 'bang', 'times_sign', 'plus_sign', 'reverse_solidus'])
def test_whitespace_behavior(self): common_result = [('decimal_number_literal', '3')] self.assertEqual(update('3 \n \t'), common_result) self.assertEqual(update(' \n\t \n3\t '), common_result) self.assertEqual(update(' \n \t \n 3'), common_result)