class_docstr: Verify that the general ids in stable ids match what we expect.
code: def test_general_actions(self):
      run_config = run_configs.get()
      with run_config.start(want_rgb=False) as controller:
          map_inst = maps.get("Simple64")
          create = sc_pb.RequestCreateGame(
              realtime=False,
              disable_fog=False,
              local_map=sc_pb.LocalMap(
                  map_path=map_inst.path,
                  map_data=map_inst.data(run_config),
              ),
          )
          create.player_setup.add(type=sc_pb.Participant)
          create.player_setup.add(
              type=sc_pb.Computer,
              race=sc_common.Random,
              difficulty=sc_pb.VeryEasy,
          )
          join = sc_pb.RequestJoinGame(
              race=sc_common.Random,
              options=sc_pb.InterfaceOptions(raw=True),
          )
          controller.create_game(create)
          controller.join_game(join)
  
          abilities = controller.data().abilities
  
          errors = []
  
          for f in actions.FUNCTIONS:
              if (
                  abilities[f.ability_id].remaps_to_ability_id
                  != f.general_id
              ):
                  errors.append(
                      "FUNCTIONS %s/%s has abilitiy %s, general %s, expected "
                      "general %s"
                      % (
                          f.id,
                          f.name,
                          f.ability_id,
                          f.general_id,
                          abilities[f.ability_id].remaps_to_ability_id,
                      )
                  )
  
          for f in actions.RAW_FUNCTIONS:
              if (
                  abilities[f.ability_id].remaps_to_ability_id
                  != f.general_id
              ):
                  errors.append(
                      "RAW_FUNCTIONS %s/%s has abilitiy %s, general %s, expected "
                      "general %s"
                      % (
                          f.id,
                          f.name,
                          f.ability_id,
                          f.general_id,
                          abilities[f.ability_id].remaps_to_ability_id,
                      )
                  )
  
          print("\n".join(errors))
          self.assertFalse(errors)
  
file_path: pysc2/pysc2/tests/general_actions_test.py
imports: from absl.testing import absltest
  from pysc2 import maps
  from pysc2 import run_configs
  from pysc2.lib import actions
  from pysc2.tests import utils
  from s2clientprotocol import common_pb2
  from s2clientprotocol import sc2api_pb2
label_desc: Use image node_id 1 for calling the TestGeneralActions obj's underlying member method code with example usage: obj.test_general_actions() without return types