code: def test_invalid_number_literals(self):
      for literal in INVALID_UNDERSCORE_LITERALS:
          for expression in [
              "%s",
              "1 + %s",
              "%s + 1",
              "2 * %s",
              "%s * 2",
          ]:
              code = "x = " + expression % literal
              try:
                  self.fragment(
                      """\
                      # cython: language_level=3
                      """
                      + code
                  )
              except CompileError as exc:
                  assert code in [
                      s.strip() for s in str(exc).splitlines()
                  ], str(exc)
              else:
                  assert False, (
                      "Invalid Cython code '%s' failed to raise an exception"
                      % code
                  )
  
file_path: catboost/contrib/tools/cython/Cython/Compiler/Tests/TestGrammar.py
imports: from __future__ import absolute_import
  from ...TestUtils import CythonTest
  from ..Errors import CompileError
  from ..None import ExprNodes
label_desc: Use image node_id 1 for calling the TestGrammar obj's underlying member method code with example usage: obj.test_invalid_number_literals() without return types