code: def test_nullable_rule(self) -> None:
      grammar = """
          start: sign thing $
          sign: ['-']
          thing: NUMBER
          """
      self.assertEqual(
          self.calculate_first_sets(grammar),
          {
              "sign": {"", "'-'"},
              "thing": {"NUMBER"},
              "start": {"NUMBER", "'-'"},
          },
      )
  
imports: import unittest
  from test import test_tools
  from typing import Dict, Set
label_desc: Use image node_id 20 for calling the TestFirstSets obj's underlying member method code with example usage: obj.test_nullable_rule() without return types