code: def test_string(self):
      # Trivial strings
      self.check_isolated_token('""', "STRING", "")
      self.check_isolated_token("''", "STRING", "")
      self.check_isolated_token('"test"', "STRING", "test")
      self.check_isolated_token("'test'", "STRING", "test")
      # Valid escaped characters
      self.check_isolated_token(
          r'"\"\b\f\n\r\t\ub155"', "STRING", '"\b\f\n\r\t\ub155'
      )
      self.check_isolated_token(
          r"'\'\b\f\n\r\t\ub155'", "STRING", "'\b\f\n\r\t\ub155"
      )
      # A sampling of invalid escaped characters
      self.check_failing_token(r'''"\'"''')
      self.check_failing_token(r"""'\"'""")
      self.check_failing_token(r"'\a'")
      self.check_failing_token(r"'\s'")
      self.check_failing_token(r"'\R'")
      self.check_failing_token(r"'\N'")
      self.check_failing_token(r"'\U'")
      self.check_failing_token(r"'\u123g'")
      self.check_failing_token(r"'\u123'")
      # Some unescaped and escapted unicode characters
      self.check_isolated_token(
          '"\uc548\ub155 \\uc548\\ub155"',
          "STRING",
          "\uc548\ub155 \uc548\ub155",
      )
  
file_path: datashader/datashader/datashape/tests/test_lexer.py
imports: from __future__ import absolute_import, division, print_function
  import unittest
  from datashader import datashape
  from datashader.datashape import lexer
label_desc: Use image node_id 5 for calling the TestDataShapeLexer obj's underlying member method code with example usage: obj.test_string() without return types